1 /*---------------------------------------------------------------------------* 2 Project: Horizon 3 File: gd_Rasterizer.h 4 5 Copyright (C)2011 Nintendo Co., Ltd. All rights reserved. 6 7 These coded instructions, statements, and computer programs contain 8 proprietary information of Nintendo of America Inc. and/or Nintendo 9 Company Ltd., and are protected by Federal copyright law. They may 10 not be disclosed to third parties or copied or duplicated in any form, 11 in whole or in part, without the prior written consent of Nintendo. 12 13 *---------------------------------------------------------------------------*/ 14 #ifndef NN_GD_CTR_GD_RASTERIZER_H_ 15 #define NN_GD_CTR_GD_RASTERIZER_H_ 16 17 #include <nn/gd/CTR/gd_Types.h> 18 #include <nn/gd/CTR/gd_Result.h> 19 20 #if NN_GD_DOCUMENT_TYPE == ENGLISH 21 /* Please see man pages for details 22 23 */ 24 #else 25 /* Please see man pages for details 26 27 */ 28 #endif 29 30 namespace nn { 31 namespace gd { 32 namespace CTR { 33 34 /*********************************************************************************************************/ 35 /*************************************************** Enum ************************************************/ 36 37 #if NN_GD_DOCUMENT_TYPE == ENGLISH 38 /* Please see man pages for details 39 40 */ 41 #else 42 /* Please see man pages for details 43 44 */ 45 #endif 46 class Viewport 47 { 48 public: 49 #if NN_GD_DOCUMENT_TYPE == ENGLISH 50 /* Please see man pages for details */ 51 #else 52 /* Please see man pages for details */ 53 #endif 54 u32 m_X; 55 56 #if NN_GD_DOCUMENT_TYPE == ENGLISH 57 /* Please see man pages for details */ 58 #else 59 /* Please see man pages for details */ 60 #endif 61 u32 m_Y; 62 63 #if NN_GD_DOCUMENT_TYPE == ENGLISH 64 /* Please see man pages for details */ 65 #else 66 /* Please see man pages for details */ 67 #endif 68 u32 m_Width; 69 70 #if NN_GD_DOCUMENT_TYPE == ENGLISH 71 /* Please see man pages for details */ 72 #else 73 /* Please see man pages for details */ 74 #endif 75 u32 m_Height; 76 77 public: 78 #if NN_GD_DOCUMENT_TYPE == ENGLISH 79 /* Please see man pages for details 80 */ 81 #else 82 /* Please see man pages for details 83 */ 84 #endif Viewport()85 Viewport(): m_X(0), m_Y(0), m_Width(0), m_Height(0) {} 86 87 #if NN_GD_DOCUMENT_TYPE == ENGLISH 88 /* Please see man pages for details 89 90 91 92 93 */ 94 #else 95 /* Please see man pages for details 96 97 98 99 100 */ 101 #endif Viewport(u32 x,u32 y,u32 width,u32 height)102 Viewport(u32 x, u32 y, u32 width, u32 height): m_X(x), m_Y(y), m_Width(width), m_Height(height) {} 103 104 #if NN_GD_DOCUMENT_TYPE == ENGLISH 105 /* Please see man pages for details 106 107 108 109 110 111 */ 112 #else 113 /* Please see man pages for details 114 115 116 117 118 */ 119 #endif Set(u32 x,u32 y,u32 width,u32 height)120 void Set(u32 x, u32 y, u32 width, u32 height){ 121 m_X = x; 122 m_Y = y; 123 m_Width = width; 124 m_Height = height; 125 } 126 }; 127 128 #if NN_GD_DOCUMENT_TYPE == ENGLISH 129 /* Please see man pages for details 130 131 132 133 134 */ 135 #else 136 /* Please see man pages for details 137 138 139 140 141 */ 142 #endif 143 class RasterizerStage 144 { 145 public: 146 147 #if NN_GD_DOCUMENT_TYPE == ENGLISH 148 /* Please see man pages for details */ 149 #else 150 /* Please see man pages for details */ 151 #endif 152 enum Culling 153 { 154 CULLING_NONE = 0, 155 CULLING_CLOCKWISE = 2, 156 CULLING_COUNTERCLOCKWISE = 1, 157 158 CULLING_RESERVED_MAX_U32 = 0xffffffffu 159 }; 160 161 #if NN_GD_DOCUMENT_TYPE == ENGLISH 162 /* Please see man pages for details */ 163 #else 164 /* Please see man pages for details */ 165 #endif 166 enum EarlyDepthFunction 167 { 168 EARLYDEPTH_FUNCTION_GEQUAL = 0, 169 EARLYDEPTH_FUNCTION_GREATER = 1, 170 EARLYDEPTH_FUNCTION_LEQUAL = 2, 171 EARLYDEPTH_FUNCTION_LESS = 3, 172 173 EARLYDEPTH_FUNCTION_RESERVED_MAX_U32 = 0xffffffffu 174 }; 175 176 #if NN_GD_DOCUMENT_TYPE == ENGLISH 177 /* Please see man pages for details 178 179 180 181 182 183 184 */ 185 #else 186 /* Please see man pages for details 187 188 189 190 191 192 193 */ 194 #endif 195 static void SetCulling(Culling culling); 196 197 #if NN_GD_DOCUMENT_TYPE == ENGLISH 198 /* Please see man pages for details 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 */ 218 #else 219 /* Please see man pages for details 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 */ 240 #endif 241 static void SetViewport(Viewport& viewport); 242 243 #if NN_GD_DOCUMENT_TYPE == ENGLISH 244 /* Please see man pages for details 245 246 247 248 249 250 251 252 */ 253 #else 254 /* Please see man pages for details 255 256 257 258 259 260 261 262 */ 263 #endif 264 static void EnableClippingPlane(gdBool value); 265 266 #if NN_GD_DOCUMENT_TYPE == ENGLISH 267 /* Please see man pages for details 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 */ 288 #else 289 /* Please see man pages for details 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 */ 310 #endif 311 static void SetClippingPlane(f32 param1, f32 param2, f32 param3, f32 param4); 312 313 #if NN_GD_DOCUMENT_TYPE == ENGLISH 314 /* Please see man pages for details 315 316 317 318 319 320 321 322 */ 323 #else 324 /* Please see man pages for details 325 326 327 328 329 330 331 332 */ 333 #endif 334 static void EnableScissor(gdBool value); 335 336 #if NN_GD_DOCUMENT_TYPE == ENGLISH 337 /* Please see man pages for details 338 339 340 341 342 343 344 345 346 347 */ 348 #else 349 /* Please see man pages for details 350 351 352 353 354 355 356 357 358 359 360 361 */ 362 #endif 363 static void SetScissor(Viewport& area); 364 365 #if NN_GD_DOCUMENT_TYPE == ENGLISH 366 /* Please see man pages for details 367 368 369 370 371 372 */ 373 #else 374 /* Please see man pages for details 375 376 377 378 379 380 */ 381 #endif 382 static void SetEarlyDepthTest(gdBool enable, EarlyDepthFunction func); 383 384 #if NN_GD_DOCUMENT_TYPE == ENGLISH 385 /* Please see man pages for details 386 387 */ 388 #else 389 /* Please see man pages for details 390 391 */ 392 #endif 393 static void ClearEarlyDepth(f32 depthClearValue); 394 395 }; // RasterizerStage 396 397 398 } // namespace CTR 399 } // namespace gd 400 } // namespace nn 401 402 #endif // NN_GD_CTR_GD_RASTERIZER_H_ 403