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