/*---------------------------------------------------------------------------* Project: Horizon File: gx_CommandAccess.h Copyright (C)2010 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. $Rev: 18521 $ *---------------------------------------------------------------------------*/ #ifndef NN_GX_CTR_GX_COMMAND_ACCESS_H_ #define NN_GX_CTR_GX_COMMAND_ACCESS_H_ #include #include #include #include #include #include #include #include /*-------------------------------------------------------------------------- C API *-------------------------------------------------------------------------*/ /*! @addtogroup nn_gx gx @{ */ #ifdef __cplusplus extern "C" { #endif // __cplusplus /*!--------------------------------------------------------------------------* :private @brief 仮想アドレスから物理アドレスへの変換を行います。 コマンドリストを直接生成する際に必要となる、 デバイスメモリ領域とVRAM領域のアドレス変換にのみ対応しています。 @param[in] virtualAddr 変換する論理アドレス @return 変換後の物理アドレス *---------------------------------------------------------------------------*/ uptr nngxGetPhysicalAddr( uptr virtualAddr ); /*!--------------------------------------------------------------------------* :private @brief メインメモリ上の頂点バッファ・テクスチャバッファの 内容の更新をグラフィックスプロセッサ側に反映させます。 具体的な内部処理としてキャッシュのフラッシュを 行いますが、汎用的なキャッシュフラッシュの目的で 使用した場合の動作は保証されません。 あくまでも頂点バッファやテクスチャバッファの動的な 更新を反映させる用途でのみお使いください。 @param[in] pBuffer バッファの先頭へのポインタ @param[in] size バッファのサイズ @return なし *---------------------------------------------------------------------------*/ void nngxUpdateBuffer( const void* pBuffer, size_t size ); #ifdef __cplusplus } // extern "C" #endif // __cplusplus /*! @} */ /*-------------------------------------------------------------------------- C++ API *-------------------------------------------------------------------------*/ #ifdef __cplusplus namespace nn { namespace gx { namespace CTR { /*!--------------------------------------------------------------------------* :private @brief 仮想アドレスから物理アドレスへの変換を行います。 コマンドリストを直接生成する際に必要となる、 デバイスメモリ領域とVRAM領域のアドレス変換にのみ対応しています。 @param[in] virtualAddr 変換する論理アドレス @return 変換後の物理アドレス *---------------------------------------------------------------------------*/ inline uptr GetPhysicalAddr( uptr virtualAddr ) { return nngxGetPhysicalAddr(virtualAddr); } /*!--------------------------------------------------------------------------* :private @brief メインメモリ上の頂点バッファ・テクスチャバッファの 内容の更新をグラフィックスプロセッサ側に反映させます。 具体的な内部処理としてキャッシュのフラッシュを 行いますが、汎用的なキャッシュフラッシュの目的で 使用した場合の動作は保証されません。 あくまでも頂点バッファやテクスチャバッファの動的な 更新を反映させる用途でのみお使いください。 @param[in] pBuffer バッファの先頭へのポインタ @param[in] size バッファのサイズ @return なし *---------------------------------------------------------------------------*/ inline void UpdateBuffer( const void* pBuffer, size_t size ) { nngxUpdateBuffer(pBuffer, size); } }}} // namespace nn::gx::CTR #endif // __cplusplus #endif /* NN_GX_CTR_GX_COMMAND_ACCESS_H_ */