⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fgl.h

📁 6410BSP3
💻 H
📖 第 1 页 / 共 3 页
字号:
//// Copyright (c) Samsung Electronics. Co. LTD.  All rights reserved.///*++THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OFANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TOTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR APARTICULAR PURPOSE.*//** * @file    fgl.h * @brief    This is the header file for fgl library. * @version    1.5 */#if !defined(__FIMG_H__)#define __FIMG_H__#include "fglconfig.h"#if defined __cplusplusextern "C" {#endif/**************************************************************************** *  Typedefs ****************************************************************************/typedef unsigned int         FGL_BOOL;typedef unsigned int         FG_BOOL;/**************************************************************************** *  Defines ****************************************************************************/#define FGL_TRUE     (1==1)#define FGL_FALSE     (!(FGL_TRUE))#define FGL_NULL     ((void*)0)#define FGL_ZERO         0#define FGL_ONE          1#if 0#define NO_ERROR          0#define ERROR             -1#define NOT_SUPPORTED     -2    /* test not supported by this config */#endif/* Vertex/Pixel Shader */#define BUILD_SHADER_VERSION(major, minor)    (0xFFFF0000 | (((minor)&0xFF)<<8) | ((major) & 0xFF))#define VERTEX_SHADER_MAGIC                 (((('V')&0xFF)<<0)|((('S')&0xFF)<<8)|(((' ')&0xFF)<<16)|(((' ')&0xFF)<<24))#define PIXEL_SHADER_MAGIC                     (((('P')&0xFF)<<0)|((('S')&0xFF)<<8)|(((' ')&0xFF)<<16)|(((' ')&0xFF)<<24))#define SHADER_VERSION                         BUILD_SHADER_VERSION(3,0)#define SET_BIT(n)        (1<<n)#define FIMG_3DSE_V121                  0x01020100#define FIMG_3DSE_V150                  0x01050000#define FIMG_3DSE_V200                  0x02000000/**************************************************************************** *  Macros ****************************************************************************//** GLOBAL REGISTER PIPELINE STATE BIT POSITION */#define FGL_PIPESTATE_HOSTFIFO_BIT        (0)#define FGL_PIPESTATE_HI_BIT            (1)#define FGL_PIPESTATE_HI2VS_BIT            (2)#define FGL_PIPESTATE_VC_BIT            (3)#define FGL_PIPESTATE_VS_BIT            (4)#define FGL_PIPESTATE_PE_BIT            (8)#define FGL_PIPESTATE_TSE_BIT            (9)#define FGL_PIPESTATE_RA_BIT            (10)#define FGL_PIPESTATE_PS0_BIT            (12)#define FGL_PIPESTATE_PS1_BIT            (13)#define FGL_PIPESTATE_PF0_BIT            (16)#define FGL_PIPESTATE_PF1_BIT            (17)#define FGL_PIPESTATE_CCACHE0_BIT        (18)#define FGL_PIPESTATE_CCACHE1_BIT        (19)#define FGL_PIPESTATE_HOSTFIFO        (1)#define FGL_PIPESTATE_HI            (1 << FGL_PIPESTATE_HI_BIT)#define FGL_PIPESTATE_HI2VS            (1 << FGL_PIPESTATE_HI2VS_BIT)#define FGL_PIPESTATE_VC            (1 << FGL_PIPESTATE_VC_BIT)#define FGL_PIPESTATE_VS            (1 << FGL_PIPESTATE_VS_BIT)#define FGL_PIPESTATE_PE            (1 << FGL_PIPESTATE_PE_BIT)#define FGL_PIPESTATE_TSE            (1 << FGL_PIPESTATE_TSE_BIT)#define FGL_PIPESTATE_RA            (1 << FGL_PIPESTATE_RA_BIT)#define FGL_PIPESTATE_PS0            (1 << FGL_PIPESTATE_PS0_BIT)#define FGL_PIPESTATE_PS1            (1 << FGL_PIPESTATE_PS1_BIT)#define FGL_PIPESTATE_PF0            (1 << FGL_PIPESTATE_PF0_BIT)#define FGL_PIPESTATE_PF1            (1 << FGL_PIPESTATE_PF1_BIT)#define FGL_PIPESTATE_CCACHE0        (1 << FGL_PIPESTATE_CCACHE0_BIT)#define FGL_PIPESTATE_CCACHE1        (1 << FGL_PIPESTATE_CCACHE1_BIT)//FGL_PIPESTATE_X_TILL_Y = or of bits in [X,Y) including X, excluding Y#define FGL_PIPESTATE_HI_TILL_PE        (FGL_PIPESTATE_HOSTFIFO \                                        | FGL_PIPESTATE_HI      \                                        | FGL_PIPESTATE_HI2VS   \                                        | FGL_PIPESTATE_VC      \                                        | FGL_PIPESTATE_VS )#define FGL_PIPESTATE_HI_TILL_PS        (FGL_PIPESTATE_HOSTFIFO \                                        | FGL_PIPESTATE_HI      \                                        | FGL_PIPESTATE_HI2VS   \                                        | FGL_PIPESTATE_VC      \                                        | FGL_PIPESTATE_VS      \                                        | FGL_PIPESTATE_PE      \                                        | FGL_PIPESTATE_TSE     \                                        | FGL_PIPESTATE_RA  )                #ifndef _FIMG_PIPELINE_SINGLE    #define FGL_PIPESTATE_PS            (FGL_PIPESTATE_PS0 \                                        | FGL_PIPESTATE_PS1)    #define FGL_PIPESTATE_PF            (FGL_PIPESTATE_PF0 \                                        | FGL_PIPESTATE_PF1)    #define FGL_PIPESTATE_CCACHE        (FGL_PIPESTATE_CCACHE0 \                                        | FGL_PIPESTATE_CCACHE1)#else // _FIMG_PIPELINE_SINGLE    #define FGL_PIPESTATE_CCACHE        FGL_PIPESTATE_CCACHE0    #define FGL_PIPESTATE_PS            FGL_PIPESTATE_PS0    #define FGL_PIPESTATE_PF            FGL_PIPESTATE_PF0#endif // _FIMG_PIPELINE_SINGLE#define FGL_PIPESTATE_ALL                (FGL_PIPESTATE_HOSTFIFO \                                        | FGL_PIPESTATE_HI \                                        | FGL_PIPESTATE_HI2VS \                                        | FGL_PIPESTATE_VC \                                        | FGL_PIPESTATE_VS \                                        | FGL_PIPESTATE_PE \                                        | FGL_PIPESTATE_TSE \                                        | FGL_PIPESTATE_RA \                                        | FGL_PIPESTATE_PS \                                        | FGL_PIPESTATE_PF)// for Blend#define FGL_PIPESTATE_ALL_WITH_CCACHE    (FGL_PIPESTATE_HOSTFIFO \                                        | FGL_PIPESTATE_HI \                                        | FGL_PIPESTATE_HI2VS \                                        | FGL_PIPESTATE_VC \                                        | FGL_PIPESTATE_VS \                                        | FGL_PIPESTATE_PE \                                        | FGL_PIPESTATE_TSE \                                        | FGL_PIPESTATE_RA \                                        | FGL_PIPESTATE_PS \                                        | FGL_PIPESTATE_PF \                                        | FGL_PIPESTATE_CCACHE)/** GLOBAL REGISTER CACHE STATE BIT POSITION */#define FGL_CACHECTL_FLUSH_ZCACHE0    (1)#define FGL_CACHECTL_FLUSH_ZCACHE1    (1 << 1)#define FGL_CACHECTL_FLUSH_CCACHE0    (1 << 4)#define FGL_CACHECTL_FLUSH_CCACHE1    (1 << 5)#define FGL_CACHECTL_CLEAR_TCACHE0    (1 << 8)#define FGL_CACHECTL_CLEAR_TCACHE1    (1 << 9)#define FGL_CACHECTL_CLEAR_VTCACHE    (1 << 12)#ifndef _FIMG_PIPELINE_SINGLE    #define FGL_CACHECTL_FLUSH_ZCACHE    (FGL_CACHECTL_FLUSH_ZCACHE0 \                                        | FGL_CACHECTL_FLUSH_ZCACHE1)    #define FGL_CACHECTL_FLUSH_CCACHE    (FGL_CACHECTL_FLUSH_CCACHE0 \                                        | FGL_CACHECTL_FLUSH_CCACHE1)    #define FGL_CACHECTL_CLEAR_TCACHE    (FGL_CACHECTL_CLEAR_TCACHE0 \                                        | FGL_CACHECTL_CLEAR_TCACHE1)#else // _FIMG_PIPELINE_SINGLE    #define FGL_CACHECTL_FLUSH_ZCACHE    FGL_CACHECTL_FLUSH_ZCACHE0    #define FGL_CACHECTL_FLUSH_CCACHE    FGL_CACHECTL_FLUSH_CCACHE0//    #define FGL_CACHECTL_CLEAR_TCACHE    FGL_CACHECTL_CLEAR_TCACHE0//    Texture cache always 2 bit-checked    #define FGL_CACHECTL_CLEAR_TCACHE    (FGL_CACHECTL_CLEAR_TCACHE0 \                                        | FGL_CACHECTL_CLEAR_TCACHE1)#endif // _FIMG_PIPELINE_SINGLE#define FGL_CACHECTL_INIT_ALL        (FGL_CACHECTL_FLUSH_ZCACHE \                                    | FGL_CACHECTL_FLUSH_CCACHE \                                    | FGL_CACHECTL_CLEAR_TCACHE \                                    | FGL_CACHECTL_CLEAR_VTCACHE)/**************************************************************************** *  Enumerated types ****************************************************************************/typedef enum FGL_ErrorTag{    FGL_ERR_UNKNOWN = 0,    FGL_ERR_NO_ERROR,    FGL_ERR_INVALID_PARAMETER,    FGL_ERR_INVALID_PRIMITIVE,    FGL_ERR_INVALID_WIDTH,    FGL_ERR_INVALID_HEIGHT,    FGL_ERR_INVALID_SIZE,    FGL_ERR_INVALID_VALUE,    FGL_ERR_INVALID_SHADER_CODE,    FGL_ERR_STATUS_BUSY,    FGL_ERR_NO_SUPPORT} FGL_Error;typedef enum FGL_CacheClearFlagsTag{    FGL_CLEAR_DEPTH_CACHE   = 3,    FGL_CLEAR_COLOR_CACHE   = (3 << 4),    FGL_CLEAR_TEX_CACHE     = (3 << 8),    FGL_CLEAR_VTXTEX_CACHE  = (1 << 12)} FGL_CacheClearFlags;typedef enum FGL_ResetFlagsTag{    FGL_RESET_TEX_UNIT            = SET_BIT(0),    FGL_RESET_PERFRAG_UNIT        = SET_BIT(1),    FGL_RESET_PIXEL_SHADER        = SET_BIT(1),    FGL_RESET_RASTER_UNIT        = SET_BIT(2),    FGL_RESET_SETUP_ENGINE        = SET_BIT(3),    FGL_RESET_GEOM_ENGINE        = SET_BIT(4),    FGL_RESET_VERTEX_SHADER        = SET_BIT(5),    FGL_RESET_HOST_INTERFACE    = SET_BIT(7)} FGL_ResetFlags;#if TARGET_FIMG_VERSION == _FIMG3DSE_VER_2_0typedef enum FGL_ExeStateTag{    FGL_EXESTATE_IDLE    = 0,    FGL_EXESTATE_SFRAD   = (1),    FGL_EXESTATE_SFRAI   = (1 << 2),    FGL_EXESTATE_VBWR0   = (1 << 3),    FGL_EXESTATE_INDEX   = (1 << 6),    FGL_EXESTATE_INDEXAI = (1 << 7),    FGL_EXESTATE_INIT    = (1 << 24),    FGL_EXESTATE_LOAD    = (1 << 25),    FGL_EXESTATE_DECD    = (1 << 26),    FGL_EXESTATE_INTR    = (1 << 27)} FGL_ExeState;#endif// Host Interfacetypedef enum FGL_IndexDataTypeTag{    FGL_INDEX_DATA_UINT = 0x80,    FGL_INDEX_DATA_USHORT = 0x81,    FGL_INDEX_DATA_UBYTE = 0x83} FGL_IndexDataType;typedef enum FGL_AttribDataTypeTag{    FGL_ATTRIB_DATA_BYTE = 0,    FGL_ATTRIB_DATA_SHORT,    FGL_ATTRIB_DATA_INT,    FGL_ATTRIB_DATA_FIXED,    FGL_ATTRIB_DATA_UBYTE,    FGL_ATTRIB_DATA_USHORT,    FGL_ATTRIB_DATA_UINT,    FGL_ATTRIB_DATA_FLOAT,    FGL_ATTRIB_DATA_NBYTE,    FGL_ATTRIB_DATA_NSHORT,    FGL_ATTRIB_DATA_NINT,    FGL_ATTRIB_DATA_NFIXED,    FGL_ATTRIB_DATA_NUBYTE,    FGL_ATTRIB_DATA_NUSHORT,    FGL_ATTRIB_DATA_NUINT} FGL_AttribDataType;typedef enum FGL_AttribCompOrderTag{    FGL_ATTRIB_ORDER_1ST = 0,    FGL_ATTRIB_ORDER_2ND,    FGL_ATTRIB_ORDER_3RD,    FGL_ATTRIB_ORDER_4TH} FGL_AttribCompOrder;#if TARGET_FIMG_VERSION == _FIMG3DSE_VER_2_0typedef enum FGL_AddrModeTag{    FGL_ADDR_MODE_MEMORY_CACHEABLE = 0,    FGL_ADDR_MODE_VB,        FGL_ADDR_MODE_MEMORY_NON_CACHEABLE} FGL_AddrMode;typedef enum FGL_VBSizeModeTag{    FGL_NO_VB_8K_PREVC = 0,    FGL_2K_VB_6K_PREVC,    FGL_4K_VB_4K_PREVC,    FGL_6K_VB_2K_PREVC} FGL_VBSizeMode;#endif// Vertex Shader typedef enum FGL_AttribTableIdxTag{    FGL_INPUT_ATTRIB_IDX0,    FGL_INPUT_ATTRIB_IDX1,    FGL_INPUT_ATTRIB_IDX2,    FGL_OUTPUT_ATTRIB_IDX0,    FGL_OUTPUT_ATTRIB_IDX1,    FGL_OUTPUT_ATTRIB_IDX2} FGL_AttribTableIdx;// Primitive Enginetypedef enum FGL_PrimitiveTag{    FGL_PRIM_TRIANGLES,    FGL_PRIM_TRIANGLE_FAN,    FGL_PRIM_TRIANGLE_STRIP,    FGL_PRIM_LINES,    FGL_PRIM_LINE_LOOP,    FGL_PRIM_LINE_STRIP,    FGL_PRIM_POINTS,    FGL_PRIM_POINT_SPRITE} FGL_Primitive;typedef enum FGL_ShadingTag{    FGL_SHADING_FLAT,    FGL_SHADING_SMOOTH} FGL_Shading;// Raster Enginetypedef enum FGL_SampleTag{    FGL_SAMPLE_CENTER,    FGL_SAMPLE_LEFTTOP} FGL_Sample;typedef enum FGL_DepthOffsetParamTag {    FGL_DEPTH_OFFSET_FACTOR,    FGL_DEPTH_OFFSET_UNITS,    FGL_DEPTH_OFFSET_R} FGL_DepthOffsetParam;typedef enum FGL_FaceTag{    FGL_FACE_BACK,    FGL_FACE_FRONT,    FGL_FACE_RESERVED,    FGL_FACE_FRONT_AND_BACK = 3} FGL_Face;typedef enum FGL_LodCoeffTag{    FGL_LODCOEFF_DISABLE,    FGL_LODCOEFF_ENABLE_LOD,    FGL_LODCOEFF_ENABLE_DDX,    FGL_LODCOEFF_ENABLE_DDX_LOD,    FGL_LODCOEFF_ENABLE_DDY,    FGL_LODCOEFF_ENABLE_DDY_LOD,    FGL_LODCOEFF_ENABLE_DDY_DDX,    FGL_LODCOEFF_ENABLE_ALL} FGL_LodCoeff;// Texture Unitstypedef enum FGL_TexTypeTag{    FGL_TEX_2D = 1,    FGL_TEX_CUBE,    FGL_TEX_3D} FGL_TexType;typedef enum FGL_TexelFormatTag{    FGL_TEXEL_ARGB1555,    FGL_TEXEL_RGB565,    FGL_TEXEL_ARGB4444,    FGL_TEXEL_DEPTH24,    FGL_TEXEL_IA88,    FGL_TEXEL_I8,    FGL_TEXEL_ARGB8888,    FGL_TEXEL_1BPP,    FGL_TEXEL_2BPP,    FGL_TEXEL_4BPP,    FGL_TEXEL_8BPP,    FGL_TEXEL_S3TC,    FGL_TEXEL_Y1VY0U,    FGL_TEXEL_VY1UY0,    FGL_TEXEL_Y1UY0V,    FGL_TEXEL_UY1VY0} FGL_TexelFormat;typedef enum FGL_PaletteFormatTag{    FGL_PALETTE_ARGB1555,    FGL_PALETTE_RGB565,    FGL_PALETTE_ARGB4444,    FGL_PALETTE_ARGB8888} FGL_PaletteFormat;typedef enum FGL_TexWrapModeTag{    FGL_TEX_WRAP_REPEAT,    FGL_TEX_WRAP_FLIP,    FGL_TEX_WRAP_CLAMP} FGL_TexWrapMode;typedef enum FGL_CKeySelTag{    FGL_CKEY_DISABLE,    FGL_CKEY_SEL1,    FGL_CKEY_DISABLE2,    FGL_CKEY_SEL2 = 3} FGL_CKeySel;typedef enum FGL_MipMapFilterTag{    FGL_FILTER_DISABLE,    FGL_FILTER_NEAREST,    FGL_FILTER_LINEAR} FGL_MipMapFilter;typedef enum FGL_TexSizeTag {    FGL_TEX_SIZE_1P,    FGL_TEX_SIZE_2P,    FGL_TEX_SIZE_4P,    FGL_TEX_SIZE_8P,    FGL_TEX_SIZE_16P,    FGL_TEX_SIZE_32P,    FGL_TEX_SIZE_64P,    FGL_TEX_SIZE_128P,    FGL_TEX_SIZE_256P,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -