1 /*---------------------------------------------------------------------------* 2 Project: Horizon 3 File: tpl_PackagerType.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: 24687 $ 14 *---------------------------------------------------------------------------*/ 15 16 #ifndef NN_TPL_CTR_TPL_PACKAGERTYPES_H_ 17 #define NN_TPL_CTR_TPL_PACKAGERTYPES_H_ 18 19 20 namespace nn { namespace tpl { namespace CTR { 21 22 // 最大のMipMapレベル 23 #define MAX_MIPMAPLEVEL 8 // 1024×1024dot 24 25 /*! 26 @brief GPUのテクスチャフォーマットを表す列挙型。 27 28 各フォーマットについて、0xf との論理和をとることで 29 PICA のレジスタ(0x8e[3:0] など)に設定可能な値を定義しています。 30 (TEXFMT_REF, TEXFMT_UNSUPPORT を除く) 31 */ 32 enum CtrTexFormat 33 { 34 TEXFMT_RGBA8888 = 0, //!< R:8bit / G:8bit / B:8bit / A:8bit 35 TEXFMT_RGB888 = 1, //!< R:8bit / G:8bit / B:8bit 36 TEXFMT_RGBA5551 = 2, //!< R:5bit / G:5bit / B:5bit / A:1bit 37 TEXFMT_RGB565 = 3, //!< R:5bit / G:6bit / B:5bit 38 TEXFMT_RGBA4444 = 4, //!< R:4bit / G:4bit / B:4bit / A:4bit 39 TEXFMT_LA88 = 5, //!< Luminance:8bit / Alpha:8bit 40 TEXFMT_HL8 = 6, //!< R:8bit / G:8bit 41 TEXFMT_L8 = 7, //!< Luminance:8bit 42 TEXFMT_A8 = 8, //!< Alpha:8bit 43 TEXFMT_LA44 = 9, //!< Luminance:4bit / Alpha:4bit 44 TEXFMT_L4 = 10, //!< Luminance:4bit 45 TEXFMT_A4 = 11, //!< Alpha:4bit 46 TEXFMT_ETC1 = 12, //!< ETC1圧縮フォーマット 47 TEXFMT_ETC1_A4 = 13, //!< Alpha付きETC1圧縮フォーマット 48 49 TEXFMT_SHADOW = 0x10, //!< shadowテクスチャ(unsigned int) 50 TEXFMT_GAS = 0x20, //!< gas用テクスチャ(unsigned short) 51 TEXFMT_REF = 0x30, //!< 1次元テクスチャ(float) 52 53 TEXFMT_UNSUPPORT = 0xff, //!< 非サポートフォーマットを表す識別子。 54 55 TEXFMT_ForceInt32 = 0x7fffffff 56 }; 57 58 /*! 59 @brief 一枚のテクスチャを表すデータ 60 61 このデータ構造体はテクスチャパッケージ内に含まれているデータの構造を示しています。 62 この構造体のサイズは意図して32byteにしています。 63 */ 64 struct CtrTextureInfo 65 { 66 unsigned int filePathOffset; //!< ファイル名へのオフセット(ファイルの先頭から) 67 unsigned int texDataSize; //!< 画像データのサイズ 68 unsigned int texDataOffset; //!< 画像データへのオフセット(データ領域の先頭から) 69 CtrTexFormat texFormat; //!< フォーマット 70 unsigned short width; //!< 幅 71 unsigned short height; //!< 高さ 72 unsigned char mipLevel; //!< ミップマップの枚数 73 unsigned char type; //!< 0: Cube / 1: 1D / 2: 2D 74 unsigned short cubeDir; //!< 0: x / 1:-x / 2: y / 3: -y / 4: z / 5: -z 75 unsigned int bitmapSizeOffset; //!< 各MipMapでの画像サイズの配列へのオフセット。実際のオフセットの1/4が代入される。 76 unsigned int srcFileTime; //!< 入力画像ファイルのタイムスタンプ(変更の確認用) 77 }; 78 79 #define CTR_TEXTURE_PACKAGE_VERSION 1 80 81 82 }}} // namespace 83 84 85 #endif // ifndef NN_TPL_CTR_TPL_PACKAGERTYPES_H_ 86