/*---------------------------------------------------------------------------* Project: Horizon File: gd_System.h Copyright (C)2011 Nintendo Co., Ltd. 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. *---------------------------------------------------------------------------*/ #ifndef NN_GD_CTR_GD_SYSTEM_H_ #define NN_GD_CTR_GD_SYSTEM_H_ #include #include #if NN_GD_DOCUMENT_TYPE == ENGLISH /* Please see man pages for details */ #else /* Please see man pages for details */ #endif #ifndef NN_UNUSED_VAR #if NN_GD_DOCUMENT_TYPE == ENGLISH /* Please see man pages for details */ #else /* Please see man pages for details */ #endif #define NN_UNUSED_VAR(var) ((void)&var); #endif #if NN_GD_DOCUMENT_TYPE == ENGLISH /* Please see man pages for details */ #else /* Please see man pages for details */ #endif typedef void (*gdCallbackfunctionErrorPtr)(nnResult result, const char* functionName); namespace nn { namespace gd { namespace CTR { #if NN_GD_DOCUMENT_TYPE == ENGLISH /* Please see man pages for details */ #else /* Please see man pages for details */ #endif class RecordedPacketId; #if NN_GD_DOCUMENT_TYPE == ENGLISH /* Please see man pages for details */ /* */ // defgroup systemFunction #else /* Please see man pages for details */ /* */ // defgroup systemFunction #endif #if NN_GD_DOCUMENT_TYPE == ENGLISH /* Please see man pages for details */ #else /* Please see man pages for details */ #endif class System { public: #if NN_GD_DOCUMENT_TYPE == ENGLISH /* Please see man pages for details */ #else /* Please see man pages for details */ #endif enum Module { MODULE_RASTERIZER = 1 << 0, MODULE_LIGHTING = 1 << 1, MODULE_FRAMEBUFFER = 1 << 2, MODULE_TEXTURE_COMBINER = 1 << 3, MODULE_GAS_FOG = 1 << 4, MODULE_FRAGMENT_OPERATION = 1 << 5, MODULE_TEXTURE = 1 << 6, MODULE_TEXTURE_PROCEDURAL = 1 << 7, MODULE_VERTEX_INPUT = 1 << 8, MODULE_SHADER = 1 << 9, MODULE_ALL = 0x7fffffff }; #if NN_GD_DOCUMENT_TYPE == ENGLISH /* Please see man pages for details */ #else /* Please see man pages for details */ #endif static void SetCallbackFunctionError(gdCallbackfunctionErrorPtr callbackFunctionError); #if NN_GD_DOCUMENT_TYPE == ENGLISH /* Please see man pages for details */ #else /* Please see man pages for details */ #endif static char* GetErrorStringFromResult(nnResult result); #if NN_GD_DOCUMENT_TYPE == ENGLISH /* Please see man pages for details */ #else /* Please see man pages for details */ #endif static nnResult Initialize(); #if NN_GD_DOCUMENT_TYPE == ENGLISH /* Please see man pages for details */ #else /* Please see man pages for details */ #endif static void Finalize(); #if NN_GD_DOCUMENT_TYPE == ENGLISH /* Please see man pages for details */ #else /* Please see man pages for details */ #endif static void ForceDirty(u32 flag); #if NN_GD_DOCUMENT_TYPE == ENGLISH /* Please see man pages for details */ #else /* Please see man pages for details */ #endif static void SetDefault(u32 flag); #if NN_GD_DOCUMENT_TYPE == ENGLISH /* Please see man pages for details */ #else /* Please see man pages for details */ #endif static void Draw(u32 vertexCount, u32 startVertexLocation); #if NN_GD_DOCUMENT_TYPE == ENGLISH /* Please see man pages for details */ #else /* Please see man pages for details */ #endif static void DrawIndexed(u32 indexCount, u32 startIndexLocation); #if NN_GD_DOCUMENT_TYPE == ENGLISH /* Please see man pages for details */ #else /* Please see man pages for details */ #endif static void Execute3DCommandList(); #if NN_GD_DOCUMENT_TYPE == ENGLISH /* Please see man pages for details */ #else /* Please see man pages for details */ #endif static nnResult StartRecordingPackets(u32* forceDirtyModuleFlag); #if NN_GD_DOCUMENT_TYPE == ENGLISH /* Please see man pages for details */ #else /* Please see man pages for details */ #endif static nnResult GetCommandBufferOffset(u32* offset); #if NN_GD_DOCUMENT_TYPE == ENGLISH /* Please see man pages for details */ #else /* Please see man pages for details */ #endif static nnResult GetCommandBufferBaseAddress(RecordedPacketId* packetId, u32** commandBufferAddr); #if NN_GD_DOCUMENT_TYPE == ENGLISH /* Please see man pages for details */ #else /* Please see man pages for details */ #endif static nnResult StopRecordingPackets(RecordedPacketId** packetId); #if NN_GD_DOCUMENT_TYPE == ENGLISH /* Please see man pages for details */ #else /* Please see man pages for details */ #endif static nnResult ReplayPackets(RecordedPacketId* packetId, u32* forceDirtyModuleFlag); #if NN_GD_DOCUMENT_TYPE == ENGLISH /* Please see man pages for details */ #else /* Please see man pages for details */ #endif static nnResult ReleasePackets(RecordedPacketId* packetId); }; // System /* */ // addtogroup systemFunction } // namespace CTR } // namespace gd } // namespace nn #endif // NN_GD_CTR_GD_SYSTEM_H_