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