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 typedef Culling CullingType; 167 168 #if NN_GD_DOCUMENT_TYPE == ENGLISH 169 /* Please see man pages for details */ 170 #else 171 /* Please see man pages for details */ 172 #endif 173 enum EarlyDepthFunction 174 { 175 EARLYDEPTH_FUNCTION_GEQUAL = 0, 176 EARLYDEPTH_FUNCTION_GREATER = 1, 177 EARLYDEPTH_FUNCTION_LEQUAL = 2, 178 EARLYDEPTH_FUNCTION_LESS = 3, 179 180 EARLYDEPTH_FUNCTION_RESERVED_MAX_U32 = 0xffffffffu 181 }; 182 183 #if NN_GD_DOCUMENT_TYPE == ENGLISH 184 /* Please see man pages for details 185 186 */ 187 #else 188 /* Please see man pages for details 189 190 */ 191 #endif 192 static void SetCulling(Culling culling); 193 194 #if NN_GD_DOCUMENT_TYPE == ENGLISH 195 /* Please see man pages for details 196 197 */ 198 #else 199 /* Please see man pages for details 200 201 */ 202 #endif 203 static void SetViewport(Viewport& viewport); 204 205 #if NN_GD_DOCUMENT_TYPE == ENGLISH 206 /* Please see man pages for details 207 208 */ 209 #else 210 /* Please see man pages for details 211 212 */ 213 #endif 214 static void EnableClippingPlane(gdBool value); 215 216 #if NN_GD_DOCUMENT_TYPE == ENGLISH 217 /* Please see man pages for details 218 219 220 221 222 223 224 225 */ 226 #else 227 /* Please see man pages for details 228 229 230 231 232 233 234 235 */ 236 #endif 237 static void SetClippingPlane(f32 param1, f32 param2, f32 param3, f32 param4); 238 239 #if NN_GD_DOCUMENT_TYPE == ENGLISH 240 /* Please see man pages for details 241 242 */ 243 #else 244 /* Please see man pages for details 245 246 */ 247 #endif 248 static void EnableScissor(gdBool value); 249 250 #if NN_GD_DOCUMENT_TYPE == ENGLISH 251 /* Please see man pages for details 252 253 */ 254 #else 255 /* Please see man pages for details 256 257 */ 258 #endif 259 static void SetScissor(Viewport& area); 260 261 #if NN_GD_DOCUMENT_TYPE == ENGLISH 262 /* Please see man pages for details 263 264 265 266 267 */ 268 #else 269 /* Please see man pages for details 270 271 272 273 274 */ 275 #endif 276 static void SetEarlyDepthTest(gdBool enable, EarlyDepthFunction func); 277 278 #if NN_GD_DOCUMENT_TYPE == ENGLISH 279 /* Please see man pages for details 280 281 */ 282 #else 283 /* Please see man pages for details 284 285 */ 286 #endif 287 static void ClearEarlyDepth(f32 depthClearValue); 288 289 }; // RasterizerStage 290 291 292 } // namespace CTR 293 } // namespace gd 294 } // namespace nn 295 296 #endif // NN_GD_CTR_GD_RASTERIZER_H_ 297