1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     gd_Result.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_RESULT_H_
15 #define NN_GD_CTR_GD_RESULT_H_
16 
17 #if NN_GD_DOCUMENT_TYPE == ENGLISH
18 /* Please see man pages for details
19   @brief Enum the different result values that the Api functions can return
20 */
21 #else
22 /* Please see man pages for details
23 
24 */
25 #endif
26 
27 #include <nn/Result.h>
28 
29 namespace nn {
30 namespace gd {
31 namespace CTR {
32 
33 #if NN_GD_DOCUMENT_TYPE == ENGLISH
34 /*! @brief The different results/error codes that can be returned by Gd functions. */
35 #else
36 /* Please see man pages for details */
37 #endif
38 typedef enum
39 {
40     // Generic
41     GD_RESULT_SUCCESS = 0,                      //
42     GD_RESULT_INVALID_PARAMETER,                //
43     GD_RESULT_NULL_PARAMETER,                   //
44     GD_RESULT_OUT_OF_RANGE,                     //
45     GD_RESULT_OUT_OF_MEMORY,                    //
46     GD_RESULT_EXT_MEMORY_ALLOCATION_FAILED,     //
47     GD_RESULT_INVALID_MEMORY_REGION,            //
48     GD_RESULT_INVALID_FUNCTION_CALL,            //
49     GD_RESULT_ALREADY_RELEASED,
50 
51     // InputLayout
52     GD_RESULT_INPUTLAYOUT_INVALID_STREAM_SLOTS, //
53 
54     // 2D textures
55     GD_RESULT_TEXTURE2D_INVALID_RESOLUTION,                                 //
56     GD_RESULT_TEXTURE2D_INVALID_SUBREGION_RESOLUTION,                       //
57     GD_RESULT_TEXTURE2D_INVALID_FORMAT,                                     //
58     GD_RESULT_TEXTURE2D_INVALID_MEMORY_LAYOUT,                              //
59     GD_RESULT_TEXTURE2D_INVALID_MEMORY_LOCATION,                            //
60     GD_RESULT_TEXTURE2D_INVALID_MIPLEVEL_INDEX,                             //
61     GD_RESULT_TEXTURE2D_INVALID_MIPLEVEL_INDEX_FOR_MIPMAP_AUTOGENERATION,   //
62     GD_RESULT_TEXTURE2D_INVALID_FORMAT_FOR_CREATING_RENDER_TARGET,          //
63     GD_RESULT_TEXTURE2D_INVALID_FORMAT_FOR_CREATING_DEPTH_STENCIL_TARGET,   //
64     GD_RESULT_DIFFERENT_RENDER_TARGET_AND_DEPTH_STENCIL_TARGET_RESOLUTION,  //
65     GD_RESULT_TEXTURE2D_INVALID_TEXTURE_UNIT_ID,                            //
66     GD_RESULT_TEXTURE2D_INVALID_OFFSET,                                     //
67     GD_RESULT_RESOURCE_ALREADY_MAPPED,                                      //
68     GD_RESULT_RESOURCE_WAS_NOT_MAPPED,                                      //
69     GD_RESULT_NO_TEXTURE_BOUND,                                             //
70     GD_RESULT_NO_TEXTURE_COORDINATES,                                       //
71 
72     // Shader
73     GD_RESULT_INVALID_SHADER_UNIFORM_NAME,                                  //
74     GD_RESULT_INVALID_SHADER_UNIFORM,                                       //
75     GD_RESULT_INVALID_SHADER_SIGNATURE,                                     //
76     GD_RESULT_INVALID_SHADER_OPERATION,                                     //
77 
78     //System
79     GD_RESULT_GEOMETRY_SHADER_INCOMPATIBLE_WITH_IMMEDIATE_DRAW,             //
80     GD_RESULT_SYSTEM_NO_CMD_LIST_BIND,                                      //
81     GD_RESULT_SYSTEM_INVALID_CMD_LIST_BIND,                                 //
82     GD_RESULT_SYSTEM_RECEIVE_ERROR_FROM_GLGETERROR,                         //
83     GD_RESULT_SYSTEM_NO_PACKET_TO_RECORD,                                   //
84     GD_RESULT_SYSTEM_NO_PACKET_RECORDED,                                    //
85     GD_RESULT_SYSTEM_A_PACKET_IS_ALREADY_BEING_RECORDED,                    //
86     GD_RESULT_SYSTEM_INVALID_PACKET_ID,                                     //
87     GD_RESULT_SYSTEM_REQUEST_LIST_INSERTION_INCOMPATIBLE_WITH_JUMP,         //
88 
89     // Last element. This must be at the end just before GD_RESULT_RESERVED_MAX_U32
90     GD_RESULT_LAST,
91 
92     // Force enum to be 32bits
93     GD_RESULT_RESERVED_MAX_U32 = 0xffffffffu
94 } gdResult;
95 
96 // Strings corresponding to the error codes
97 
98 /* Please see man pages for details */
99 #define GD_RESULT_SUCCESS_DESCRIPTION                                                      NULL
100 /* Please see man pages for details */
101 #define GD_RESULT_INVALID_PARAMETER_DESCRIPTION                                            "ResultInvalidParameter: A parameter is invalid"
102 /* Please see man pages for details */
103 #define GD_RESULT_NULL_PARAMETER_DESCRIPTION                                               "ResultNullParameter: A parameter is NULL"
104 /* Please see man pages for details */
105 #define GD_RESULT_OUT_OF_RANGE_DESCRIPTION                                                 "ResultOutOfRangeParameter: A parameter is out of range"
106 /* Please see man pages for details */
107 #define GD_RESULT_OUT_OF_MEMORY_DESCRIPTION                                                "ResultOutOfMemory: ResultOutOfMemory: Not enough main memory (FCRAM) available"
108 /* Please see man pages for details */
109 #define GD_RESULT_EXT_MEMORY_ALLOCATION_FAILED_DESCRIPTION                                 "ResultOutOfMemoryExt: Not enough external memory (VRAM) available"
110 /* Please see man pages for details */
111 #define GD_RESULT_INVALID_MEMORY_REGION_DESCRIPTION                                        "ResultInvalidMemoryRegion: Invalid memory region"
112 /* Please see man pages for details */
113 #define GD_RESULT_INVALID_FUNCTION_CALL_DESCRIPTION                                        "ResultInvalidFunctionCall: Invalid function call"
114 /* Please see man pages for details */
115 #define GD_RESULT_ALREADY_RELEASED_DESCRIPTION                                             "ResultAlreadyReleased: The object has already been released"
116 /* Please see man pages for details */
117 #define GD_RESULT_INPUTLAYOUT_INVALID_STREAM_SLOTS_DESCRIPTION                             "ResultInputLayoutInvalidStreamSlots: The input layout stream slots are invalid (must start from 0 and increase 1 by 1)"
118 /* Please see man pages for details */
119 #define GD_RESULT_TEXTURE2D_INVALID_RESOLUTION_DESCRIPTION                                 "ResultInvalidTextureResolution: Invalid texture 2D resolution"
120 /* Please see man pages for details */
121 #define GD_RESULT_TEXTURE2D_INVALID_SUBREGION_RESOLUTION_DESCRIPTION                       "ResultInvalidSubRegionResolution: Invalid area (subregion) resolution"
122 /* Please see man pages for details */
123 #define GD_RESULT_TEXTURE2D_INVALID_FORMAT_DESCRIPTION                                     "ResultInvalidTextureFormat: Invalid texture 2D format"
124 /* Please see man pages for details */
125 #define GD_RESULT_TEXTURE2D_INVALID_MEMORY_LAYOUT_DESCRIPTION                              "ResultInvalidMemoryLayout: Invalid memory layout"
126 /* Please see man pages for details */
127 #define GD_RESULT_TEXTURE2D_INVALID_MEMORY_LOCATION_DESCRIPTION                            "ResultInvalidMemoryLocation: Invalid memory location"
128 /* Please see man pages for details */
129 #define GD_RESULT_TEXTURE2D_INVALID_MIPLEVEL_INDEX_DESCRIPTION                             "ResultInvalidTextureMipLevelIndex: Invalid texture 2D mipLevel index"
130 /* Please see man pages for details */
131 #define GD_RESULT_TEXTURE2D_INVALID_MIPLEVEL_INDEX_FOR_MIPMAP_AUTOGENERATION_DESCRIPTION   "ResultInvalidTextureMipLevelIndexForMipmapAutoGeneration: Invalid texture 2D mipLevel index for mipmap auto generation"
132 /* Please see man pages for details */
133 #define GD_RESULT_TEXTURE2D_INVALID_FORMAT_FOR_CREATING_RENDER_TARGET_DESCRIPTION          "ResultInvalidTextureFormatForCreatingRenderTarget: Invalid texture 2D format for creating a RenderTarget"
134 /* Please see man pages for details */
135 #define GD_RESULT_TEXTURE2D_INVALID_FORMAT_FOR_CREATING_DEPTH_STENCIL_TARGET_DESCRIPTION   "ResultInvalidTextureFormatForCreatingDepthStencilTarget: Invalid texture 2D format for creating a DepthStencilTarget"
136 /* Please see man pages for details */
137 #define GD_RESULT_DIFFERENT_RENDER_TARGET_AND_DEPTH_STENCIL_TARGET_RESOLUTION_DESCRIPTION  "ResultDifferentRenderTargetAndDepthStencilTargetResolution: RenderTarget and DepthStencilTarget resolution are not compatible"
138 /* Please see man pages for details */
139 #define GD_RESULT_TEXTURE2D_INVALID_TEXTURE_UNIT_ID_DESCRIPTION                            "ResultInvalidTextureUnitId: The texture unit id is not valid"
140 /* Please see man pages for details */
141 #define GD_RESULT_TEXTURE2D_INVALID_OFFSET_DESCRIPTION                                     "ResultInvalidTextureOffset: The texture 2D resource offset is not valid"
142 /* Please see man pages for details */
143 #define GD_RESULT_RESOURCE_ALREADY_MAPPED_DESCRIPTION                                      "ResultResourceAlreadyMapped: The resource is already mapped"
144 /* Please see man pages for details */
145 #define GD_RESULT_RESOURCE_WAS_NOT_MAPPED_DESCRIPTION                                      "ResultResourceNotMapped: The resource is not mapped"
146 /* Please see man pages for details */
147 #define GD_RESULT_NO_TEXTURE_BOUND_DESCRIPTION                                             "ResultNoTextureBound: A texture unit is activated, but no texture is bound"
148 /* Please see man pages for details */
149 #define GD_RESULT_NO_TEXTURE_COORDINATES_DESCRIPTION                                       "ResultNoTextureCoordinates: A texture unit is activated, but has no texture coordinates associated"
150 /* Please see man pages for details */
151 #define GD_RESULT_INVALID_SHADER_UNIFORM_NAME_DESCRIPTION                                  "ResultInvalidShaderUniformName: Invalid shader uniform name"
152 /* Please see man pages for details */
153 #define GD_RESULT_INVALID_SHADER_UNIFORM_DESCRIPTION                                       "ResultInvalidShaderUniform: Invalid shader uniform"
154 /* Please see man pages for details */
155 #define GD_RESULT_INVALID_SHADER_SIGNATURE_DESCRIPTION                                     "ResultInvalidShaderSignature: Invalid shader signature"
156 /* Please see man pages for details */
157 #define GD_RESULT_INVALID_SHADER_OPERATION_DESCRIPTION                                     "ResultInvalidShaderOperation: Invalid shader operation"
158 /* Please see man pages for details */
159 #define GD_RESULT_GEOMETRY_SHADER_INCOMPATIBLE_WITH_IMMEDIATE_DRAW_DESCRIPTION             "ResultSystemGeometryShaderIncompatibleWithImmediateDraw: The current geometry shader is incompatible with immediate draw"
160 /* Please see man pages for details */
161 #define GD_RESULT_SYSTEM_NO_CMD_LIST_BIND_DESCRIPTION                                      "ResultSystemNoCmdListBind: No command list bind"
162 /* Please see man pages for details */
163 #define GD_RESULT_SYSTEM_INVALID_CMD_LIST_BIND_DESCRIPTION                                 "ResultSystemInvalidCmdListBind: Invalid command list bind"
164 /* Please see man pages for details */
165 #define GD_RESULT_SYSTEM_RECEIVE_ERROR_FROM_GLGETERROR_DESCRIPTION                         "ResultSystemReceiveErrorFromGlGetError: glGetError function returned an error (might be caused by previous nngx/Gd function call)"
166 /* Please see man pages for details */
167 #define GD_RESULT_SYSTEM_NO_PACKET_TO_RECORD_DESCRIPTION                                   "ResultSystemNoPacketToRecord: No packet to record"
168 /* Please see man pages for details */
169 #define GD_RESULT_SYSTEM_NO_PACKET_RECORDED_DESCRIPTION                                    "ResultSystemNoPacketRecorded: No packet recorded"
170 /* Please see man pages for details */
171 #define GD_RESULT_SYSTEM_A_PACKET_IS_ALREADY_BEING_RECORDED_DESCRIPTION                    "ResultSystemAPacketIsAlreadyBeingRecorded: A packet is already being recorded"
172 /* Please see man pages for details */
173 #define GD_RESULT_SYSTEM_INVALID_PACKET_ID_DESCRIPTION                                     "ResultSystemInvalidPacketId: The packetId is not valid"
174 /* Please see man pages for details */
175 #define GD_RESULT_SYSTEM_REQUEST_LIST_INSERTION_INCOMPATIBLE_WITH_JUMP_DESCRIPTION         "ResultSystemRequestListInsertionIncompatibleWithJump: The insertion of any requests into the request list is incompatible with the jump recording"
176 
177 
178 /* Please see man pages for details
179 
180 
181 */
182 
183 // Generic
184 #if NN_GD_DOCUMENT_TYPE == ENGLISH
185 /*! :category   Result
186     @class      nn::gd::CTR::ResultSuccess
187     @brief      Success result (No error).
188 */
189 #else
190 /*! :category   Result
191     @class      nn::gd::CTR::ResultSuccess
192     Please see man pages for details
193 
194 
195 */
196 #endif
197 NN_DEFINE_RESULT_CONST(ResultSuccess, nn::Result::LEVEL_SUCCESS, nn::Result::SUMMARY_SUCCESS, nn::Result::MODULE_NN_GD, GD_RESULT_SUCCESS);
198 
199 #if NN_GD_DOCUMENT_TYPE == ENGLISH
200 /*! :category   Result
201     @class      nn::gd::CTR::ResultOutOfMemory
202     @brief      There is not enough FCRAM memory for the operation.
203 */
204 #else
205 /*! :category   Result
206     @class      nn::gd::CTR::ResultOutOfMemory
207     Please see man pages for details
208 */
209 #endif
210 NN_DEFINE_RESULT_CONST(ResultOutOfMemory, nn::Result::LEVEL_PERMANENT, nn::Result::SUMMARY_OUT_OF_RESOURCE, nn::Result::MODULE_NN_GD, GD_RESULT_OUT_OF_MEMORY);
211 
212 #if NN_GD_DOCUMENT_TYPE == ENGLISH
213 /*! :category   Result
214     @class      nn::gd::CTR::ResultOutOfMemoryExt
215     @brief      Not enough external memory (VRAM) available.
216 */
217 #else
218 /*! :category   Result
219     @class      nn::gd::CTR::ResultOutOfMemoryExt
220     Please see man pages for details
221 */
222 #endif
223 NN_DEFINE_RESULT_CONST(ResultOutOfMemoryExt, nn::Result::LEVEL_PERMANENT, nn::Result::SUMMARY_OUT_OF_RESOURCE, nn::Result::MODULE_NN_GD, GD_RESULT_EXT_MEMORY_ALLOCATION_FAILED);
224 
225 #if NN_GD_DOCUMENT_TYPE == ENGLISH
226 /*! :category   Result
227     @class      nn::gd::CTR::ResultInvalidParameter
228     @brief      A parameter is invalid.
229 */
230 #else
231 /*! :category   Result
232     @class      nn::gd::CTR::ResultInvalidParameter
233     Please see man pages for details
234 */
235 #endif
236 NN_DEFINE_RESULT_CONST(ResultInvalidParameter, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_INVALID_PARAMETER);
237 
238 #if NN_GD_DOCUMENT_TYPE == ENGLISH
239 /*! :category   Result
240     @class      nn::gd::CTR::ResultNullParameter
241     @brief      A parameter is NULL.
242 */
243 #else
244 /*! :category   Result
245     @class      nn::gd::CTR::ResultNullParameter
246     Please see man pages for details
247 */
248 #endif
249 NN_DEFINE_RESULT_CONST(ResultNullParameter, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_NULL_PARAMETER);
250 
251 #if NN_GD_DOCUMENT_TYPE == ENGLISH
252 /*! :category   Result
253     @class      nn::gd::CTR::ResultOutOfRangeParameter
254     @brief      A parameter is out of range.
255 */
256 #else
257 /*! :category   Result
258     @class      nn::gd::CTR::ResultOutOfRangeParameter
259     Please see man pages for details
260 */
261 #endif
262 NN_DEFINE_RESULT_CONST(ResultOutOfRangeParameter, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_OUT_OF_RANGE);
263 
264 #if NN_GD_DOCUMENT_TYPE == ENGLISH
265 /*! :category   Result
266     @class      nn::gd::CTR::ResultInvalidMemoryRegion
267     @brief      Invalid memory region.
268 */
269 #else
270 /*! :category   Result
271     @class      nn::gd::CTR::ResultInvalidMemoryRegion
272     Please see man pages for details
273 */
274 #endif
275 NN_DEFINE_RESULT_CONST(ResultInvalidMemoryRegion, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_INVALID_MEMORY_REGION);
276 
277 #if NN_GD_DOCUMENT_TYPE == ENGLISH
278 /*! :category   Result
279     @class      nn::gd::CTR::ResultInvalidFunctionCall
280     @brief      Invalid function call.
281 */
282 #else
283 /*! :category   Result
284     @class      nn::gd::CTR::ResultInvalidFunctionCall
285     Please see man pages for details
286 */
287 #endif
288 NN_DEFINE_RESULT_CONST(ResultInvalidFunctionCall, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_INVALID_FUNCTION_CALL);
289 
290 #if NN_GD_DOCUMENT_TYPE == ENGLISH
291 /*! :category   Result
292     @class      nn::gd::CTR::ResultAlreadyReleased
293     @brief      The object has already been released.
294 */
295 #else
296 /*! :category   Result
297     @class      nn::gd::CTR::ResultAlreadyReleased
298     Please see man pages for details
299 */
300 #endif
301 NN_DEFINE_RESULT_CONST(ResultAlreadyReleased, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_ALREADY_RELEASED);
302 
303 #if NN_GD_DOCUMENT_TYPE == ENGLISH
304 /*! :category   Result
305     @class      nn::gd::CTR::ResultInputLayoutInvalidStreamSlots
306     @brief      The input layout stream slots are invalid.
307 */
308 #else
309 /*! :category   Result
310     @class      nn::gd::CTR::ResultInputLayoutInvalidStreamSlots
311     Please see man pages for details
312 */
313 #endif
314 NN_DEFINE_RESULT_CONST(ResultInputLayoutInvalidStreamSlots, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_INPUTLAYOUT_INVALID_STREAM_SLOTS);
315 
316 // Texture
317 #if NN_GD_DOCUMENT_TYPE == ENGLISH
318 /*! :category   Result
319     @class      nn::gd::CTR::ResultInvalidTextureResolution
320     @brief      Invalid texture 2D resolution.
321 */
322 #else
323 /*! :category   Result
324     @class      nn::gd::CTR::ResultInvalidTextureResolution
325     Please see man pages for details
326 */
327 #endif
328 NN_DEFINE_RESULT_CONST(ResultInvalidTextureResolution, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_TEXTURE2D_INVALID_RESOLUTION);
329 
330 #if NN_GD_DOCUMENT_TYPE == ENGLISH
331 /*! :category   Result
332     @class      nn::gd::CTR::ResultInvalidSubRegionResolution
333     @brief      Invalid area resolution.
334 */
335 #else
336 /*! :category   Result
337     @class      nn::gd::CTR::ResultInvalidSubRegionResolution
338     Please see man pages for details
339 */
340 #endif
341 NN_DEFINE_RESULT_CONST(ResultInvalidSubRegionResolution, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_TEXTURE2D_INVALID_SUBREGION_RESOLUTION);
342 
343 #if NN_GD_DOCUMENT_TYPE == ENGLISH
344 /*! :category   Result
345     @class      nn::gd::CTR::ResultInvalidTextureFormat
346     @brief      Invalid texture 2D format.
347 */
348 #else
349 /*! :category   Result
350     @class      nn::gd::CTR::ResultInvalidTextureFormat
351     Please see man pages for details
352 */
353 #endif
354 NN_DEFINE_RESULT_CONST(ResultInvalidTextureFormat, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_TEXTURE2D_INVALID_FORMAT);
355 
356 #if NN_GD_DOCUMENT_TYPE == ENGLISH
357 /*! :category   Result
358     @class      nn::gd::CTR::ResultInvalidMemoryLayout
359     @brief      Invalid memory layout.
360 */
361 #else
362 /*! :category   Result
363     @class      nn::gd::CTR::ResultInvalidMemoryLayout
364     Please see man pages for details
365 */
366 #endif
367 NN_DEFINE_RESULT_CONST(ResultInvalidMemoryLayout, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_TEXTURE2D_INVALID_MEMORY_LAYOUT);
368 
369 #if NN_GD_DOCUMENT_TYPE == ENGLISH
370 /*! :category   Result
371     @class      nn::gd::CTR::ResultInvalidMemoryLocation
372     @brief      Invalid memory location.
373 */
374 #else
375 /*! :category   Result
376     @class      nn::gd::CTR::ResultInvalidMemoryLocation
377     Please see man pages for details
378 */
379 #endif
380 NN_DEFINE_RESULT_CONST(ResultInvalidMemoryLocation, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_TEXTURE2D_INVALID_MEMORY_LOCATION);
381 
382 #if NN_GD_DOCUMENT_TYPE == ENGLISH
383 /*! :category   Result
384     @class      nn::gd::CTR::ResultInvalidTextureMipLevelIndex
385     @brief      Invalid texture 2D mipLevel index.
386 */
387 #else
388 /*! :category   Result
389     @class      nn::gd::CTR::ResultInvalidTextureMipLevelIndex
390     Please see man pages for details
391 */
392 #endif
393 NN_DEFINE_RESULT_CONST(ResultInvalidTextureMipLevelIndex, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_TEXTURE2D_INVALID_MIPLEVEL_INDEX);
394 
395 #if NN_GD_DOCUMENT_TYPE == ENGLISH
396 /*! :category   Result
397     @class      nn::gd::CTR::ResultInvalidTextureMipLevelIndexForMipmapAutoGeneration
398     @brief      Invalid texture 2D mipLevel index for mipmap auto generation.
399 */
400 #else
401 /*! :category   Result
402     @class      nn::gd::CTR::ResultInvalidTextureMipLevelIndexForMipmapAutoGeneration
403     Please see man pages for details
404 */
405 #endif
406 NN_DEFINE_RESULT_CONST(ResultInvalidTextureMipLevelIndexForMipmapAutoGeneration, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_TEXTURE2D_INVALID_MIPLEVEL_INDEX_FOR_MIPMAP_AUTOGENERATION);
407 
408 #if NN_GD_DOCUMENT_TYPE == ENGLISH
409 /*! :category   Result
410     @class      nn::gd::CTR::ResultInvalidTextureFormatForCreatingRenderTarget
411     @brief      Invalid texture 2D format for creating a RenderTarget.
412 */
413 #else
414 /*! :category   Result
415     @class      nn::gd::CTR::ResultInvalidTextureFormatForCreatingRenderTarget
416     Please see man pages for details
417 */
418 #endif
419 NN_DEFINE_RESULT_CONST(ResultInvalidTextureFormatForCreatingRenderTarget, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_TEXTURE2D_INVALID_FORMAT_FOR_CREATING_RENDER_TARGET);
420 
421 #if NN_GD_DOCUMENT_TYPE == ENGLISH
422 /*! :category   Result
423     @class      nn::gd::CTR::ResultInvalidTextureFormatForCreatingDepthStencilTarget
424     @brief      Invalid texture 2D format for creating a DepthStencilTarget.
425 */
426 #else
427 /*! :category   Result
428     @class      nn::gd::CTR::ResultInvalidTextureFormatForCreatingDepthStencilTarget
429     Please see man pages for details
430 */
431 #endif
432 NN_DEFINE_RESULT_CONST(ResultInvalidTextureFormatForCreatingDepthStencilTarget, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_TEXTURE2D_INVALID_FORMAT_FOR_CREATING_DEPTH_STENCIL_TARGET);
433 
434 #if NN_GD_DOCUMENT_TYPE == ENGLISH
435 /*! :category   Result
436     @class      nn::gd::CTR::ResultDifferentRenderTargetAndDepthStencilTargetResolution
437     @brief      RenderTarget and DepthStencilTarget resolution are not compatible.
438 */
439 #else
440 /*! :category   Result
441     @class      nn::gd::CTR::ResultDifferentRenderTargetAndDepthStencilTargetResolution
442     Please see man pages for details
443 */
444 #endif
445 NN_DEFINE_RESULT_CONST(ResultDifferentRenderTargetAndDepthStencilTargetResolution, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_DIFFERENT_RENDER_TARGET_AND_DEPTH_STENCIL_TARGET_RESOLUTION);
446 
447 #if NN_GD_DOCUMENT_TYPE == ENGLISH
448 /*! :category   Result
449     @class      nn::gd::CTR::ResultInvalidTextureUnitId
450     @brief      Texture unit id is not valid.
451 */
452 #else
453 /*! :category   Result
454     @class      nn::gd::CTR::ResultInvalidTextureUnitId
455     Please see man pages for details
456 */
457 #endif
458 NN_DEFINE_RESULT_CONST(ResultInvalidTextureUnitId, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_TEXTURE2D_INVALID_TEXTURE_UNIT_ID);
459 
460 #if NN_GD_DOCUMENT_TYPE == ENGLISH
461 /*! :category   Result
462     @class      nn::gd::CTR::ResultInvalidTextureUnitId
463     @brief      Texture offset is not valid
464 */
465 #else
466 /*! :category   Result
467     @class      nn::gd::CTR::ResultInvalidTextureUnitId
468     Please see man pages for details
469 */
470 #endif
471 NN_DEFINE_RESULT_CONST(ResultInvalidTextureOffset, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_TEXTURE2D_INVALID_OFFSET);
472 
473 #if NN_GD_DOCUMENT_TYPE == ENGLISH
474 /*! :category   Result
475     @class      nn::gd::CTR::ResultResourceAlreadyMapped
476     @brief      Resource is already mapped
477 */
478 #else
479 /*! :category   Result
480     @class      nn::gd::CTR::ResultResourceAlreadyMapped
481     Please see man pages for details
482 */
483 #endif
484 NN_DEFINE_RESULT_CONST(ResultResourceAlreadyMapped, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_RESOURCE_ALREADY_MAPPED);
485 
486 #if NN_GD_DOCUMENT_TYPE == ENGLISH
487 /*! :category   Result
488     @class      nn::gd::CTR::ResultResourceNotMapped
489     @brief      Resource is not mapped
490 */
491 #else
492 /*! :category   Result
493     @class      nn::gd::CTR::ResultResourceNotMapped
494     Please see man pages for details
495 */
496 #endif
497 NN_DEFINE_RESULT_CONST(ResultResourceNotMapped, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_RESOURCE_WAS_NOT_MAPPED);
498 
499 #if NN_GD_DOCUMENT_TYPE == ENGLISH
500 /*! :category   Result
501     @class      nn::gd::CTR::ResultNoTextureBound
502     @brief      A texture unit is activated, but no texture is bound.
503 */
504 #else
505 /*! :category   Result
506     @class      nn::gd::CTR::ResultNoTextureBound
507     Please see man pages for details
508 */
509 #endif
510 NN_DEFINE_RESULT_CONST(ResultNoTextureBound, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_NO_TEXTURE_BOUND);
511 
512 #if NN_GD_DOCUMENT_TYPE == ENGLISH
513 /*! :category   Result
514     @class      nn::gd::CTR::ResultNoTextureCoordinates
515     @brief      A texture unit is activated, but has no texture coordinates associated.
516 */
517 #else
518 /*! :category   Result
519     @class      nn::gd::CTR::ResultNoTextureCoordinates
520     Please see man pages for details
521 */
522 #endif
523 NN_DEFINE_RESULT_CONST(ResultNoTextureCoordinates, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_NO_TEXTURE_COORDINATES);
524 
525 // Shader
526 #if NN_GD_DOCUMENT_TYPE == ENGLISH
527 /*! :category   Result
528     @class      nn::gd::CTR::ResultInvalidShaderUniformName
529     @brief      Invalid shader uniform name.
530 */
531 #else
532 /*! :category   Result
533     @class      nn::gd::CTR::ResultInvalidShaderUniformName
534     Please see man pages for details
535 */
536 #endif
537 NN_DEFINE_RESULT_CONST(ResultInvalidShaderUniformName, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_INVALID_SHADER_UNIFORM_NAME);
538 
539 // Shader
540 #if NN_GD_DOCUMENT_TYPE == ENGLISH
541 /*! :category   Result
542     @class      nn::gd::CTR::ResultInvalidShaderUniform
543     @brief      Invalid shader uniform.
544 */
545 #else
546 /*! :category   Result
547     @class      nn::gd::CTR::ResultInvalidShaderUniform
548     Please see man pages for details
549 */
550 #endif
551 NN_DEFINE_RESULT_CONST(ResultInvalidShaderUniform, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_INVALID_SHADER_UNIFORM);
552 
553 // Shader
554 #if NN_GD_DOCUMENT_TYPE == ENGLISH
555 /*! :category   Result
556     @class      nn::gd::CTR::ResultInvalidShaderSignature
557     @brief      Invalid shader signature.
558 */
559 #else
560 /*! :category   Result
561     @class      nn::gd::CTR::ResultInvalidShaderSignature
562     Please see man pages for details
563 */
564 #endif
565 NN_DEFINE_RESULT_CONST(ResultInvalidShaderSignature, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_INVALID_SHADER_SIGNATURE);
566 
567 #if NN_GD_DOCUMENT_TYPE == ENGLISH
568 /*! :category   Result
569     @class      nn::gd::CTR::ResultInvalidShaderOperation
570     @brief      Invalid shader operation.
571 */
572 #else
573 /*! :category   Result
574     @class      nn::gd::CTR::ResultInvalidShaderOperation
575     Please see man pages for details
576 */
577 #endif
578 NN_DEFINE_RESULT_CONST(ResultInvalidShaderOperation, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_INVALID_SHADER_OPERATION);
579 
580 //System
581 #if NN_GD_DOCUMENT_TYPE == ENGLISH
582 /*! :category   Result
583     @class      nn::gd::CTR::ResultSystemGeometryShaderIncompatibleWithImmediateDraw
584     @brief      The current geometry shader is incompatible with immediate draw.
585 */
586 #else
587 /*! :category   Result
588     @class      nn::gd::CTR::ResultSystemGeometryShaderIncompatibleWithImmediateDraw
589     Please see man pages for details
590 */
591 #endif
592 NN_DEFINE_RESULT_CONST(ResultSystemGeometryShaderIncompatibleWithImmediateDraw, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_GEOMETRY_SHADER_INCOMPATIBLE_WITH_IMMEDIATE_DRAW);
593 
594 //System
595 #if NN_GD_DOCUMENT_TYPE == ENGLISH
596 /*! :category   Result
597     @class      nn::gd::CTR::ResultSystemNoCmdListBind
598     @brief      No command list bind.
599 */
600 #else
601 /*! :category   Result
602     @class      nn::gd::CTR::ResultSystemNoCmdListBind
603     Please see man pages for details
604 */
605 #endif
606 NN_DEFINE_RESULT_CONST(ResultSystemNoCmdListBind, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_SYSTEM_NO_CMD_LIST_BIND);
607 
608 //System
609 #if NN_GD_DOCUMENT_TYPE == ENGLISH
610 /*! :category   Result
611     @class      nn::gd::CTR::ResultSystemInvalidCmdListBind
612     @brief      Invalid command list bind.
613 */
614 #else
615 /*! :category   Result
616     @class      nn::gd::CTR::ResultSystemInvalidCmdListBind
617     Please see man pages for details
618 */
619 #endif
620 NN_DEFINE_RESULT_CONST(ResultSystemInvalidCmdListBind, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_SYSTEM_INVALID_CMD_LIST_BIND);
621 
622 #if NN_GD_DOCUMENT_TYPE == ENGLISH
623 /*! :category   Result
624     @class      nn::gd::CTR::ResultSystemReceiveErrorFromGlGetError
625     @brief      glGetError function returned an error (might be caused by previous nngx/gd function call).
626 */
627 #else
628 /*! :category   Result
629     @class      nn::gd::CTR::ResultSystemReceiveErrorFromGlGetError
630     Please see man pages for details
631 */
632 #endif
633 NN_DEFINE_RESULT_CONST(ResultSystemReceiveErrorFromGlGetError, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_SYSTEM_RECEIVE_ERROR_FROM_GLGETERROR);
634 
635 #if NN_GD_DOCUMENT_TYPE == ENGLISH
636 /*! :category   Result
637     @class      nn::gd::CTR::ResultSystemNoPacketToRecord
638     @brief      No packet to record.
639 */
640 #else
641 /*! :category   Result
642     @class      nn::gd::CTR::ResultSystemNoPacketToRecord
643     Please see man pages for details
644 */
645 #endif
646 NN_DEFINE_RESULT_CONST(ResultSystemNoPacketToRecord, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_SYSTEM_NO_PACKET_TO_RECORD);
647 
648 #if NN_GD_DOCUMENT_TYPE == ENGLISH
649 /*! :category   Result
650     @class      nn::gd::CTR::ResultSystemNoPacketRecorded
651     @brief      No packet recorded.
652 */
653 #else
654 /*! :category   Result
655     @class      nn::gd::CTR::ResultSystemNoPacketRecorded
656     Please see man pages for details
657 */
658 #endif
659 NN_DEFINE_RESULT_CONST(ResultSystemNoPacketRecorded, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_SYSTEM_NO_PACKET_RECORDED);
660 
661 #if NN_GD_DOCUMENT_TYPE == ENGLISH
662 /*! :category   Result
663     @class      nn::gd::CTR::ResultSystemAPacketIsAlreadyBeingRecorded
664     @brief      No packet recorded.
665 */
666 #else
667 /*! :category   Result
668     @class      nn::gd::CTR::ResultSystemAPacketIsAlreadyBeingRecorded
669     Please see man pages for details
670 */
671 #endif
672 NN_DEFINE_RESULT_CONST(ResultSystemAPacketIsAlreadyBeingRecorded, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_SYSTEM_A_PACKET_IS_ALREADY_BEING_RECORDED);
673 
674 #if NN_GD_DOCUMENT_TYPE == ENGLISH
675 /*! :category   Result
676     @class      nn::gd::CTR::ResultSystemInvalidPacketId
677     @brief      Invalid packet Id.
678 */
679 #else
680 /*! :category   Result
681     @class      nn::gd::CTR::ResultSystemInvalidPacketId
682     Please see man pages for details
683 */
684 #endif
685 NN_DEFINE_RESULT_CONST(ResultSystemInvalidPacketId, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_SYSTEM_INVALID_PACKET_ID);
686 
687 #if NN_GD_DOCUMENT_TYPE == ENGLISH
688 /*! :category   Result
689     @class      nn::gd::CTR::ResultSystemRequestListInsertionIncompatibleWithJump
690     @brief      The insertion of any requests into the request list is incompatible with the jump recording
691 */
692 #else
693 /*! :category   Result
694     @class      nn::gd::CTR::ResultSystemRequestListInsertionIncompatibleWithJump
695     Please see man pages for details
696 */
697 #endif
698 NN_DEFINE_RESULT_CONST(ResultSystemRequestListInsertionIncompatibleWithJump, nn::Result::LEVEL_USAGE, nn::Result::SUMMARY_INVALID_ARGUMENT, nn::Result::MODULE_NN_GD, GD_RESULT_SYSTEM_REQUEST_LIST_INSERTION_INCOMPATIBLE_WITH_JUMP);
699 
700 
701 /*
702 
703 */
704 
705 #if NN_GD_DOCUMENT_TYPE == ENGLISH
706 /*! @brief Checks whether a result represents a failure. */
707 #else
708 /* Please see man pages for details */
709 #endif
710 #define GD_NNRESULT_IS_FAILURE(nnResult) ((nnResult.value & 0x80000000u) != 0)
711 
712 }  // namespace CTR
713 }  // namespace gd
714 }  // namespace nn
715 
716 #endif // NN_GD_CTR_GD_RESULT_H_
717