/*---------------------------------------------------------------------------* Copyright (C) Nintendo. All rights reserved. These coded instructions, statements, and computer programs contain proprietary information of Nintendo of America Inc. and/or Nintendo Company Ltd., and are protected by Federal copyright law. They may not be disclosed to third parties or copied or duplicated in any form, in whole or in part, without the prior written consent of Nintendo. *---------------------------------------------------------------------------*/ // gx2.h // // Top-level public include file for using GX2 API. #ifndef _CAFE_GX2_H_ #define _CAFE_GX2_H_ // Special GX2 Doxygen Tags // These special doxygen tags are used to indicate different safety // issues of the various GX2 API calls. For more detailed information // and specific exceptions see the descriptions in the Cafe manual: // // "Graphics -> Main Page -> API Limitations Table" // // \donotcall - Begins a "Do Not Call" from section in HTML // \enddonotcall - Ends a "Do Not Call" from section in HTML // \fgonly - Marks API as callable from foreground only // \threadsafe - Marks API as thread safe // \notthreadsafe - Marks API as not thread safe // \notcallback - Marks API as not callable from a callback // \notinterrupt - Marks API as not callable from an interrupt // \notexception - Marks API as not callable from an exception handler // \multicore - Marks API as callable from multiple cores // \nomulticore - Marks API as callable only from the main graphics core // \userheap - Indicates that API allocates from the user heap // \userheap{1} - Indicates that API allocates from the user heap // \devonly - Marks API as being available on the DEV-kit only // \hostonly - Marks API as being available on the Host only // \notdisplaylist - Marks API as not callable from within a display list // \clobberstate - Indicates that an API clobbers graphics state // \disablesstateshadow - Indicates that an API disables HW state shadowing // \enablesstateshadow - Indicates that an API enables HW state shadowing // \writesgpu - Indicates that an API writes 3D commands // \directwritesgpu - Indicates that an API writes directly to GPU registers // \alwayswritesgpu - Indicates that an API writes 3D commands // \writesgpu{1} - Indicates that an API writes 3D commands with exceptions // \writesdmae - Indicates that an API writes DMAE commands // // // There are also some meta-tags that reference multiple tags in the above // list: // // \gx2_typical - Indicates \fgonly, \notthreadsafe, \notcallback, // \notinterrupt, \notexception and \devonly // \gx2_dl - Same as \gx2_typical except it also includes \notdisplaylist // /// @defgroup GX2 GX2 Runtime Library /// @defgroup GX2ConstGroup Constants /// @ingroup GX2 /// @defgroup GX2EnumGroup Enums /// @ingroup GX2 /// @defgroup GX2DrawGroup Draw /// @ingroup GX2 /// @defgroup GX2DrawClearGroup Clear /// @ingroup GX2DrawGroup /// @defgroup GX2DrawPrimitiveGroup Primitive /// @ingroup GX2DrawGroup /// @defgroup GX2TessellationGroup Tessellation /// @ingroup GX2DrawGroup /// @defgroup GX2StreamOutGroup Stream Out /// @ingroup GX2DrawGroup /// @defgroup GX2ShaderGroup Shaders /// @ingroup GX2 /// @defgroup GX2ShaderAllGroup All /// @ingroup GX2ShaderGroup /// @defgroup GX2ShaderVertexGroup Vertex /// @ingroup GX2ShaderGroup /// @defgroup GX2ShaderPixelGroup Pixel /// @ingroup GX2ShaderGroup /// @defgroup GX2ShaderGeometryGroup Geometry /// @ingroup GX2ShaderGroup /// @defgroup GX2ShaderFetchGroup Fetch /// @ingroup GX2ShaderGroup /// @defgroup GX2ShaderComputeGroup Compute /// @ingroup GX2ShaderGroup /// @defgroup GX2SurfaceGroup Surface /// @ingroup GX2 /// @defgroup GX2SurfaceAllGroup All /// @ingroup GX2SurfaceGroup /// @defgroup GX2SurfaceColorGroup Color /// @ingroup GX2SurfaceGroup /// @defgroup GX2SurfaceDepthGroup Depth /// @ingroup GX2SurfaceGroup /// @defgroup GX2SurfaceCopyGroup Copy & Convert /// @ingroup GX2SurfaceGroup /// @defgroup GX2SurfaceTileGroup Tile Aperture /// @ingroup GX2SurfaceGroup /// @defgroup GX2TextureGroup Texture /// @ingroup GX2 /// @defgroup GX2TextureSurfaceGroup Surface /// @ingroup GX2TextureGroup /// @defgroup GX2TextureSamplerGroup Sampler /// @ingroup GX2TextureGroup /// @defgroup GX2RenderStateGroup RenderState /// @ingroup GX2 /// @defgroup GX2RenderStateDepthStencilGroup Depth/Stencil /// @ingroup GX2RenderStateGroup /// @defgroup GX2RenderStatePrimitiveAssemblyGroup Primitive Assembly /// @ingroup GX2RenderStateGroup /// @defgroup GX2RenderStateRenderTargetGroup Render Target /// @ingroup GX2RenderStateGroup /// @defgroup GX2RenderStateRegGroup Register /// @ingroup GX2RenderStateGroup /// @defgroup GX2ManagementGroup Management /// @ingroup GX2 /// @defgroup GX2ManagementInitGroup Init /// @ingroup GX2ManagementGroup /// @defgroup GX2ManagementContextStateGroup Context State /// @ingroup GX2ManagementGroup /// @defgroup GX2ManagementDLGroup Display List /// @ingroup GX2ManagementGroup /// @defgroup GX2ManagementResetGroup GPU Reset /// @ingroup GX2ManagementGroup /// @defgroup GX2ManagementMemGroup Memory /// @ingroup GX2ManagementGroup /// @defgroup GX2ManagementSyncGroup Synchronization /// @ingroup GX2ManagementGroup /// @defgroup GX2QueryGroup Query /// @ingroup GX2ManagementGroup /// @defgroup GX2RGroup Resource Management Layer /// @ingroup GX2 /// @defgroup GX2DisplayGroup Display /// @ingroup GX2 /// @defgroup GX2DisplayInfoGroup Info /// @ingroup GX2DisplayGroup /// @defgroup GX2DisplayConfigGroup Config /// @ingroup GX2DisplayGroup /// @defgroup GX2DisplaySwapGroup Swap /// @ingroup GX2DisplayGroup /// @defgroup GX2DebugGroup Debug /// @ingroup GX2 /// @defgroup GX2VerifyGroup Verify /// @ingroup GX2DebugGroup /// @defgroup GX2DebugCaptureGroup Capture /// @ingroup GX2DebugGroup /// @defgroup GX2PerfGroup Perf /// @ingroup GX2 /// @defgroup GX2PerfCycleGroup Cycles & Time /// @ingroup GX2PerfGroup /// @defgroup GX2PerfLowGroup Low-level API /// @ingroup GX2PerfGroup /// @defgroup GX2PerfHighGroup High-level API /// @ingroup GX2PerfGroup /// @defgroup GX2PerfHighStructGroup Structures /// @ingroup GX2PerfHighGroup /// @defgroup GX2PerfHighSetupGroup Setup /// @ingroup GX2PerfHighGroup /// @defgroup GX2PerfHighCaptureGroup Capture /// @ingroup GX2PerfHighGroup /// @defgroup GX2PerfHighResultsGroup Results /// @ingroup GX2PerfHighGroup /// @defgroup GX2PerfEnumGroup Enum /// @ingroup GX2PerfGroup /// @defgroup GX2UTGroup Utility /// @ingroup GX2 /// @defgroup GX2UTHelperGroup Helper /// @ingroup GX2UTGroup /// @defgroup GX2UTSurfaceHelperGroup Surface Helper Functions /// @ingroup GX2UTHelperGroup /// @defgroup GX2UTCopyAndConvertGroup Copy & Convert /// @ingroup GX2UTGroup /// @defgroup GX2UTClearSurfaceGroup Clear Surface /// @ingroup GX2UTGroup /// @defgroup GX2UTComponentGroup Component /// @ingroup GX2UTGroup /// @defgroup GX2UTCaptureGroup Capture /// @ingroup GX2UTGroup /// @defgroup GX2UTGX2RGroup Resource Management Layer /// @ingroup GX2UTGroup /// @defgroup GX2TempGroup Temp /// @ingroup GX2 /// @defgroup GX2DeprecatedGroup Deprecated /// @ingroup GX2 /// @defgroup GX2ToolLibGroup GX2 PC Tools & Libraries /// @defgroup GX2ToolGroup Tools /// @ingroup GX2ToolLibGroup /// @defgroup GX2LibGroup Libraries /// @ingroup GX2ToolLibGroup /// @defgroup GX2TexUtilGroup Texture Utils /// @ingroup GX2LibGroup /// @defgroup GX2ShaderUtilsGroup Shader Utils /// @ingroup GX2LibGroup /// @defgroup GX2TexReaderGroup Texture Readers /// @ingroup GX2LibGroup #include // ----------------- // GX2 includes: #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined __cplusplus && !defined WIN32 && !defined WIN64 #include #endif // these will go away: #include #endif // _CAFE_GX2_H_