1 /*---------------------------------------------------------------------------* 2 Project: Horizon 3 File: gx_Vram.h 4 5 Copyright (C)2009 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 $Rev: 12449 $ 14 *---------------------------------------------------------------------------*/ 15 16 #ifndef NN_GX_CTR_GX_VRAM_H_ 17 #define NN_GX_CTR_GX_VRAM_H_ 18 19 #include <nn/types.h> 20 #include <nn/assert.h> 21 22 /*-------------------------------------------------------------------------- 23 C API 24 *-------------------------------------------------------------------------*/ 25 /*! 26 @addtogroup nn_gx gx 27 @{ 28 */ 29 30 #ifdef __cplusplus 31 extern "C" { 32 #endif // __cplusplus 33 34 #ifndef NN_GX_MEM_VRAMA 35 #define NN_GX_MEM_VRAMA 0x00020000 36 #endif // NN_GX_MEM_VRAMA 37 38 #ifndef NN_GX_MEM_VRAMB 39 #define NN_GX_MEM_VRAMB 0x00030000 40 #endif // NN_GX_MEM_VRAMB 41 42 /*!--------------------------------------------------------------------------* 43 @brief 指定したVRAM領域の先頭アドレスを取得します。 44 45 @param[in] area 取得するVRAM領域 (NN_GX_MEM_VRAMA もしくは NN_GX_MEM_VRAMB) 46 @return 取得したVRAM領域の先頭アドレス。 47 *---------------------------------------------------------------------------*/ 48 uptr nngxGetVramStartAddr( s32 area ); 49 50 /*!--------------------------------------------------------------------------* 51 @brief 指定したVRAM領域の終端アドレスを取得します。 52 53 @param[in] area 取得するVRAM領域 (NN_GX_MEM_VRAMA もしくは NN_GX_MEM_VRAMB) 54 @return 取得したVRAM領域の終端アドレス。 55 *---------------------------------------------------------------------------*/ 56 uptr nngxGetVramEndAddr( s32 area ); 57 58 /*!--------------------------------------------------------------------------* 59 @brief 指定したVRAM領域のサイズを取得します。 60 61 @param[in] area 取得するVRAM領域 (NN_GX_MEM_VRAMA もしくは NN_GX_MEM_VRAMB) 62 @return 取得したVRAM領域のサイズ。 63 *---------------------------------------------------------------------------*/ 64 size_t nngxGetVramSize( s32 area ); 65 66 #ifdef __cplusplus 67 } // extern "C" 68 #endif // __cplusplus 69 70 /*! 71 @} 72 */ 73 74 /*-------------------------------------------------------------------------- 75 C++ API 76 *-------------------------------------------------------------------------*/ 77 #ifdef __cplusplus 78 namespace nn { 79 namespace gx { 80 namespace CTR { 81 82 /*!--------------------------------------------------------------------------* 83 @enum VramArea 84 @brief VRAM領域の指定に用います。 85 *---------------------------------------------------------------------------*/ 86 enum VramArea 87 { 88 /*! @brief VRAM領域A */ 89 MEM_VRAMA = NN_GX_MEM_VRAMA, 90 /*! @brief VRAM領域B */ 91 MEM_VRAMB = NN_GX_MEM_VRAMB 92 }; 93 94 /*!--------------------------------------------------------------------------* 95 @brief 指定したVRAM領域の先頭アドレスを取得します。 96 97 VRAM領域の先頭アドレスは必ずこのAPIを用いて取得してください。 98 なお、取得されるアドレスは将来的に変更になる可能性があります。 99 100 @param[in] area 取得するVRAM領域 (MEM_VRAMA もしくは MEM_VRAMB) 101 @return 取得したVRAM領域の先頭アドレス。 102 *---------------------------------------------------------------------------*/ GetVramStartAddr(VramArea area)103 inline uptr GetVramStartAddr( VramArea area ) 104 { 105 return nngxGetVramStartAddr(area); 106 } 107 108 /*!--------------------------------------------------------------------------* 109 @brief 指定したVRAM領域の終端アドレスを取得します。 110 111 VRAM領域の終端アドレスは必ずこのAPIを用いて取得してください。 112 なお、取得されるアドレスは将来的に変更になる可能性があります。 113 114 @param[in] area 取得するVRAM領域 (MEM_VRAMA もしくは MEM_VRAMB) 115 @return 取得したVRAM領域の終端アドレス。 116 *---------------------------------------------------------------------------*/ GetVramEndAddr(VramArea area)117 inline uptr GetVramEndAddr( VramArea area ) 118 { 119 return nngxGetVramEndAddr(area); 120 } 121 122 /*!--------------------------------------------------------------------------* 123 @brief 指定したVRAM領域のサイズを取得します。 124 125 VRAM領域のサイズは必ずこのAPIを用いて取得してください。 126 なお、取得されるサイズは将来的に変更になる可能性があります。 127 128 @param[in] area 取得するVRAM領域 (MEM_VRAMA もしくは MEM_VRAMB) 129 @return 取得したVRAM領域のサイズ。 130 *---------------------------------------------------------------------------*/ GetVramSize(VramArea area)131 inline size_t GetVramSize( VramArea area ) 132 { 133 return nngxGetVramSize(area); 134 } 135 136 }}} // namespace nn::gx::CTR 137 #endif // __cplusplus 138 139 140 #endif /* NN_GX_CTR_GX_VRAM_H_ */ 141