1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     gd_System.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_SYSTEM_
15 #define NN_GD_CTR_GD_SYSTEM_
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 #ifndef NN_UNUSED_VAR
31 #if NN_GD_DOCUMENT_TYPE == ENGLISH
32 /* Please see man pages for details */
33 #else
34 /* Please see man pages for details */
35 #endif
36 #define NN_UNUSED_VAR(var)  ((void)&var);
37 #endif
38 
39 #if NN_GD_DOCUMENT_TYPE == ENGLISH
40 /* Please see man pages for details
41 */
42 #else
43 /* Please see man pages for details */
44 #endif
45 typedef void (*gdCallbackfunctionErrorPtr)(nnResult result,  const char* functionName);
46 
47 namespace nn {
48 namespace gd {
49 namespace CTR {
50 
51 #if NN_GD_DOCUMENT_TYPE == ENGLISH
52 /* Please see man pages for details
53 */
54 #else
55 /* Please see man pages for details
56 */
57 #endif
58 class RecordedPacketId;
59 
60 #if NN_GD_DOCUMENT_TYPE == ENGLISH
61 /* Please see man pages for details
62 
63 
64 */
65 /*  */ // defgroup systemFunction
66 #else
67 /* Please see man pages for details
68 
69 
70 */
71 /*  */ // defgroup systemFunction
72 #endif
73 
74 #if NN_GD_DOCUMENT_TYPE == ENGLISH
75 /* Please see man pages for details
76 
77 
78 
79 
80 */
81 #else
82 /* Please see man pages for details
83 
84 
85 
86 
87 */
88 #endif
89 class System
90 {
91 public:
92 
93     #if NN_GD_DOCUMENT_TYPE == ENGLISH
94     /* Please see man pages for details */
95     #else
96     /* Please see man pages for details */
97     #endif
98     enum Module
99     {
100         MODULE_RASTERIZER = 1 << 0,
101         MODULE_LIGHTING = 1 << 1,
102         MODULE_FRAMEBUFFER = 1 << 2,
103         MODULE_TEXTURE_COMBINER = 1 << 3,
104         MODULE_GAS_FOG = 1 << 4,
105         MODULE_FRAGMENT_OPERATION = 1 << 5,
106         MODULE_TEXTURE = 1 << 6,
107         MODULE_TEXTURE_PROCEDURAL = 1 << 7,
108         MODULE_VERTEX_INPUT = 1 << 8,
109         MODULE_SHADER = 1 << 9,
110 
111         MODULE_ALL = 0x7fffffff
112     };
113 
114     #if NN_GD_DOCUMENT_TYPE == ENGLISH
115     /* Please see man pages for details
116 
117     */
118     #else
119     /* Please see man pages for details
120 
121     */
122     #endif
123     static void SetCallbackFunctionError(gdCallbackfunctionErrorPtr callbackFunctionError);
124 
125     #if NN_GD_DOCUMENT_TYPE == ENGLISH
126     /* Please see man pages for details
127 
128 
129     */
130     #else
131     /* Please see man pages for details
132 
133 
134 
135 
136 
137     */
138     #endif
139     static char* GetErrorStringFromResult(nnResult result);
140 
141     #if NN_GD_DOCUMENT_TYPE == ENGLISH
142     /* Please see man pages for details
143 
144 
145     */
146     #else
147     /* Please see man pages for details
148 
149 
150 
151 
152 
153 
154 
155     */
156     #endif
157     static nnResult Initialize();
158 
159     #if NN_GD_DOCUMENT_TYPE == ENGLISH
160     /* Please see man pages for details
161 
162 
163     */
164     #else
165     /* Please see man pages for details
166 
167 
168     */
169     #endif
170     static void Finalize();
171 
172     #if NN_GD_DOCUMENT_TYPE == ENGLISH
173     /* Please see man pages for details
174     */
175     #else
176    /* Please see man pages for details
177     */
178     #endif
179     static void ForceDirty(u32 flag);
180 
181     #if NN_GD_DOCUMENT_TYPE == ENGLISH
182     /* Please see man pages for details
183     */
184     #else
185     /* Please see man pages for details
186     */
187     #endif
188     static void SetDefault(u32 flag);
189 
190     #if NN_GD_DOCUMENT_TYPE == ENGLISH
191     /* Please see man pages for details
192 
193 
194     */
195     #else
196     /* Please see man pages for details
197 
198 
199     */
200     #endif
201     static void Draw(u32 vertexCount, u32 startVertexLocation);
202 
203     #if NN_GD_DOCUMENT_TYPE == ENGLISH
204     /* Please see man pages for details
205 
206 
207     */
208     #else
209     /* Please see man pages for details
210 
211 
212     */
213     #endif
214     static void DrawIndexed(u32 indexCount, u32 startIndexLocation);
215 
216     #if NN_GD_DOCUMENT_TYPE == ENGLISH
217     /* Please see man pages for details
218     */
219     #else
220     /* Please see man pages for details
221     */
222     #endif
223     static void Execute3DCommandList();
224 
225     #if NN_GD_DOCUMENT_TYPE == ENGLISH
226     /* Please see man pages for details
227 
228 
229 
230 
231 
232 
233 
234     */
235     #else
236     /* Please see man pages for details
237 
238 
239 
240 
241 
242 
243 
244 
245 
246 
247 
248 
249 
250       */
251     #endif
252     static nnResult StartRecordingPackets(u32* forceDirtyModuleFlag);
253 
254     #if NN_GD_DOCUMENT_TYPE == ENGLISH
255     /* Please see man pages for details
256 
257 
258 
259     */
260     #else
261     /* Please see man pages for details
262 
263 
264 
265 
266 
267 
268 
269 
270 
271 
272 
273       */
274     #endif
275     static nnResult GetCommandBufferOffset(u32* offset);
276 
277     #if NN_GD_DOCUMENT_TYPE == ENGLISH
278     /* Please see man pages for details
279 
280 
281 
282 
283 
284     */
285     #else
286     /* Please see man pages for details
287 
288 
289 
290 
291 
292 
293 
294 
295 
296 
297       */
298     #endif
299     static nnResult GetCommandBufferBaseAddress(RecordedPacketId* packetId, u32** commandBufferAddr);
300 
301     #if NN_GD_DOCUMENT_TYPE == ENGLISH
302     /* Please see man pages for details
303 
304 
305 
306     */
307     #else
308     /* Please see man pages for details
309 
310 
311 
312 
313 
314 
315 
316 
317 
318 
319 
320 
321     */
322     #endif
323     static nnResult StopRecordingPackets(RecordedPacketId** packetId);
324 
325     #if NN_GD_DOCUMENT_TYPE == ENGLISH
326     /* Please see man pages for details
327 
328 
329 
330 
331 
332 
333 
334 
335     */
336     #else
337     /* Please see man pages for details
338 
339 
340 
341 
342 
343 
344 
345 
346 
347 
348 
349 
350 
351 
352     */
353     #endif
354     static nnResult ReplayPackets(RecordedPacketId* packetId, u32* forceDirtyModuleFlag);
355 
356     #if NN_GD_DOCUMENT_TYPE == ENGLISH
357     /* Please see man pages for details
358 
359     */
360     #else
361     /* Please see man pages for details
362 
363 
364 
365 
366 
367     */
368     #endif
369     static nnResult ReleasePackets(RecordedPacketId* packetId);
370 
371 
372 };  // System
373 
374 /*  */ // addtogroup systemFunction
375 
376 }  // namespace CTR
377 }  // namespace gd
378 }  // namespace nn
379 
380 
381 #endif //NN_GD_CTR_GD_SYSTEM_
382