1 /*---------------------------------------------------------------------------* 2 Project: Horizon 3 File: tpl_ReadTexturePackage.h 4 5 Copyright (C)2010 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: 28630 $ 14 *---------------------------------------------------------------------------*/ 15 16 #ifndef NN_TPL_CTR_TPL_READTEXTUREPACKAGE_H_ 17 #define NN_TPL_CTR_TPL_READTEXTUREPACKAGE_H_ 18 19 #include <nn/tpl/CTR/tpl_PackagerType.h> 20 21 22 #ifdef __cplusplus 23 extern "C" { 24 #endif 25 26 27 namespace nn { namespace tpl { namespace CTR { 28 29 /*! 30 @brief テクスチャパッケージファイルに含まれるテクスチャ数を取得します。 31 32 @param[in] pTexPackage テクスチャパッケージファイルを読み込んだ先頭ポインタ。 33 @return テクスチャパッケージファイルに含まれるテクスチャ数を返します。 34 */ 35 u16 GetTextureNum(const void* pTexPackage); 36 37 /*! 38 @brief テクスチャインデックスを取得します。 39 40 @param[in] pTexPackage テクスチャパッケージファイルを読み込んだ先頭ポインタ。 41 @param[in] texPath 検索するテクスチャのパス。 42 @return テクスチャのインデックス。見つからなかった場合は -1 を返します。 43 44 テクスチャ名のパスから、パッケージ内の該当テクスチャのインデックスを取得します。 45 */ 46 s16 GetTextureIndex(const void* pTexPackage, const char* texPath); 47 48 /*! 49 @brief テクスチャを取得します。 50 51 @param[out] mipLevel ミップマップの枚数。 52 @param[out] mipmapSize 各ミップマップのデータサイズ(バイト)(配列を指定してください)。 53 @param[in] pTexPackage テクスチャパッケージファイルを読み込んだ先頭ポインタ。 54 @param[in] texIndex テクスチャのインデックス。 55 @return テクスチャの先頭ポインタ。見つからなかった場合は 0 を返します。 56 57 パッケージ内の該当テクスチャのポインタを返します。 58 本体もミップマップの最大の大きさの物として考える為、 59 該当テクスチャがある場合、必ず miplevel は 1 以上になります。 60 */ 61 void* GetTexture(s32* mipLevel, u32* mipmapSize, const void* pTexPackage, const s16 texIndex); 62 63 /*! 64 @brief テクスチャ情報を取得します。 65 66 @param[out] pTexInfo 該当テクスチャの情報を保持した構造体のポインタ。 67 @param[in] pTexPackage テクスチャパッケージファイルを読み込んだ先頭ポインタ。 68 @param[in] texIndex テクスチャのインデックス。 69 @return テクスチャ情報を取得出来た場合は true、何らかのエラーが起きた場合は false を返します。 70 71 該当テクスチャの情報を取得します。 72 */ 73 bool GetTextureInfo(CtrTextureInfo* pTexInfo, const void* pTexPackage, const s16 texIndex); 74 75 /*! 76 @brief テクスチャパッケージのチェックを行います。 77 78 @param[in] pTexPackage テクスチャパッケージファイルを読み込んだ先頭ポインタ 79 @return 使用出来るテクスチャパッケージファイルの場合は true、使用出来ない場合や何らかのエラーが起きた場合は false を返します。 80 81 読み込んだテクスチャパッケージファイルのヘッダ部分を見て、 82 使用出来るものかどうかを判定します。 83 */ 84 bool CheckTexturePackageHeader(const void* pTexPackage); 85 86 87 }}} // namespace 88 89 90 #ifdef __cplusplus 91 } 92 #endif 93 94 #endif // NN_TPL_CTR_TPL_READTEXTUREPACKAGE_H_ 95