1 /*---------------------------------------------------------------------------* 2 Project: Horizon 3 File: gd_Rasterizer.h 4 Copyright (C)2011 Nintendo Co., Ltd. All rights reserved. 5 These coded instructions, statements, and computer programs contain 6 proprietary information of Nintendo of America Inc. and/or Nintendo 7 Company Ltd., and are protected by Federal copyright law. They may 8 not be disclosed to third parties or copied or duplicated in any form, 9 in whole or in part, without the prior written consent of Nintendo. 10 *--------------------------------------------------------------------------- 11 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 CullingType 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 //culling 177 #if NN_GD_DOCUMENT_TYPE == ENGLISH 178 /* Please see man pages for details 179 180 */ 181 #else 182 /* Please see man pages for details 183 184 */ 185 #endif 186 static void SetCulling(CullingType culling); 187 188 //viewport 189 #if NN_GD_DOCUMENT_TYPE == ENGLISH 190 /* Please see man pages for details 191 192 */ 193 #else 194 /* Please see man pages for details 195 196 */ 197 #endif 198 static void SetViewport(Viewport& viewport); 199 200 //Clipping 201 #if NN_GD_DOCUMENT_TYPE == ENGLISH 202 /* Please see man pages for details 203 204 */ 205 #else 206 /* Please see man pages for details 207 208 */ 209 #endif 210 static void EnableClippingPlane(gdBool value); 211 212 #if NN_GD_DOCUMENT_TYPE == ENGLISH 213 /* Please see man pages for details 214 215 216 217 218 219 220 221 */ 222 #else 223 /* Please see man pages for details 224 225 226 227 228 229 230 231 */ 232 #endif 233 static void SetClippingPlane(f32 param1, f32 param2, f32 param3, f32 param4); 234 235 //Scissor 236 #if NN_GD_DOCUMENT_TYPE == ENGLISH 237 /* Please see man pages for details 238 239 */ 240 #else 241 /* Please see man pages for details 242 243 */ 244 #endif 245 static void EnableScissor(gdBool value); 246 247 #if NN_GD_DOCUMENT_TYPE == ENGLISH 248 /* Please see man pages for details 249 250 */ 251 #else 252 /* Please see man pages for details 253 254 */ 255 #endif 256 static void SetScissor(Viewport& area); 257 258 #if NN_GD_DOCUMENT_TYPE == ENGLISH 259 /* Please see man pages for details 260 261 262 263 264 */ 265 #else 266 /* Please see man pages for details 267 268 269 270 271 */ 272 #endif 273 static void SetEarlyDepthTest(gdBool enable, EarlyDepthFunction func); 274 275 #if NN_GD_DOCUMENT_TYPE == ENGLISH 276 /* Please see man pages for details 277 278 */ 279 #else 280 /* Please see man pages for details 281 282 */ 283 #endif 284 static void ClearEarlyDepth(f32 depthClearValue); 285 286 }; // RasterizerStage 287 288 289 } // namespace CTR 290 } // namespace gd 291 } // namespace nn 292 293 #endif //NN_GD_CTR_GD_RASTERIZER_H_ 294