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