/*
 |            file: tex.c
 |        language: 1	(ANSI C)
 |     produced by: GNU C 4.2.1
 |    compiler dir: /OST/GraphicsGFX/SDP3430/Source/SGX12.19/GFX_Linux_DDK/src/eurasia/eurasiacon/opengles2
 | program counter: <0x20adc;0x24930>
 */
typedef unsigned int size_t

typedef long long int __quad_t

typedef long int __off_t

typedef __quad_t __off64_t

struct _IO_FILE {
	int _flags // @0
	char* _IO_read_ptr // @4
	char* _IO_read_end // @8
	char* _IO_read_base // @c
	char* _IO_write_base // @10
	char* _IO_write_ptr // @14
	char* _IO_write_end // @18
	char* _IO_buf_base // @1c
	char* _IO_buf_end // @20
	char* _IO_save_base // @24
	char* _IO_backup_base // @28
	char* _IO_save_end // @2c
	struct _IO_marker* _markers // @30
	struct _IO_FILE* _chain // @34
	int _fileno // @38
	int _flags2 // @3c
	__off_t _old_offset // @40
	short unsigned int _cur_column // @44
	signed char _vtable_offset // @46
	char[1] _shortbuf // @47
	_IO_lock_t* _lock // @48
	__off64_t _offset // @50
	void* __pad1 // @58
	void* __pad2 // @5c
	void* __pad3 // @60
	void* __pad4 // @64
	size_t __pad5 // @68
	int _mode // @6c
	char[40] _unused2 // @70
}

typedef void _IO_lock_t

struct _IO_marker {
	struct _IO_marker* _next // @0
	struct _IO_FILE* _sbuf // @4
	int _pos // @8
}

typedef unsigned char IMG_UINT8

typedef char IMG_CHAR

typedef short unsigned int IMG_UINT16

typedef long unsigned int IMG_UINT32

typedef long unsigned int* IMG_PUINT32

typedef long int IMG_INT32

typedef float IMG_FLOAT

enum tag_img_bool {
	IMG_FALSE = 0; //0x0
	IMG_TRUE = 1; //0x1
	IMG_FORCE_ALIGN = 2147483647; //0x7fffffff
}

typedef enum tag_img_bool IMG_BOOL

typedef void IMG_VOID

typedef void* IMG_PVOID

typedef IMG_PVOID IMG_HANDLE

typedef struct {
	IMG_UINT32 uiAddr // @0
} IMG_CPU_PHYADDR

typedef struct {
	IMG_UINT32 uiAddr // @0
} IMG_DEV_VIRTADDR

enum _PVRSRV_ERROR_ {
	PVRSRV_OK = 0; //0x0
	PVRSRV_ERROR_GENERIC = 1; //0x1
	PVRSRV_ERROR_OUT_OF_MEMORY = 2; //0x2
	PVRSRV_ERROR_TOO_MANY_BUFFERS = 3; //0x3
	PVRSRV_ERROR_SYMBOL_NOT_FOUND = 4; //0x4
	PVRSRV_ERROR_OUT_OF_HSPACE = 5; //0x5
	PVRSRV_ERROR_INVALID_PARAMS = 6; //0x6
	PVRSRV_ERROR_TILE_MAP_FAILED = 7; //0x7
	PVRSRV_ERROR_INIT_FAILURE = 8; //0x8
	PVRSRV_ERROR_CANT_REGISTER_CALLBACK = 9; //0x9
	PVRSRV_ERROR_INVALID_DEVICE = 10; //0xa
	PVRSRV_ERROR_NOT_OWNER = 11; //0xb
	PVRSRV_ERROR_BAD_MAPPING = 12; //0xc
	PVRSRV_ERROR_TIMEOUT = 13; //0xd
	PVRSRV_ERROR_NO_PRIMARY = 14; //0xe
	PVRSRV_ERROR_FLIP_CHAIN_EXISTS = 15; //0xf
	PVRSRV_ERROR_CANNOT_ACQUIRE_SYSDATA = 16; //0x10
	PVRSRV_ERROR_SCENE_INVALID = 17; //0x11
	PVRSRV_ERROR_STREAM_ERROR = 18; //0x12
	PVRSRV_ERROR_INVALID_INTERRUPT = 19; //0x13
	PVRSRV_ERROR_FAILED_DEPENDENCIES = 20; //0x14
	PVRSRV_ERROR_CMD_NOT_PROCESSED = 21; //0x15
	PVRSRV_ERROR_CMD_TOO_BIG = 22; //0x16
	PVRSRV_ERROR_DEVICE_REGISTER_FAILED = 23; //0x17
	PVRSRV_ERROR_FIFO_SPACE = 24; //0x18
	PVRSRV_ERROR_TA_RECOVERY = 25; //0x19
	PVRSRV_ERROR_INDOSORLOWPOWER = 26; //0x1a
	PVRSRV_ERROR_TOOMANYBUFFERS = 27; //0x1b
	PVRSRV_ERROR_NOT_SUPPORTED = 28; //0x1c
	PVRSRV_ERROR_PROCESSING_BLOCKED = 29; //0x1d
	PVRSRV_ERROR_CANNOT_FLUSH_QUEUE = 31; //0x1f
	PVRSRV_ERROR_CANNOT_GET_QUEUE_SPACE = 32; //0x20
	PVRSRV_ERROR_CANNOT_GET_RENDERDETAILS = 33; //0x21
	PVRSRV_ERROR_RETRY = 34; //0x22
	PVRSRV_ERROR_FORCE_I32 = 2147483647; //0x7fffffff
}

typedef enum _PVRSRV_ERROR_ PVRSRV_ERROR

enum _PVRSRV_PIXEL_FORMAT_ {
	PVRSRV_PIXEL_FORMAT_UNKNOWN = 0; //0x0
	PVRSRV_PIXEL_FORMAT_RGB565 = 1; //0x1
	PVRSRV_PIXEL_FORMAT_RGB555 = 2; //0x2
	PVRSRV_PIXEL_FORMAT_RGB888 = 3; //0x3
	PVRSRV_PIXEL_FORMAT_BGR888 = 4; //0x4
	PVRSRV_PIXEL_FORMAT_YUV420 = 5; //0x5
	PVRSRV_PIXEL_FORMAT_YUV444 = 6; //0x6
	PVRSRV_PIXEL_FORMAT_VUY444 = 7; //0x7
	PVRSRV_PIXEL_FORMAT_GREY_SCALE = 8; //0x8
	PVRSRV_PIXEL_FORMAT_YUYV = 9; //0x9
	PVRSRV_PIXEL_FORMAT_YVYU = 10; //0xa
	PVRSRV_PIXEL_FORMAT_UYVY = 11; //0xb
	PVRSRV_PIXEL_FORMAT_VYUY = 12; //0xc
	PVRSRV_PIXEL_FORMAT_PAL12 = 13; //0xd
	PVRSRV_PIXEL_FORMAT_PAL8 = 14; //0xe
	PVRSRV_PIXEL_FORMAT_PAL4 = 15; //0xf
	PVRSRV_PIXEL_FORMAT_PAL2 = 16; //0x10
	PVRSRV_PIXEL_FORMAT_PAL1 = 17; //0x11
	PVRSRV_PIXEL_FORMAT_ARGB1555 = 18; //0x12
	PVRSRV_PIXEL_FORMAT_ARGB4444 = 19; //0x13
	PVRSRV_PIXEL_FORMAT_ARGB8888 = 20; //0x14
	PVRSRV_PIXEL_FORMAT_ABGR8888 = 21; //0x15
	PVRSRV_PIXEL_FORMAT_YV12 = 22; //0x16
	PVRSRV_PIXEL_FORMAT_I420 = 23; //0x17
	PVRSRV_PIXEL_FORMAT_DXT1 = 24; //0x18
	PVRSRV_PIXEL_FORMAT_IMC2 = 25; //0x19
	PVRSRV_PIXEL_FORMAT_G16R16 = 26; //0x1a
	PVRSRV_PIXEL_FORMAT_G16R16F = 27; //0x1b
	PVRSRV_PIXEL_FORMAT_ARGB8332 = 28; //0x1c
	PVRSRV_PIXEL_FORMAT_A2RGB10 = 29; //0x1d
	PVRSRV_PIXEL_FORMAT_A2BGR10 = 30; //0x1e
	PVRSRV_PIXEL_FORMAT_ABGR16 = 31; //0x1f
	PVRSRV_PIXEL_FORMAT_ABGR16F = 32; //0x20
	PVRSRV_PIXEL_FORMAT_ABGR32F = 33; //0x21
	PVRSRV_PIXEL_FORMAT_R32F = 34; //0x22
	PVRSRV_PIXEL_FORMAT_A8 = 35; //0x23
	PVRSRV_PIXEL_FORMAT_L8 = 36; //0x24
	PVRSRV_PIXEL_FORMAT_A8L8 = 37; //0x25
	PVRSRV_PIXEL_FORMAT_L16 = 38; //0x26
	PVRSRV_PIXEL_FORMAT_R16F = 39; //0x27
	PVRSRV_PIXEL_FORMAT_L6V5U5 = 40; //0x28
	PVRSRV_PIXEL_FORMAT_V8U8 = 41; //0x29
	PVRSRV_PIXEL_FORMAT_V16U16 = 42; //0x2a
	PVRSRV_PIXEL_FORMAT_QWVU8888 = 43; //0x2b
	PVRSRV_PIXEL_FORMAT_XLVU8888 = 44; //0x2c
	PVRSRV_PIXEL_FORMAT_QWVU16 = 45; //0x2d
	PVRSRV_PIXEL_FORMAT_D16 = 46; //0x2e
	PVRSRV_PIXEL_FORMAT_D24S8 = 47; //0x2f
	PVRSRV_PIXEL_FORMAT_D24X8 = 48; //0x30
	PVRSRV_PIXEL_FORMAT_D32F = 49; //0x31
	PVRSRV_PIXEL_FORMAT_R8G8_B8G8 = 50; //0x32
	PVRSRV_PIXEL_FORMAT_G8R8_G8B8 = 51; //0x33
	PVRSRV_PIXEL_FORMAT_YUY2 = 52; //0x34
	PVRSRV_PIXEL_FORMAT_DXT23 = 53; //0x35
	PVRSRV_PIXEL_FORMAT_DXT45 = 54; //0x36
	PVRSRV_PIXEL_FORMAT_G32R32F = 55; //0x37
	PVRSRV_PIXEL_FORMAT_NV11 = 56; //0x38
	PVRSRV_PIXEL_FORMAT_NV12 = 57; //0x39
	PVRSRV_PIXEL_FORMAT_FORCE_I32 = 2147483647; //0x7fffffff
}

typedef enum _PVRSRV_PIXEL_FORMAT_ PVRSRV_PIXEL_FORMAT

enum _PVRSRV_ALPHA_FORMAT_ {
	PVRSRV_ALPHA_FORMAT_UNKNOWN = 0; //0x0
	PVRSRV_ALPHA_FORMAT_PRE = 1; //0x1
	PVRSRV_ALPHA_FORMAT_NONPRE = 2; //0x2
	PVRSRV_ALPHA_FORMAT_MASK = 15; //0xf
}

typedef enum _PVRSRV_ALPHA_FORMAT_ PVRSRV_ALPHA_FORMAT

enum _PVRSRV_COLOURSPACE_FORMAT_ {
	PVRSRV_COLOURSPACE_FORMAT_UNKNOWN = 0; //0x0
	PVRSRV_COLOURSPACE_FORMAT_LINEAR = 65536; //0x10000
	PVRSRV_COLOURSPACE_FORMAT_NONLINEAR = 131072; //0x20000
	PVRSRV_COLOURSPACE_FORMAT_MASK = 983040; //0xf0000
}

typedef enum _PVRSRV_COLOURSPACE_FORMAT_ PVRSRV_COLOURSPACE_FORMAT

struct _PVRSRV_SYNC_DATA_ {
	IMG_UINT32 ui32WriteOpsPending // @0
	volatile IMG_UINT32 ui32WriteOpsComplete // @4
	IMG_UINT32 ui32ReadOpsPending // @8
	volatile IMG_UINT32 ui32ReadOpsComplete // @c
	IMG_UINT32 ui32LastOpDumpVal // @10
	IMG_UINT32 ui32LastReadOpDumpVal // @14
}

typedef struct _PVRSRV_SYNC_DATA_ PVRSRV_SYNC_DATA

struct _PVRSRV_CLIENT_SYNC_INFO_ {
	PVRSRV_SYNC_DATA* psSyncData // @0
	IMG_DEV_VIRTADDR sWriteOpsCompleteDevVAddr // @4
	IMG_DEV_VIRTADDR sReadOpsCompleteDevVAddr // @8
	IMG_HANDLE hMappingInfo // @c
	IMG_HANDLE hKernelSyncInfo // @10
}

typedef struct _PVRSRV_CLIENT_SYNC_INFO_ PVRSRV_CLIENT_SYNC_INFO

struct PVRSRV_RESOURCE_TAG {
	volatile IMG_UINT32 ui32Lock // @0
	IMG_UINT32 ui32ID // @4
}

typedef struct PVRSRV_RESOURCE_TAG PVRSRV_RESOURCE

typedef PVRSRV_RESOURCE PVRSRV_RES_HANDLE

struct _PVRSRV_CONNECTION_ {
	IMG_HANDLE hServices // @0
	IMG_UINT32 ui32ProcessID // @4
}

typedef struct _PVRSRV_CONNECTION_ PVRSRV_CONNECTION

struct _PVRSRV_DEV_DATA_ {
	PVRSRV_CONNECTION sConnection // @0
	IMG_HANDLE hDevCookie // @8
}

typedef struct _PVRSRV_DEV_DATA_ PVRSRV_DEV_DATA

struct _PVRSRV_HWREG_ {
	IMG_UINT32 ui32RegAddr // @0
	IMG_UINT32 ui32RegVal // @4
}

typedef struct _PVRSRV_HWREG_ PVRSRV_HWREG

struct _PVRSRV_CLIENT_MEM_INFO_ {
	IMG_PVOID pvLinAddr // @0
	IMG_PVOID pvLinAddrKM // @4
	IMG_DEV_VIRTADDR sDevVAddr // @8
	IMG_CPU_PHYADDR sCpuPAddr // @c
	IMG_UINT32 ui32Flags // @10
	IMG_UINT32 ui32ClientFlags // @14
	IMG_UINT32 ui32AllocSize // @18
	struct _PVRSRV_CLIENT_SYNC_INFO_* psClientSyncInfo // @1c
	IMG_HANDLE hMappingInfo // @20
	IMG_HANDLE hKernelMemInfo // @24
	IMG_HANDLE hResItem // @28
	struct _PVRSRV_CLIENT_MEM_INFO_* psNext // @2c
}

typedef struct _PVRSRV_CLIENT_MEM_INFO_ PVRSRV_CLIENT_MEM_INFO

struct _PVRSRV_EVENTOBJECT_ {
	IMG_CHAR[50] szName // @0
	IMG_HANDLE hOSEventKM // @34
}

typedef struct _PVRSRV_EVENTOBJECT_ PVRSRV_EVENTOBJECT

struct _PVRSRV_MISC_INFO_ {
	IMG_UINT32 ui32StateRequest // @0
	IMG_UINT32 ui32StatePresent // @4
	IMG_VOID* pvSOCTimerRegisterKM // @8
	IMG_VOID* pvSOCTimerRegisterUM // @c
	IMG_VOID* pvSOCClockGateRegs // @10
	IMG_UINT32 ui32SOCClockGateRegsSize // @14
	IMG_CHAR* pszMemoryStr // @18
	IMG_UINT32 ui32MemoryStrLen // @1c
	PVRSRV_EVENTOBJECT sGlobalEventObject // @20
	IMG_HANDLE hOSGlobalEvent // @58
}

typedef struct _PVRSRV_MISC_INFO_ PVRSRV_MISC_INFO

typedef struct GLES2Context_TAG GLES2Context

struct GLES2Context_TAG {
	IMG_UINT32 ui32Enables // @0
	IMG_UINT32 ui32DirtyState // @4
	IMG_UINT32 ui32EmitMask // @8
	GLES2state sState // @c
	PVRSRV_DEV_DATA* ps3DDevData // @210
	SrvSysContext* psSysContext // @214
	SGX_KICKTA sKickTA // @218
	IMG_BOOL bSPMOutOfMemEvent // @37c
	GLES2ProgramMachine sProgram // @380
	GLES2AttribArrayMachine sAttribArray // @454
	GLES2BufferObjectMachine sBufferObject // @604
	GLES2FrameBufferObjectMachine sFrameBuffer // @60c
	GLES2TextureMachine sTexture // @6cc
	GLES2PrimitiveMachine sPrim // @758
	EGLcontextMode* psMode // @171c
	EGLDrawableParams* psDrawParams // @1720
	EGLDrawableParams* psReadParams // @1724
	EGLRenderSurface* psRenderSurface // @1728
	IMG_BOOL bFullScreenViewport // @172c
	IMG_BOOL bFullScreenScissor // @1730
	IMG_BOOL bDrawMaskInvalid // @1734
	IMG_CHAR* pszExtensions // @1738
	IMG_BOOL bHasBeenCurrent // @173c
	IMG_UINT32 ui32NumEGLImageTextureTargetsBound // @1740
	IMG_INT32 i32Error // @1744
	IMG_UINT16* pui16IndexData // @1748
	IMG_VOID* pvVertexData // @174c
	IMG_UINT32 ui32VertexSize // @1750
	IMG_UINT32 ui32VertexRCSize // @1754
	CircularBuffer*[7] apsBuffers // @1758
	IMG_UINT32 ui32FrameNum // @1774
	IMG_BOOL bOverflowRender // @1778
	GLESAppHints sAppHints // @177c
	IMG_UINT32 ui32ShaderCount // @17b0
	GLES2ContextSharedState* psSharedState // @17b4
}

typedef struct GLES2ProgramRec GLES2Program

struct GLES2ProgramRec {
	GLES2NamedItem sNamedItem // @0
	IMG_UINT32 ui32Type // @c
	GLES2Shader* psVertexShader // @10
	GLES2Shader* psFragmentShader // @14
	IMG_BOOL bDeleting // @18
	IMG_BOOL bAttemptedLink // @1c
	IMG_BOOL bSuccessfulLink // @20
	IMG_BOOL bSuccessfulValidate // @24
	IMG_CHAR* pszInfoLog // @28
	IMG_UINT32 ui32NumActiveUniforms // @2c
	IMG_UINT32 ui32LengthOfLongestUniformName // @30
	GLES2Uniform* psActiveUniforms // @34
	IMG_UINT32 ui32NumActiveUserUniforms // @38
	GLES2Uniform** ppsActiveUserUniforms // @3c
	GLES2BuiltInUniform* psBuiltInUniforms // @40
	IMG_UINT32 ui32NumBuiltInUniforms // @44
	GLES2AttribUserBinding* psUserBinding // @48
	GLES2AttribUserBinding* psLastUserBinding // @4c
	IMG_UINT32 ui32NumActiveAttribs // @50
	IMG_UINT32 ui32LengthOfLongestAttribName // @54
	GLES2Attribute* psActiveAttributes // @58
	IMG_UINT32 ui32AttribCompileMask // @5c
	IMG_UINT32[8] aui32InputRegMappings // @60
	IMG_UINT32 ui32NumActiveVaryings // @80
	GLES2Varying* psActiveVaryings // @84
	IMG_UINT32[8] aui32IteratorPosition // @88
	GLES2ProgramShader sVertex // @a8
	GLES2ProgramShader sFragment // @148
	IMG_UINT32 ui32OutputSelects // @1e8
	IMG_UINT32 ui32TexCoordSelects // @1ec
	IMG_UINT32 ui32TexCoordPrecision // @1f0
}

typedef struct GLES2USEShaderVariant_TAG GLES2USEShaderVariant

struct GLES2USEShaderVariant_TAG {
	struct GLES2USEShaderVariant_TAG* psNext // @0
	GLES2ProgramShader* psProgramShader // @4
	FRMFrameResource sResource // @8
	IMG_DEV_VIRTADDR[2] sStartAddress // @14
	IMG_UINT32 ui32PhaseCount // @1c
	UCH_UseCodeBlock* psCodeBlock // @20
	IMG_UINT32 ui32MaxTempRegs // @24
	IMG_UINT32 ui32USEPrimAttribCount // @28
		union {
			struct {
		IMG_UINT32 ui32ColorMask // @0
		IMG_UINT32 ui32BlendEquation // @4
		IMG_UINT32 ui32BlendFactor // @8
		IMG_UINT32 ui32AlphaTestFlags // @c
		const GLES2TextureFormat*[8] apsTexFormat // @10
		IMG_UINT32 ui32ImageUnitEnables // @30
		GLES2PDSInfo sPDSInfo // @34
		IMG_BOOL bHasSetupDMSInfo // @140
	} sFragment
			struct {
		IMG_UINT32[8] aui32StreamTypeSize // @0
		IMG_UINT32 ui32NumItemsPerVertex // @20
		const GLES2TextureFormat*[8] apsTexFormat // @24
		IMG_UINT32 ui32ImageUnitEnables // @44
	} sVertex
			struct {
		IMG_UINT32 ui32SideBandWord // @0
	} sPixelEvent
			struct {
		IMG_UINT32 ui32NumStateWords // @0
	} sStateCopy
	} u // @2c
	USP_HW_SHADER* psPatchedShader // @170
	GLES2USESecondaryUploadTask* psSecondaryUploadTask // @174
	GLES2PDSCodeVariant* psPDSVariant // @178
	IMG_UINT32 ui32NumPDSVariants // @17c
}

typedef struct GLES2PDSCodeVariant_TAG GLES2PDSCodeVariant

struct GLES2PDSCodeVariant_TAG {
	UCH_UseCodeBlock* psCodeBlock // @0
	IMG_UINT32 ui32DataSize // @4
	PDS_TEXTURE_IMAGE_UNIT[8] asTextureImageChunks // @8
	IMG_UINT32[8] aui32ChunkCount // @68
	IMG_UINT32 ui32NonDependentImageUnits // @88
	struct GLES2PDSCodeVariant_TAG* psNext // @8c
}

typedef struct GLES2ProgramShaderRec GLES2ProgramShader

struct GLES2ProgramShaderRec {
	IMG_BOOL bValid // @0
	GLSLProgramType eProgramType // @4
	GLES2SharedShaderState* psSharedState // @8
	GLSLBindingSymbol*[7] psActiveSpecials // @c
	GLES2TextureSampler[8] asTextureSamplers // @28
	IMG_UINT32 ui32SamplersActive // @68
	GLES2UniformCopyRange sUniformCopyRange // @6c
	IMG_UINT32 ui32USEMode // @84
	IMG_UINT32 ui32USESecAttribDataSizeInDwords // @88
	IMG_DEV_VIRTADDR uUSEConstsDataBaseAddress // @8c
	IMG_UINT32 ui32USEConstsDataSizeinDWords // @90
	PVRSRV_CLIENT_MEM_INFO* psScratchMemInfo // @94
	PVRSRV_CLIENT_MEM_INFO* psIndexableTempsMemInfo // @98
	struct GLES2USEShaderVariant_TAG* psVariant // @9c
}

struct GLES2coordRec {
	IMG_FLOAT fX // @0
	IMG_FLOAT fY // @4
	IMG_FLOAT fZ // @8
	IMG_FLOAT fW // @c
}

typedef struct GLES2coordRec GLES2coord

struct GLES2colorRec {
	IMG_FLOAT fRed // @0
	IMG_FLOAT fGreen // @4
	IMG_FLOAT fBlue // @8
	IMG_FLOAT fAlpha // @c
}

typedef struct GLES2colorRec GLES2color

struct GLESpixelSpanInfoRec {
	IMG_INT32 i32ReadX // @0
	IMG_INT32 i32ReadY // @4
	IMG_UINT32 ui32Width // @8
	IMG_UINT32 ui32Height // @c
	IMG_UINT32 ui32DstSkipPixels // @10
	IMG_UINT32 ui32DstSkipLines // @14
	IMG_INT32 i32SrcRowIncrement // @18
	IMG_INT32 i32SrcGroupIncrement // @1c
	IMG_INT32 i32DstRowIncrement // @20
	IMG_INT32 i32DstGroupIncrement // @24
	IMG_VOID* pvInData // @28
	IMG_VOID* pvOutData // @2c
}

typedef struct GLESpixelSpanInfoRec GLES2PixelSpanInfo

typedef unsigned int GLenum

typedef int GLint

typedef int GLsizei

typedef unsigned int GLuint

typedef float GLfloat

struct CircularBuffer_TAG {
	PVRSRV_CLIENT_MEM_INFO* psMemInfo // @0
	IMG_UINT32* pui32BufferBase // @4
	IMG_UINT32 ui32BufferLimitInBytes // @8
	IMG_DEV_VIRTADDR uDevVirtBase // @c
	volatile IMG_UINT32* pui32ReadOffset // @10
	IMG_UINT32 ui32ReadOffsetCopy // @14
	IMG_UINT32 ui32CurrentWriteOffsetInBytes // @18
	IMG_UINT32 ui32CommittedPrimOffsetInBytes // @1c
	IMG_UINT32 ui32CommittedHWOffsetInBytes // @20
	IMG_UINT32 ui32SingleKickLimitInBytes // @24
	IMG_DEV_VIRTADDR uTACtrlKickDevAddr // @28
	IMG_BOOL bLocked // @2c
	IMG_UINT32 ui32LockCount // @30
	PVRSRV_DEV_DATA* psDevData // @34
	IMG_HANDLE hOSEvent // @38
}

typedef struct CircularBuffer_TAG CircularBuffer

typedef void* EGLClientBuffer

enum undefined {
	SGX_CORE_ID_INVALID = 0; //0x0
	SGX_CORE_ID_520 = 1; //0x1
	SGX_CORE_ID_530 = 2; //0x2
	SGX_CORE_ID_535 = 3; //0x3
	SGX_CORE_ID_540 = 4; //0x4
	SGX_CORE_ID_545 = 5; //0x5
}

typedef enum undefined SGX_CORE_ID_TYPE

struct _SGX_CORE_INFO {
	SGX_CORE_ID_TYPE eID // @0
	IMG_UINT32 uiRev // @4
}

typedef struct _SGX_CORE_INFO SGX_CORE_INFO

struct _PVRSRV_SGX_CLIENT_INFO_ {
	IMG_UINT32 ui32ProcessID // @0
	IMG_VOID* pvProcess // @4
	PVRSRV_MISC_INFO sMiscInfo // @8
	IMG_UINT32 ui32EVMConfig // @64
	IMG_UINT32 ui32ClientKickFlags // @68
	IMG_UINT32 ui32NumUSETemporaryRegisters // @6c
	IMG_UINT32 ui32NumUSEAttributeRegisters // @70
	IMG_DEV_VIRTADDR uPDSExecBase // @74
	IMG_DEV_VIRTADDR uUSEExecBase // @78
}

typedef struct _PVRSRV_SGX_CLIENT_INFO_ PVRSRV_SGX_CLIENT_INFO

struct _SGX_KICKTA_COMMON_ {
	IMG_UINT32 ui32Frame // @0
	IMG_UINT32 ui32KickFlags // @4
	IMG_BOOL bCheckZLSControl // @8
	IMG_UINT32 ui32StoreEnable // @c
	IMG_UINT32 ui32LastTLQOp // @10
	IMG_HANDLE hRenderContext // @14
	IMG_HANDLE hRTDataSet // @18
	IMG_DEV_VIRTADDR sVisTestResultMem // @1c
	IMG_UINT32 ui32VisTestFlags // @20
	IMG_UINT32 ui32VisBreakpointCount // @24
	IMG_DEV_VIRTADDR sTAStateShadowDevAddr // @28
	IMG_UINT32 ui32TAStateShadowSizeInDWORDs // @2c
	IMG_UINT32 ui32ISPBGObjDepth // @30
	IMG_UINT32 ui32ISPBGObj // @34
	IMG_UINT32 ui32ISPIPFMisc // @38
	IMG_UINT32 ui32ISPPerpendicular // @3c
	IMG_UINT32 ui32ISPCullValue // @40
	IMG_UINT32 ui323DAAMode // @44
	IMG_UINT32 ui32ISPZBase // @48
	IMG_UINT32 ui32ISPStencilBase // @4c
	IMG_UINT32 ui32ZLSCtl // @50
	IMG_UINT32 ui32ISPValidId // @54
	IMG_UINT32 ui32ISPDBias // @58
	IMG_UINT32 ui32ISPSceneBGObj // @5c
	IMG_UINT32 ui32EDMPixelPDSAddr // @60
	IMG_UINT32 ui32EDMPixelPDSDataSize // @64
	IMG_UINT32 ui32EDMPixelPDSInfo // @68
	IMG_UINT32 ui32PixelBE // @6c
	IMG_UINT32 ui32Filter0Left // @70
	IMG_UINT32 ui32Filter0Right // @74
	IMG_UINT32 ui32Filter0Extra // @78
	IMG_UINT32 ui32Filter1Left // @7c
	IMG_UINT32 ui32Filter1Right // @80
	IMG_UINT32 ui32Filter1Extra // @84
	IMG_UINT32 ui32Filter2Left // @88
	IMG_UINT32 ui32Filter2Right // @8c
	IMG_UINT32 ui32Filter2Extra // @90
	IMG_UINT32 ui32FilterTable // @94
	IMG_UINT32 ui32USEStoreRange // @98
	IMG_UINT32 ui32USELoadRedirect // @9c
	IMG_DEV_VIRTADDR sTABufferCtlStreamBase // @a0
	IMG_DEV_VIRTADDR sTABufferCtlStreamTerminate // @a4
	IMG_UINT32 ui32MTECtrl // @a8
	IMG_UINT32[3] aui32SpecObject // @ac
	IMG_UINT32 ui32NumTAStatusVals // @b8
	IMG_UINT32 ui32Num3DStatusVals // @bc
	IMG_UINT32 ui32NumSrcSyncs // @c0
}

typedef struct _SGX_KICKTA_COMMON_ SGX_KICKTA_COMMON

struct _SGX_KICKTA_ {
	SGX_KICKTA_COMMON sKickTACommon // @0
	PVRSRV_CLIENT_SYNC_INFO* psRenderSurfSyncInfo // @c4
	PVRSRV_CLIENT_SYNC_INFO*[4] apsSrcSurfSyncInfo // @c8
	PVRSRV_CLIENT_SYNC_INFO*[32] apsTAStatusInfo // @d8
	PVRSRV_CLIENT_SYNC_INFO*[2] aps3DStatusInfo // @158
	IMG_HANDLE hTQContext // @160
}

typedef struct _SGX_KICKTA_ SGX_KICKTA

struct SrvSysContext_TAG {
	PVRSRV_CONNECTION sConnection // @0
	PVRSRV_DEV_DATA s3D // @8
	PVRSRV_SGX_CLIENT_INFO sHWInfo // @14
	IMG_HANDLE hIMGEGLAppHints // @90
	IMG_HANDLE hDevMemContext // @94
	IMG_HANDLE hUSEFragmentHeap // @98
	IMG_HANDLE hUSEVertexHeap // @9c
	IMG_HANDLE hPDSFragmentHeap // @a0
	IMG_HANDLE hPDSVertexHeap // @a4
	IMG_HANDLE hGeneralHeap // @a8
	IMG_DEV_VIRTADDR uUSEFragmentHeapBase // @ac
	IMG_DEV_VIRTADDR uUSEVertexHeapBase // @b0
	IMG_HANDLE hRenderContext // @b4
	PVRSRV_CLIENT_MEM_INFO* psVisTestResults // @b8
	IMG_HANDLE hTransferContext // @bc
}

typedef struct SrvSysContext_TAG SrvSysContext

struct _PDS_VERTEX_SHADER_PROGRAM_INFO_ {
	IMG_UINT32[3] aui32USETaskControlOffsets // @0
	IMG_UINT32 ui32NumStreams // @c
	IMG_UINT32[16] aui32NumElements // @10
	IMG_UINT32[16] aui32AddressOffsets // @50
	IMG_UINT32[16] aui32ElementOffsets // @450
	IMG_UINT32[16] aui32StreamAddresses // @850
	IMG_UINT32[3] aui32USETaskControl // @890
	IMG_BOOL bPatchTaskControl // @89c
}

typedef struct _PDS_VERTEX_SHADER_PROGRAM_INFO_ PDS_VERTEX_SHADER_PROGRAM_INFO

struct _PDS_TEXTURE_IMAGE_UNIT_ {
	IMG_UINT32 ui32TAGControlWord0 // @0
	IMG_UINT32 ui32TAGControlWord1 // @4
	IMG_UINT32 ui32TAGControlWord2 // @8
}

typedef struct _PDS_TEXTURE_IMAGE_UNIT_ PDS_TEXTURE_IMAGE_UNIT

typedef IMG_VOID* EGLDrawableHandle

enum undefined {
	ROTATE_0 = 0; //0x0
	ROTATE_90 = 1; //0x1
	ROTATE_180 = 2; //0x2
	ROTATE_270 = 3; //0x3
	FLIP_Y = 4; //0x4
}

typedef enum undefined EGLRotationAngle

struct EGLRect_TAG {
	IMG_INT32 i32X // @0
	IMG_INT32 i32Y // @4
	IMG_UINT32 ui32Width // @8
	IMG_UINT32 ui32Height // @c
}

typedef struct EGLRect_TAG EGLRect

enum undefined {
	EGL_DRAWABLETYPE_WINDOW = 0; //0x0
	EGL_DRAWABLETYPE_PIXMAP = 1; //0x1
	EGL_DRAWABLETYPE_PBUFFER = 2; //0x2
}

typedef enum undefined EGLDrawableType

struct EGLPixelBEState_TAG {
	IMG_UINT32 ui32SidebandWord // @0
	IMG_UINT32[4] aui32EmitWords // @4
	PVRSRV_HWREG sEventPixelExec // @14
	PVRSRV_HWREG sEventPixelData // @1c
	PVRSRV_HWREG sEventPixelInfo // @24
	IMG_BOOL bDither // @2c
	IMG_UINT32* pui32PixelEventPDS // @30
	IMG_UINT32* pui32PixelEventUSSE // @34
}

typedef struct EGLPixelBEState_TAG EGLPixelBEState

struct GLESTARegisters_TAG {
	PVRSRV_HWREG sMTEControl // @0
}

typedef struct GLESTARegisters_TAG GLESTARegisters

struct GLES3DRegisters_TAG {
	PVRSRV_HWREG sPixelBE // @0
	PVRSRV_HWREG sISPIPFMisc // @8
	PVRSRV_HWREG sISPPerpendicular // @10
	PVRSRV_HWREG sISPCullValue // @18
	PVRSRV_HWREG sISPDepthBias // @20
	PVRSRV_HWREG s3DAAMode // @28
	PVRSRV_HWREG sISPZLSControl // @30
	PVRSRV_HWREG sISPZLoadBase // @38
	PVRSRV_HWREG sISPZStoreBase // @40
	PVRSRV_HWREG sISPStencilLoadBase // @48
	PVRSRV_HWREG sISPStencilStoreBase // @50
	PVRSRV_HWREG sISPBackgroundObject // @58
	PVRSRV_HWREG sISPBackgroundObjectDepth // @60
	PVRSRV_HWREG sEDMPixelPDSExec // @68
	PVRSRV_HWREG sEDMPixelPDSData // @70
	PVRSRV_HWREG sEDMPixelPDSInfo // @78
}

typedef struct GLES3DRegisters_TAG GLES3DRegisters

struct EGLTerminateState_TAG {
	PVRSRV_CLIENT_MEM_INFO* psTerminateUSEMemInfo // @0
	PVRSRV_CLIENT_MEM_INFO* psTerminatePDSMemInfo // @4
	IMG_UINT32 ui32PDSDataSize // @8
	IMG_UINT32 ui32TerminateRegion // @c
	IMG_DEV_VIRTADDR uPDSCodeAddress // @10
}

typedef struct EGLTerminateState_TAG EGLTerminateState

struct EGLRenderSurfaceTAG {
	IMG_BOOL bFirstKick // @0
	IMG_HANDLE hRenderTarget // @4
	PVRSRV_CLIENT_SYNC_INFO* psSyncInfo // @8
	PVRSRV_CLIENT_MEM_INFO* psSyncMemInfo // @c
	PVRSRV_CLIENT_MEM_INFO* psZSBufferMemInfo // @10
	CircularBuffer sPDSBuffer // @14
	CircularBuffer sUSSEBuffer // @50
	IMG_BOOL bMultiSample // @8c
	IMG_BOOL bInFrame // @90
	IMG_BOOL bInExternalFrame // @94
	IMG_BOOL bPrimitivesSinceLastTA // @98
	IMG_BOOL bMultiAPISurface // @9c
	EGLPixelBEState sPixelBEState // @a0
	IMG_UINT32[3] aui32HWBGObjPDSState // @d8
	EGLTerminateState sTerm // @e4
	IMG_UINT32 ui32TerminateRegion // @f8
	IMG_BOOL bLastDrawMaskFullScreenEnable // @fc
	EGLRect sLastDrawMask // @100
	IMG_UINT32[2] aui32RegionClipWord // @110
	GLESTARegisters sTARegs // @118
	GLES3DRegisters s3DRegs // @120
	EGLDrawableHandle hEGLSurface // @1a0
	PVRSRV_ALPHA_FORMAT eAlphaFormat // @1a4
	PVRSRV_COLOURSPACE_FORMAT eColourSpace // @1a8
	EGLClientBuffer hVGClientBuffer // @1ac
}

typedef struct EGLRenderSurfaceTAG EGLRenderSurface

struct EGLDrawableParamsTAG {
	EGLRotationAngle eRotationAngle // @0
	IMG_UINT32 ui32Width // @4
	IMG_UINT32 ui32Height // @8
	PVRSRV_PIXEL_FORMAT ePixelFormat // @c
	PVRSRV_CLIENT_SYNC_INFO* psSyncInfo // @10
	IMG_UINT32 ui32Stride // @14
	IMG_VOID* pvLinSurfaceAddress // @18
	IMG_UINT32 ui32HWSurfaceAddress // @1c
	EGLRenderSurface* psRenderSurface // @20
	EGLDrawableType eDrawableType // @24
	IMG_UINT32 ui32AccumStride // @28
	IMG_UINT32 ui32AccumHWAddress // @2c
	PVRSRV_PIXEL_FORMAT eAccumPixelFormat // @30
	PVRSRV_CLIENT_SYNC_INFO* psAccumSyncInfo // @34
}

typedef struct EGLDrawableParamsTAG EGLDrawableParams

struct EGLcontextModeRec {
	IMG_UINT32 ui32AntiAliasMode // @0
	IMG_UINT32 ui32RedBits // @4
	IMG_UINT32 ui32GreenBits // @8
	IMG_UINT32 ui32BlueBits // @c
	IMG_UINT32 ui32AlphaBits // @10
	IMG_UINT32 ui32ColorBits // @14
	IMG_UINT32 ui32DepthBits // @18
	IMG_UINT32 ui32StencilBits // @1c
	IMG_UINT32 ui32MaxViewportX // @20
	IMG_UINT32 ui32MaxViewportY // @24
	PVRSRV_PIXEL_FORMAT ePixelFormat // @28
}

typedef struct EGLcontextModeRec EGLcontextMode

struct EGLImageRec {
	IMG_UINT32 ui32Width // @0
	IMG_UINT32 ui32Height // @4
	PVRSRV_PIXEL_FORMAT ePixelFormat // @8
	IMG_UINT32 ui32Stride // @c
	IMG_VOID* pvLinSurfaceAddress // @10
	IMG_UINT32 ui32HWSurfaceAddress // @14
	PVRSRV_CLIENT_MEM_INFO* psMemInfo // @18
	IMG_VOID* hImage // @1c
	IMG_UINT32 ui32Target // @20
	IMG_UINT32 ui32Buffer // @24
	IMG_UINT32 ui32Level // @28
	IMG_BOOL bTwiddled // @2c
}

typedef struct EGLImageRec EGLImage

enum IMG_EGLERROR_TAG {
	IMG_EGL_NO_ERROR = 0; //0x0
	IMG_EGL_GENERIC_ERROR = 1; //0x1
	IMG_EGL_SCENE_LOST = 2; //0x2
	IMG_EGL_MEMORY_INVALID_ERROR = 3; //0x3
	IMG_EGL_BAD_ACCESS = 4; //0x4
	IMG_EGL_BAD_PARAMETER = 5; //0x5
	IMG_EGL_BAD_MATCH = 6; //0x6
	IMG_EGL_OUT_OF_MEMORY = 7; //0x7
}

enum GLES2NameTypeTAG {
	GLES2_NAMETYPE_TEXOBJ = 0; //0x0
	GLES2_NAMETYPE_PROGRAM = 1; //0x1
	GLES2_NAMETYPE_BUFOBJ = 2; //0x2
	GLES2_NAMETYPE_RENDERBUFFER = 3; //0x3
	GLES2_NAMETYPE_FRAMEBUFFER = 4; //0x4
	GLES2_MAX_NAMETYPE = 5; //0x5
}

typedef enum GLES2NameTypeTAG GLES2NameType

struct GLES2NamedItemTAG {
	IMG_UINT32 ui32Name // @0
	IMG_UINT32 ui32RefCount // @4
	struct GLES2NamedItemTAG* psNext // @8
}

typedef struct GLES2NamedItemTAG GLES2NamedItem

struct GLES2NamesArrayTAG {
	GLES2NameType eType // @0
	void* pfnFree // @4
	IMG_UINT32 ui32LastNameGenerated // @8
	IMG_UINT32 ui32NumItems // @c
	PVRSRV_RES_HANDLE* phSharedLock // @10
	GLES2NamedItem*[127] apsEntry // @14
}

void

typedef struct GLES2NamesArrayTAG GLES2NamesArray

struct FRMFrameResourceRec {
	IMG_UINT32 ui32FirstSurface // @0
	struct FRMFrameResourceRec* psPrev // @4
	struct FRMFrameResourceRec* psNext // @8
}

typedef struct FRMFrameResourceRec FRMFrameResource

struct FRMFrameListRec {
	const EGLRenderSurface* psSurface // @0
	IMG_UINT32 ui32Frame // @4
	PVRSRV_SYNC_DATA* psSyncData // @8
	IMG_UINT32 ui32Next // @c
}

typedef struct FRMFrameListRec FRMFrameList

struct FRMFrameResourceManagerRec {
	PVRSRV_RES_HANDLE* phSharedLock // @0
	IMG_VOID* pvContext // @4
	FRMFrameList* asAttachment // @8
	IMG_UINT32 ui32MaxAttachments // @c
	IMG_UINT32 ui32AttachmentFreeList // @10
	FRMFrameResource* psResourceList // @14
	void* pfnReclaimResourceMem // @18
	IMG_BOOL bRemoveResourceAfterRecoveringMem // @1c
	FRMFrameResource* psGhostList // @20
	void* pfnDestroyGhost // @24
	PVRSRV_CONNECTION* psConnection // @28
	IMG_HANDLE hOSEvent // @2c
	IMG_BOOL bInitialized // @30
	void* pfnSetError // @34
}

void

void

typedef struct FRMFrameResourceManagerRec FRMFrameResourceManager

struct GLES2BufferObjectRec {
	GLES2NamedItem sNamedItem // @0
	GLenum eUsage // @c
	GLenum eAccess // @10
	IMG_UINT32 ui32BufferSize // @14
	IMG_UINT32 ui32BindMask // @18
	IMG_BOOL bMapped // @1c
	IMG_BOOL bInUse // @20
	PVRSRV_CLIENT_MEM_INFO* psMemInfo // @24
}

typedef struct GLES2BufferObjectRec GLES2BufferObject

struct GLES2BufferObjectMachineRec {
	GLES2BufferObject*[2] psActiveBuffer // @0
}

typedef struct GLES2BufferObjectMachineRec GLES2BufferObjectMachine

struct GLES2AttribArrayPointerStateRec {
	IMG_UINT8* pui8Pointer // @0
	IMG_UINT32 ui32StreamTypeSize // @4
	IMG_UINT32 ui32UserStride // @8
	GLES2BufferObject* psBufObj // @c
}

typedef struct GLES2AttribArrayPointerStateRec GLES2AttribArrayPointerState

struct GLES2AttribStateRec {
	GLES2coord[8] asCurrentAttrib // @0
	GLES2AttribArrayPointerState[8] asAttribPointer // @80
}

typedef struct GLES2AttribStateRec GLES2AttribState

struct GLES2AttribArrayPointerMachineRec {
	IMG_UINT32 ui32Stride // @0
	IMG_UINT32 ui32Size // @4
	IMG_BOOL bIsCurrentState // @8
	IMG_UINT8* pui8CopyPointer // @c
	IMG_UINT32 ui32CopyStreamTypeSize // @10
	IMG_UINT32 ui32CopyStride // @14
	IMG_UINT8* pui8SrcPointer // @18
	IMG_UINT8* pui8DstPointer // @1c
	IMG_UINT32 ui32DstSize // @20
	void* pfnCopyData // @24
	IMG_VOID* pvPDSSrcAddress // @28
	GLES2AttribArrayPointerState* psState // @2c
}

void

typedef struct GLES2AttribArrayPointerMachineRec GLES2AttribArrayPointerMachine

struct GLES2AttribArrayMachineRec {
	GLES2AttribArrayPointerMachine[8] asAttribPointer // @0
	GLES2AttribArrayPointerMachine*[8] apsPackedAttrib // @180
	IMG_UINT32 ui32NumItemsPerVertex // @1a0
	IMG_UINT32 ui32ArrayEnables // @1a4
	IMG_UINT32 ui32CompileMask // @1a8
	IMG_BOOL ui32ControlWord // @1ac
}

typedef struct GLES2AttribArrayMachineRec GLES2AttribArrayMachine

struct GLES2FrameBufferAttachableRec {
	GLES2NamedItem sNamedItem // @0
	EGLRenderSurface* psRenderSurface // @c
	GLenum eAttachmentType // @10
}

typedef struct GLES2FrameBufferAttachableRec GLES2FrameBufferAttachable

struct GLES2RenderBufferRec {
	GLES2FrameBufferAttachable sFBAttachable // @0
	GLenum eRequestedFormat // @14
	IMG_UINT32 ui32Width // @18
	IMG_UINT32 ui32Height // @1c
	IMG_UINT8 ui8RedSize // @20
	IMG_UINT8 ui8GreenSize // @21
	IMG_UINT8 ui8BlueSize // @22
	IMG_UINT8 ui8AlphaSize // @23
	IMG_UINT8 ui8DepthSize // @24
	IMG_UINT8 ui8StencilSize // @25
	IMG_BOOL bInitialised // @28
	IMG_UINT32 ui32AllocatedBytes // @2c
	PVRSRV_CLIENT_MEM_INFO* psMemInfo // @30
	EGLImage* psEGLImageSource // @34
	EGLImage* psEGLImageTarget // @38
}

typedef struct GLES2RenderBufferRec GLES2RenderBuffer

struct GLES2FrameBufferRec {
	GLES2NamedItem sNamedItem // @0
	GLenum eStatus // @c
	EGLcontextMode sMode // @10
	EGLDrawableParams sDrawParams // @3c
	EGLDrawableParams sReadParams // @74
	GLES2FrameBufferAttachable*[3] apsAttachment // @ac
}

typedef struct GLES2FrameBufferRec GLES2FrameBuffer

struct GLES2FrameBufferObjectMachineRec {
	GLES2FrameBuffer* psActiveFrameBuffer // @0
	GLES2RenderBuffer* psActiveRenderBuffer // @4
	GLES2FrameBuffer sDefaultFrameBuffer // @8
}

typedef struct GLES2FrameBufferObjectMachineRec GLES2FrameBufferObjectMachine

typedef enum _USP_CHAN_CONTENT_ USP_CHAN_CONTENT

enum _USP_CHAN_CONTENT_ {
	USP_CHAN_CONTENT_NONE = 0; //0x0
	USP_CHAN_CONTENT_DATA = 1; //0x1
	USP_CHAN_CONTENT_ONE = 5; //0x5
	USP_CHAN_CONTENT_ZERO = 6; //0x6
}

typedef enum _USP_CHAN_FORMAT_ USP_CHAN_FORMAT

enum _USP_CHAN_FORMAT_ {
	USP_CHAN_FORMAT_U8 = 0; //0x0
	USP_CHAN_FORMAT_S8 = 1; //0x1
	USP_CHAN_FORMAT_U16 = 2; //0x2
	USP_CHAN_FORMAT_S16 = 3; //0x3
	USP_CHAN_FORMAT_F16 = 4; //0x4
	USP_CHAN_FORMAT_F32 = 5; //0x5
	USP_CHAN_FORMAT_U24 = 6; //0x6
}

typedef enum _USP_CHAN_SWIZZLE_ USP_CHAN_SWIZZLE

enum _USP_CHAN_SWIZZLE_ {
	USP_CHAN_SWIZZLE_CHAN_0 = 0; //0x0
	USP_CHAN_SWIZZLE_CHAN_1 = 1; //0x1
	USP_CHAN_SWIZZLE_CHAN_2 = 2; //0x2
	USP_CHAN_SWIZZLE_CHAN_3 = 3; //0x3
	USP_CHAN_SWIZZLE_ONE = 4; //0x4
	USP_CHAN_SWIZZLE_ZERO = 5; //0x5
}

typedef enum _USP_HW_PSINPUT_TYPE_ USP_HW_PSINPUT_TYPE

enum _USP_HW_PSINPUT_TYPE_ {
	USP_HW_PSINPUT_TYPE_ITERATION = 0; //0x0
	USP_HW_PSINPUT_TYPE_SAMPLE = 1; //0x1
}

typedef enum _USP_HW_PSINPUT_COORD_ USP_HW_PSINPUT_COORD

enum _USP_HW_PSINPUT_COORD_ {
	USP_HW_PSINPUT_COORD_TC0 = 0; //0x0
	USP_HW_PSINPUT_COORD_TC1 = 1; //0x1
	USP_HW_PSINPUT_COORD_TC2 = 2; //0x2
	USP_HW_PSINPUT_COORD_TC3 = 3; //0x3
	USP_HW_PSINPUT_COORD_TC4 = 4; //0x4
	USP_HW_PSINPUT_COORD_TC5 = 5; //0x5
	USP_HW_PSINPUT_COORD_TC6 = 6; //0x6
	USP_HW_PSINPUT_COORD_TC7 = 7; //0x7
	USP_HW_PSINPUT_COORD_TC8 = 8; //0x8
	USP_HW_PSINPUT_COORD_TC9 = 9; //0x9
	USP_HW_PSINPUT_COORD_V0 = 10; //0xa
	USP_HW_PSINPUT_COORD_V1 = 11; //0xb
	USP_HW_PSINPUT_COORD_FOG = 12; //0xc
	USP_HW_PSINPUT_COORD_POS = 13; //0xd
}

typedef enum _USP_HW_PSINPUT_FMT_ USP_HW_PSINPUT_FMT

enum _USP_HW_PSINPUT_FMT_ {
	USP_HW_PSINPUT_FMT_F32 = 0; //0x0
	USP_HW_PSINPUT_FMT_F16 = 1; //0x1
	USP_HW_PSINPUT_FMT_C10 = 2; //0x2
	USP_HW_PSINPUT_FMT_U8 = 3; //0x3
}

typedef enum _USP_HW_CONST_FMT_ USP_HW_CONST_FMT

enum _USP_HW_CONST_FMT_ {
	USP_HW_CONST_FMT_F32 = 0; //0x0
	USP_HW_CONST_FMT_F16 = 1; //0x1
	USP_HW_CONST_FMT_C10 = 2; //0x2
	USP_HW_CONST_FMT_STATIC = 3; //0x3
}

typedef struct _USP_PC_SHADER_ USP_PC_SHADER

struct _USP_PC_SHADER_ {
	IMG_UINT32 uId // @0
	IMG_UINT32 uVersion // @4
	IMG_UINT32 uSize // @8
}

typedef struct _USP_TEX_FORMAT_ USP_TEX_FORMAT

struct _USP_TEX_FORMAT_ {
	USP_CHAN_CONTENT[4] aeChanContent // @0
	USP_CHAN_FORMAT[4] aeChanForm // @10
	USP_CHAN_SWIZZLE[4] aeChanSwizzle // @20
	IMG_UINT32 uChunkSize // @30
}

struct _USP_HW_PSINPUT_LOAD_ {
	USP_HW_PSINPUT_TYPE eType // @0
	IMG_UINT32 uFlags // @4
	USP_HW_PSINPUT_COORD eCoord // @8
	IMG_UINT16 uCoordDim // @c
	IMG_UINT16 uTextureIdx // @e
	IMG_UINT32 uChunkIdx // @10
	USP_HW_PSINPUT_FMT eFormat // @14
}

typedef struct _USP_HW_PSINPUT_LOAD_* PUSP_HW_PSINPUT_LOAD

struct _USP_HW_TEXSTATE_LOAD_ {
	IMG_UINT16 uTextureIdx // @0
	IMG_UINT16 uChunkIdx // @2
	IMG_UINT32 uDestIdx // @4
}

typedef struct _USP_HW_TEXSTATE_LOAD_* PUSP_HW_TEXSTATE_LOAD

struct _USP_HW_CONST_LOAD_ {
	IMG_UINT32 uSrcIdx // @0
	IMG_UINT16 uDestIdx // @4
	IMG_UINT16 uDestShift // @6
	USP_HW_CONST_FMT eFormat // @8
}

typedef struct _USP_HW_CONST_LOAD_* PUSP_HW_CONST_LOAD

typedef struct _USP_HW_SAREG_USE_ USP_HW_SAREG_USE

struct _USP_HW_SAREG_USE_ {
	IMG_UINT32 uFlags // @0
	IMG_UINT16 uMemConstBaseAddrReg // @4
	IMG_UINT16 uMemConst2BaseAddrReg // @6
	IMG_UINT16 uScratchMemBaseAddrReg // @8
	IMG_UINT16 uTexStateFirstReg // @a
	IMG_UINT16 uRegConstsFirstReg // @c
	IMG_UINT16 uRegConstsRegCount // @e
	IMG_UINT16 uIndexedTempBaseAddrReg // @10
}

typedef struct _USP_HWSHADER_ USP_HW_SHADER

struct _USP_HWSHADER_ {
	IMG_UINT32 uFlags // @0
	SGX_CORE_INFO sTargetDev // @4
	IMG_UINT16 uInstCount // @c
	IMG_PUINT32 puInsts // @10
	IMG_UINT16 uProgStartInstIdx // @14
	IMG_UINT16 uPTPhase0EndInstIdx // @16
	IMG_UINT16 uPTPhase1StartInstIdx // @18
	IMG_UINT16 uSAUpdateInstCount // @1a
	IMG_PUINT32 puSAUpdateInsts // @1c
	IMG_UINT16 uPARegCount // @20
	IMG_UINT16 uReservedPARegCount // @22
	IMG_UINT16 uTempRegCount // @24
	IMG_UINT16 uSARegCount // @26
	USP_HW_SAREG_USE sSARegUse // @28
	IMG_UINT16 uPSInputCount // @3c
	PUSP_HW_PSINPUT_LOAD psPSInputLoads // @40
	IMG_UINT32 uMemConstCount // @44
	PUSP_HW_CONST_LOAD psMemConstLoads // @48
	IMG_UINT16 uRegConstCount // @4c
	PUSP_HW_CONST_LOAD psRegConstLoads // @50
	IMG_UINT16 uRegTexStateCount // @54
	PUSP_HW_TEXSTATE_LOAD psRegTexStateLoads // @58
	IMG_UINT32 uMemTexStateCount // @5c
	PUSP_HW_TEXSTATE_LOAD psMemTexStateLoads // @60
	IMG_UINT32 uIndexedTempTotalSize // @64
	IMG_UINT32 uScratchAreaSize // @68
	IMG_INT32 iSAAddressAdjust // @6c
	IMG_UINT32 uPSResultRegNum // @70
	IMG_UINT32 uNonAnisoTexStages // @74
	IMG_UINT32 uVSInputPARegCount // @78
	IMG_UINT32[4] auVSInputsUsed // @7c
}

struct _UNIFLEX_INDEXABLE_TEMP_SIZE {
	IMG_UINT32 uTag // @0
	IMG_UINT32 uSize // @4
}

typedef struct _UNIFLEX_INDEXABLE_TEMP_SIZE UNIFLEX_INDEXABLE_TEMP_SIZE

typedef struct _UNIFLEX_INDEXABLE_TEMP_SIZE* PUNIFLEX_INDEXABLE_TEMP_SIZE

struct _UNIFLEX_CONSTS_RANGE {
	IMG_UINT32 uRangeStart // @0
	IMG_UINT32 uRangeEnd // @4
}

typedef struct _UNIFLEX_CONSTS_RANGE* PUNIFLEX_CONSTS_RANGE

struct _UNIFLEX_CONSTS_BUFF_RANGES {
	IMG_UINT32 uConstRangesCount // @0
	PUNIFLEX_CONSTS_RANGE psRanges // @4
}

typedef struct _UNIFLEX_CONSTS_BUFF_RANGES UNIFLEX_CONSTS_BUFF_RANGES

struct _UNIFLEX_PROGRAM_PARAMETERS {
	IMG_UINT32 uConstantBase // @0
	IMG_UINT32 uScratchBase // @4
	IMG_UINT32 uBooleanConsts // @8
	IMG_UINT32 uIntegerConsts // @c
	IMG_UINT32 uTextureState // @10
	IMG_UINT32 uInRegisterConstantOffset // @14
	IMG_UINT32 uInRegisterConstantLimit // @18
	UNIFLEX_CONSTS_BUFF_RANGES[18] psConstsBuffRanges // @1c
	IMG_UINT32 uIndexableTempBase // @ac
	IMG_UINT32 uIndexableTempArrayCount // @b0
	PUNIFLEX_INDEXABLE_TEMP_SIZE psIndexableTempArraySizes // @b4
	IMG_UINT32 uU24ScaleConstantNum // @b8
	IMG_UINT32 uPackDestType // @bc
	IMG_UINT32 uPackPrecision // @c0
	IMG_UINT32 uFeedbackInstCount // @c4
	IMG_UINT32 uExtraPARegisters // @c8
	IMG_UINT32 uNumAvailableTemporaries // @cc
	IMG_UINT32 uCentroidMask // @d0
	IMG_UINT32[4] puOutputSaturate // @d4
	SGX_CORE_INFO sTarget // @e4
	IMG_UINT32[2] puValidVSOutputs // @ec
	IMG_UINT32 uTextureStateConstOffset // @f4
	IMG_UINT32 uValidPSOutputs // @f8
	IMG_UINT32[18] puRelativeConstantMax // @fc
	IMG_UINT32 uVSPointSizeOutputNum // @144
}

typedef struct _UNIFLEX_PROGRAM_PARAMETERS UNIFLEX_PROGRAM_PARAMETERS

enum tagUSC_CHANNELFORM {
	USC_CHANNELFORM_INVALID = 0; //0x0
	USC_CHANNELFORM_U8 = 1; //0x1
	USC_CHANNELFORM_S8 = 2; //0x2
	USC_CHANNELFORM_U16 = 3; //0x3
	USC_CHANNELFORM_S16 = 4; //0x4
	USC_CHANNELFORM_F16 = 5; //0x5
	USC_CHANNELFORM_F32 = 6; //0x6
	USC_CHANNELFORM_ZERO = 7; //0x7
	USC_CHANNELFORM_ONE = 8; //0x8
	USC_CHANNELFORM_U24 = 9; //0x9
	USC_CHANNELFORM_U8_UN = 10; //0xa
	USC_CHANNELFORM_C10 = 11; //0xb
}

typedef enum tagUSC_CHANNELFORM USC_CHANNELFORM

struct _UNIFLEX_TEXFORM_ {
	USC_CHANNELFORM[4] peChannelForm // @0
	IMG_UINT32 uSwizzle // @10
	IMG_BOOL bTwoResult // @14
	IMG_UINT32 uChunkSize // @18
	IMG_UINT32 uCSCConst // @1c
	IMG_BOOL bUsePCF // @20
	IMG_BOOL bTFSwapRedAndBlue // @24
}

typedef struct _UNIFLEX_TEXFORM_ UNIFLEX_TEXFORM

enum GLSLLogFilesTAG {
	GLSLLF_NOT_LOG = 0; //0x0
	GLSLLF_LOG_ICODE_ONLY = 1; //0x1
	GLSLLF_LOG_ALL = 2; //0x2
}

typedef enum GLSLLogFilesTAG GLSLLogFiles

enum GLSLProgramTypeTAG {
	GLSLPT_VERTEX = 0; //0x0
	GLSLPT_FRAGMENT = 1; //0x1
}

typedef enum GLSLProgramTypeTAG GLSLProgramType

enum GLSLTypeSpecifierTAG {
	GLSLTS_INVALID = 0; //0x0
	GLSLTS_VOID = 1; //0x1
	GLSLTS_FLOAT = 2; //0x2
	GLSLTS_VEC2 = 3; //0x3
	GLSLTS_VEC3 = 4; //0x4
	GLSLTS_VEC4 = 5; //0x5
	GLSLTS_INT = 6; //0x6
	GLSLTS_IVEC2 = 7; //0x7
	GLSLTS_IVEC3 = 8; //0x8
	GLSLTS_IVEC4 = 9; //0x9
	GLSLTS_BOOL = 10; //0xa
	GLSLTS_BVEC2 = 11; //0xb
	GLSLTS_BVEC3 = 12; //0xc
	GLSLTS_BVEC4 = 13; //0xd
	GLSLTS_MAT2X2 = 14; //0xe
	GLSLTS_MAT2X3 = 15; //0xf
	GLSLTS_MAT2X4 = 16; //0x10
	GLSLTS_MAT3X2 = 17; //0x11
	GLSLTS_MAT3X3 = 18; //0x12
	GLSLTS_MAT3X4 = 19; //0x13
	GLSLTS_MAT4X2 = 20; //0x14
	GLSLTS_MAT4X3 = 21; //0x15
	GLSLTS_MAT4X4 = 22; //0x16
	GLSLTS_SAMPLER1D = 23; //0x17
	GLSLTS_SAMPLER2D = 24; //0x18
	GLSLTS_SAMPLER3D = 25; //0x19
	GLSLTS_SAMPLERCUBE = 26; //0x1a
	GLSLTS_SAMPLER1DSHADOW = 27; //0x1b
	GLSLTS_SAMPLER2DSHADOW = 28; //0x1c
	GLSLTS_STRUCT = 29; //0x1d
}

typedef enum GLSLTypeSpecifierTAG GLSLTypeSpecifier

enum GLSLTypeQualifierTAG {
	GLSLTQ_INVALID = 0; //0x0
	GLSLTQ_TEMP = 1; //0x1
	GLSLTQ_CONST = 2; //0x2
	GLSLTQ_UNIFORM = 3; //0x3
	GLSLTQ_ATTRIBUTE = 4; //0x4
	GLSLTQ_VARYING = 5; //0x5
}

typedef enum GLSLTypeQualifierTAG GLSLTypeQualifier

enum GLSLVaryingModifierFlagsTAG {
	GLSLVMOD_NONE = 0; //0x0
	GLSLVMOD_INVARIANT = 1; //0x1
	GLSLVMOD_CENTROID = 2; //0x2
	GLSLVMOD_ALL = 3; //0x3
	GLSLVMOD_INVALID = 4; //0x4
}

typedef enum GLSLVaryingModifierFlagsTAG GLSLVaryingModifierFlags

enum GLSLPrecisionQualifierTAG {
	GLSLPRECQ_UNKNOWN = 0; //0x0
	GLSLPRECQ_LOW = 1; //0x1
	GLSLPRECQ_MEDIUM = 2; //0x2
	GLSLPRECQ_HIGH = 3; //0x3
	GLSLPRECQ_INVALID = 4; //0x4
}

typedef enum GLSLPrecisionQualifierTAG GLSLPrecisionQualifier

enum GLSLBuiltInVariableIDTAG {
	GLSLBV_NOT_BTIN = 0; //0x0
	GLSLBV_POSITION = 1; //0x1
	GLSLBV_POINTSIZE = 2; //0x2
	GLSLBV_CLIPVERTEX = 3; //0x3
	GLSLBV_FRAGCOORD = 4; //0x4
	GLSLBV_FRONTFACING = 5; //0x5
	GLSLBV_FRAGCOLOR = 6; //0x6
	GLSLBV_FRAGDATA = 7; //0x7
	GLSLBV_FRAGDEPTH = 8; //0x8
	GLSLBV_COLOR = 9; //0x9
	GLSLBV_SECONDARYCOLOR = 10; //0xa
	GLSLBV_NORMAL = 11; //0xb
	GLSLBV_VERTEX = 12; //0xc
	GLSLBV_MULTITEXCOORD0 = 13; //0xd
	GLSLBV_MULTITEXCOORD1 = 14; //0xe
	GLSLBV_MULTITEXCOORD2 = 15; //0xf
	GLSLBV_MULTITEXCOORD3 = 16; //0x10
	GLSLBV_MULTITEXCOORD4 = 17; //0x11
	GLSLBV_MULTITEXCOORD5 = 18; //0x12
	GLSLBV_MULTITEXCOORD6 = 19; //0x13
	GLSLBV_MULTITEXCOORD7 = 20; //0x14
	GLSLBV_FOGCOORD = 21; //0x15
	GLSLBV_MODELVIEWMATRIX = 22; //0x16
	GLSLBV_PROJECTMATRIX = 23; //0x17
	GLSLBV_MODELVIEWPROJECTIONMATRIX = 24; //0x18
	GLSLBV_TEXTUREMATRIX = 25; //0x19
	GLSLBV_NORMALMATRIX = 26; //0x1a
	GLSLBV_MODELVIEWMATRIXINVERSE = 27; //0x1b
	GLSLBV_PROJECTMATRIXINVERSE = 28; //0x1c
	GLSLBV_MODELVIEWPROJECTIONMATRIXINVERSE = 29; //0x1d
	GLSLBV_TEXTUREMATRIXINVERSE = 30; //0x1e
	GLSLBV_MODELVIEWMATRIXTRANSPOSE = 31; //0x1f
	GLSLBV_PROJECTIONMATRIXTRANSPOSE = 32; //0x20
	GLSLBV_MODELVIEWPROJECTIONMATRIXTRANSPOSE = 33; //0x21
	GLSLBV_TEXTUREMATRIXTRANSPOSE = 34; //0x22
	GLSLBV_MODELVIEWMATRIXINVERSETRANSPOSE = 35; //0x23
	GLSLBV_PROJECTMATRIXINVERSETRANSPOSE = 36; //0x24
	GLSLBV_MODELVIEWPROJECTIONMATRIXINVERSETRANSPOSE = 37; //0x25
	GLSLBV_TEXTUREMATRIXINVERSETRANSPOSE = 38; //0x26
	GLSLBV_NORMALSCALE = 39; //0x27
	GLSLBV_DEPTHRANGE = 40; //0x28
	GLSLBV_CLIPPLANE = 41; //0x29
	GLSLBV_POINT = 42; //0x2a
	GLSLBV_FRONTMATERIAL = 43; //0x2b
	GLSLBV_BACKMATERIAL = 44; //0x2c
	GLSLBV_LIGHTSOURCE = 45; //0x2d
	GLSLBV_LIGHTMODEL = 46; //0x2e
	GLSLBV_FRONTLIGHTMODELPRODUCT = 47; //0x2f
	GLSLBV_BACKLIGHTMODELPRODUCT = 48; //0x30
	GLSLBV_FRONTLIGHTPRODUCT = 49; //0x31
	GLSLBV_BACKLIGHTPRODUCT = 50; //0x32
	GLSLBV_TEXTUREENVCOLOR = 51; //0x33
	GLSLBV_EYEPLANES = 52; //0x34
	GLSLBV_EYEPLANET = 53; //0x35
	GLSLBV_EYEPLANER = 54; //0x36
	GLSLBV_EYEPLANEQ = 55; //0x37
	GLSLBV_OBJECTPLANES = 56; //0x38
	GLSLBV_OBJECTPLANET = 57; //0x39
	GLSLBV_OBJECTPLANER = 58; //0x3a
	GLSLBV_OBJECTPLANEQ = 59; //0x3b
	GLSLBV_FOG = 60; //0x3c
	GLSLBV_FRONTCOLOR = 61; //0x3d
	GLSLBV_BACKCOLOR = 62; //0x3e
	GLSLBV_FRONTSECONDARYCOLOR = 63; //0x3f
	GLSLBV_BACKSECONDARYCOLOR = 64; //0x40
	GLSLBV_TEXCOORD = 65; //0x41
	GLSLBV_FOGFRAGCOORD = 66; //0x42
	GLSLBV_POINTCOORD = 67; //0x43
	GLSLESBV_POINTCOORD = 67; //0x43
	GLSLBV_PMXTWOSIDEENABLE = 68; //0x44
	GLSLBV_PMXSWAPFRONTFACE = 69; //0x45
	GLSLBV_PMXPOINTSIZEENABLE = 70; //0x46
	GLSLBV_PMXPOINTSIZE = 71; //0x47
	GLSLBV_PMXDEPTHTEXTUREDESC0 = 72; //0x48
	GLSLBV_PMXDEPTHTEXTUREDESC1 = 73; //0x49
	GLSLBV_PMXDEPTHTEXTUREDESC2 = 74; //0x4a
	GLSLBV_PMXDEPTHTEXTUREDESC3 = 75; //0x4b
	GLSLBV_PMXDEPTHTEXTUREDESC4 = 76; //0x4c
	GLSLBV_PMXDEPTHTEXTUREDESC5 = 77; //0x4d
	GLSLBV_PMXDEPTHTEXTUREDESC6 = 78; //0x4e
	GLSLBV_PMXDEPTHTEXTUREDESC7 = 79; //0x4f
	GLSLBV_PMXPERMTEXTURE = 80; //0x50
	GLSLBV_PMXGRADTEXTURE = 81; //0x51
	GLSLBV_PMXCOLOURCLAMPMIN = 82; //0x52
	GLSLBV_PMXCOLOURCLAMPMAX = 83; //0x53
	GLSLBV_PMXFOGMODE = 84; //0x54
	GLSLBV_PMXFOGPARAM = 85; //0x55
	GLSLBV_PMXCLIPPLANE = 86; //0x56
	GLSLBV_PMXPOSADJUST = 87; //0x57
	GLSLBV_NUM_BUILTINS = 88; //0x58
	GLSLBV_SPECIAL_VERTEXBLENDWEIGHT = 89; //0x59
	GLSLBV_SPECIAL_VERTEXMATRIXINDEX = 90; //0x5a
	GLSLBV_SPECIAL_MODELVIEWMATRIXTRANSPOSEPALETTE = 91; //0x5b
	GLSLBV_SPECIAL_MODELVIEWMATRIXINVERSEPALETTE = 92; //0x5c
	GLSLBV_PMXLIGHTSOURCE0 = 93; //0x5d
	GLSLBV_PMXLIGHTSOURCE1 = 94; //0x5e
	GLSLBV_PMXLIGHTSOURCE2 = 95; //0x5f
	GLSLBV_PMXLIGHTSOURCE3 = 96; //0x60
	GLSLBV_PMXLIGHTSOURCE4 = 97; //0x61
	GLSLBV_PMXLIGHTSOURCE5 = 98; //0x62
	GLSLBV_PMXLIGHTSOURCE6 = 99; //0x63
	GLSLBV_PMXLIGHTSOURCE7 = 100; //0x64
	GLSLBV_PMXLINEPARAMS = 101; //0x65
	GLSLBV_MATRIXPALETTEINDEXCLAMP = 102; //0x66
	GLSLBV_NUM_BUILTINS_WITH_SPECIALS = 103; //0x67
}

typedef enum GLSLBuiltInVariableIDTAG GLSLBuiltInVariableID

enum GLSLVaryingMaskTAG {
	GLSLVM_POSITION = 1; //0x1
	GLSLVM_COLOR0 = 2; //0x2
	GLSLVM_COLOR1 = 4; //0x4
	GLSLVM_TEXCOORD0 = 8; //0x8
	GLSLVM_TEXCOORD1 = 16; //0x10
	GLSLVM_TEXCOORD2 = 32; //0x20
	GLSLVM_TEXCOORD3 = 64; //0x40
	GLSLVM_TEXCOORD4 = 128; //0x80
	GLSLVM_TEXCOORD5 = 256; //0x100
	GLSLVM_TEXCOORD6 = 512; //0x200
	GLSLVM_TEXCOORD7 = 1024; //0x400
	GLSLVM_TEXCOORD8 = 2048; //0x800
	GLSLVM_TEXCOORD9 = 4096; //0x1000
	GLSLVM_PTSIZE = 8192; //0x2000
	GLSLVM_FOG = 16384; //0x4000
	GLSLVM_CLIPPLANE0 = 32768; //0x8000
	GLSLVM_CLIPPLANE1 = 65536; //0x10000
	GLSLVM_CLIPPLANE2 = 131072; //0x20000
	GLSLVM_CLIPPLANE3 = 262144; //0x40000
	GLSLVM_CLIPPLANE4 = 524288; //0x80000
	GLSLVM_CLIPPLANE5 = 1048576; //0x100000
	GLSLVM_FORCE_I32 = 2147483647; //0x7fffffff
}

typedef enum GLSLVaryingMaskTAG GLSLVaryingMask

enum GLSLHWRegTypeTAG {
	HWREG_FLOAT = 1; //0x1
	HWREG_TEX = 2; //0x2
}

typedef enum GLSLHWRegTypeTAG GLSLHWRegType

struct GLSLRegisterInfoTAG {
	GLSLHWRegType eRegType // @0
		union {
		IMG_UINT32 uBaseComp
		IMG_UINT32 uTextureUnit
	} u // @4
	IMG_UINT32 uCompAllocCount // @8
	IMG_UINT32 ui32CompUseMask // @c
}

typedef struct GLSLRegisterInfoTAG GLSLRegisterInfo

struct GLSLBindingSymbolTAG {
	IMG_CHAR* pszName // @0
	GLSLTypeSpecifier eTypeSpecifier // @4
	GLSLTypeQualifier eTypeQualifier // @8
	GLSLVaryingModifierFlags eVaryingModifierFlags // @c
	IMG_INT32 iActiveArraySize // @10
	IMG_INT32 iDeclaredArraySize // @14
	GLSLRegisterInfo sRegisterInfo // @18
	IMG_UINT32 uNumBaseTypeMembers // @28
	struct GLSLBindingSymbolTAG* psBaseTypeMembers // @2c
	GLSLBuiltInVariableID eBIVariableID // @30
}

typedef struct GLSLBindingSymbolTAG GLSLBindingSymbol

struct GLSLDepthTextureTAG {
	GLSLBindingSymbol* psTextureSymbol // @0
	IMG_INT32 iOffset // @4
	GLSLBindingSymbol* psTexDescSymbol // @8
}

typedef struct GLSLDepthTextureTAG GLSLDepthTexture

struct GLSLBindingSymbolListTAG {
	IMG_UINT32 uNumBindings // @0
	IMG_UINT32 uMaxBindingEntries // @4
	GLSLBindingSymbol* psBindingSymbolEntries // @8
	IMG_UINT32 uNumCompsUsed // @c
	IMG_FLOAT* pfConstantData // @10
	IMG_UINT32 uNumDepthTextures // @14
	GLSLDepthTexture* psDepthTextures // @18
}

typedef struct GLSLBindingSymbolListTAG GLSLBindingSymbolList

struct GLSLInfoLogTAG {
	IMG_CHAR* pszInfoLogString // @0
	IMG_UINT32 uInfoLogStringLength // @4
}

typedef struct GLSLInfoLogTAG GLSLInfoLog

struct GLSLConstRangeTAG {
	IMG_UINT32 uStart // @0
	IMG_UINT32 uCount // @4
}

typedef struct GLSLConstRangeTAG GLSLConstRange

enum GLSLProgramFlagsTAG {
	GLSLPF_UNIFLEX_INPUT = 1; //0x1
	GLSLPF_UNIFLEX_OUTPUT = 2; //0x2
	GLSLPF_NATIVE_HW_CODE = 3; //0x3
	GLSLPF_UNIPATCH_INPUT = 4; //0x4
	GLSLPF_DISCARD_EXECUTED = 8; //0x8
	GLSLPF_FRAGDEPTH_WRITTENTO = 16; //0x10
	GLSLPF_OUTPUT_LINEWIDTH = 262144; //0x40000
	GLSLPF_FORCE_I32 = 2147483647; //0x7fffffff
}

typedef enum GLSLProgramFlagsTAG GLSLProgramFlags

enum GLSLCompilerWarningsTAG {
	GLSLCW_WARN_GRADIENT_CALC_INSIDE_CONDITIONAL = 1; //0x1
	GLSLCW_WARN_USE_OF_UNINITIALISED_DATA = 2; //0x2
	GLSLCW_WARN_FUNCTION_NOT_CALLED = 4; //0x4
	GLSLCW_WARN_RECURSIVE_FUNCTION_CALL = 8; //0x8
	GLSLCW_WARN_ALL = 2147483647; //0x7fffffff
}

typedef enum GLSLCompilerWarningsTAG GLSLCompilerWarnings

struct GLSLUniFlexHWCodeInfoTAG {
	UNIFLEX_PROGRAM_PARAMETERS* psUFParams // @0
	UNIFLEX_TEXFORM* psTextureForm // @4
}

typedef struct GLSLUniFlexHWCodeInfoTAG GLSLUniFlexHWCodeInfo

struct GLSLRequestedPrecisionsTAG {
	GLSLPrecisionQualifier eDefaultUserVertFloat // @0
	GLSLPrecisionQualifier eDefaultUserVertInt // @4
	GLSLPrecisionQualifier eDefaultUserVertSampler // @8
	GLSLPrecisionQualifier eDefaultUserFragFloat // @c
	GLSLPrecisionQualifier eDefaultUserFragInt // @10
	GLSLPrecisionQualifier eDefaultUserFragSampler // @14
	GLSLPrecisionQualifier eVertBooleanPrecision // @18
	GLSLPrecisionQualifier eFragBooleanPrecision // @1c
	GLSLPrecisionQualifier eBIStateFloat // @20
	GLSLPrecisionQualifier eBIStateInt // @24
	GLSLPrecisionQualifier eBIVertAttribFloat // @28
	GLSLPrecisionQualifier eBIVaryingFloat // @2c
	GLSLPrecisionQualifier eBIFragFloat // @30
	GLSLPrecisionQualifier eGLPosition // @34
	GLSLPrecisionQualifier eGLPointSize // @38
	GLSLPrecisionQualifier eGLPointCoord // @3c
	GLSLPrecisionQualifier eDepthRange // @40
	GLSLPrecisionQualifier eForceUserVertFloat // @44
	GLSLPrecisionQualifier eForceUserVertInt // @48
	GLSLPrecisionQualifier eForceUserVertSampler // @4c
	GLSLPrecisionQualifier eForceUserFragFloat // @50
	GLSLPrecisionQualifier eForceUserFragInt // @54
	GLSLPrecisionQualifier eForceUserFragSampler // @58
}

typedef struct GLSLRequestedPrecisionsTAG GLSLRequestedPrecisions

struct GLSLCompilerResourcesTAG {
	IMG_INT32 iGLMaxVertexAttribs // @0
	IMG_INT32 iGLMaxTextureImageUnits // @4
	IMG_INT32 iGLMaxDrawBuffers // @8
	IMG_INT32 iGLMaxVertexTextureImageUnits // @c
	IMG_INT32 iGLMaxCombinedTextureImageUnits // @10
	IMG_INT32 iGLMaxVertexUniformVectors // @14
	IMG_INT32 iGLMaxVaryingVectors // @18
	IMG_INT32 iGLMaxFragmentUniformVectors // @1c
}

typedef struct GLSLCompilerResourcesTAG GLSLCompilerResources

struct GLSLInlineFuncRulesTAG {
	IMG_BOOL bInlineSamplerParamFunc // @0
	IMG_BOOL bInlineCalledOnceFunc // @4
	IMG_UINT32 uNumICInstrsBodyLessThan // @8
	IMG_UINT32 uNumParamComponentsGreaterThan // @c
}

typedef struct GLSLInlineFuncRulesTAG GLSLInlineFuncRules

struct GLSLUnrollLoopRulesTAG {
	IMG_BOOL bEnableUnroll // @0
	IMG_BOOL bUnrollRelativeAddressingOnly // @4
	IMG_UINT32 uMaxNumIterations // @8
}

typedef struct GLSLUnrollLoopRulesTAG GLSLUnrollLoopRules

struct GLSLInitCompilerContextTAG {
	GLSLLogFiles eLogFiles // @0
	IMG_BOOL bSuccessfulInit // @4
	GLSLRequestedPrecisions sRequestedPrecisions // @8
	GLSLCompilerResources sCompilerResources // @64
	GLSLInlineFuncRules sInlineFuncRules // @84
	GLSLUnrollLoopRules sUnrollLoopRules // @94
	IMG_VOID* pvCompilerPrivateData // @a0
}

typedef struct GLSLInitCompilerContextTAG GLSLInitCompilerContext

struct GLSLCompileProgramContextTAG {
	GLSLInitCompilerContext* psInitCompilerContext // @0
	IMG_CHAR** ppszSourceCodeStrings // @4
	IMG_UINT32 uNumSourceCodeStrings // @8
	GLSLProgramType eProgramType // @c
	IMG_BOOL bCompleteProgram // @10
	IMG_BOOL bDisplayMetrics // @14
	IMG_BOOL bValidateOnly // @18
	GLSLCompilerWarnings eEnabledWarnings // @1c
}

typedef struct GLSLCompileProgramContextTAG GLSLCompileProgramContext

struct GLES2TextureChunkRec {
	IMG_UINT32 ui32BytesPerChunk // @0
	IMG_UINT32 ui32ChunkFormat // @4
}

typedef struct GLES2TextureChunkRec GLES2TextureChunk

struct GLES2TextureFormatRec {
	IMG_UINT32 ui32NumChunks // @0
	IMG_UINT32 ui32TotalBytesPerTexel // @4
	IMG_UINT32 ui32BaseFormatIndex // @8
	USP_TEX_FORMAT sTexFormat // @c
	GLES2TextureChunk[4] asChunk // @40
}

typedef struct GLES2TextureFormatRec GLES2TextureFormat

struct GLES2MipMapLevelRec {
	GLES2FrameBufferAttachable sFBAttachable // @0
	IMG_UINT8* pui8Buffer // @14
	IMG_UINT32 ui32Width // @18
	IMG_UINT32 ui32Height // @1c
	IMG_UINT32 ui32ImageSize // @20
	IMG_INT32 i32WidthLog2 // @24
	IMG_INT32 i32HeightLog2 // @28
	GLenum eRequestedFormat // @2c
	const GLES2TextureFormat* psTexFormat // @30
	struct GLES2TextureRec* psTex // @34
	IMG_UINT32 ui32Level // @38
}

struct GLES2TextureRec {
	GLES2NamedItem sNamedItem // @0
	FRMFrameResource sResource // @c
	GLES2TextureParamState sState // @18
	IMG_UINT32 ui32TextureTarget // @44
	IMG_UINT32 ui32NumLevels // @48
	GLES2MipMapLevel* psMipLevel // @4c
	IMG_UINT32 ui32NumRenderTargets // @50
	IMG_BOOL bResidence // @54
	IMG_BOOL bHasEverBeenGhosted // @58
	IMG_UINT32 ui32LevelsConsistent // @5c
	const GLES2TextureFormat* psFormat // @60
	IMG_UINT32 ui32HWFlags // @64
	IMG_UINT32 ui32ChunkSize // @68
	PVRSRV_CLIENT_MEM_INFO* psMemInfo // @6c
	void* pfnReadBackData // @70
	EGLImage* psEGLImageSource // @74
	EGLImage* psEGLImageTarget // @78
}

typedef struct GLES2MipMapLevelRec GLES2MipMapLevel

struct GLES2TextureParamStateRec {
	IMG_UINT32 ui32StateWord0 // @0
	IMG_UINT32[4] aui32StateWord1 // @4
	IMG_UINT32[4] aui32StateWord2 // @14
	IMG_UINT32 ui32MinFilter // @24
	IMG_UINT32 ui32MagFilter // @28
}

typedef struct GLES2TextureParamStateRec GLES2TextureParamState

struct GLES2TextureUnitStateRec {
	GLES2TextureParamState*[2] psTexture // @0
}

typedef struct GLES2TextureUnitStateRec GLES2TextureUnitState

void

typedef struct GLES2TextureRec GLES2Texture

struct GLES2TextureManagerRec {
	IMG_UINT32 ui32GhostMem // @0
	FRMFrameResourceManager sFRM // @4
	PVRSRV_CLIENT_MEM_INFO* psWhiteDummyTexture // @3c
	PVRSRV_CLIENT_MEM_INFO* psBlackDummyTexture // @40
}

typedef struct GLES2TextureManagerRec GLES2TextureManager

typedef void* PFNCopyTextureData

void

struct GLES2TextureMachineRec {
	GLES2Texture*[2] psDefaultTexture // @0
	GLES2Texture*[8] apsBoundTexture // @8
	IMG_UINT32[8] aui32CurrentTarget // @48
	IMG_BOOL[8] abTexUnitValid // @68
	void* pfnInitTextureManager // @88
}

void

typedef struct GLES2TextureMachineRec GLES2TextureMachine

struct GLES2CompiledTextureState_TAG {
	IMG_UINT32 ui32ImageUnitEnables // @0
	PDS_TEXTURE_IMAGE_UNIT[32] asTextureImageChunks // @4
	IMG_UINT32[8] aui32ChunkCount // @184
	const GLES2TextureFormat*[8] apsTexFormat // @1a4
	IMG_BOOL bSomeTexturesWereGhosted // @1c4
}

typedef struct GLES2CompiledTextureState_TAG GLES2CompiledTextureState

void

typedef struct {
	GLenum[2] eHint // @0
} GLES2hintState

struct GLES2rasterStateRec {
	GLES2color sBlendColor // @0
	IMG_UINT32 ui32BlendEquation // @10
	IMG_UINT32 ui32BlendFactor // @14
	IMG_UINT32 ui32BlendColor // @18
	IMG_UINT32 ui32ColorMask // @1c
	GLES2color sClearColor // @20
	IMG_UINT32 ui32ClearColor // @30
}

typedef struct GLES2rasterStateRec GLES2rasterState

struct GLES2polygonStateRec {
	GLenum eCullMode // @0
	GLenum eFrontFaceDirection // @4
	IMG_FLOAT fFactor // @8
	IMG_FLOAT fUnits // @c
}

typedef struct GLES2polygonStateRec GLES2polygonState

struct GLES2depthStateRec {
	IMG_UINT32 ui32TestFunc // @0
	IMG_FLOAT fClear // @4
}

typedef struct GLES2depthStateRec GLES2depthState

struct GLES2viewportRec {
	IMG_INT32 i32X // @0
	IMG_INT32 i32Y // @4
	IMG_UINT32 ui32Width // @8
	IMG_UINT32 ui32Height // @c
	IMG_FLOAT fZNear // @10
	IMG_FLOAT fZFar // @14
	IMG_FLOAT fXCenter // @18
	IMG_FLOAT fXScale // @1c
	IMG_FLOAT fYCenter // @20
	IMG_FLOAT fYScale // @24
	IMG_FLOAT fZCenter // @28
	IMG_FLOAT fZScale // @2c
}

typedef struct GLES2viewportRec GLES2viewport

struct GLES2lineStateRec {
	IMG_FLOAT fWidth // @0
}

typedef struct GLES2lineStateRec GLES2lineState

struct GLES2multisampleStateRec {
	IMG_FLOAT fSampleCoverageValue // @0
	IMG_BOOL bSampleCoverageInvert // @4
}

typedef struct GLES2multisampleStateRec GLES2multisampleState

struct GLES2stencilStateRec {
	IMG_INT32 i32Clear // @0
	IMG_UINT32 ui32FFStencil // @4
	IMG_UINT32 ui32BFStencil // @8
	IMG_UINT32 ui32FFStencilRef // @c
	IMG_UINT32 ui32BFStencilRef // @10
}

typedef struct GLES2stencilStateRec GLES2stencilState

struct GLES2textureStateRec {
	IMG_UINT32 ui32ActiveTexture // @0
	GLES2TextureUnitState* psActive // @4
	GLES2TextureUnitState[8] asUnit // @8
}

typedef struct GLES2textureStateRec GLES2textureState

struct GLES2clientPixelStateRec {
	IMG_UINT32 ui32PackAlignment // @0
	IMG_UINT32 ui32UnpackAlignment // @4
}

typedef struct GLES2clientPixelStateRec GLES2clientPixelState

struct GLES2scissorRec {
	IMG_INT32 i32ScissorX // @0
	IMG_INT32 i32ScissorY // @4
	IMG_UINT32 ui32ScissorWidth // @8
	IMG_UINT32 ui32ScissorHeight // @c
}

typedef struct GLES2scissorRec GLES2scissor

struct GLES2stateRec {
	GLES2hintState sHints // @0
	GLES2scissor sScissor // @8
	GLES2clientPixelState sClientPixel // @18
	GLES2textureState sTexture // @20
	GLES2AttribState sAttrib // @68
	GLES2stencilState sStencil // @168
	GLES2multisampleState sMultisample // @17c
	GLES2polygonState sPolygon // @184
	GLES2rasterState sRaster // @194
	GLES2depthState sDepth // @1c8
	GLES2viewport sViewport // @1d0
	GLES2lineState sLine // @200
}

typedef struct GLES2stateRec GLES2state

struct GLSLUniFlexCodeTAG {
	IMG_VOID* pvUFCode // @0
	IMG_UINT32 uNumConstRanges // @4
	GLSLConstRange* psConstRangeList // @8
	IMG_UINT32 uConstStaticFlagCount // @c
	IMG_UINT32* puConstStaticFlags // @10
	IMG_UINT32 uNumIndexableTempArrays // @14
	UNIFLEX_INDEXABLE_TEMP_SIZE* psIndexableTempArraySizes // @18
	IMG_UINT32 uTexCoordCentroidMask // @1c
	IMG_UINT32[16] auSamplerDims // @20
	IMG_BOOL bVaryingsPacked // @60
	GLSLVaryingMask eActiveVaryingMask // @64
	IMG_UINT32[10] auTexCoordDims // @68
	GLSLPrecisionQualifier[10] aeTexCoordPrecisions // @90
	USP_PC_SHADER* psUniPatchInput // @b8
	USP_PC_SHADER* psUniPatchInputMSAATrans // @bc
}

typedef struct GLSLUniFlexCodeTAG GLSLUniFlexCode

struct GLSLCompileUniflexProgramContextTAG {
	GLSLProgramFlags eOutputCodeType // @0
	IMG_BOOL bCompileMSAATrans // @4
	GLSLUniFlexHWCodeInfo* psUniflexHWCodeInfo // @8
	GLSLCompileProgramContext* psCompileProgramContext // @c
}

typedef struct GLSLCompileUniflexProgramContextTAG GLSLCompileUniflexProgramContext

struct GLSLCompiledUniflexProgramTAG {
	GLSLProgramType eProgramType // @0
	GLSLProgramFlags eProgramFlags // @4
	IMG_BOOL bSuccessfullyCompiled // @8
	GLSLInfoLog sInfoLog // @c
	GLSLUniFlexCode* psUniFlexCode // @14
	GLSLBindingSymbolList* psBindingSymbolList // @18
	GLSLCompileUniflexProgramContext* psCompileUniflexProgramContext // @1c
}

typedef struct GLSLCompiledUniflexProgramTAG GLSLCompiledUniflexProgram

struct GLES2UniformRec {
	IMG_CHAR* pszName // @0
	IMG_INT32 i32Location // @4
	IMG_UINT32 ui32ActiveArraySize // @8
	IMG_UINT32 ui32DeclaredArraySize // @c
	GLSLTypeSpecifier eTypeSpecifier // @10
	IMG_UINT32 ui32VPSamplerIndex // @14
	IMG_UINT32 ui32FPSamplerIndex // @18
	GLSLBindingSymbol* psSymbolVP // @1c
	GLSLBindingSymbol* psSymbolFP // @20
}

typedef struct GLES2UniformRec GLES2Uniform

struct GLES2BuiltInUniformRec {
	GLSLBuiltInVariableID eBuiltinVariableID // @0
	GLSLBindingSymbol* psSymbolVP // @4
	GLSLBindingSymbol* psSymbolFP // @8
}

typedef struct GLES2BuiltInUniformRec GLES2BuiltInUniform

typedef struct UCH_UseCodeHeapTAG UCH_UseCodeHeap

struct UCH_UseCodeHeapTAG {
	UCH_CodeHeapType eType // @0
	PVRSRV_DEV_DATA* ps3DDevData // @4
	PVRSRV_CLIENT_MEM_INFO* psCodeMemory // @8
	UCH_UseCodeBlock* psFreeBlockList // @c
	IMG_INT32 i32AllocationsNotDeallocated // @10
	IMG_HANDLE hHeapAllocator // @14
	IMG_BOOL bDirtySinceLastTAKick // @18
}

struct UCH_UseCodeBlockTAG {
	UCH_UseCodeHeap* psHeap // @0
	PVRSRV_CLIENT_MEM_INFO* psCodeMemory // @4
	IMG_DEV_VIRTADDR sCodeAddress // @8
	IMG_UINT8* pui8LinAddress // @c
	IMG_UINT32 ui32Size // @10
	struct UCH_UseCodeBlockTAG* psNext // @14
	IMG_VOID* pvClientData // @18
}

typedef struct UCH_UseCodeBlockTAG UCH_UseCodeBlock

enum undefined {
	UCH_USE_CODE_HEAP_TYPE = 1; //0x1
	UCH_PDS_CODE_HEAP_TYPE = 2; //0x2
}

typedef enum undefined UCH_CodeHeapType

struct GLES2PDSInfo_TAG {
	IMG_UINT32 ui32DMSInfo // @0
	IMG_UINT32[31] aui32TSPParamFetchInterface // @4
	IMG_UINT32[31] aui32LayerControl // @80
	IMG_UINT32 ui32NonDependentTextureCount // @fc
	IMG_UINT32 ui32IterationCount // @100
	IMG_UINT32 ui32DependencyControl // @104
	IMG_UINT32 ui32NonDependentImageUnits // @108
}

typedef struct GLES2PDSInfo_TAG GLES2PDSInfo

struct GLES2USESecondaryUploadTaskTAG {
	IMG_UINT32 ui32RefCount // @0
	UCH_UseCodeBlock* psSecondaryCodeBlock // @4
}

typedef struct GLES2USESecondaryUploadTaskTAG GLES2USESecondaryUploadTask

struct GLES2SharedShaderStateRec {
	GLSLBindingSymbolList sBindingSymbolList // @0
	GLSLProgramFlags eProgramFlags // @1c
	GLSLVaryingMask eActiveVaryingMask // @20
	IMG_UINT32[10] aui32TexCoordDims // @24
	GLSLPrecisionQualifier[10] aeTexCoordPrecisions // @4c
	IMG_VOID* pvUniPatchShader // @74
	IMG_VOID* pvUniPatchShaderMSAATrans // @78
	GLES2USESecondaryUploadTask* psSecondaryUploadTask // @7c
	IMG_UINT32 ui32RefCount // @80
}

typedef struct GLES2SharedShaderStateRec GLES2SharedShaderState

struct GLES2ShaderRec {
	GLES2NamedItem sNamedItem // @0
	IMG_UINT32 ui32Type // @c
	IMG_CHAR* pszSource // @10
	IMG_CHAR* pszInfoLog // @14
	GLES2SharedShaderState* psSharedState // @18
	IMG_BOOL bSuccessfulCompile // @1c
	IMG_BOOL bDeleting // @20
}

typedef struct GLES2ShaderRec GLES2Shader

struct GLES2AttributeRec {
	IMG_INT32 i32Index // @0
	IMG_UINT32 ui32NumIndices // @4
	GLSLBindingSymbol* psSymbolVP // @8
}

typedef struct GLES2AttributeRec GLES2Attribute

struct GLES2VaryingRec {
	IMG_CHAR* pszName // @0
	GLSLTypeSpecifier eTypeSpecifier // @4
	IMG_UINT32 ui32ActiveArraySize // @8
	IMG_UINT32 ui32DeclaredArraySize // @c
	GLSLBindingSymbol* psSymbolVP // @10
	GLSLBindingSymbol* psSymbolFP // @14
}

typedef struct GLES2VaryingRec GLES2Varying

struct GLES2AttribUserBindingRec {
	IMG_CHAR* pszName // @0
	IMG_INT32 i32Index // @4
	struct GLES2AttribUserBindingRec* psNext // @8
}

typedef struct GLES2AttribUserBindingRec GLES2AttribUserBinding

struct GLES2CopyRangeTAG {
	IMG_UINT32 ui32Start // @0
	IMG_UINT32 ui32End // @4
}

typedef struct GLES2CopyRangeTAG GLES2CopyRange

struct GLES2UniformCopyRangeTAG {
	GLES2CopyRange sFloatCopyRange // @0
	GLES2CopyRange sBoolCopyRange // @8
	GLES2CopyRange sIntCopyRange // @10
}

typedef struct GLES2UniformCopyRangeTAG GLES2UniformCopyRange

struct GLES2TextureSamplerRec {
	IMG_UINT8 ui8SamplerTypeIndex // @0
	IMG_UINT8 ui8ImageUnit // @1
	GLES2Uniform* psUniformEntry // @4
}

typedef struct GLES2TextureSamplerRec GLES2TextureSampler

struct GLES2CompilerFuncTableTAG {
	IMG_BOOL* pfnInitCompiler // @0
	IMG_BOOL* pfnShutDownCompiler // @4
	GLSLCompiledUniflexProgram** pfnCompileToUniflex // @8
	void* pfnDisplayMetrics // @c
	void* pfnFreeCompiledUniflexProgram // @10
}

typedef enum tag_img_bool IMG_BOOL

void

void

typedef struct GLES2CompilerFuncTableTAG GLES2CompilerFuncTable

struct GLES2ProgramMachineRec {
	IMG_VOID* pvUniPatchContext // @0
	GLES2Program* psCurrentProgram // @4
	GLES2USEShaderVariant* psCurrentFragmentVariant // @8
	GLES2USEShaderVariant* psCurrentVertexVariant // @c
	IMG_HANDLE hGLSLCompiler // @10
	GLES2CompilerFuncTable sGLSLFuncTable // @14
	GLSLInitCompilerContext sInitCompilerContext // @28
	PVRSRV_CLIENT_MEM_INFO* psDummyFragUSECode // @cc
	PVRSRV_CLIENT_MEM_INFO* psDummyVertUSECode // @d0
}

typedef struct GLES2ProgramMachineRec GLES2ProgramMachine

enum GLES2PrimType_TAG {
	GLES2_PRIMTYPE_POINT = 0; //0x0
	GLES2_PRIMTYPE_LINE = 1; //0x1
	GLES2_PRIMTYPE_LINE_LOOP = 2; //0x2
	GLES2_PRIMTYPE_LINE_STRIP = 3; //0x3
	GLES2_PRIMTYPE_TRIANGLE = 4; //0x4
	GLES2_PRIMTYPE_TRIANGLE_STRIP = 5; //0x5
	GLES2_PRIMTYPE_TRIANGLE_FAN = 6; //0x6
	GLES2_PRIMTYPE_SPRITE = 7; //0x7
	GLES2_PRIMTYPE_MAX = 8; //0x8
}

typedef enum GLES2PrimType_TAG GLES2PrimType

struct GLES2PDSVertexState_TAG {
	PDS_VERTEX_SHADER_PROGRAM_INFO sProgramInfo // @0
	IMG_UINT32[186] aui32LastPDSProgram // @8a0
	IMG_UINT32 ui32ProgramSize // @b88
}

typedef struct GLES2PDSVertexState_TAG GLES2PDSVertexState

struct GLES2CompiledRenderState_TAG {
	IMG_UINT32 ui32ISPControlWordA // @0
	IMG_UINT32 ui32ISPControlWordB // @4
	IMG_UINT32 ui32ISPControlWordC // @8
	IMG_UINT32 ui32BFISPControlWordA // @c
	IMG_UINT32 ui32BFISPControlWordB // @10
	IMG_UINT32 ui32BFISPControlWordC // @14
	IMG_UINT32 ui32MTEControl // @18
	IMG_UINT32 ui32ARGBBlendConstantColor // @1c
	IMG_BOOL bHasConstantColorBlend // @20
	IMG_UINT32 ui32AlphaTestFlags // @24
	IMG_UINT32 ui32ISPFeedback0 // @28
	IMG_UINT32 ui32ISPFeedback1 // @2c
}

typedef struct GLES2CompiledRenderState_TAG GLES2CompiledRenderState

struct GLES2BRN22336Prims_TAG {
	UCH_UseCodeBlock* psVertexCodeBlock // @0
	PVRSRV_CLIENT_MEM_INFO* psPDSVertexBlock // @4
	PVRSRV_CLIENT_MEM_INFO* psVertexAndIndexBlock // @8
	IMG_UINT32 ui32OutputStateDataSize // @c
	IMG_UINT32 ui32VertexProgramDataSize // @10
}

typedef struct GLES2BRN22336Prims_TAG GLES2BRN22336Prims

struct GLES2BRN21797State_TAG {
	PVRSRV_CLIENT_MEM_INFO* psPDSStateBlock // @0
	IMG_UINT32 ui32PDSProgramDataSize // @4
}

typedef struct GLES2BRN21797State_TAG GLES2BRN21797State

struct GLES2PrimitiveMachine_TAG {
	GLES2CompiledRenderState sRenderState // @0
	GLES2CompiledTextureState sVertexTextureState // @30
	GLES2CompiledTextureState sFragmentTextureState // @1f8
	GLES2PDSVertexState sPDSVertexState // @3c0
	UCH_UseCodeBlock* psHWBGCodeBlock // @f4c
	GLES2BRN22336Prims sBRN22336Prims // @f50
	GLES2BRN21797State sBRN21797State // @f64
	UCH_UseCodeBlock* psClearVertexCodeBlock // @f6c
	UCH_UseCodeBlock* psClearFragmentCodeBlock // @f70
	UCH_UseCodeBlock* psAccumVertexCodeBlock // @f74
	UCH_UseCodeBlock* psScissorVertexCodeBlock // @f78
	UCH_UseCodeBlock* psDummyPixelSecondaryPDSCode // @f7c
	UCH_UseCodeBlock* psPixelEventEOPCodeBlock // @f80
	UCH_UseCodeBlock* psStateCopyCodeBlock // @f84
	GLES2PrimType ePreviousPrimitiveType // @f88
	IMG_BOOL bPrevious32BitIndices // @f8c
	IMG_UINT32 ui32ArrayEnables // @f90
	IMG_UINT32 ui32CurrentOutputStateBlockUSEPipe // @f94
	IMG_DEV_VIRTADDR uOutputStatePDSBaseAddress // @f98
	IMG_UINT32 ui32OutputStatePDSDataSize // @f9c
	IMG_UINT32 ui32OutputStateUSEAttribSize // @fa0
	IMG_DEV_VIRTADDR uVertexPDSBaseAddress // @fa4
	IMG_UINT32 ui32VertexPDSDataSize // @fa8
	IMG_DEV_VIRTADDR uFragmentPDSBaseAddress // @fac
	IMG_UINT32 ui32FragmentPDSDataSize // @fb0
	IMG_DEV_VIRTADDR uVertexPDSSecAttribBaseAddress // @fb4
	IMG_UINT32 ui32VertexPDSSecAttribDataSize // @fb8
	IMG_DEV_VIRTADDR uFragmentPDSSecAttribBaseAddress // @fbc
	IMG_UINT32 ui32FragmentPDSSecAttribDataSize // @fc0
}

typedef struct GLES2PrimitiveMachine_TAG GLES2PrimitiveMachine

struct GLES2_Extension_TAG {
	const IMG_CHAR* pszExtensionName // @0
	IMG_UINT32 ui32ExtensionFlag // @4
}

struct GLESAppHintsRec {
	IMG_BOOL bForceNoExternalZBuffer // @0
	IMG_BOOL bDumpShaders // @4
	IMG_BOOL bDumpCompilerLogFiles // @8
	IMG_BOOL bOptimisedValidation // @c
	IMG_BOOL bDisableHWTextureUpload // @10
	IMG_UINT32 ui32AdjustShaderPrecision // @14
	IMG_UINT32 ui32MaxPDSVariants // @18
	IMG_UINT32 ui32DefaultVIBufferSize // @1c
	IMG_UINT32 ui32DefaultPDSVertBufferSize // @20
	IMG_UINT32 ui32DefaultVDMBufferSize // @24
	IMG_BOOL bStrictBinaryVersionComparison // @28
	IMG_FLOAT fPolygonUnitsMultiplier // @2c
	IMG_FLOAT fPolygonFactorMultiplier // @30
}

typedef struct GLESAppHintsRec GLESAppHints

struct GLES2ContextSharedStateTAG {
	IMG_UINT32 ui32RefCount // @0
	GLES2TextureManager* psTextureManager // @4
	FRMFrameResourceManager sUSEShaderVariantManager // @8
	GLES2NamesArray*[5] apsNamesArray // @40
	UCH_UseCodeHeap* psUSEVertexCodeHeap // @54
	UCH_UseCodeHeap* psUSEFragmentCodeHeap // @58
	UCH_UseCodeHeap* psPDSFragmentCodeHeap // @5c
	PVRSRV_RES_HANDLE hPrimaryLock // @60
	PVRSRV_RES_HANDLE hSecondaryLock // @68
	PVRSRV_CLIENT_MEM_INFO* psSequentialStaticIndicesMemInfo // @70
	PVRSRV_CLIENT_MEM_INFO* psLineStripStaticIndicesMemInfo // @74
}

typedef struct GLES2ContextSharedStateTAG GLES2ContextSharedState

typedef void* PFNSpanPack

// function PC=<0x20adc;0x20bcc>
void CopyTextureFloatRGBA(
	IMG_UINT32* pui32Dest
	IMG_UINT32* pui32Src
	IMG_UINT32 ui32Width
	IMG_UINT32 ui32Height
	IMG_UINT32 ui32SrcStrideInBytes
	GLES2MipMapLevel* psMipLevel
	)
{
	IMG_UINT32 i
	IMG_UINT32* pui32RedDest
	IMG_UINT32* pui32GreenDest
	IMG_UINT32* pui32BlueDest
	IMG_UINT32* pui32AlphaDest
	IMG_UINT32 ui32SrcRowByteIncrement
	IMG_UINT32 ui32DstRowIncrement
}


// function PC=<0x20bcc;0x20ca4>
void CopyTextureFloatRGB(
	IMG_UINT32* pui32Dest
	IMG_UINT32* pui32Src
	IMG_UINT32 ui32Width
	IMG_UINT32 ui32Height
	IMG_UINT32 ui32SrcStrideInBytes
	GLES2MipMapLevel* psMipLevel
	)
{
	IMG_UINT32 i
	IMG_UINT32* pui32RedDest
	IMG_UINT32* pui32GreenDest
	IMG_UINT32* pui32BlueDest
	IMG_UINT32 ui32SrcRowByteIncrement
	IMG_UINT32 ui32DstRowIncrement
}


// function PC=<0x20ca4;0x20d50>
void CopyTextureFloatLA(
	IMG_UINT32* pui32Dest
	IMG_UINT32* pui32Src
	IMG_UINT32 ui32Width
	IMG_UINT32 ui32Height
	IMG_UINT32 ui32SrcStrideInBytes
	GLES2MipMapLevel* psMipLevel
	)
{
	IMG_UINT32 i
	IMG_UINT32* pui32LuminanceDest
	IMG_UINT32* pui32AlphaDest
	IMG_UINT32 ui32SrcRowByteIncrement
	IMG_UINT32 ui32DstRowIncrement
}


// function PC=<0x20d50;0x20e00>
void CopyTextureHalfFloatRGBA(
	IMG_UINT16* pui16Dest
	IMG_UINT16* pui16Src
	IMG_UINT32 ui32Width
	IMG_UINT32 ui32Height
	IMG_UINT32 ui32SrcStrideInBytes
	GLES2MipMapLevel* psMipLevel
	)
{
	IMG_UINT32 i
	IMG_UINT16* pui16RedGreenDest
	IMG_UINT16* pui16BlueAlphaDest
	IMG_UINT32 ui32SrcRowByteIncrement
	IMG_UINT32 ui32DstRowIncrement
}


// function PC=<0x20e00;0x20ed0>
void CopyTextureHalfFloatRGB(
	IMG_UINT16* pui16Dest
	IMG_UINT16* pui16Src
	IMG_UINT32 ui32Width
	IMG_UINT32 ui32Height
	IMG_UINT32 ui32SrcStrideInBytes
	GLES2MipMapLevel* psMipLevel
	)
{
	IMG_UINT32 i
	IMG_UINT16* pui16RedGreenDest
	IMG_UINT16* pui16BlueDest
	IMG_UINT32 ui32SrcRowByteIncrement
	IMG_UINT32 ui32DstRowIncrement
}


// function
void CopyTexturePVRTC(
	IMG_UINT32* pui32Dest
	IMG_UINT32* pui32Src
	IMG_UINT32 ui32Width
	IMG_UINT32 ui32Height
	)
{
	IMG_UINT32 i
}


// function
void CopyTexturePVRTC(
	IMG_UINT32* pui32Dest
	IMG_UINT32* pui32Src
	IMG_UINT32 ui32Width
	IMG_UINT32 ui32Height
	)
{
	IMG_UINT32 i
}


// function PC=<0x20f28;0x20fac>
void CopyTextureETC1(
	IMG_UINT32* pui32Dest
	IMG_UINT32* pui32Src
	IMG_UINT32 ui32Width
	IMG_UINT32 ui32Height
	IMG_UINT32 ui32SrcStrideInBytes
	GLES2MipMapLevel* psMipLevel
	)
{
	IMG_UINT32 i
	IMG_UINT8* pui8Src
	IMG_UINT8* pui8Dst
}


// function PC=<0x20fac;0x2101c>
void CopyTexture32Bits(
	IMG_UINT32* pui32Dest
	IMG_UINT32* pui32Src
	IMG_UINT32 ui32Width
	IMG_UINT32 ui32Height
	IMG_UINT32 ui32SrcStrideInBytes
	GLES2MipMapLevel* psMipLevel
	)
{
	IMG_UINT32 i
	IMG_UINT32 ui32SrcRowByteIncrement
	IMG_UINT32 ui32DstRowIncrement
}


// function PC=<0x2101c;0x21088>
void CopyTexture16Bits(
	IMG_UINT16* pui16Dest
	IMG_UINT16* pui16Src
	IMG_UINT32 ui32Width
	IMG_UINT32 ui32Height
	IMG_UINT32 ui32SrcStrideInBytes
	GLES2MipMapLevel* psMipLevel
	)
{
	IMG_UINT32 i
	IMG_UINT32 ui32SrcRowByteIncrement
	IMG_UINT32 ui32DstRowIncrement
}


// function PC=<0x21088;0x210e8>
void CopyTexture8Bits(
	IMG_UINT8* pui8Dest
	IMG_UINT8* pui8Src
	IMG_UINT32 ui32Width
	IMG_UINT32 ui32Height
	IMG_UINT32 ui32SrcStrideInBytes
	GLES2MipMapLevel* psMipLevel
	)
{
	IMG_UINT32 i
	IMG_UINT32 ui32SrcRowByteIncrement
	IMG_UINT32 ui32DstRowIncrement
}


// function PC=<0x210e8;0x21160>
void CopyTexture5551(
	IMG_UINT16* pui16Dest
	IMG_UINT16* pui16Src
	IMG_UINT32 ui32Width
	IMG_UINT32 ui32Height
	IMG_UINT32 ui32SrcStrideInBytes
	GLES2MipMapLevel* psMipLevel
	)
{
	IMG_UINT32 i
	IMG_UINT16 ui16Temp
	IMG_UINT32 ui32SrcRowByteIncrement
	IMG_UINT32 ui32DstRowIncrement
}


// function PC=<0x21160;0x211d8>
void CopyTexture4444(
	IMG_UINT16* pui16Dest
	IMG_UINT16* pui16Src
	IMG_UINT32 ui32Width
	IMG_UINT32 ui32Height
	IMG_UINT32 ui32SrcStrideInBytes
	GLES2MipMapLevel* psMipLevel
	)
{
	IMG_UINT32 i
	IMG_UINT16 ui16Temp
	IMG_UINT32 ui32SrcRowByteIncrement
	IMG_UINT32 ui32DstRowIncrement
}


// function PC=<0x211d8;0x21268>
void CopyTexture888X(
	IMG_UINT8* pui8Dest
	IMG_UINT8* pui8Src
	IMG_UINT32 ui32Width
	IMG_UINT32 ui32Height
	IMG_UINT32 ui32SrcStrideInBytes
	GLES2MipMapLevel* psMipLevel
	)
{
	IMG_UINT32 i
	IMG_UINT32 ui32SrcRowByteIncrement
	IMG_UINT32 ui32DstRowIncrement
}


// function PC=<0x21268;0x212f4>
void CopyTexture888to565(
	IMG_UINT16* pui16Dest
	IMG_UINT8* pui8Src
	IMG_UINT32 ui32Width
	IMG_UINT32 ui32Height
	IMG_UINT32 ui32SrcStrideInBytes
	GLES2MipMapLevel* psMipLevel
	)
{
	IMG_UINT32 i
	IMG_UINT16 ui16OutData
	IMG_UINT8 ui8Red
	IMG_UINT8 ui8Green
	IMG_UINT8 ui8Blue
	IMG_UINT32 ui32SrcRowByteIncrement
	IMG_UINT32 ui32DstRowIncrement
}


// function PC=<0x212f4;0x213a4>
void CopyTexture565toRGBX8888(
	IMG_UINT8* pui8Dest
	IMG_UINT16* pui16Src
	IMG_UINT32 ui32Width
	IMG_UINT32 ui32Height
	IMG_UINT32 ui32SrcStrideInBytes
	GLES2MipMapLevel* psMipLevel
	)
{
	IMG_UINT32 i
	IMG_UINT8 ui8OutData
	IMG_UINT16 ui16Temp
	IMG_UINT32 ui32SrcRowByteIncrement
	IMG_UINT32 ui32DstRowIncrement
}


// function PC=<0x213a4;0x21454>
void CopyTexture5551to4444(
	IMG_UINT16* pui16Dest
	IMG_UINT16* pui16Src
	IMG_UINT32 ui32Width
	IMG_UINT32 ui32Height
	IMG_UINT32 ui32SrcStrideInBytes
	GLES2MipMapLevel* psMipLevel
	)
{
	IMG_UINT32 i
	IMG_UINT32 ui32SrcRowByteIncrement
	IMG_UINT32 ui32DstRowIncrement
}


// function PC=<0x21454;0x2150c>
void CopyTexture5551toBGRA8888(
	IMG_UINT8* pui8Dest
	IMG_UINT16* pui16Src
	IMG_UINT32 ui32Width
	IMG_UINT32 ui32Height
	IMG_UINT32 ui32SrcStrideInBytes
	GLES2MipMapLevel* psMipLevel
	)
{
	IMG_UINT32 i
	IMG_UINT8 ui8OutData
	IMG_UINT16 ui16Temp
	IMG_UINT32 ui32SrcRowByteIncrement
	IMG_UINT32 ui32DstRowIncrement
}


// function PC=<0x2150c;0x215c4>
void CopyTexture5551toRGBA8888(
	IMG_UINT8* pui8Dest
	IMG_UINT16* pui16Src
	IMG_UINT32 ui32Width
	IMG_UINT32 ui32Height
	IMG_UINT32 ui32SrcStrideInBytes
	GLES2MipMapLevel* psMipLevel
	)
{
	IMG_UINT32 i
	IMG_UINT8 ui8OutData
	IMG_UINT16 ui16Temp
	IMG_UINT32 ui32SrcRowByteIncrement
	IMG_UINT32 ui32DstRowIncrement
}


// function PC=<0x215c4;0x21670>
void CopyTexture4444to5551(
	IMG_UINT16* pui16Dest
	IMG_UINT16* pui16Src
	IMG_UINT32 ui32Width
	IMG_UINT32 ui32Height
	IMG_UINT32 ui32SrcStrideInBytes
	GLES2MipMapLevel* psMipLevel
	)
{
	IMG_UINT32 i
	IMG_UINT32 ui32SrcRowByteIncrement
	IMG_UINT32 ui32DstRowIncrement
}


// function PC=<0x21670;0x2172c>
void CopyTexture4444toRGBA8888(
	IMG_UINT8* pui8Dest
	IMG_UINT16* pui16Src
	IMG_UINT32 ui32Width
	IMG_UINT32 ui32Height
	IMG_UINT32 ui32SrcStrideInBytes
	GLES2MipMapLevel* psMipLevel
	)
{
	IMG_UINT32 i
	IMG_UINT8 ui8OutData
	IMG_UINT16 ui16Temp
	IMG_UINT32 ui32SrcRowByteIncrement
	IMG_UINT32 ui32DstRowIncrement
}


// function PC=<0x2172c;0x217d8>
void CopyTextureRGBA8888to5551(
	IMG_UINT16* pui16Dest
	IMG_UINT8* pui8Src
	IMG_UINT32 ui32Width
	IMG_UINT32 ui32Height
	IMG_UINT32 ui32SrcStrideInBytes
	GLES2MipMapLevel* psMipLevel
	)
{
	IMG_UINT32 i
	IMG_UINT16 ui16OutData
	IMG_UINT8 ui8Temp
	IMG_UINT32 ui32SrcRowByteIncrement
	IMG_UINT32 ui32DstRowIncrement
}


// function PC=<0x217d8;0x21880>
void CopyTextureRGBA8888to4444(
	IMG_UINT16* pui16Dest
	IMG_UINT8* pui8Src
	IMG_UINT32 ui32Width
	IMG_UINT32 ui32Height
	IMG_UINT32 ui32SrcStrideInBytes
	GLES2MipMapLevel* psMipLevel
	)
{
	IMG_UINT32 i
	IMG_UINT16 ui16OutData
	IMG_UINT8 ui8Temp
	IMG_UINT32 ui32SrcRowByteIncrement
	IMG_UINT32 ui32DstRowIncrement
}


// function PC=<0x21880;0x21a0c>
GLES2Texture* CheckTexSubImageArgs(
	GLES2Context* gc
	GLenum target
	GLint lod
	GLint x
	GLint y
	GLsizei width
	GLsizei height
	const GLES2TextureFormat* psSubTexFormat
	IMG_UINT32* pui32Face
	IMG_UINT32* pui32Level
	)
{
	GLES2Texture* psTex
	IMG_UINT32 ui32Target
	IMG_UINT32 ui32Face
	IMG_UINT32 ui32Level
	IMG_INT32 i32MipWidth
	IMG_INT32 i32MipHeight
	const GLES2TextureFormat* psTargetTexFormat
	bad_value: \\ label @0x218ac
	bad_operation: \\ label @0x21970
}


// external function PC=<0x21a0c;0x21a50>
void glActiveTexture(
	GLenum texture
	)
{
	IMG_UINT32 ui32Unit
	GLES2Context* gc
}


// function
void TexParameterfv(
	GLES2Context* gc
	GLenum eTarget
	GLenum ePname
	void* pvParams
	)
{
	GLES2Texture* psTex
	GLES2TextureParamState* psParamState
	IMG_UINT32 ui32Target
	bad_enum: \\ label
	{
		GLenum eParam
	}
	{
		GLenum eParam
	}
	{
		GLenum eParam
	}
	{
		GLenum eParam
	}
}


// external function PC=<0x21a50;0x21c68>
void glTexParameteri(
	GLenum target
	GLenum pname
	GLint param
	)
{
	GLenum eParam
	GLES2Context* gc
	// inlined
	// function
	void TexParameterfv(
		GLES2Context* gc
		GLenum eTarget
		GLenum ePname
		void* pvParams
		)
	{
		GLES2Texture* psTex
		GLES2TextureParamState* psParamState
		IMG_UINT32 ui32Target
		bad_enum: \\ label
		{
			GLenum eParam
		}
		{
			GLenum eParam
		}
		{
			GLenum eParam
		}
		{
			GLenum eParam
		}
	}

}


// function PC=<0x21c68;0x21d4c>
void UpdateEGLImage(
	GLES2Context* gc
	GLES2Texture* psTex
	IMG_UINT32 ui32Level
	)
{
	{
		IMG_UINT32 ui32OffsetInBytes
		IMG_UINT32 ui32BytesPerTexel
		IMG_UINT32 ui32TopUsize
		IMG_UINT32 ui32TopVsize
		GLES2TextureParamState* psParams
		EGLImage* psEGLImage
		{
			IMG_UINT32 ui32FaceOffset
			IMG_UINT32 ui32Face
		}
	}
}


// external function PC=<0x21d4c;0x225d4>
void glCopyTexSubImage2D(
	GLenum target
	GLint level
	GLint xoffset
	GLint yoffset
	GLint x
	GLint y
	GLsizei width
	GLsizei height
	)
{
	GLES2Texture* psTex
	const GLES2TextureFormat* psTargetTexFormat
	PFNSpanPack pfnSpanPack
	GLenum type
	IMG_UINT8* pui8Dest
	GLES2PixelSpanInfo sSpanInfo
	IMG_VOID* pvSurfacePointer
	IMG_UINT32 i
	IMG_UINT32 ui32Level
	IMG_UINT32 ui32Face
	IMG_UINT32 ui32DstStride
	EGLDrawableParams* psReadParams
	GLES2MipMapLevel* psMipLevel
	GLenum eBaseHWTextureFormat
	GLES2Context* gc
	bad_op: \\ label @0x21e54
	{
		IMG_UINT32 ui32BufferSize
	}
}


// external function PC=<0x225d4;0x22628>
void glGenTextures(
	GLsizei n
	GLuint* textures
	)
{
	GLES2Context* gc
}


// external function PC=<0x22628;0x2278c>
IMG_BOOL BindTexture(
	GLES2Context* gc
	IMG_UINT32 ui32Unit
	IMG_UINT32 ui32Target
	IMG_UINT32 ui32Texture
	)
{
	GLES2Texture* psTex
	GLES2Texture* psBoundTexture
	GLES2NamesArray* psNamesArray
}


// external function PC=<0x2278c;0x2289c>
void glDeleteTextures(
	GLsizei n
	const GLuint* textures
	)
{
	GLES2NamesArray* psNamesArray
	IMG_INT32 i
	IMG_UINT32 j
	IMG_UINT32 k
	GLES2Context* gc
	{
		GLES2Texture* psTex
	}
}


// external function PC=<0x2289c;0x22928>
void glBindTexture(
	GLenum target
	GLuint texture
	)
{
	GLES2Context* gc
}


// function
GLES2Texture* CheckTexImageArgs(
	GLES2Context* gc
	GLenum target
	GLint level
	GLsizei width
	GLsizei height
	GLint border
	)
{
	GLES2Texture* psTex
	IMG_UINT32 ui32Target
	bad_enum: \\ label
}


// function
IMG_BOOL IsLegalRangeTex(
	GLES2Context* gc
	IMG_UINT32 ui32Target
	GLsizei w
	GLsizei h
	GLint border
	GLint level
	)
{
	bad_value: \\ label
}


// function
const GLES2TextureFormat* GetTexFormat(
	GLES2Context* gc
	GLenum format
	PFNCopyTextureData* ppfnCopyTextureData
	)
{
	IMG_BOOL bEnableTextureDepthReduce
}


// external function PC=<0x22928;0x22f04>
void glTexImage2D(
	GLenum target
	GLint level
	GLenum internalformat
	GLsizei width
	GLsizei height
	GLint border
	GLenum format
	GLenum type
	const void* pixels
	)
{
	GLES2Texture* psTex
	IMG_UINT8* pui8Dest
	IMG_UINT32 ui32Level
	IMG_UINT32 ui32Face
	PFNCopyTextureData pfnCopyTextureData
	IMG_UINT32 ui32SrcBytesPerPixel
	const GLES2TextureFormat* psTexFormat
	GLES2MipMapLevel* psMipLevel
	GLES2Context* gc
	bad_op: \\ label @0x22bc8
	// inlined
	// function
	const GLES2TextureFormat* GetTexFormat(
		GLES2Context* gc
		GLenum format
		PFNCopyTextureData* ppfnCopyTextureData
		)
	{
		IMG_BOOL bEnableTextureDepthReduce
	}

	// inlined
	// function
	GLES2Texture* CheckTexImageArgs(
		GLES2Context* gc
		GLenum target
		GLint level
		GLsizei width
		GLsizei height
		GLint border
		)
	{
		GLES2Texture* psTex
		IMG_UINT32 ui32Target
		bad_enum: \\ label
	}

	{
		IMG_VOID* pvDest
		IMG_UINT8* pui8Src
		IMG_UINT32 ui32Align
		IMG_UINT32 ui32SrcRowSize
		IMG_UINT32 ui32Padding
	}
	// inlined
	// function
	const GLES2TextureFormat* GetTexFormat(
		GLES2Context* gc
		GLenum format
		PFNCopyTextureData* ppfnCopyTextureData
		)
	{
		IMG_BOOL bEnableTextureDepthReduce
	}

}


// external function PC=<0x22f04;0x235b4>
void glTexSubImage2D(
	GLenum target
	GLint level
	GLint xoffset
	GLint yoffset
	GLsizei width
	GLsizei height
	GLenum format
	GLenum type
	const void* pixels
	)
{
	GLES2Texture* psTex
	IMG_UINT8* pui8Dest
	IMG_UINT32 ui32Level
	IMG_UINT32 ui32Face
	PFNCopyTextureData pfnCopyTextureData
	IMG_UINT32 ui32SrcBytesPerPixel
	IMG_UINT32 ui32DstStride
	const GLES2TextureFormat* psSubTexFormat
	const GLES2TextureFormat* psTargetTexFormat
	GLES2MipMapLevel* psMipLevel
	GLES2Context* gc
	bad_op: \\ label @0x2310c
	// inlined
	// function
	const GLES2TextureFormat* GetTexFormat(
		GLES2Context* gc
		GLenum format
		PFNCopyTextureData* ppfnCopyTextureData
		)
	{
		IMG_BOOL bEnableTextureDepthReduce
	}

	{
		IMG_UINT8* pui8Src
		IMG_UINT32 ui32Align
		IMG_UINT32 ui32SrcRowSize
		IMG_VOID* pvDest
		IMG_UINT32 ui32Padding
	}
	// inlined
	// function
	const GLES2TextureFormat* GetTexFormat(
		GLES2Context* gc
		GLenum format
		PFNCopyTextureData* ppfnCopyTextureData
		)
	{
		IMG_BOOL bEnableTextureDepthReduce
	}

	{
		IMG_UINT32 ui32BufferSize
	}
}


// external function PC=<0x235b4;0x237c4>
void glCompressedTexSubImage2D(
	GLenum target
	GLint level
	GLint xoffset
	GLint yoffset
	GLsizei width
	GLsizei height
	GLenum format
	GLsizei imageSize
	const void* data
	)
{
	GLES2Texture* psTex
	const GLES2TextureFormat* psSubTexFormat
	IMG_VOID* pvPixels
	IMG_UINT8* pui8Dest
	IMG_UINT32 ui32Width
	IMG_UINT32 ui32Height
	IMG_UINT32 ui32Size
	IMG_UINT32 ui32Face
	IMG_UINT32 ui32Level
	GLES2MipMapLevel* psMipLevel
	GLES2Context* gc
	{
		IMG_VOID* pvDest
		// inlined
		// function
		void CopyTexturePVRTC(
			IMG_UINT32* pui32Dest
			IMG_UINT32* pui32Src
			IMG_UINT32 ui32Width
			IMG_UINT32 ui32Height
			)
		{
			IMG_UINT32 i
		}

	}
}


// external function PC=<0x237c4;0x23f80>
void glCopyTexImage2D(
	GLenum target
	GLint level
	GLenum internalformat
	GLint x
	GLint y
	GLsizei width
	GLsizei height
	GLint border
	)
{
	GLES2Texture* psTex
	const GLES2TextureFormat* psTexFormat
	PFNSpanPack pfnSpanPack
	GLenum type
	GLenum eTextureHWFormat
	IMG_UINT8* pui8Dest
	GLES2PixelSpanInfo sSpanInfo
	IMG_VOID* pvSurfacePointer
	IMG_UINT32 i
	IMG_UINT32 ui32Level
	EGLDrawableParams* psReadParams
	GLES2MipMapLevel* psMipLevel
	GLES2Context* gc
	bad_op: \\ label @0x23998
	// inlined
	// function
	GLES2Texture* CheckTexImageArgs(
		GLES2Context* gc
		GLenum target
		GLint level
		GLsizei width
		GLsizei height
		GLint border
		)
	{
		GLES2Texture* psTex
		IMG_UINT32 ui32Target
		bad_enum: \\ label
	}

	{
		IMG_UINT32 ui32Face
	}
}


// external function PC=<0x23f80;0x242cc>
void glCompressedTexImage2D(
	GLenum target
	GLint level
	GLenum internalformat
	GLsizei width
	GLsizei height
	GLint border
	GLsizei imageSize
	const void* data
	)
{
	GLES2Texture* psTex
	IMG_UINT8* pui8Dest
	IMG_UINT32 ui32Level
	const GLES2TextureFormat* psTexFormat
	IMG_UINT32 ui32Size
	IMG_UINT32 ui32Width
	IMG_UINT32 ui32Height
	IMG_VOID* pvPixels
	GLES2MipMapLevel* psMipLevel
	PFNCopyTextureData pfnCopyTextureData
	GLES2Context* gc
	// inlined
	// function
	GLES2Texture* CheckTexImageArgs(
		GLES2Context* gc
		GLenum target
		GLint level
		GLsizei width
		GLsizei height
		GLint border
		)
	{
		GLES2Texture* psTex
		IMG_UINT32 ui32Target
		bad_enum: \\ label
	}

	{
		IMG_UINT32 ui32Face
	}
	{
		IMG_VOID* pvDest
	}
}


// external function PC=<0x242cc;0x244f0>
void glTexParameterfv(
	GLenum target
	GLenum pname
	const GLfloat* params
	)
{
	GLenum eParam
	GLES2Context* gc
	// inlined
	// function
	void TexParameterfv(
		GLES2Context* gc
		GLenum eTarget
		GLenum ePname
		void* pvParams
		)
	{
		GLES2Texture* psTex
		GLES2TextureParamState* psParamState
		IMG_UINT32 ui32Target
		bad_enum: \\ label
		{
			GLenum eParam
		}
		{
			GLenum eParam
		}
		{
			GLenum eParam
		}
		{
			GLenum eParam
		}
	}

}


// external function PC=<0x244f0;0x2470c>
void glTexParameteriv(
	GLenum target
	GLenum pname
	const GLint* params
	)
{
	GLenum eParam
	GLES2Context* gc
	// inlined
	// function
	void TexParameterfv(
		GLES2Context* gc
		GLenum eTarget
		GLenum ePname
		void* pvParams
		)
	{
		GLES2Texture* psTex
		GLES2TextureParamState* psParamState
		IMG_UINT32 ui32Target
		bad_enum: \\ label
		{
			GLenum eParam
		}
		{
			GLenum eParam
		}
		{
			GLenum eParam
		}
		{
			GLenum eParam
		}
	}

}


// external function PC=<0x2470c;0x24930>
void glTexParameterf(
	GLenum target
	GLenum pname
	GLfloat param
	)
{
	GLenum eParam
	GLES2Context* gc
	// inlined
	// function
	void TexParameterfv(
		GLES2Context* gc
		GLenum eTarget
		GLenum ePname
		void* pvParams
		)
	{
		GLES2Texture* psTex
		GLES2TextureParamState* psParamState
		IMG_UINT32 ui32Target
		bad_enum: \\ label
		{
			GLenum eParam
		}
		{
			GLenum eParam
		}
		{
			GLenum eParam
		}
		{
			GLenum eParam
		}
	}

}


const IMG_UINT32 ui32ExtensionFlag

const struct GLES2_Extension_TAG[12] GLES2Extension

struct _IO_FILE* stdin

struct _IO_FILE* stdout

const GLES2TextureFormat TexFormatABGR8888

const GLES2TextureFormat TexFormatARGB1555

const GLES2TextureFormat TexFormatARGB4444

const GLES2TextureFormat TexFormatXBGR8888

const GLES2TextureFormat TexFormatRGB565

const GLES2TextureFormat TexFormatAlpha

const GLES2TextureFormat TexFormatLuminance

const GLES2TextureFormat TexFormatLuminanceAlpha

const GLES2TextureFormat TexFormatPVRTC2RGB

const GLES2TextureFormat TexFormatPVRTC4RGB

const GLES2TextureFormat TexFormatPVRTC2RGBA

const GLES2TextureFormat TexFormatPVRTC4RGBA

const GLES2TextureFormat TexFormatETC1RGB

const GLES2TextureFormat TexFormatRGBAFloat

const GLES2TextureFormat TexFormatRGBAHalfFloat

const GLES2TextureFormat TexFormatRGBFloat

const GLES2TextureFormat TexFormatRGBHalfFloat

const GLES2TextureFormat TexFormatFloatAlpha

const GLES2TextureFormat TexFormatHalfFloatAlpha

const GLES2TextureFormat TexFormatFloatLuminance

const GLES2TextureFormat TexFormatHalfFloatLuminance

const GLES2TextureFormat TexFormatFloatLuminanceAlpha

const GLES2TextureFormat TexFormatHalfFloatLuminanceAlpha

