/*---------------------------------------------------------------------------* Copyright (C) 2010-2011 Nintendo. 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. *---------------------------------------------------------------------------*/ // gfdEnum.h // // Declares enums for Grafhics File Format library. #ifndef _CAFE_GFD_ENUM_H_ #define _CAFE_GFD_ENUM_H_ #ifdef __cplusplus extern "C" { #endif // __cplusplus /// @addtogroup GFDEnumGroup /// @{ /// \brief GPU version the file is designed for. /// typedef enum _GFDGPUVersion { GFD_GPU_VERSION_0 = 0, ///< ver 0 GFD_GPU_VERSION_1 = 1, ///< ver 1 GFD_GPU_VERSION_GPU7 = 2, ///< Cafe(GPU7) GFD_GPU_VERSION_Last ///< Count of valid GPU versions } GFDGPUVersion; /// \brief Defines type of each block in the GFD (gtx and gsh) file. /// typedef enum _GFDBlockType { GFD_BLOCK_TYPE_HEADER = 0, ///< a 'file' header. Not actually a valid DataBlock type (different magic). GFD_BLOCK_TYPE_END = 1, ///< Last block in program, terminates parsing loop in reader. Must be < all other valid block types. GFD_BLOCK_TYPE_PAD = 2, ///< Data to ignore. Used to align following blocks, program and texture data ones in particular GFD_BLOCK_TYPE_GX2_VSH_HEADER = 3, ///< Vertex shader header GFD_BLOCK_TYPE_GX2_VSH_PROGRAM = 5, ///< Vertex program. GFD_BLOCK_TYPE_GX2_PSH_HEADER = 6, ///< Pixel shader header GFD_BLOCK_TYPE_GX2_PSH_PROGRAM = 7, ///< Pixel shader program. GFD_BLOCK_TYPE_GX2_GSH_HEADER = 8, ///< Geometry shader header. GFD_BLOCK_TYPE_GX2_GSH_PROGRAM = 9, ///< Geometry shader program. GFD_BLOCK_TYPE_GX2_GSH_COPY_PROGRAM = 10, ///< Geometry copy shader program. GFD_BLOCK_TYPE_GX2_TEX_HEADER = 11, ///< Texture/image header GFD_BLOCK_TYPE_GX2_TEX_IMAGE = 12, ///< Texture/image data block. GFD_BLOCK_TYPE_GX2_TEX_MIP_IMAGE = 13, ///< Mipmap Texure/image data block. GFD_BLOCK_TYPE_GX2_CSH_HEADER = 14, ///< Compute shader header GFD_BLOCK_TYPE_GX2_CSH_PROGRAM = 15, ///< Compute shader program GFD_BLOCK_TYPE_USER = 16, ///< A user defined data block. Treated like a pad block by main parsers, users can do what they want GFD_BLOCK_TYPE_LAST ///< Count of valid block types. } GFDBlockType; /// \brief Endian Swap Mode. /// typedef enum _GFDEndianSwapMode { GFD_ENDIAN_SWAP_MODE_DEFAULT = 0, ///< Same as little GFD_ENDIAN_SWAP_MODE_LITTLE = 0, ///< Swap to little endian if cpu uses big endian GFD_ENDIAN_SWAP_MODE_BIG = 1, ///< Swap to big endian if cpu uses little endian GFD_ENDIAN_SWAP_MODE_8_IN_32 = 2, ///< Specifies extra 8_in_32 swap mode GFD_ENDIAN_SWAP_MODE_Last ///< Count of valid Endian swap modes } GFDEndianSwapMode; /// \brief Align Mode. /// typedef enum _GFDAlignMode { GFD_ALIGN_MODE_DISABLE = 0, ///< No align GFD_ALIGN_MODE_ENABLE = 1, ///< Add data specific alignment size padding block before data GFD_ALIGN_MODE_Last ///< Count of valid align modes } GFDAlignMode; /// \brief Element Size. /// typedef enum _GFDElementSize { GFD_ELEMENT_SIZE_8 = 1, GFD_ELEMENT_SIZE_16 = 2, GFD_ELEMENT_SIZE_24 = 3, GFD_ELEMENT_SIZE_32 = 4 } GFDElementSize; /// @} #ifdef __cplusplus } #endif // __cplusplus #endif // _CAFE_GFD_ENUM_H_