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