/*
 |            file: sgxif.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/opengles1
 | program counter: <0x232b0;0x2414c>
 */
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 short int IMG_INT16

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 BUFFER_INFO_TAG {
	IMG_UINT32 ui32BufferCount // @0
	IMG_UINT32 ui32BufferDeviceID // @4
	PVRSRV_PIXEL_FORMAT pixelformat // @8
	IMG_UINT32 ui32ByteStride // @c
	IMG_UINT32 ui32Width // @10
	IMG_UINT32 ui32Height // @14
	IMG_UINT32 ui32Flags // @18
}

typedef struct BUFFER_INFO_TAG BUFFER_INFO

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 GLES1Context_TAG GLES1Context

struct GLES1Context_TAG {
	PVRSRV_DEV_DATA* ps3DDevData // @0
	SrvSysContext* psSysContext // @4
	SGX_KICKTA sKickTA // @8
	IMG_BOOL bSPMOutOfMemEvent // @16c
	GLES1ProgramMachine sProgram // @170
	IMG_UINT32 ui32NumImageUnitsActive // @1e0
	IMG_UINT32 ui32ImageUnitEnables // @1e4
	IMG_UINT32[4] ui32TexImageUnitsEnabled // @1e8
	IMG_UINT32 ui32RasterEnables // @1f8
	IMG_UINT32 ui32TnLEnables // @1fc
	IMG_UINT32 ui32FrameEnables // @200
	IMG_UINT32 ui32IgnoredEnables // @204
	GLESState sState // @208
	IMG_INT32 i32Error // @6f0
	IMG_UINT32 ui32DirtyMask // @6f4
	IMG_UINT32 ui32EmitMask // @6f8
	GLESProcs sProcs // @6fc
	GLESLightMachine sLight // @728
	GLESPolygonMachine sPolygon // @74c
	GLESTextureMachine sTexture // @758
	GLES1TransformMachine sTransform // @7b4
	GLESVertArrayMachine sVertexArray // @890
	GLES1VertexProgramMachine sVertexProgram // @d24
	GLESBufferObjectMachine sBufferObject // @d2c
	GLESFrameBufferObjectMachine sFrameBuffer // @d34
	GLESPrimitiveMachine sPrim // @df4
	IMG_UINT32 ui32DirtyVGPConstantMask // @1b80
	EGLcontextMode* psMode // @1b84
	EGLDrawableParams* psDrawParams // @1b88
	EGLDrawableParams* psReadParams // @1b8c
	EGLRenderSurface* psRenderSurface // @1b90
	IMG_BOOL bFullScreenViewport // @1b94
	IMG_BOOL bFullScreenScissor // @1b98
	IMG_BOOL bDrawMaskInvalid // @1b9c
	IMG_CHAR* pszExtensions // @1ba0
	IMG_BOOL bHasBeenCurrent // @1ba4
	IMG_UINT32 ui32NumEGLImageTextureTargetsBound // @1ba8
	GLESAppHints sAppHints // @1bac
	IMG_UINT16* pui16IndexData // @1bd0
	IMG_VOID* pvVertexData // @1bd4
	IMG_UINT32 ui32VertexSize // @1bd8
	IMG_UINT32 ui32VertexRCSize // @1bdc
	CircularBuffer*[7] apsBuffers // @1be0
	IMG_UINT32 ui32FrameNum // @1bfc
	IMG_BOOL bOverflowRender // @1c00
	GLES1StreamDevice* psBufferDevice // @1c04
	GLES1ContextSharedState* psSharedState // @1c08
}

typedef struct GLESTextureRec GLESTexture

struct GLESTextureRec {
	GLES1NamedItem sNamedItem // @0
	FRMFrameResource sResource // @c
	GLESTextureParamState sState // @18
	IMG_UINT32 ui32TextureTarget // @50
	IMG_UINT32 ui32NumLevels // @54
	GLESMipMapLevel* psMipLevel // @58
	IMG_UINT32 ui32NumRenderTargets // @5c
	IMG_BOOL bResidence // @60
	IMG_BOOL bHasEverBeenGhosted // @64
	IMG_UINT32 ui32LevelsConsistent // @68
	const GLESTextureFormat* psFormat // @6c
	IMG_UINT32 ui32HWFlags // @70
	PVRSRV_CLIENT_MEM_INFO* psMemInfo // @74
	void* pfnReadBackData // @78
	void* pfnTextureTwiddle // @7c
	IMG_HANDLE hPBuffer // @80
	EGLImage* psEGLImageSource // @84
	EGLImage* psEGLImageTarget // @88
}

typedef struct GLESProcsRec GLESProcs

struct GLESProcsRec {
	GLESMatrixProcs sMatrixProcs // @0
	void* pfnPushMatrix // @10
	void* pfnPopMatrix // @14
	void* pfnLoadIdentity // @18
	void* pfnPickMatrixProcs // @1c
	void* pfnPickInvTransposeProcs // @20
	void* pfnComputeInverseTranspose // @24
	IMG_FLOAT* pfnNormalize // @28
}

typedef struct GLESMatrixRec GLESMatrix

struct GLESMatrixRec {
	IMG_FLOAT[4] afMatrix // @0
	GLenum eMatrixType // @40
	IMG_UINT32 ui32Width // @44
	IMG_UINT32 ui32Height // @48
	void* pfnXf2 // @4c
	void* pfnXf3 // @50
	void* pfnXf4 // @54
}

typedef struct GLESLightSourceMachineRec GLESLightSourceMachine

struct GLESLightSourceMachineRec {
	GLESLightSourceState* psState // @0
	IMG_UINT32 ui32LightType // @4
	GLEScoord sUnitVPpli // @8
	GLEScoord sHHat // @18
	GLESLightSourceMachine* psNext // @28
	IMG_FLOAT fCosCutOffAngle // @2c
	IMG_UINT32 ui32LightNum // @30
}

typedef struct GLES1USEShaderVariant_TAG GLES1ShaderVariant

struct GLES1USEShaderVariant_TAG {
	FRMFrameResource sResource // @0
	struct GLES1ShaderRec* psShader // @c
	IMG_DEV_VIRTADDR[2] sStartAddress // @10
	IMG_UINT32 ui32PhaseCount // @18
	UCH_UseCodeBlock* psCodeBlock // @1c
	IMG_UINT32 ui32MaxTempRegs // @20
	IMG_UINT32 ui32USEPrimAttribCount // @24
		union {
			struct {
		IMG_UINT32 ui32RasterEnables // @0
		IMG_UINT32 ui32ColorMask // @4
		IMG_UINT32 ui32BlendFunction // @8
		IMG_UINT32 ui32BlendEquation // @c
		IMG_UINT32 ui32LogicOp // @10
		IMG_UINT32 ui32ShadeModel // @14
		IMG_UINT32 ui32NumImageUnitsActive // @18
		IMG_UINT32 ui32AlphaTestFlags // @1c
		IMG_BOOL[4] abPointSpriteReplace // @20
		GLES1PDSInfo sPDSInfo // @30
	} sFragment
			struct {
		IMG_UINT32[18] aui32StreamTypeSize // @0
		IMG_UINT32 ui32NumItemsPerVertex // @48
	} sVertex
	} u // @28
	GLES1PDSCodeVariant* psPDSVariant // @16c
	IMG_UINT32 ui32NumPDSVariants // @170
	struct GLES1USEShaderVariant_TAG* psNext // @174
}

typedef struct GLES1PDSCodeVariant_TAG GLES1PDSCodeVariant

struct GLES1PDSCodeVariant_TAG {
	UCH_UseCodeBlock* psCodeBlock // @0
	IMG_UINT32 ui32DataSize // @4
	PDS_TEXTURE_IMAGE_UNIT[8] asTextureUnits // @8
	IMG_UINT32 ui32NonDependentImageUnits // @68
	GLES1ShaderVariant* psUSEVariant // @6c
	struct GLES1PDSCodeVariant_TAG* psNext // @70
}

enum GLES2_MEMERROR_TAG {
	GLES1_NO_ERROR = 0; //0x0
	GLES1_TA_BUFFER_ERROR = 1; //0x1
	GLES1_3D_BUFFER_ERROR = 2; //0x2
	GLES1_TA_USECODE_ERROR = 3; //0x3
	GLES1_TA_PDSCODE_ERROR = 4; //0x4
	GLES1_3D_USECODE_ERROR = 5; //0x5
	GLES1_3D_PDSCODE_ERROR = 6; //0x6
	GLES1_GENERAL_MEM_ERROR = 7; //0x7
	GLES1_HOST_MEM_ERROR = 8; //0x8
}

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

typedef struct GLEScoordRec GLEScoord

union GLES1_FUINT32Rec {
	IMG_FLOAT fVal
	IMG_UINT32 ui32Val
}

typedef union GLES1_FUINT32Rec GLES1_FUINT32

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

typedef struct GLEScolorRec GLEScolor

typedef unsigned int GLenum

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

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 _PVR3DIF4_KICKTA_OUTPUT_ {
	IMG_BOOL bSPMOutOfMemEvent // @0
	IMG_UINT32 ui32NumPBPagesFree // @4
	IMG_UINT32 ui32MaxZTileX // @8
	IMG_UINT32 ui32MaxZTileY // @c
	PVRSRV_HWREG* psZLSReg // @10
	IMG_PUINT32 pui32VDMBaseRegVal // @14
}

typedef struct _PVR3DIF4_KICKTA_OUTPUT_ PVR3DIF4_KICKTA_OUTPUT

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
}

typedef enum IMG_EGLERROR_TAG IMG_EGLERROR

enum GLES1NameTypeTAG {
	GLES1_NAMETYPE_TEXOBJ = 0; //0x0
	GLES1_NAMETYPE_BUFOBJ = 1; //0x1
	GLES1_NAMETYPE_RENDERBUFFER = 2; //0x2
	GLES1_NAMETYPE_FRAMEBUFFER = 3; //0x3
	GLES1_NAMETYPE_PROGRAM = 4; //0x4
	GLES1_MAX_NAMETYPE = 5; //0x5
}

typedef enum GLES1NameTypeTAG GLES1NameType

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

typedef struct GLES1NamedItemTAG GLES1NamedItem

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

void

typedef struct GLESNamesArrayTAG GLES1NamesArray

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 GLESBufferObjectRec {
	GLES1NamedItem sNamedItem // @0
	GLenum eUsage // @c
	GLenum eAccess // @10
	IMG_UINT32 ui32BufferSize // @14
	IMG_UINT32 ui32BindMask // @18
	PVRSRV_CLIENT_MEM_INFO* psMemInfo // @1c
	IMG_BOOL bMapped // @20
}

typedef struct GLESBufferObjectRec GLESBufferObject

struct GLESBufferObjectMachineRec {
	GLESBufferObject*[2] psActiveBuffer // @0
}

typedef struct GLESBufferObjectMachineRec GLESBufferObjectMachine

struct GLES1FrameBufferAttachableRec {
	GLES1NamedItem sNamedItem // @0
	EGLRenderSurface* psRenderSurface // @c
	GLenum eAttachmentType // @10
}

typedef struct GLES1FrameBufferAttachableRec GLES1FrameBufferAttachable

struct GLESRenderBufferRec {
	GLES1FrameBufferAttachable 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 GLESRenderBufferRec GLESRenderBuffer

struct GLESFrameBufferRec {
	GLES1NamedItem sNamedItem // @0
	GLenum eStatus // @c
	EGLcontextMode sMode // @10
	EGLDrawableParams sDrawParams // @3c
	EGLDrawableParams sReadParams // @74
	GLES1FrameBufferAttachable*[3] apsAttachment // @ac
}

typedef struct GLESFrameBufferRec GLESFrameBuffer

struct GLESFrameBufferObjectMachineRec {
	GLESFrameBuffer* psActiveFrameBuffer // @0
	GLESRenderBuffer* psActiveRenderBuffer // @4
	GLESFrameBuffer sDefaultFrameBuffer // @8
}

typedef struct GLESFrameBufferObjectMachineRec GLESFrameBufferObjectMachine

struct GLESTextureFormatRec {
	IMG_UINT32 ui32TotalBytesPerTexel // @0
	IMG_UINT32 ui32BaseFormatIndex // @4
	IMG_UINT32 ui32HWFormat // @8
}

typedef struct GLESTextureFormatRec GLESTextureFormat

struct GLESMipMapLevelRec {
	GLES1FrameBufferAttachable 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 GLESTextureFormat* psTexFormat // @30
	struct GLESTextureRec* psTex // @34
	IMG_UINT32 ui32Level // @38
}

typedef struct GLESMipMapLevelRec GLESMipMapLevel

struct GLESTextureParamStateRec {
	IMG_UINT32 ui32StateWord0 // @0
	IMG_UINT32 ui32StateWord1 // @4
	IMG_UINT32 ui32StateWord2 // @8
	IMG_UINT32 ui32MinFilter // @c
	IMG_UINT32 ui32MagFilter // @10
	IMG_BOOL bGenerateMipmap // @14
	IMG_INT32 i32CropRectU // @18
	IMG_INT32 i32CropRectV // @1c
	IMG_INT32 i32CropRectW // @20
	IMG_INT32 i32CropRectH // @24
	IMG_UINT32[2] aui32StreamWord1 // @28
	IMG_UINT32[2] aui32StreamWord2 // @30
}

typedef struct GLESTextureParamStateRec GLESTextureParamState

enum undefined {
	GLES1_COMBINEOP_REPLACE = 0; //0x0
	GLES1_COMBINEOP_MODULATE = 1; //0x1
	GLES1_COMBINEOP_ADD = 2; //0x2
	GLES1_COMBINEOP_ADDSIGNED = 3; //0x3
	GLES1_COMBINEOP_INTERPOLATE = 4; //0x4
	GLES1_COMBINEOP_SUBTRACT = 5; //0x5
	GLES1_COMBINEOP_DOT3_RGB = 6; //0x6
	GLES1_COMBINEOP_DOT3_RGBA = 7; //0x7
	GLES1_COMBINEOP_SCALE_ONE = 0; //0x0
	GLES1_COMBINEOP_SCALE_TWO = 16; //0x10
	GLES1_COMBINEOP_SCALE_FOUR = 32; //0x20
	GLES1_COMBINEOP_FORCE_DWORD = 2147483647; //0x7fffffff
}

typedef enum undefined GLES1TexCombineOp

enum undefined {
	GLES1_COMBINECSRC_PRIMARY = 0; //0x0
	GLES1_COMBINECSRC_PREVIOUS = 1; //0x1
	GLES1_COMBINECSRC_TEXTURE = 2; //0x2
	GLES1_COMBINECSRC_CONSTANT = 3; //0x3
	GLES1_COMBINECSRC_OPERANDCOLOR = 0; //0x0
	GLES1_COMBINECSRC_OPERANDALPHA = 4; //0x4
	GLES1_COMBINECSRC_OPERANDONEMINUS = 8; //0x8
	GLES1_COMBINECSRC_CROSSBAR = 16; //0x10
	GLES1_COMBINECSRC_FORCE_DWORD = 2147483647; //0x7fffffff
}

typedef enum undefined GLES1TexCombineColSrc

enum undefined {
	GLES1_COMBINEASRC_PRIMARY = 0; //0x0
	GLES1_COMBINEASRC_PREVIOUS = 1; //0x1
	GLES1_COMBINEASRC_TEXTURE = 2; //0x2
	GLES1_COMBINEASRC_CONSTANT = 3; //0x3
	GLES1_COMBINEASRC_OPERANDONEMINUS = 8; //0x8
	GLES1_COMBINEASRC_CROSSBAR = 16; //0x10
	GLES1_COMBINEASRC_FORCE_DWORD = 2147483647; //0x7fffffff
}

typedef enum undefined GLES1TexCombineAlphaSrc

struct GLESTextureEnvStateRec {
	IMG_UINT32 ui32Mode // @0
	IMG_UINT32 ui32Color // @4
	GLEScolor sColor // @8
	IMG_BOOL bPointSpriteReplace // @18
	GLES1TexCombineOp eOp // @1c
	GLES1TexCombineColSrc eColorSrcs // @20
	GLES1TexCombineAlphaSrc eAlphaSrcs // @24
}

typedef struct GLESTextureEnvStateRec GLESTextureEnvState

struct GLESTextureUnitStateRec {
	GLESTextureParamState*[3] psTexture // @0
	GLESTextureEnvState sEnv // @c
	GLenum eTexGenMode // @34
}

typedef struct GLESTextureUnitStateRec GLESTextureUnitState

void

void

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

typedef struct GLESTextureManagerRec GLES1TextureManager

struct GLESTextureMachineRec {
	GLESTexture*[3] psDefaultTexture // @0
	GLESTexture*[4] apsBoundTexture // @c
	IMG_UINT32[4] aui32CurrentTarget // @3c
	IMG_BOOL bSpriteMode // @4c
	void* pfnInitTextureManager // @50
	const GLESTextureFormat* psDefaultRGBFormat // @54
	const GLESTextureFormat* psDefaultRGBAFormat // @58
}

void

typedef struct GLESTextureMachineRec GLESTextureMachine

struct YUV_CONVERT_COEFFS_TAG {
	IMG_INT16 i16rY // @0
	IMG_INT16 i16rU // @2
	IMG_INT16 i16rV // @4
	IMG_INT16 i16gY // @6
	IMG_INT16 i16gU // @8
	IMG_INT16 i16gV // @a
	IMG_INT16 i16bY // @c
	IMG_INT16 i16bU // @e
	IMG_INT16 i16bV // @10
	IMG_UINT8 ui8rShift // @12
	IMG_UINT8 ui8gShift // @13
	IMG_UINT8 ui8bShift // @14
	IMG_INT16 i16rConst // @16
	IMG_INT16 i16gConst // @18
	IMG_INT16 i16bConst // @1a
}

typedef struct YUV_CONVERT_COEFFS_TAG YUV_CONVERT_COEFFS

struct GLES1DeviceBuffer_TAG {
	IMG_HANDLE hBuffer // @0
	PVRSRV_CLIENT_MEM_INFO* psBufferSurface // @4
	IMG_UINT32 ui32ByteStride // @8
	IMG_UINT32 ui32PixelWidth // @c
	IMG_UINT32 ui32PixelHeight // @10
	PVRSRV_PIXEL_FORMAT ePixelFormat // @14
}

typedef struct GLES1DeviceBuffer_TAG GLES1DeviceBuffer

struct GLES1StreamDevice_TAG {
	BUFFER_INFO sBufferInfo // @0
	IMG_HANDLE hBufferDevice // @1c
	IMG_UINT32 ui32BufferDevice // @20
	GLES1DeviceBuffer* psBuffer // @24
	YUV_CONVERT_COEFFS sYUVCoeffs // @28
	IMG_UINT32[2] aui32StreamWord1 // @44
	IMG_UINT32[2] aui32StreamWord2 // @4c
	struct GLES1StreamDevice_TAG* psNext // @54
	IMG_CHAR[20] szDeviceName // @58
}

typedef struct GLES1StreamDevice_TAG GLES1StreamDevice

void

struct GLES1TransformRec {
	GLESMatrix sMatrix // @0
	GLESMatrix sInverseTranspose // @58
	GLESMatrix sMvp // @b0
	IMG_UINT32 ui32Sequence // @108
	IMG_BOOL bUpdateInverse // @10c
	IMG_FLOAT fRescaleFactor // @110
}

typedef struct GLES1TransformRec GLES1Transform

struct GLES1TransformMachineRec {
	GLES1Transform* psModelViewStack // @0
	GLES1Transform* psModelView // @4
	GLES1Transform* psMatrixPalette // @8
	GLES1Transform* psProjectionStack // @c
	GLES1Transform* psProjection // @10
	IMG_UINT32 ui32ProjectionSequence // @14
	GLES1Transform*[4] apsTextureStack // @18
	GLES1Transform*[4] apsTexture // @28
	GLES1Transform*[8] apsProgramStack // @38
	GLES1Transform*[8] apsProgram // @58
	GLEScoord[6] asEyeClipPlane // @78
	void* pfnDrawPoints // @d8
}

void

typedef struct GLES1TransformMachineRec GLES1TransformMachine

struct GLESCurrentStateRec {
	GLEScoord[18] asAttrib // @0
	IMG_UINT32 ui32MatrixPaletteIndex // @120
}

typedef struct GLESCurrentStateRec GLESCurrentState

struct GLESFogStateRec {
	GLenum eMode // @0
	IMG_UINT32 ui32Color // @4
	GLEScolor sColor // @8
	IMG_FLOAT fDensity // @18
	IMG_FLOAT fStart // @1c
	IMG_FLOAT fEnd // @20
	IMG_FLOAT fOneOverEMinusS // @24
}

typedef struct GLESFogStateRec GLESFogState

struct GLESVertArrayPointerStateRec {
	IMG_UINT8* pui8Pointer // @0
	IMG_UINT32 ui32StreamTypeSize // @4
	IMG_UINT32 ui32UserStride // @8
	GLESBufferObject* psBufObj // @c
	IMG_UINT32 ui32Stride // @10
	IMG_UINT32 ui32Size // @14
	IMG_BOOL bIsCurrentState // @18
	IMG_UINT8* pui8CopyPointer // @1c
	IMG_UINT32 ui32CopyStreamTypeSize // @20
	IMG_UINT32 ui32CopyStride // @24
	IMG_UINT8* pui8SrcPointer // @28
	IMG_UINT8* pui8DstPointer // @2c
	IMG_UINT32 ui32DstSize // @30
	void* pfnCopyData // @34
	IMG_VOID* pvPDSSrcAddress // @38
}

void

typedef struct GLESVertArrayPointerStateRec GLESVertArrayPointerState

struct GLESVertArrayMachineRec {
	GLESVertArrayPointerState[18] asVAPState // @0
	GLESVertArrayPointerState*[18] apsPackedVAPState // @438
	IMG_UINT32 ui32ControlWord // @480
	IMG_UINT32 ui32ArrayEnables // @484
	IMG_UINT32 ui32CompileMask // @488
	IMG_UINT32 ui32NumItemsPerVertex // @48c
	IMG_UINT32 ui32NumBytesPerVertex // @490
}

typedef struct GLESVertArrayMachineRec GLESVertArrayMachine

struct GLESMatrixProcsRec {
	void* pfnCopy // @0
	void* pfnInvertTranspose // @4
	void* pfnMakeIdentity // @8
	void* pfnMult // @c
}

void

void

void

typedef struct GLESMatrixProcsRec GLESMatrixProcs

void

void

typedef float IMG_FLOAT

struct GLESMaterialStateRec {
	GLEScolor sAmbient // @0
	GLEScolor sDiffuse // @10
	GLEScolor sSpecular // @20
	GLEScolor sEmissive // @30
	GLEScoord sSpecularExponent // @40
}

typedef struct GLESMaterialStateRec GLESMaterialState

struct GLESLightModelStateRec {
	GLEScolor sAmbient // @0
	IMG_BOOL bTwoSided // @10
}

typedef struct GLESLightModelStateRec GLESLightModelState

struct GLESLightSourceStateRec {
	GLEScolor sAmbient // @0
	GLEScolor sDiffuse // @10
	GLEScolor sSpecular // @20
	GLEScoord sPosition // @30
	GLEScoord sPositionEye // @40
	GLEScoord sDirection // @50
	GLEScoord sSpotDirectionEye // @60
	IMG_FLOAT fSpotLightExponent // @70
	IMG_FLOAT fSpotLightCutOffAngle // @74
	IMG_FLOAT[4] afAttenuation // @78
}

typedef struct GLESLightSourceStateRec GLESLightSourceState

struct GLESLightStateRec {
	GLESLightModelState sModel // @0
	GLESMaterialState sMaterial // @14
	GLESLightSourceState* psSource // @64
	GLenum eColorMaterialParam // @68
}

typedef struct GLESLightStateRec GLESLightState

typedef struct {
	IMG_UINT32[3] aui32NumEnabled // @0
	GLESLightSourceMachine* psSource // @c
	GLESLightSourceMachine* psSources // @10
	GLEScolor sSceneColor // @14
} GLESLightMachine

typedef struct VPGenProgram_TAG VPGenProgram

struct VPGenProgram_TAG {
}

enum undefined {
	GLES1_VP_BINDING_TEMP = 1; //0x1
	GLES1_VP_BINDING_VERTEX_ATTRIB = 2; //0x2
	GLES1_VP_BINDING_VERTEX_POSITION = 3; //0x3
	GLES1_VP_BINDING_VERTEX_NORMAL = 4; //0x4
	GLES1_VP_BINDING_VERTEX_COLOR = 5; //0x5
	GLES1_VP_BINDING_VERTEX_FOGCOORD = 6; //0x6
	GLES1_VP_BINDING_VERTEX_TEXCOORD = 7; //0x7
	GLES1_VP_BINDING_VERTEX_WEIGHT = 8; //0x8
	GLES1_VP_BINDING_VERTEX_MATRIX_INDEX = 9; //0x9
	GLES1_VP_BINDING_MATERIAL_AMBIENT = 10; //0xa
	GLES1_VP_BINDING_MATERIAL_DIFFUSE = 11; //0xb
	GLES1_VP_BINDING_MATERIAL_SPECULAR = 12; //0xc
	GLES1_VP_BINDING_MATERIAL_EMISSION = 13; //0xd
	GLES1_VP_BINDING_MATERIAL_SHININESS = 14; //0xe
	GLES1_VP_BINDING_LIGHT_AMBIENT = 15; //0xf
	GLES1_VP_BINDING_LIGHT_DIFFUSE = 16; //0x10
	GLES1_VP_BINDING_LIGHT_SPECULAR = 17; //0x11
	GLES1_VP_BINDING_LIGHT_POSITION = 18; //0x12
	GLES1_VP_BINDING_LIGHT_ATTENUATION = 19; //0x13
	GLES1_VP_BINDING_LIGHT_SPOT_DIRECTION = 20; //0x14
	GLES1_VP_BINDING_LIGHT_HALF = 21; //0x15
	GLES1_VP_BINDING_LIGHTMODEL_AMBIENT = 22; //0x16
	GLES1_VP_BINDING_LIGHTMODEL_SCENECOLOR = 23; //0x17
	GLES1_VP_BINDING_LIGHTPROD_AMBIENT = 24; //0x18
	GLES1_VP_BINDING_LIGHTPROD_DIFFUSE = 25; //0x19
	GLES1_VP_BINDING_LIGHTPROD_SPECULAR = 26; //0x1a
	GLES1_VP_BINDING_TEXGEN_EYE = 27; //0x1b
	GLES1_VP_BINDING_TEXGEN_OBJECT = 28; //0x1c
	GLES1_VP_BINDING_FOG_COLOR = 29; //0x1d
	GLES1_VP_BINDING_FOG_PARAMS = 30; //0x1e
	GLES1_VP_BINDING_SPECIAL_FOG_PARAMS = 31; //0x1f
	GLES1_VP_BINDING_CLIP_PLANE = 32; //0x20
	GLES1_VP_BINDING_CLIP_FRONT = 33; //0x21
	GLES1_VP_BINDING_CLIP_BACK = 34; //0x22
	GLES1_VP_BINDING_POINT_SIZE = 35; //0x23
	GLES1_VP_BINDING_POINT_ATTENUATION = 36; //0x24
	GLES1_VP_BINDING_MATRIX_MODELVIEW_ROW0 = 37; //0x25
	GLES1_VP_BINDING_MATRIX_MODELVIEW_ROW1 = 38; //0x26
	GLES1_VP_BINDING_MATRIX_MODELVIEW_ROW2 = 39; //0x27
	GLES1_VP_BINDING_MATRIX_MODELVIEW_ROW3 = 40; //0x28
	GLES1_VP_BINDING_MATRIX_PROJECTION_ROW0 = 41; //0x29
	GLES1_VP_BINDING_MATRIX_PROJECTION_ROW1 = 42; //0x2a
	GLES1_VP_BINDING_MATRIX_PROJECTION_ROW2 = 43; //0x2b
	GLES1_VP_BINDING_MATRIX_PROJECTION_ROW3 = 44; //0x2c
	GLES1_VP_BINDING_MATRIX_MVP_ROW0 = 45; //0x2d
	GLES1_VP_BINDING_MATRIX_MVP_ROW1 = 46; //0x2e
	GLES1_VP_BINDING_MATRIX_MVP_ROW2 = 47; //0x2f
	GLES1_VP_BINDING_MATRIX_MVP_ROW3 = 48; //0x30
	GLES1_VP_BINDING_MATRIX_TEXTURE_ROW0 = 49; //0x31
	GLES1_VP_BINDING_MATRIX_TEXTURE_ROW1 = 50; //0x32
	GLES1_VP_BINDING_MATRIX_TEXTURE_ROW2 = 51; //0x33
	GLES1_VP_BINDING_MATRIX_TEXTURE_ROW3 = 52; //0x34
	GLES1_VP_BINDING_MATRIX_PALETTE_ROW0 = 53; //0x35
	GLES1_VP_BINDING_MATRIX_PALETTE_ROW1 = 54; //0x36
	GLES1_VP_BINDING_MATRIX_PALETTE_ROW2 = 55; //0x37
	GLES1_VP_BINDING_MATRIX_PALETTE_ROW3 = 56; //0x38
	GLES1_VP_BINDING_MATRIX_PROGRAM_ROW0 = 57; //0x39
	GLES1_VP_BINDING_MATRIX_PROGRAM_ROW1 = 58; //0x3a
	GLES1_VP_BINDING_MATRIX_PROGRAM_ROW2 = 59; //0x3b
	GLES1_VP_BINDING_MATRIX_PROGRAM_ROW3 = 60; //0x3c
	GLES1_VP_BINDING_PROGRAM_ENV = 61; //0x3d
	GLES1_VP_BINDING_PROGRAM_LOCAL = 62; //0x3e
	GLES1_VP_BINDING_CONSTANT = 63; //0x3f
	GLES1_VP_BINDING_RESULT = 64; //0x40
	GLES1_VP_BINDING_ADDRESS = 65; //0x41
	GLES1_VP_BINDING_RESULT_POSITION = 66; //0x42
	GLES1_VP_BINDING_RESULT_COLOR = 67; //0x43
	GLES1_VP_BINDING_RESULT_FOGCOORD = 68; //0x44
	GLES1_VP_BINDING_RESULT_TEXCOORD = 69; //0x45
	GLES1_VP_BINDING_RESULT_POINTSIZE = 70; //0x46
	GLES1_VP_BINDING_RESULT_CLIP = 71; //0x47
	GLES1_VP_BINDING_VGP_OUTPUT_TEX0 = 72; //0x48
	GLES1_VP_BINDING_VGP_OUTPUT_TEX1 = 73; //0x49
	GLES1_VP_BINDING_VGP_OUTPUT_TEXKILL0 = 74; //0x4a
	GLES1_VP_BINDING_VGP_OUTPUT_TEXKILL1 = 75; //0x4b
	GLES1_VP_BINDING_VGP_OUTPUT_CLIP = 76; //0x4c
	GLES1_VP_BINDING_VGP_OUTPUT_POSITION = 77; //0x4d
	GLES1_VP_BINDING_VGP_OUTPUT_BASECOLOR = 78; //0x4e
	GLES1_VP_BINDING_VGP_OUTPUT_OFFSETCOLOR = 79; //0x4f
	GLES1_VP_BINDING_UNINITIALIZED = 80; //0x50
	GLES1_VP_BINDING_END = 81; //0x51
}

typedef enum undefined GLES1_VP_BINDING_TYPE

struct GLES1VPHeader2Rec {
	IMG_UINT32 ui32Flags // @0
	IMG_UINT32 ui32HWRevision // @4
	IMG_UINT32[16] aui32SectionDesc // @8
	IMG_UINT32 ui32NumBindings // @48
}

typedef struct GLES1VPHeader2Rec GLES1VPHeader2

struct GLES1VPBindingHeaderRec {
	IMG_UINT32 ui32NumLocalParams // @0
	IMG_UINT32 ui32NumEnvParams // @4
	IMG_UINT32 ui32NumLocalConstants // @8
	IMG_UINT32 ui32NumState // @c
}

typedef struct GLES1VPBindingHeaderRec GLES1VPBindingHeader

struct GLESVP1StateBindingRec {
	GLES1_VP_BINDING_TYPE eBindingType // @0
	GLEScoord* psData // @4
	GLEScoord sData // @8
	IMG_UINT32 ui32HWOffset // @18
	IMG_UINT32 ui32NeedsFlag // @1c
	IMG_UINT32 ui32Index0 // @20
	IMG_UINT32 ui32Index1 // @24
}

typedef struct GLESVP1StateBindingRec GLES1VPStateBinding

struct GLES1VPConstantRec {
	GLEScoord sData // @0
	IMG_UINT32 ui32HWOffset // @10
}

typedef struct GLES1VPConstantRec GLES1VPConstant

struct GLES1VertexProgramRec {
	GLES1NamedItem sNamedItem // @0
	IMG_BOOL bValid // @c
	IMG_BOOL bResident // @10
	GLES1VPBindingHeader sBindingInfo // @14
	GLES1VPStateBinding* psStateBinding // @24
	IMG_UINT32[8] aui32InputRegisterMapping // @28
	IMG_UINT32* pui32Code // @48
	IMG_UINT32 ui32CodeSizeInBytes // @4c
	IMG_UINT32 ui32InputMask // @50
	IMG_UINT32 ui32OutputMask // @54
	IMG_UINT32 ui32LocalParamMask // @58
	IMG_UINT32 ui32StateMask // @5c
	IMG_UINT32 ui32LocalParamDirtyMask // @60
	IMG_UINT32 ui32StateDirtyMask // @64
	GLES1VPConstant[16] asLocalParam // @68
	IMG_UINT32[16] aui32EnvParamHWOffset // @1a8
	IMG_UINT32 ui32EnvParamMask // @1e8
	GLES1VPConstant* psLocalConstants // @1ec
	IMG_UINT32[16] aui32SectionDefinitions // @1f0
	IMG_UINT32[16] aui32RealSectionDesc // @230
	IMG_UINT32 ui32NumberAttribs // @270
	GLES1VPHeader2 sInfo // @274
	IMG_BOOL bRedirectSectionPresent // @2c0
	IMG_BOOL bFogSectionsPresent // @2c4
	IMG_UINT32[3] aui32FFInputRegisterMapping // @2c8
	VPGenProgram* psVPGenProgram // @2d4
}

typedef struct GLES1VertexProgramRec GLES1VertexProgram

struct GLES1VertexProgramStateRec {
	IMG_UINT32 ui32Name // @0
	GLEScoord[16] asEnvParam // @4
	IMG_UINT32 ui32EnvParamDirtyMask // @104
}

typedef struct GLES1VertexProgramStateRec GLES1VertexProgramState

struct GLES1VertexProgramMachineRec {
	GLES1VertexProgram* psDefaultProgram // @0
	GLES1VertexProgram* psCurrentProgram // @4
}

typedef struct GLES1VertexProgramMachineRec GLES1VertexProgramMachine

struct GLESPointStateRec {
	IMG_FLOAT* pfPointSize // @0
	IMG_FLOAT fSmoothSize // @4
	IMG_FLOAT fAliasedSize // @8
	IMG_FLOAT fRequestedSize // @c
	IMG_FLOAT* pfMinPointSize // @10
	IMG_FLOAT* pfMaxPointSize // @14
	IMG_FLOAT fMinSmoothSize // @18
	IMG_FLOAT fMaxSmoothSize // @1c
	IMG_FLOAT fMinAliasedSize // @20
	IMG_FLOAT fMaxAliasedSize // @24
	IMG_FLOAT[4] afAttenuation // @28
	IMG_FLOAT fClampMin // @38
	IMG_FLOAT fClampMax // @3c
	IMG_FLOAT fFade // @40
	IMG_BOOL bAttenuationEnabled // @44
}

typedef struct GLESPointStateRec GLESPointState

struct GLESViewportRec {
	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
	GLEScoord[2] sFrontBackClip // @30
}

typedef struct GLESViewportRec GLESViewport

struct GLESLineStateRec {
	IMG_FLOAT* pfLineWidth // @0
	IMG_FLOAT fSmoothWidth // @4
	IMG_FLOAT fAliasedWidth // @8
}

typedef struct GLESLineStateRec GLESLineState

struct GLESPolygonStateRec {
	GLenum eCullMode // @0
	GLenum eFrontFaceDirection // @4
	IMG_UINT32 ui32DepthBias // @8
	IMG_FLOAT fFactor // @c
	IMG_FLOAT fUnits // @10
}

typedef struct GLESPolygonStateRec GLESPolygonState

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

typedef struct GLESDepthStateRec GLESDepthState

struct GLESStencilStateRec {
	IMG_UINT32 ui32Stencil // @0
	IMG_UINT32 ui32StencilRef // @4
	IMG_INT32 i32Clear // @8
}

typedef struct GLESStencilStateRec GLESStencilState

struct GLESRasterStateRec {
	IMG_UINT32 ui32AlphaTestFunc // @0
	IMG_FLOAT fAlphaTestRef // @4
	IMG_UINT32 ui32AlphaTestRef // @8
	IMG_UINT32 ui32BlendFunction // @c
	IMG_UINT32 ui32BlendEquation // @10
	IMG_UINT32 ui32LogicOp // @14
	GLEScolor sClearColor // @18
	IMG_UINT32 ui32ClearColor // @28
	IMG_UINT32 ui32ColorMask // @2c
}

typedef struct GLESRasterStateRec GLESRasterState

struct GLESHintStateRec {
	GLenum[6] eHint // @0
}

typedef struct GLESHintStateRec GLESHintState

struct GLESTextureStateRec {
	IMG_UINT32 ui32ActiveTexture // @0
	GLESTextureUnitState* psActive // @4
	GLESTextureUnitState[4] asUnit // @8
}

typedef struct GLESTextureStateRec GLESTextureState

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

typedef struct GLESClientPixelStateRec GLESClientPixelState

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

typedef struct GLESScissorRec GLESScissor

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

typedef struct GLESMultisampleStateRec GLESMultisampleState

struct GLESShadeStateRec {
	IMG_UINT32 ui32ShadeModel // @0
}

typedef struct GLESShadeStateRec GLESShadeState

struct GLESStateRec {
	GLESHintState sHints // @0
	GLESScissor sScissor // @18
	GLESClientPixelState sClientPixel // @28
	GLESTextureState sTexture // @30
	GLESStencilState sStencil // @118
	GLESMultisampleState sMultisample // @124
	GLESPolygonState sPolygon // @12c
	GLESRasterState sRaster // @140
	GLESDepthState sDepth // @170
	GLESViewport sViewport // @178
	GLESPointState sPoint // @1c8
	GLESLineState sLine // @210
	GLESCurrentState sCurrent // @21c
	GLESShadeState sShade // @340
	GLESLightState sLight // @344
	GLESFogState sFog // @3b0
	GLenum eMatrixMode // @3d8
	IMG_UINT32 ui32ClientActiveTexture // @3dc
	GLES1VertexProgramState sVertexProgram // @3e0
}

typedef struct GLESStateRec GLESState

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

enum GLES1PrimType_TAG {
	GLES1_PRIMTYPE_POINT = 0; //0x0
	GLES1_PRIMTYPE_LINE = 1; //0x1
	GLES1_PRIMTYPE_LINE_LOOP = 2; //0x2
	GLES1_PRIMTYPE_LINE_STRIP = 3; //0x3
	GLES1_PRIMTYPE_TRIANGLE = 4; //0x4
	GLES1_PRIMTYPE_TRIANGLE_STRIP = 5; //0x5
	GLES1_PRIMTYPE_TRIANGLE_FAN = 6; //0x6
	GLES1_PRIMTYPE_SPRITE = 7; //0x7
	GLES1_PRIMTYPE_DRAWTEXTURE = 8; //0x8
	GLES1_PRIMTYPE_MAX = 9; //0x9
}

typedef enum GLES1PrimType_TAG GLES1PrimType

struct GLES1PDSVertexState_TAG {
	PDS_VERTEX_SHADER_PROGRAM_INFO sProgramInfo // @0
	IMG_UINT32[232] aui32LastPDSProgram // @8a0
	IMG_UINT32 ui32ProgramSize // @c40
}

typedef struct GLES1PDSVertexState_TAG GLES1PDSVertexState

struct GLESCompiledRenderState_TAG {
	IMG_UINT32 ui32ISPControlWordA // @0
	IMG_UINT32 ui32ISPControlWordB // @4
	IMG_UINT32 ui32ISPControlWordC // @8
	IMG_UINT32 ui32MTEControl // @c
	IMG_UINT32 ui32LogicOpsUSECodeSizeInBytes // @10
	IMG_UINT32[4] aui32LogicOpsUSECode // @14
	IMG_UINT32 ui32FBBlendUSECodeSizeInBytes // @24
	IMG_UINT32[10] aui32FBBlendUSECode // @28
	IMG_UINT32 ui32ColorMaskUSECodeSizeInBytes // @50
	IMG_UINT32[2] aui32ColorMaskUSECode // @54
	IMG_UINT32 ui32AlphaTestFlags // @5c
	IMG_UINT32 ui32ISPFeedback0 // @60
	IMG_UINT32 ui32ISPFeedback1 // @64
}

typedef struct GLESCompiledRenderState_TAG GLESCompiledRenderState

struct GLESShaderTextureState_TAG {
	PDS_TEXTURE_IMAGE_UNIT[8] asTextureImageUnits // @0
	IMG_UINT32 uHashValue // @60
	IMG_BOOL bSomeTexturesWereGhosted // @64
}

typedef struct GLESShaderTextureState_TAG GLESShaderTextureState

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

typedef struct GLES1BRN22336Prims_TAG GLES1BRN22336Prims

struct GLESPrimitiveMachine_TAG {
	GLESCompiledRenderState sRenderState // @0
	GLESShaderTextureState sTextureState // @68
	GLES1PDSVertexState sPDSVertexState // @d0
	UCH_UseCodeBlock* psHWBGCodeBlock // @d14
	GLES1BRN22336Prims sBRN22336Prims // @d18
	UCH_UseCodeBlock* psClearVertexCodeBlock // @d2c
	UCH_UseCodeBlock* psClearFragmentCodeBlock // @d30
	UCH_UseCodeBlock* psAccumVertexCodeBlock // @d34
	UCH_UseCodeBlock* psScissorVertexCodeBlock // @d38
	UCH_UseCodeBlock* psDummyPixelSecondaryPDSCode // @d3c
	UCH_UseCodeBlock* psPixelEventEOPCodeBlock // @d40
	UCH_UseCodeBlock* psStateCopyCodeBlock // @d44
	IMG_VOID* pvDrawTextureAddr // @d48
	GLES1PrimType eCurrentPrimitiveType // @d4c
	GLES1PrimType ePreviousPrimitiveType // @d50
	IMG_UINT32 ui32ArrayEnables // @d54
	IMG_UINT32 ui32CurrentOutputStateBlockUSEPipe // @d58
	IMG_DEV_VIRTADDR uOutputStatePDSBaseAddress // @d5c
	IMG_UINT32 ui32OutputStatePDSDataSize // @d60
	IMG_UINT32 ui32OutputStateUSEAttribSize // @d64
	IMG_UINT32 ui32MaxMatrixPaletteIndex // @d68
	IMG_DEV_VIRTADDR uVertexPDSBaseAddress // @d6c
	IMG_UINT32 ui32VertexPDSDataSize // @d70
	IMG_DEV_VIRTADDR uFragmentPDSBaseAddress // @d74
	IMG_UINT32 ui32FragmentPDSDataSize // @d78
	IMG_DEV_VIRTADDR uVertexPDSSecAttribBaseAddress // @d7c
	IMG_UINT32 ui32VertexPDSSecAttribDataSize // @d80
	IMG_DEV_VIRTADDR uFragmentPDSSecAttribBaseAddress // @d84
	IMG_UINT32 ui32FragmentPDSSecAttribDataSize // @d88
}

typedef struct GLESPrimitiveMachine_TAG GLESPrimitiveMachine

struct GLESAppHintsRec {
	IMG_BOOL bDumpShaders // @0
	IMG_BOOL bForceNoExternalZBuffer // @4
	IMG_BOOL bOptimisedValidation // @8
	IMG_BOOL bDisableHWTextureUpload // @c
	IMG_UINT32 ui32MaxPDSVariants // @10
	IMG_BOOL bEmulateVGP // @14
	IMG_UINT32 ui32DefaultVIBufferSize // @18
	IMG_UINT32 ui32DefaultPDSVertBufferSize // @1c
	IMG_UINT32 ui32DefaultVDMBufferSize // @20
}

typedef struct GLESAppHintsRec GLESAppHints

typedef IMG_UINT32 HashValue

struct HashEntry_TAG {
	HashValue tHashValue // @0
	IMG_UINT32* pui32HashKey // @4
	IMG_UINT32 ui32HashKeySizeInDWords // @8
	IMG_UINT32 ui32Item // @c
	IMG_UINT32 ui32LastFrameHashed // @10
	struct HashEntry_TAG* psNext // @14
}

typedef struct HashEntry_TAG HashEntry

typedef void* PFNDestroyHashItem

void

struct HashTable_TAG {
	IMG_UINT32 ui32NumEntries // @0
	IMG_UINT32 ui32NumHashValues // @4
	IMG_UINT32 ui32PeakNumEntries // @8
	IMG_UINT32 ui32PeakNumHashValues // @c
	IMG_UINT32 ui32TableSize // @10
	IMG_UINT32 ui32HashValueMask // @14
	IMG_UINT32 ui32MaxNumEntries // @18
	PFNDestroyHashItem pfnDestroyItemFunc // @1c
	HashEntry** psTable // @20
}

typedef struct HashTable_TAG HashTable

enum UseasmRegTypeTAG {
	USEASM_REGTYPE_TEMP = 0; //0x0
	USEASM_REGTYPE_OUTPUT = 1; //0x1
	USEASM_REGTYPE_PRIMATTR = 2; //0x2
	USEASM_REGTYPE_SECATTR = 3; //0x3
	USEASM_REGTYPE_INDEX = 4; //0x4
	USEASM_REGTYPE_GLOBAL = 5; //0x5
	USEASM_REGTYPE_FPCONSTANT = 6; //0x6
	USEASM_REGTYPE_FPINTERNAL = 7; //0x7
	USEASM_REGTYPE_IMMEDIATE = 8; //0x8
	USEASM_REGTYPE_LINK = 9; //0x9
	USEASM_REGTYPE_DRC = 10; //0xa
	USEASM_REGTYPE_LABEL = 11; //0xb
	USEASM_REGTYPE_PREDICATE = 12; //0xc
	USEASM_REGTYPE_CLIPPLANE = 13; //0xd
	USEASM_REGTYPE_ADDRESSMODE = 14; //0xe
	USEASM_REGTYPE_SWIZZLE = 15; //0xf
	USEASM_REGTYPE_INTSRCSEL = 16; //0x10
	USEASM_REGTYPE_FILTERCOEFF = 17; //0x11
	USEASM_REGTYPE_LABEL_WITH_OFFSET = 18; //0x12
	USEASM_REGTYPE_TEMP_NAMED = 19; //0x13
	USEASM_REGTYPE_MAXIMUM = 20; //0x14
}

typedef enum UseasmRegTypeTAG UseasmRegType

enum FFGenRegDescTAG {
	FFGEN_INPUT_COLOR = 0; //0x0
	FFGEN_INPUT_SECONDARYCOLOR = 1; //0x1
	FFGEN_INPUT_NORMAL = 2; //0x2
	FFGEN_INPUT_VERTEX = 3; //0x3
	FFGEN_INPUT_MULTITEXCOORD0 = 4; //0x4
	FFGEN_INPUT_MULTITEXCOORD1 = 5; //0x5
	FFGEN_INPUT_MULTITEXCOORD2 = 6; //0x6
	FFGEN_INPUT_MULTITEXCOORD3 = 7; //0x7
	FFGEN_INPUT_MULTITEXCOORD4 = 8; //0x8
	FFGEN_INPUT_MULTITEXCOORD5 = 9; //0x9
	FFGEN_INPUT_MULTITEXCOORD6 = 10; //0xa
	FFGEN_INPUT_MULTITEXCOORD7 = 11; //0xb
	FFGEN_INPUT_FOGCOORD = 12; //0xc
	FFGEN_INPUT_VERTEXBLENDWEIGHT = 13; //0xd
	FFGEN_INPUT_VERTEXMATRIXINDEX = 14; //0xe
	FFGEN_INPUT_POINTSIZE = 15; //0xf
	FFGEN_OUTPUT_POSITION = 16; //0x10
	FFGEN_OUTPUT_POINTSIZE = 17; //0x11
	FFGEN_OUTPUT_CLIPVERTEX = 18; //0x12
	FFGEN_OUTPUT_FRONTCOLOR = 19; //0x13
	FFGEN_OUTPUT_BACKCOLOR = 20; //0x14
	FFGEN_OUTPUT_FRONTSECONDARYCOLOR = 21; //0x15
	FFGEN_OUTPUT_BACKSECONDARYCOLOR = 22; //0x16
	FFGEN_OUTPUT_TEXCOORD = 23; //0x17
	FFGEN_OUTPUT_FOGFRAGCOORD = 24; //0x18
	FFGEN_OUTPUT_POINTSPRITE = 25; //0x19
	FFGEN_STATE_MODELVIEWMATRIX = 26; //0x1a
	FFGEN_STATE_PROJECTMATRIX = 27; //0x1b
	FFGEN_STATE_MODELVIEWPROJECTIONMATRIX = 28; //0x1c
	FFGEN_STATE_TEXTUREMATRIX = 29; //0x1d
	FFGEN_STATE_MODELVIEWMATRIXINVERSETRANSPOSE = 30; //0x1e
	FFGEN_STATE_MATRIXPALETTEINDEXCLAMP = 31; //0x1f
	FFGEN_STATE_MODELVIEWMATRIXPALETTE = 32; //0x20
	FFGEN_STATE_MODELVIEWMATRIXINVERSETRANSPOSEPALETTE = 33; //0x21
	FFGEN_STATE_CLIPPLANE = 34; //0x22
	FFGEN_STATE_POINT = 35; //0x23
	FFGEN_STATE_FRONTMATERIAL = 36; //0x24
	FFGEN_STATE_BACKMATERIAL = 37; //0x25
	FFGEN_STATE_LIGHTSOURCE = 38; //0x26
	FFGEN_STATE_LIGHTSOURCE0 = 39; //0x27
	FFGEN_STATE_LIGHTSOURCE1 = 40; //0x28
	FFGEN_STATE_LIGHTSOURCE2 = 41; //0x29
	FFGEN_STATE_LIGHTSOURCE3 = 42; //0x2a
	FFGEN_STATE_LIGHTSOURCE4 = 43; //0x2b
	FFGEN_STATE_LIGHTSOURCE5 = 44; //0x2c
	FFGEN_STATE_LIGHTSOURCE6 = 45; //0x2d
	FFGEN_STATE_LIGHTSOURCE7 = 46; //0x2e
	FFGEN_STATE_LIGHTMODEL = 47; //0x2f
	FFGEN_STATE_FRONTLIGHTMODELPRODUCT = 48; //0x30
	FFGEN_STATE_BACKLIGHTMODELPRODUCT = 49; //0x31
	FFGEN_STATE_FRONTLIGHTPRODUCT = 50; //0x32
	FFGEN_STATE_BACKLIGHTPRODUCT = 51; //0x33
	FFGEN_STATE_EYEPLANES = 52; //0x34
	FFGEN_STATE_EYEPLANET = 53; //0x35
	FFGEN_STATE_EYEPLANER = 54; //0x36
	FFGEN_STATE_EYEPLANEQ = 55; //0x37
	FFGEN_STATE_OBJECTPLANES = 56; //0x38
	FFGEN_STATE_OBJECTPLANET = 57; //0x39
	FFGEN_STATE_OBJECTPLANER = 58; //0x3a
	FFGEN_STATE_OBJECTPLANEQ = 59; //0x3b
	FFGEN_STATE_PMXFOGPARAM = 60; //0x3c
	FFGEN_STATE_PMXPOINTSIZE = 61; //0x3d
	FFTNL_NUM_REGISTER_DESCRIPTIONS = 62; //0x3e
}

typedef enum FFGenRegDescTAG FFGenRegDesc

enum undefined {
	FFGEN_WDF_0 = 1; //0x1
	FFGEN_WDF_1 = 2; //0x2
	FFGEN_WDF_2 = 3; //0x3
	FFGEN_WDF_3 = 4; //0x4
}

typedef enum undefined FFGenWDFStatus

struct FFGenReg_TAG {
	UseasmRegType eType // @0
	IMG_UINT32 uOffset // @4
	IMG_UINT32 uSizeInDWords // @8
	FFGenRegDesc eBindingRegDesc // @c
	FFGenWDFStatus eWDFStatus // @10
	IMG_UINT32 uIndex // @14
}

typedef struct FFGenReg_TAG FFGenReg

struct FFGenRegList_TAG {
	FFGenReg* psReg // @0
	struct FFGenRegList_TAG* psNext // @4
	struct FFGenRegList_TAG* psPrev // @8
}

typedef struct FFGenRegList_TAG FFGenRegList

typedef struct {
	IMG_UINT32 bUSEPerInstanceMode // @0
	IMG_UINT32 ui32InstructionCount // @4
	IMG_UINT32* pui32Instructions // @8
	IMG_UINT32 ui32PrimaryAttributeCount // @c
	IMG_UINT32 ui32SecondaryAttributeCount // @10
	IMG_UINT32 ui32TemporaryRegisterCount // @14
	IMG_UINT32 ui32MemoryConstantCount // @18
} FFGEN_PROGRAM_DETAILS

struct FFGenProgram_TAG {
	FFGEN_PROGRAM_DETAILS* psFFGENProgramDetails // @0
	FFGenRegList* psConstantsList // @4
	FFGenRegList* psInputsList // @8
	FFGenRegList* psOutputsList // @c
	IMG_UINT32 uNumTexCoordUnits // @10
	IMG_UINT32[16] auOutputTexDimensions // @14
	IMG_UINT32 uMemoryConstantsSize // @54
	IMG_UINT32 uMemConstBaseAddrSAReg // @58
	IMG_UINT32 uSecAttribSize // @5c
	IMG_UINT32 uSecAttribStart // @60
	IMG_UINT32 uHashValue // @64
	IMG_UINT32 uRefCount // @68
	struct FFGenProgram_TAG* psNext // @6c
	struct FFGenProgram_TAG* psPrev // @70
}

typedef struct FFGenProgram_TAG FFGenProgram

struct GLES1PDSInfo_TAG {
	IMG_UINT32 ui32DMSInfoIterationSize // @0
	IMG_UINT32 ui32DMSInfoTextureSize // @4
	IMG_UINT32 ui32DMSInfo // @8
	IMG_UINT32[31] aui32TSPParamFetchInterface // @c
	IMG_UINT32[31] aui32LayerControl // @88
	IMG_UINT32 ui32NonDependentTextureCount // @104
	IMG_UINT32 ui32IterationCount // @108
	IMG_UINT32 ui32DependencyControl // @10c
	IMG_UINT32 ui32NonDependentImageUnits // @110
}

typedef struct GLES1PDSInfo_TAG GLES1PDSInfo

struct GLES1ShaderRec {
	FFGEN_PROGRAM_DETAILS* psFFGENProgramDetails // @0
	VSInputReg[18] asVSInputRegisters // @4
	IMG_FLOAT* pfConstantData // @94
	IMG_UINT32 ui32SizeOfConstants // @98
		union {
			struct {
		struct FFTBProgramDesc_TAG* psFFTBProgramDesc // @0
	} sFFTB
			struct {
		FFGenProgram* psFFTNLProgram // @0
	} sFFTNL
			struct {
		VPGenProgram* psVProgram // @0
	} sVP
	} u // @9c
	IMG_UINT32 ui32OutputSelects // @a0
	IMG_UINT32 ui32TexCoordSelects // @a4
	IMG_UINT32 ui32TexCoordPrecision // @a8
	IMG_UINT32 ui32USEMode // @ac
	IMG_UINT32 ui32USESecAttribDataSizeInDwords // @b0
	IMG_DEV_VIRTADDR uUSEConstsDataBaseAddress // @b4
	IMG_UINT32 ui32USEConstsDataSizeinDWords // @b8
	IMG_UINT32 ui32NumIndexableTempArrays // @bc
	IMG_DEV_VIRTADDR uIndexableTempBaseAddress // @c0
	IMG_UINT32 ui32IndexableTempSizeInDWords // @c4
	struct GLES1USEShaderVariant_TAG* psShaderVariant // @c8
	struct GLES1ShaderRec* psPrevious // @cc
	struct GLES1ShaderRec* psNext // @d0
}

struct VSInputReg_TAG {
	IMG_UINT32 ui32PrimaryAttribute // @0
	IMG_UINT32 ui32Size // @4
}

typedef struct VSInputReg_TAG VSInputReg

struct FFTBProgramDesc_TAG {
	IMG_UINT32 ui32NumNonDependentTextureLoads // @0
	GLES1_TEXTURE_LOAD[9] psNonDependentTextureLoads // @4
	FFGEN_PROGRAM_DETAILS* psFFGENProgramDetails // @b8
	IMG_UINT32 ui32NumBindings // @bc
	FFTBBindingInfo[12] asBindings // @c0
	IMG_UINT32 ui32CurrentConstantOffset // @150
}

typedef struct GLES1ShaderRec GLES1Shader

struct GLES1ProgramMachineRec {
	GLES1Shader* psCurrentVertexShader // @0
	GLES1Shader* psCurrentFragmentShader // @4
	GLES1ShaderVariant* psCurrentVertexVariant // @8
	GLES1ShaderVariant* psCurrentFragmentVariant // @c
	GLES1Shader* psVertex // @10
	GLES1Shader* psFragment // @14
	IMG_HANDLE hFFTNLGenContext // @18
	IMG_HANDLE hVPGenContext // @1c
	HashTable sFFTNLHashTable // @20
	HashTable sFFTextureBlendHashTable // @44
	PVRSRV_CLIENT_MEM_INFO* psDummyFragUSECode // @68
	PVRSRV_CLIENT_MEM_INFO* psDummyVertUSECode // @6c
}

typedef struct GLES1ProgramMachineRec GLES1ProgramMachine

enum undefined {
	FFTB_BINDING_FACTOR_SCALAR = 1; //0x1
	FFTB_BINDING_IMMEDIATE_SCALAR = 2; //0x2
}

typedef enum undefined FFTBBindingType

typedef struct {
	FFTBBindingType eType // @0
	IMG_UINT32 ui32Value // @4
	IMG_UINT32 ui32ConstantOffset // @8
} FFTBBindingInfo

enum undefined {
	GLES1_TEXTURE_COORDINATE_0 = 0; //0x0
	GLES1_TEXTURE_COORDINATE_1 = 1; //0x1
	GLES1_TEXTURE_COORDINATE_2 = 2; //0x2
	GLES1_TEXTURE_COORDINATE_3 = 3; //0x3
	GLES1_TEXTURE_COORDINATE_4 = 4; //0x4
	GLES1_TEXTURE_COORDINATE_5 = 5; //0x5
	GLES1_TEXTURE_COORDINATE_6 = 6; //0x6
	GLES1_TEXTURE_COORDINATE_7 = 7; //0x7
	GLES1_TEXTURE_COORDINATE_8 = 8; //0x8
	GLES1_TEXTURE_COORDINATE_9 = 9; //0x9
	GLES1_TEXTURE_COORDINATE_V0 = 10; //0xa
	GLES1_TEXTURE_COORDINATE_V1 = 11; //0xb
	GLES1_TEXTURE_COORDINATE_FOG = 12; //0xc
	GLES1_TEXTURE_COORDINATE_POSITION = 13; //0xd
}

typedef enum undefined GLES1_TEXTURE_COORDINATE

enum undefined {
	GLES1_TEXLOAD_FORMAT_F32 = 0; //0x0
	GLES1_TEXLOAD_FORMAT_U8 = 3; //0x3
}

typedef enum undefined GLES1_TEXLOAD_FORMAT

typedef struct {
	IMG_UINT32 ui32Texture // @0
	GLES1_TEXTURE_COORDINATE eCoordinate // @4
	IMG_UINT32 ui32CoordinateDimension // @8
	IMG_BOOL bProjected // @c
	GLES1_TEXLOAD_FORMAT eFormat // @10
} GLES1_TEXTURE_LOAD

struct GLESPolygonMachineRec {
	IMG_UINT32[2] aui32Face // @0
	IMG_UINT32 ui32CullFlag // @8
}

typedef struct GLESPolygonMachineRec GLESPolygonMachine

struct GLES1ContextSharedState_TAG {
	IMG_UINT32 ui32RefCount // @0
	GLES1TextureManager* psTextureManager // @4
	FRMFrameResourceManager sUSEShaderVariantManager // @8
	GLES1NamesArray*[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 GLES1ContextSharedState_TAG GLES1ContextSharedState

// external function
IMG_BOOL ValidateMemory(
	GLES1Context* gc
	)
{
}


// external function
void WaitForTA(
	GLES1Context* gc
	)
{
	volatile IMG_UINT32* pui32ReadOffset
}


// function
void SetupZLSRegs(
	GLES1Context* gc
	GLES3DRegisters* ps3DRegs
	IMG_UINT32 ui32ClearFlags
	)
{
	IMG_UINT32 ui32Extent
	IMG_UINT32 ui32ISPZLSControl
	IMG_UINT32 ui32ISPZLoadBase
	IMG_UINT32 ui32ISPZStoreBase
	IMG_UINT32 ui32ISPStencilLoadBase
	IMG_UINT32 ui32ISPStencilStoreBase
	IMG_UINT32 ui32RoundedWidth
	IMG_UINT32 ui32RoundedHeight
	{
		IMG_UINT32 ui32Offset
	}
	{
		GLESRenderBuffer* psDepthRenderBuffer
		GLESRenderBuffer* psStencilRenderBuffer
	}
}


// function PC=<0x232b0;0x2354c>
void GLESInitRegs(
	GLES1Context* gc
	IMG_UINT32 ui32ClearFlags
	)
{
	GLESTARegisters* psTARegs
	GLES3DRegisters* ps3DRegs
	GLES1_FUINT32 sFPUVal
	IMG_INT32 i32DepthBias
	IMG_UINT32 ui32MTERegister
	IMG_UINT32 ui32ISPIPFMisc
	// inlined
	// function
	void SetupZLSRegs(
		GLES1Context* gc
		GLES3DRegisters* ps3DRegs
		IMG_UINT32 ui32ClearFlags
		)
	{
		IMG_UINT32 ui32Extent
		IMG_UINT32 ui32ISPZLSControl
		IMG_UINT32 ui32ISPZLoadBase
		IMG_UINT32 ui32ISPZStoreBase
		IMG_UINT32 ui32ISPStencilLoadBase
		IMG_UINT32 ui32ISPStencilStoreBase
		IMG_UINT32 ui32RoundedWidth
		IMG_UINT32 ui32RoundedHeight
		{
			IMG_UINT32 ui32Offset
		}
		{
			GLESRenderBuffer* psDepthRenderBuffer
			GLESRenderBuffer* psStencilRenderBuffer
		}
	}

}


// external function
IMG_BOOL ValidateMemory(
	GLES1Context* gc
	)
{
}


// function
IMG_BOOL StartFrame(
	GLES1Context* gc
	IMG_UINT32* pui32ClearFlags
	)
{
	EGLRenderSurface* psRenderSurface
	GLES3DRegisters* ps3DRegs
	IMG_UINT32 ui32Right
	IMG_UINT32 ui32Bottom
	{
		IMG_BOOL bFullScreenDepthClear
	}
}


// external function PC=<0x23554;0x23a64>
IMG_BOOL PrepareToDraw(
	GLES1Context* gc
	IMG_UINT32* pui32ClearFlags
	)
{
	EGLDrawableParams* psDrawParams
	EGLDrawableParams sParams
	{
		IMG_UINT32 ui32LineWidth
	}
	// inlined
	// function
	IMG_BOOL StartFrame(
		GLES1Context* gc
		IMG_UINT32* pui32ClearFlags
		)
	{
		EGLRenderSurface* psRenderSurface
		GLES3DRegisters* ps3DRegs
		IMG_UINT32 ui32Right
		IMG_UINT32 ui32Bottom
		{
			IMG_BOOL bFullScreenDepthClear
		}
	}

	{
		IMG_BOOL bCreateZSBuffer
		{
			IMG_BOOL bMultiSample
		}
	}
}


// external function
void WaitForTA(
	GLES1Context* gc
	)
{
	volatile IMG_UINT32* pui32ReadOffset
}


// function
IMG_EGLERROR DoKickTA(
	GLES1Context* gc
	EGLRenderSurface* psRenderSurface
	IMG_UINT32 ui32KickFlags
	)
{
	SGX_KICKTA* psKickTA
	PVR3DIF4_KICKTA_OUTPUT sKickTAOutput
	IMG_VOID* pvPDumpData
	IMG_UINT32 ui32Flags
	GLESTARegisters* psTARegs
	GLES3DRegisters* ps3DRegs
	IMG_UINT32 i
	{
		IMG_BOOL bMultiSample
		IMG_BOOL bDither
		IMG_BOOL bMultiSampleChanged
		IMG_BOOL bDitherChanged
	}
	{
		GLESRenderBuffer* psDepthRenderBuffer
		GLESRenderBuffer* psStencilRenderBuffer
	}
}


// function
void WaitForRender(
	GLES1Context* gc
	PVRSRV_CLIENT_SYNC_INFO* psRenderSurfaceSyncInfo
	)
{
	IMG_UINT32 ui32TriesLeft
}


// external function PC=<0x23aa0;0x24124>
IMG_EGLERROR ScheduleTA(
	GLES1Context* gc
	EGLRenderSurface* psRenderSurface
	IMG_UINT32 ui32KickFlags
	)
{
	IMG_EGLERROR eError
	// inlined
	// function
	IMG_EGLERROR DoKickTA(
		GLES1Context* gc
		EGLRenderSurface* psRenderSurface
		IMG_UINT32 ui32KickFlags
		)
	{
		SGX_KICKTA* psKickTA
		PVR3DIF4_KICKTA_OUTPUT sKickTAOutput
		IMG_VOID* pvPDumpData
		IMG_UINT32 ui32Flags
		GLESTARegisters* psTARegs
		GLES3DRegisters* ps3DRegs
		IMG_UINT32 i
		{
			IMG_BOOL bMultiSample
			IMG_BOOL bDither
			IMG_BOOL bMultiSampleChanged
			IMG_BOOL bDitherChanged
		}
		{
			GLESRenderBuffer* psDepthRenderBuffer
			GLESRenderBuffer* psStencilRenderBuffer
		}
	}

	// inlined
	// function
	void WaitForRender(
		GLES1Context* gc
		PVRSRV_CLIENT_SYNC_INFO* psRenderSurfaceSyncInfo
		)
	{
		IMG_UINT32 ui32TriesLeft
	}

	// inlined
	// function
	void WaitForRender(
		GLES1Context* gc
		PVRSRV_CLIENT_SYNC_INFO* psRenderSurfaceSyncInfo
		)
	{
		IMG_UINT32 ui32TriesLeft
	}

	// inlined
	// external function
	void WaitForTA(
		GLES1Context* gc
		)
	{
		volatile IMG_UINT32* pui32ReadOffset
	}

}


// external function PC=<0x24124;0x2414c>
void KickLimit_ScheduleTA(
	IMG_VOID* pvContext
	IMG_BOOL bLastInScene
	)
{
	GLES1Context* gc
	IMG_UINT32 ui32Flags
}


const IMG_CHAR[757] gszExtensions

struct _IO_FILE* stdin

struct _IO_FILE* stdout

