Commit f6b6d273 by Nicolas Capens Committed by Nicolas Capens

Add stubs for RAD entry functions.

BUG=18218488 Change-Id: I9b69d2f8fdb64b9e91877bd4f506fc30a2bcd33c Reviewed-on: https://swiftshader-review.googlesource.com/1224Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com> Tested-by: 's avatarNicolas Capens <nicolascapens@google.com>
parent 77e72aff
......@@ -1195,9 +1195,13 @@ __eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress(const cha
static const Extension eglExtensions[] =
{
{"eglCreateImageKHR", (__eglMustCastToProperFunctionPointerType)eglCreateImageKHR},
{"eglDestroyImageKHR", (__eglMustCastToProperFunctionPointerType)eglDestroyImageKHR},
};
#define EXTENSION(name) {#name, (__eglMustCastToProperFunctionPointerType)name}
EXTENSION(eglCreateImageKHR),
EXTENSION(eglDestroyImageKHR),
#undef EXTENSION
};
for(int ext = 0; ext < sizeof(eglExtensions) / sizeof(Extension); ext++)
{
......
......@@ -6153,28 +6153,32 @@ __eglMustCastToProperFunctionPointerType glGetProcAddress(const char *procname)
static const Extension glExtensions[] =
{
{"glTexImage3DOES", (__eglMustCastToProperFunctionPointerType)glTexImage3DOES},
{"glBlitFramebufferANGLE", (__eglMustCastToProperFunctionPointerType)glBlitFramebufferANGLE},
{"glRenderbufferStorageMultisampleANGLE", (__eglMustCastToProperFunctionPointerType)glRenderbufferStorageMultisampleANGLE},
{"glDeleteFencesNV", (__eglMustCastToProperFunctionPointerType)glDeleteFencesNV},
{"glGenFencesNV", (__eglMustCastToProperFunctionPointerType)glGenFencesNV},
{"glIsFenceNV", (__eglMustCastToProperFunctionPointerType)glIsFenceNV},
{"glTestFenceNV", (__eglMustCastToProperFunctionPointerType)glTestFenceNV},
{"glGetFenceivNV", (__eglMustCastToProperFunctionPointerType)glGetFenceivNV},
{"glFinishFenceNV", (__eglMustCastToProperFunctionPointerType)glFinishFenceNV},
{"glSetFenceNV", (__eglMustCastToProperFunctionPointerType)glSetFenceNV},
{"glGetGraphicsResetStatusEXT", (__eglMustCastToProperFunctionPointerType)glGetGraphicsResetStatusEXT},
{"glReadnPixelsEXT", (__eglMustCastToProperFunctionPointerType)glReadnPixelsEXT},
{"glGetnUniformfvEXT", (__eglMustCastToProperFunctionPointerType)glGetnUniformfvEXT},
{"glGetnUniformivEXT", (__eglMustCastToProperFunctionPointerType)glGetnUniformivEXT},
{"glGenQueriesEXT", (__eglMustCastToProperFunctionPointerType)glGenQueriesEXT},
{"glDeleteQueriesEXT", (__eglMustCastToProperFunctionPointerType)glDeleteQueriesEXT},
{"glIsQueryEXT", (__eglMustCastToProperFunctionPointerType)glIsQueryEXT},
{"glBeginQueryEXT", (__eglMustCastToProperFunctionPointerType)glBeginQueryEXT},
{"glEndQueryEXT", (__eglMustCastToProperFunctionPointerType)glEndQueryEXT},
{"glGetQueryivEXT", (__eglMustCastToProperFunctionPointerType)glGetQueryivEXT},
{"glGetQueryObjectuivEXT", (__eglMustCastToProperFunctionPointerType)glGetQueryObjectuivEXT},
{"glEGLImageTargetTexture2DOES", (__eglMustCastToProperFunctionPointerType)glEGLImageTargetTexture2DOES}
#define EXTENSION(name) {#name, (__eglMustCastToProperFunctionPointerType)name}
EXTENSION(glTexImage3DOES),
EXTENSION(glBlitFramebufferANGLE),
EXTENSION(glRenderbufferStorageMultisampleANGLE),
EXTENSION(glDeleteFencesNV),
EXTENSION(glGenFencesNV),
EXTENSION(glIsFenceNV),
EXTENSION(glTestFenceNV),
EXTENSION(glGetFenceivNV),
EXTENSION(glFinishFenceNV),
EXTENSION(glSetFenceNV),
EXTENSION(glGetGraphicsResetStatusEXT),
EXTENSION(glReadnPixelsEXT),
EXTENSION(glGetnUniformfvEXT),
EXTENSION(glGetnUniformivEXT),
EXTENSION(glGenQueriesEXT),
EXTENSION(glDeleteQueriesEXT),
EXTENSION(glIsQueryEXT),
EXTENSION(glBeginQueryEXT),
EXTENSION(glEndQueryEXT),
EXTENSION(glGetQueryivEXT),
EXTENSION(glGetQueryObjectuivEXT),
EXTENSION(glEGLImageTargetTexture2DOES),
#undef EXTENSION
};
for(int ext = 0; ext < sizeof(glExtensions) / sizeof(Extension); ext++)
......
#ifndef __rad_h_
#define __rad_h_
/*
** Copyright 1998-2014, NVIDIA Corporation.
** All Rights Reserved.
**
** THE INFORMATION CONTAINED HEREIN IS PROPRIETARY AND CONFIDENTIAL TO
** NVIDIA, CORPORATION. USE, REPRODUCTION OR DISCLOSURE TO ANY THIRD PARTY
** IS SUBJECT TO WRITTEN PRE-APPROVAL BY NVIDIA, CORPORATION.
*/
#ifndef RADAPIENTRY
# ifdef _WIN32
# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) /* Mimic <windef.h> */
# define RADAPIENTRY __stdcall
# else
# define RADAPIENTRY
# endif
# else
# define RADAPIENTRY
# endif
#endif
#ifndef RADAPI
# if defined(__GNUC__)
# define RADAPI extern __attribute__ ((visibility ("default")))
# else
# define RADAPI extern
# endif
#endif
#ifndef RADAPIENTRYP
# define RADAPIENTRYP RADAPIENTRY *
#endif
/*************************************************************/
typedef unsigned char RADboolean;
typedef unsigned int RADbitfield;
typedef signed char RADbyte;
typedef short RADshort;
typedef int RADint;
typedef int RADsizei;
typedef unsigned char RADubyte;
typedef unsigned short RADushort;
typedef unsigned int RADuint;
typedef float RADfloat;
typedef double RADdouble;
typedef void RADvoid;
# if defined(_WIN64)
typedef __int64 RADintptr;
typedef __int64 RADsizeiptr;
# elif defined(__LP64__)
typedef long int RADintptr;
typedef long int RADsizeiptr;
# else
typedef int RADintptr;
typedef int RADsizeiptr;
# endif
typedef char RADchar;
typedef signed long long RADint64;
typedef unsigned long long RADuint64;
typedef struct __RADdevice *RADdevice;
typedef struct __RADqueue *RADqueue;
typedef struct __RADpipeline *RADpipeline;
typedef struct __RADcommandBuffer *RADcommandBuffer;
typedef struct __RADcolorState *RADcolorState;
typedef struct __RADdepthStencilState *RADdepthStencilState;
typedef struct __RADvertexState *RADvertexState;
typedef struct __RADrasterState *RADrasterState;
typedef struct __RADrtFormatState *RADrtFormatState;
typedef struct __RADprogram *RADprogram;
typedef struct __RADbuffer *RADbuffer;
typedef struct __RADtexture *RADtexture;
typedef struct __RADsampler *RADsampler;
typedef struct __RADpass *RADpass;
typedef struct __RADsync *RADsync;
typedef struct RADbindGroupElement {
RADuint64 handle;
RADuint offset;
RADuint length;
} RADbindGroupElement;
typedef struct RADoffset2D {
RADint x, y;
} RADoffset2D;
typedef struct RADrect2D {
RADint x, y, width, height;
} RADrect2D;
typedef RADuint64 RADvertexHandle;
typedef RADuint64 RADindexHandle;
typedef RADuint64 RADuniformHandle;
typedef RADuint64 RADpipelineHandle;
typedef RADuint64 RADcommandHandle;
typedef RADuint64 RADtextureHandle;
typedef RADuint64 RADrenderTargetHandle;
typedef RADuint64 RADbindGroupHandle;
typedef void (*RADPROC)(void);
typedef enum {
RAD_TAG_AUTO = 0,
RAD_TAG_MANUAL = 1,
} RADtagMode;
typedef enum {
RAD_QUEUE_TYPE_GRAPHICS_AND_COMPUTE = 0,
RAD_QUEUE_TYPE_GRAPHICS = 1,
RAD_QUEUE_TYPE_COMPUTE = 2,
RAD_QUEUE_TYPE_COPY = 3,
} RADqueueType;
typedef enum {
RAD_PIPELINE_TYPE_GRAPHICS = 0,
} RADpipelineType;
typedef enum {
RAD_PROGRAM_FORMAT_GLSL = 0,
} RADprogramFormat;
typedef enum {
RAD_TEXTURE_1D = 0x0000,
RAD_TEXTURE_2D = 0x0001,
RAD_TEXTURE_3D = 0x0002,
RAD_TEXTURE_1D_ARRAY = 0x0003,
RAD_TEXTURE_2D_ARRAY = 0x0004,
RAD_TEXTURE_2D_MULTISAMPLE = 0x0005,
RAD_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x0006,
RAD_TEXTURE_RECTANGLE = 0x0007,
RAD_TEXTURE_CUBEMAP = 0x0008,
RAD_TEXTURE_CUBEMAP_ARRAY = 0x0009,
} RADtextureTarget;
typedef enum {
RAD_RGBA8 = 0x8058,
RAD_DEPTH24_STENCIL8 = 0x88F0,
} RADinternalFormat;
typedef enum {
RAD_BLEND_FUNC_ZERO = 0x0000,
RAD_BLEND_FUNC_ONE = 0x0001,
RAD_BLEND_FUNC_SRC_COLOR = 0x0002,
RAD_BLEND_FUNC_ONE_MINUS_SRC_COLOR = 0x0003,
RAD_BLEND_FUNC_DST_COLOR = 0x0004,
RAD_BLEND_FUNC_ONE_MINUS_DST_COLOR = 0x0005,
RAD_BLEND_FUNC_SRC_ALPHA = 0x0006,
RAD_BLEND_FUNC_ONE_MINUS_SRC_ALPHA = 0x0007,
RAD_BLEND_FUNC_DST_ALPHA = 0x0008,
RAD_BLEND_FUNC_ONE_MINUS_DST_ALPHA = 0x0009,
RAD_BLEND_FUNC_SRC_ALPHA_SATURATE = 0x000A,
RAD_BLEND_FUNC_CONSTANT_COLOR = 0x000B,
RAD_BLEND_FUNC_ONE_MINUS_CONSTANT_COLOR = 0x000C,
RAD_BLEND_FUNC_CONSTANT_ALPHA = 0x000D,
RAD_BLEND_FUNC_ONE_MINUS_CONSTANT_ALPHA = 0x000E,
RAD_BLEND_FUNC_SRC1_COLOR = 0x000F,
RAD_BLEND_FUNC_ONE_MINUS_SRC1_COLOR = 0x0010,
RAD_BLEND_FUNC_SRC1_ALPHA = 0x0011,
RAD_BLEND_FUNC_ONE_MINUS_SRC1_ALPHA = 0x0012,
} RADblendFunc;
typedef enum {
RAD_BLEND_EQUATION_ADD = 0x0000,
RAD_BLEND_EQUATION_MIN = 0x0001,
RAD_BLEND_EQUATION_MAX = 0x0002,
RAD_BLEND_EQUATION_SUB = 0x0003,
RAD_BLEND_EQUATION_REVERSE_SUB = 0x0004,
} RADblendEquation;
typedef enum {
RAD_LOGIC_OP_CLEAR = 0x0000,
RAD_LOGIC_OP_AND = 0x0001,
RAD_LOGIC_OP_AND_REVERSE = 0x0002,
RAD_LOGIC_OP_COPY = 0x0003,
RAD_LOGIC_OP_AND_INVERTED = 0x0004,
RAD_LOGIC_OP_NOOP = 0x0005,
RAD_LOGIC_OP_XOR = 0x0006,
RAD_LOGIC_OP_OR = 0x0007,
RAD_LOGIC_OP_NOR = 0x0008,
RAD_LOGIC_OP_EQUIV = 0x0009,
RAD_LOGIC_OP_INVERT = 0x000A,
RAD_LOGIC_OP_OR_REVERSE = 0x000B,
RAD_LOGIC_OP_COPY_INVERTED = 0x000C,
RAD_LOGIC_OP_OR_INVERTED = 0x000D,
RAD_LOGIC_OP_NAND = 0x000E,
RAD_LOGIC_OP_SET = 0x000F,
} RADlogicOp;
typedef enum {
RAD_COLOR_DYNAMIC_BLEND_COLOR = 0x0000,
} RADcolorDynamic;
typedef enum {
RAD_ATTRIB_TYPE_SNORM = 0x0000,
RAD_ATTRIB_TYPE_UNORM = 0x0001,
RAD_ATTRIB_TYPE_INT = 0x0002,
RAD_ATTRIB_TYPE_UNSIGNED_INT = 0x0003,
RAD_ATTRIB_TYPE_INT_TO_FLOAT = 0x0004,
RAD_ATTRIB_TYPE_UNSIGNED_INT_TO_FLOAT = 0x0005,
RAD_ATTRIB_TYPE_FLOAT = 0x0006,
RAD_ATTRIB_TYPE_SNORM_2_10_10_10_REV = 0x0007,
RAD_ATTRIB_TYPE_UNORM_2_10_10_10_REV = 0x0008,
RAD_ATTRIB_TYPE_INT_TO_FLOAT_2_10_10_10_REV = 0x0009,
RAD_ATTRIB_TYPE_UNSIGNED_INT_TO_FLOAT_2_10_10_10_REV = 0x000A,
RAD_ATTRIB_TYPE_10F_11F_11F_REV = 0x000B,
} RADattribType;
typedef enum {
RAD_TRIANGLES = 0x0004,
} RADprimitiveType;
typedef enum {
RAD_INDEX_UNSIGNED_BYTE = 0x0000,
RAD_INDEX_UNSIGNED_SHORT = 0x0001,
RAD_INDEX_UNSIGNED_INT = 0x0002,
} RADindexType;
typedef enum {
RAD_DEPTH_FUNC_NEVER = 0x0000,
RAD_DEPTH_FUNC_LESS = 0x0001,
RAD_DEPTH_FUNC_EQUAL = 0x0002,
RAD_DEPTH_FUNC_LEQUAL = 0x0003,
RAD_DEPTH_FUNC_GREATER = 0x0004,
RAD_DEPTH_FUNC_NOTEQUAL = 0x0005,
RAD_DEPTH_FUNC_GEQUAL = 0x0006,
RAD_DEPTH_FUNC_ALWAYS = 0x0007,
} RADdepthFunc;
typedef enum {
RAD_MAG_FILTER_NEAREST = 0x0000,
RAD_MAG_FILTER_LINEAR = 0x0001,
} RADmagFilter;
typedef enum {
RAD_MIN_FILTER_NEAREST = 0x0000,
RAD_MIN_FILTER_LINEAR = 0x0001,
RAD_MIN_FILTER_NEAREST_MIPMAP_NEAREST = 0x0002,
RAD_MIN_FILTER_LINEAR_MIPMAP_NEAREST = 0x0003,
RAD_MIN_FILTER_NEAREST_MIPMAP_LINEAR = 0x0004,
RAD_MIN_FILTER_LINEAR_MIPMAP_LINEAR = 0x0005,
} RADminFilter;
// TODO: Figure out the correct subset of wrap modes to support
typedef enum {
RAD_WRAP_MODE_CLAMP = 0x0000,
RAD_WRAP_MODE_REPEAT = 0x0001,
RAD_WRAP_MODE_MIRROR_CLAMP = 0x0002,
RAD_WRAP_MODE_MIRROR_CLAMP_TO_EDGE = 0x0003,
RAD_WRAP_MODE_MIRROR_CLAMP_TO_BORDER = 0x0004,
RAD_WRAP_MODE_CLAMP_TO_BORDER = 0x0005,
RAD_WRAP_MODE_MIRRORED_REPEAT = 0x0006,
RAD_WRAP_MODE_CLAMP_TO_EDGE = 0x0007,
} RADwrapMode;
typedef enum {
RAD_COMPARE_MODE_NONE = 0x0000,
RAD_COMPARE_MODE_COMPARE_R_TO_TEXTURE = 0x0001,
} RADcompareMode;
typedef enum {
RAD_COMPARE_FUNC_NEVER = 0x0000,
RAD_COMPARE_FUNC_LESS = 0x0001,
RAD_COMPARE_FUNC_EQUAL = 0x0002,
RAD_COMPARE_FUNC_LEQUAL = 0x0003,
RAD_COMPARE_FUNC_GREATER = 0x0004,
RAD_COMPARE_FUNC_NOTEQUAL = 0x0005,
RAD_COMPARE_FUNC_GEQUAL = 0x0006,
RAD_COMPARE_FUNC_ALWAYS = 0x0007,
} RADcompareFunc;
typedef enum {
RAD_FACE_NONE = 0x0000,
RAD_FACE_FRONT = 0x0001,
RAD_FACE_BACK = 0x0002,
RAD_FACE_FRONT_AND_BACK = 0x0003,
} RADfaceBitfield;
typedef enum {
RAD_STENCIL_FUNC_NEVER = 0x0000,
RAD_STENCIL_FUNC_LESS = 0x0001,
RAD_STENCIL_FUNC_EQUAL = 0x0002,
RAD_STENCIL_FUNC_LEQUAL = 0x0003,
RAD_STENCIL_FUNC_GREATER = 0x0004,
RAD_STENCIL_FUNC_NOTEQUAL = 0x0005,
RAD_STENCIL_FUNC_GEQUAL = 0x0006,
RAD_STENCIL_FUNC_ALWAYS = 0x0007,
} RADstencilFunc;
typedef enum {
RAD_STENCIL_OP_KEEP = 0x0000,
RAD_STENCIL_OP_ZERO = 0x0001,
RAD_STENCIL_OP_REPLACE = 0x0002,
RAD_STENCIL_OP_INCR = 0x0003,
RAD_STENCIL_OP_DECR = 0x0004,
RAD_STENCIL_OP_INVERT = 0x0005,
RAD_STENCIL_OP_INCR_WRAP = 0x0006,
RAD_STENCIL_OP_DECR_WRAP = 0x0007,
} RADstencilOp;
typedef enum {
// Both faces must either be dynamic or static
RAD_DEPTH_STENCIL_DYNAMIC_STENCIL_VALUE_MASK = 0x0000,
RAD_DEPTH_STENCIL_DYNAMIC_STENCIL_MASK = 0x0001,
RAD_DEPTH_STENCIL_DYNAMIC_STENCIL_REF = 0x0002,
} RADdepthStencilDynamic;
typedef enum {
RAD_FRONT_FACE_CW = 0x0000,
RAD_FRONT_FACE_CCW = 0x0001,
} RADfrontFace;
typedef enum {
RAD_POLYGON_MODE_POINT = 0x0000,
RAD_POLYGON_MODE_LINE = 0x0001,
RAD_POLYGON_MODE_FILL = 0x0002,
} RADpolygonMode;
typedef enum {
RAD_POLYGON_OFFSET_POINT = 0x0001,
RAD_POLYGON_OFFSET_LINE = 0x0002,
RAD_POLYGON_OFFSET_FILL = 0x0004,
} RADpolygonOffsetEnables;
typedef enum {
RAD_RASTER_DYNAMIC_POINT_SIZE = 0x0000,
RAD_RASTER_DYNAMIC_LINE_WIDTH = 0x0001,
RAD_RASTER_DYNAMIC_POLYGON_OFFSET_CLAMP = 0x0002,
RAD_RASTER_DYNAMIC_SAMPLEMASK = 0x0003,
} RADrasterDynamic;
typedef enum {
RAD_RT_ATTACHMENT_DEPTH = 0x0000,
RAD_RT_ATTACHMENT_STENCIL = 0x0001,
RAD_RT_ATTACHMENT_COLOR0 = 0x0002,
RAD_RT_ATTACHMENT_COLOR1 = 0x0003,
RAD_RT_ATTACHMENT_COLOR2 = 0x0004,
RAD_RT_ATTACHMENT_COLOR3 = 0x0005,
RAD_RT_ATTACHMENT_COLOR4 = 0x0006,
RAD_RT_ATTACHMENT_COLOR5 = 0x0007,
RAD_RT_ATTACHMENT_COLOR6 = 0x0008,
RAD_RT_ATTACHMENT_COLOR7 = 0x0009,
} RADrtAttachment;
typedef enum {
RAD_SYNC_ALL_GPU_COMMANDS_COMPLETE = 0x0000,
RAD_SYNC_GRAPHICS_WORLD_SPACE_COMPLETE = 0x0001,
} RADsyncCondition;
typedef enum {
RAD_WAIT_SYNC_ALREADY_SIGNALED = 0x0000,
RAD_WAIT_SYNC_CONDITION_SATISFIED = 0x0001,
RAD_WAIT_SYNC_TIMEOUT_EXPIRED = 0x0002,
RAD_WAIT_SYNC_FAILED = 0x0003,
} RADwaitSyncResult;
typedef enum {
RAD_TOKEN_NOP = 0x0000,
RAD_TOKEN_BIND_GRAPHICS_PIPELINE = 0x0001,
RAD_TOKEN_BIND_GROUP = 0x0002,
RAD_TOKEN_DRAW_ARRAYS = 0x0003,
RAD_TOKEN_DRAW_ELEMENTS = 0x0004,
RAD_TOKEN_STENCIL_VALUE_MASK = 0x0005,
RAD_TOKEN_STENCIL_MASK = 0x0006,
RAD_TOKEN_STENCIL_REF = 0x0007,
RAD_TOKEN_BLEND_COLOR = 0x0008,
RAD_TOKEN_POINT_SIZE = 0x0009,
RAD_TOKEN_LINE_WIDTH = 0x000A,
RAD_TOKEN_POLYGON_OFFSET_CLAMP = 0x000B,
RAD_TOKEN_SAMPLE_MASK = 0x000C,
} RADtokenName;
// XXX TODO: May need some ifdefs to make this pragma more portable
#pragma pack(push, 4)
typedef struct RADtokenBindGraphicsPipeline {
RADuint64 pipelineHandle;
} RADtokenBindGraphicsPipeline;
typedef struct RADtokenBindGroup {
RADuint stages;
RADuint group;
RADuint64 groupHandle;
RADuint offset;
RADuint count;
} RADtokenBindGroup;
typedef struct RADtokenDrawArrays {
RADuint mode;
RADuint first;
RADuint count;
} RADtokenDrawArrays;
typedef struct RADtokenDrawElements {
RADuint64 indexHandle;
RADuint offset;
RADuint mode;
RADuint type;
RADuint count;
} RADtokenDrawElements;
typedef struct RADtokenBlendColor {
RADfloat color[4];
} RADtokenBlendColor;
typedef struct RADtokenStencilValueMask {
RADuint faces;
RADuint mask;
} RADtokenStencilValueMask;
typedef struct RADtokenStencilMask {
RADuint faces;
RADuint mask;
} RADtokenStencilMask;
typedef struct RADtokenStencilRef {
RADuint faces;
RADint ref;
} RADtokenStencilRef;
typedef struct RADtokenPointSize {
RADfloat pointSize;
} RADtokenPointSize;
typedef struct RADtokenLineWidth {
RADfloat lineWidth;
} RADtokenLineWidth;
typedef struct RADtokenPolygonOffsetClamp {
RADfloat factor;
RADfloat units;
RADfloat clamp;
} RADtokenPolygonOffsetClamp;
typedef struct RADtokenSampleMask {
RADuint mask;
} RADtokenSampleMask;
#pragma pack(pop)
#define RAD_FALSE 0x0000
#define RAD_TRUE 0x0001
#define RAD_VERTEX_ACCESS_BIT 0x00000001
#define RAD_UNIFORM_ACCESS_BIT 0x00000002
#define RAD_SHADER_STORAGE_ACCESS_BIT 0x00000004
#define RAD_INDEX_ACCESS_BIT 0x00000008
#define RAD_BINDGROUP_ACCESS_BIT 0x00000010
#define RAD_COPY_READ_ACCESS_BIT 0x00000020
#define RAD_COPY_WRITE_ACCESS_BIT 0x00000040
#define RAD_TEXTURE_ACCESS_BIT 0x00000080
#define RAD_RENDER_TARGET_ACCESS_BIT 0x00000100
#define RAD_IMAGE_ACCESS_BIT 0x00000200
#define RAD_MAP_READ_BIT 0x0001
#define RAD_MAP_WRITE_BIT 0x0002
#define RAD_MAP_PERSISTENT_BIT 0x0040
#define RAD_MAP_COHERENT_BIT 0x0080
#define RAD_VERTEX_SHADER_BIT 0x00000001
#define RAD_FRAGMENT_SHADER_BIT 0x00000002
#define RAD_GEOMETRY_SHADER_BIT 0x00000004
#define RAD_TESS_CONTROL_SHADER_BIT 0x00000008
#define RAD_TESS_EVALUATION_SHADER_BIT 0x00000010
#define RAD_SYNC_FLAG_FLUSH_FOR_CPU 0x00000001
#ifndef RAD_VERSION_1_0
#define RAD_VERSION_1_0 1
#ifdef RAD_PROTOTYPES
RADAPI RADPROC RADAPIENTRY radGetProcAddress (const RADchar *name);
RADAPI RADdevice RADAPIENTRY radCreateDevice (void);
RADAPI void RADAPIENTRY radReferenceDevice (RADdevice device);
RADAPI void RADAPIENTRY radReleaseDevice (RADdevice device);
RADAPI RADuint RADAPIENTRY radGetTokenHeader (RADdevice device, RADtokenName name);
RADAPI RADqueue RADAPIENTRY radCreateQueue (RADdevice device, RADqueueType queuetype);
RADAPI void RADAPIENTRY radReferenceQueue (RADqueue queue);
RADAPI void RADAPIENTRY radReleaseQueue (RADqueue queue);
RADAPI void RADAPIENTRY radQueueTagBuffer (RADqueue queue, RADbuffer buffer);
RADAPI void RADAPIENTRY radQueueTagTexture (RADqueue queue, RADtexture texture);
RADAPI void RADAPIENTRY radQueueSubmitCommands (RADqueue queue, RADuint numCommands, const RADcommandHandle *handles);
RADAPI void RADAPIENTRY radFlushQueue (RADqueue queue);
RADAPI void RADAPIENTRY radFinishQueue (RADqueue queue);
RADAPI void RADAPIENTRY radQueueViewport (RADqueue queue, RADint x, RADint y, RADint w, RADint h);
RADAPI void RADAPIENTRY radQueueScissor (RADqueue queue, RADint x, RADint y, RADint w, RADint h);
RADAPI void RADAPIENTRY radQueueCopyBufferToImage (RADqueue queue, RADbuffer buffer, RADintptr bufferOffset, RADtexture texture, RADint level, RADuint xoffset, RADuint yoffset, RADuint zoffset, RADsizei width, RADsizei height, RADsizei depth);
RADAPI void RADAPIENTRY radQueueCopyImageToBuffer (RADqueue queue, RADbuffer buffer, RADintptr bufferOffset, RADtexture texture, RADint level, RADuint xoffset, RADuint yoffset, RADuint zoffset, RADsizei width, RADsizei height, RADsizei depth);
RADAPI void RADAPIENTRY radQueueCopyBuffer (RADqueue queue, RADbuffer srcBuffer, RADintptr srcOffset, RADbuffer dstBuffer, RADintptr dstOffset, RADsizei size);
RADAPI void RADAPIENTRY radQueueClearColor (RADqueue queue, RADuint index, const RADfloat *color);
RADAPI void RADAPIENTRY radQueueClearDepth (RADqueue queue, RADfloat depth);
RADAPI void RADAPIENTRY radQueueClearStencil (RADqueue queue, RADuint stencil);
RADAPI void RADAPIENTRY radQueuePresent (RADqueue queue, RADtexture texture);
RADAPI void RADAPIENTRY radQueueDrawArrays (RADqueue queue, RADprimitiveType mode, RADint first, RADsizei count);
RADAPI void RADAPIENTRY radQueueDrawElements (RADqueue queue, RADprimitiveType mode, RADindexType type, RADsizei count, RADindexHandle indexHandle, RADuint offset);
RADAPI void RADAPIENTRY radQueueBindPipeline (RADqueue queue, RADpipelineType pipelineType, RADpipelineHandle pipelineHandle);
RADAPI void RADAPIENTRY radQueueBindGroup (RADqueue queue, RADbitfield stages, RADuint group, RADuint count, RADbindGroupHandle groupHandle, RADuint offset);
RADAPI void RADAPIENTRY radQueueBeginPass (RADqueue queue, RADpass pass);
RADAPI void RADAPIENTRY radQueueEndPass (RADqueue queue, RADpass pass);
RADAPI void RADAPIENTRY radQueueSubmitDynamic (RADqueue queue, const void *dynamic, RADsizei length);
RADAPI void RADAPIENTRY radQueueStencilValueMask (RADqueue queue, RADfaceBitfield faces, RADuint mask);
RADAPI void RADAPIENTRY radQueueStencilMask (RADqueue queue, RADfaceBitfield faces, RADuint mask);
RADAPI void RADAPIENTRY radQueueStencilRef (RADqueue queue, RADfaceBitfield faces, RADint ref);
RADAPI void RADAPIENTRY radQueueBlendColor (RADqueue queue, const RADfloat *blendColor);
RADAPI void RADAPIENTRY radQueuePointSize (RADqueue queue, RADfloat pointSize);
RADAPI void RADAPIENTRY radQueueLineWidth (RADqueue queue, RADfloat lineWidth);
RADAPI void RADAPIENTRY radQueuePolygonOffsetClamp (RADqueue queue, RADfloat factor, RADfloat units, RADfloat clamp);
RADAPI void RADAPIENTRY radQueueSampleMask (RADqueue queue, RADuint mask);
RADAPI RADprogram RADAPIENTRY radCreateProgram (RADdevice device);
RADAPI void RADAPIENTRY radReferenceProgram (RADprogram program);
RADAPI void RADAPIENTRY radReleaseProgram (RADprogram program);
RADAPI void RADAPIENTRY radProgramSource (RADprogram program, RADprogramFormat format, RADsizei length, const void *source);
RADAPI RADbuffer RADAPIENTRY radCreateBuffer (RADdevice device);
RADAPI void RADAPIENTRY radReferenceBuffer (RADbuffer buffer);
RADAPI void RADAPIENTRY radReleaseBuffer (RADbuffer buffer, RADtagMode tagMode);
RADAPI void RADAPIENTRY radBufferAccess (RADbuffer buffer, RADbitfield access);
RADAPI void RADAPIENTRY radBufferMapAccess (RADbuffer buffer, RADbitfield mapAccess);
RADAPI void RADAPIENTRY radBufferStorage (RADbuffer buffer, RADsizei size);
RADAPI void* RADAPIENTRY radMapBuffer (RADbuffer buffer);
RADAPI RADvertexHandle RADAPIENTRY radGetVertexHandle (RADbuffer buffer);
RADAPI RADindexHandle RADAPIENTRY radGetIndexHandle (RADbuffer buffer);
RADAPI RADuniformHandle RADAPIENTRY radGetUniformHandle (RADbuffer buffer);
RADAPI RADbindGroupHandle RADAPIENTRY radGetBindGroupHandle (RADbuffer buffer);
RADAPI RADtexture RADAPIENTRY radCreateTexture (RADdevice device);
RADAPI void RADAPIENTRY radReferenceTexture (RADtexture texture);
RADAPI void RADAPIENTRY radReleaseTexture (RADtexture texture, RADtagMode tagMode);
RADAPI void RADAPIENTRY radTextureAccess (RADtexture texture, RADbitfield access);
RADAPI void RADAPIENTRY radTextureStorage (RADtexture texture, RADtextureTarget target, RADsizei levels, RADinternalFormat internalFormat, RADsizei width, RADsizei height, RADsizei depth, RADsizei samples);
RADAPI RADtextureHandle RADAPIENTRY radGetTextureSamplerHandle (RADtexture texture, RADsampler sampler, RADtextureTarget target, RADinternalFormat internalFormat, RADuint minLevel, RADuint numLevels, RADuint minLayer, RADuint numLayers);
RADAPI RADrenderTargetHandle RADAPIENTRY radGetTextureRenderTargetHandle (RADtexture texture, RADtextureTarget target, RADinternalFormat internalFormat, RADuint level, RADuint minLayer, RADuint numLayers);
RADAPI RADsampler RADAPIENTRY radCreateSampler (RADdevice device);
RADAPI void RADAPIENTRY radReferenceSampler (RADsampler sampler);
RADAPI void RADAPIENTRY radReleaseSampler (RADsampler sampler);
RADAPI void RADAPIENTRY radSamplerDefault (RADsampler sampler);
RADAPI void RADAPIENTRY radSamplerMinMagFilter (RADsampler sampler, RADminFilter min, RADmagFilter mag);
RADAPI void RADAPIENTRY radSamplerWrapMode (RADsampler sampler, RADwrapMode s, RADwrapMode t, RADwrapMode r);
RADAPI void RADAPIENTRY radSamplerLodClamp (RADsampler sampler, RADfloat min, RADfloat max);
RADAPI void RADAPIENTRY radSamplerLodBias (RADsampler sampler, RADfloat bias);
RADAPI void RADAPIENTRY radSamplerCompare (RADsampler sampler, RADcompareMode mode, RADcompareFunc func);
RADAPI void RADAPIENTRY radSamplerBorderColorFloat (RADsampler sampler, const RADfloat *borderColor);
RADAPI void RADAPIENTRY radSamplerBorderColorInt (RADsampler sampler, const RADuint *borderColor);
RADAPI RADcolorState RADAPIENTRY radCreateColorState (RADdevice device);
RADAPI void RADAPIENTRY radReferenceColorState (RADcolorState color);
RADAPI void RADAPIENTRY radReleaseColorState (RADcolorState color);
RADAPI void RADAPIENTRY radColorDefault (RADcolorState color);
RADAPI void RADAPIENTRY radColorBlendEnable (RADcolorState color, RADuint index, RADboolean enable);
RADAPI void RADAPIENTRY radColorBlendFunc (RADcolorState color, RADuint index, RADblendFunc srcFunc, RADblendFunc dstFunc, RADblendFunc srcFuncAlpha, RADblendFunc dstFuncAlpha);
RADAPI void RADAPIENTRY radColorBlendEquation (RADcolorState color, RADuint index, RADblendEquation modeRGB, RADblendEquation modeAlpha);
RADAPI void RADAPIENTRY radColorMask (RADcolorState color, RADuint index, RADboolean r, RADboolean g, RADboolean b, RADboolean a);
RADAPI void RADAPIENTRY radColorNumTargets (RADcolorState color, RADuint numTargets);
RADAPI void RADAPIENTRY radColorLogicOpEnable (RADcolorState color, RADboolean enable);
RADAPI void RADAPIENTRY radColorLogicOp (RADcolorState color, RADlogicOp logicOp);
RADAPI void RADAPIENTRY radColorAlphaToCoverageEnable (RADcolorState color, RADboolean enable);
RADAPI void RADAPIENTRY radColorBlendColor (RADcolorState color, const RADfloat *blendColor);
RADAPI void RADAPIENTRY radColorDynamic (RADcolorState color, RADcolorDynamic dynamic, RADboolean enable);
RADAPI RADrasterState RADAPIENTRY radCreateRasterState (RADdevice device);
RADAPI void RADAPIENTRY radReferenceRasterState (RADrasterState raster);
RADAPI void RADAPIENTRY radReleaseRasterState (RADrasterState raster);
RADAPI void RADAPIENTRY radRasterDefault (RADrasterState raster);
RADAPI void RADAPIENTRY radRasterPointSize (RADrasterState raster, RADfloat pointSize);
RADAPI void RADAPIENTRY radRasterLineWidth (RADrasterState raster, RADfloat lineWidth);
RADAPI void RADAPIENTRY radRasterCullFace (RADrasterState raster, RADfaceBitfield face);
RADAPI void RADAPIENTRY radRasterFrontFace (RADrasterState raster, RADfrontFace face);
RADAPI void RADAPIENTRY radRasterPolygonMode (RADrasterState raster, RADpolygonMode polygonMode);
RADAPI void RADAPIENTRY radRasterPolygonOffsetClamp (RADrasterState raster, RADfloat factor, RADfloat units, RADfloat clamp);
RADAPI void RADAPIENTRY radRasterPolygonOffsetEnables (RADrasterState raster, RADpolygonOffsetEnables enables);
RADAPI void RADAPIENTRY radRasterDiscardEnable (RADrasterState raster, RADboolean enable);
RADAPI void RADAPIENTRY radRasterMultisampleEnable (RADrasterState raster, RADboolean enable);
RADAPI void RADAPIENTRY radRasterSamples (RADrasterState raster, RADuint samples);
RADAPI void RADAPIENTRY radRasterSampleMask (RADrasterState raster, RADuint mask);
RADAPI void RADAPIENTRY radRasterDynamic (RADrasterState raster, RADrasterDynamic dynamic, RADboolean enable);
RADAPI RADdepthStencilState RADAPIENTRY radCreateDepthStencilState (RADdevice device);
RADAPI void RADAPIENTRY radReferenceDepthStencilState (RADdepthStencilState depthStencil);
RADAPI void RADAPIENTRY radReleaseDepthStencilState (RADdepthStencilState depthStencil);
RADAPI void RADAPIENTRY radDepthStencilDefault (RADdepthStencilState depthStencil);
RADAPI void RADAPIENTRY radDepthStencilDepthTestEnable (RADdepthStencilState depthStencil, RADboolean enable);
RADAPI void RADAPIENTRY radDepthStencilDepthWriteEnable (RADdepthStencilState depthStencil, RADboolean enable);
RADAPI void RADAPIENTRY radDepthStencilDepthFunc (RADdepthStencilState depthStencil, RADdepthFunc func);
RADAPI void RADAPIENTRY radDepthStencilStencilTestEnable (RADdepthStencilState depthStencil, RADboolean enable);
RADAPI void RADAPIENTRY radDepthStencilStencilFunc (RADdepthStencilState depthStencil, RADfaceBitfield faces, RADstencilFunc func, RADint ref, RADuint mask);
RADAPI void RADAPIENTRY radDepthStencilStencilOp (RADdepthStencilState depthStencil, RADfaceBitfield faces, RADstencilOp fail, RADstencilOp depthFail, RADstencilOp depthPass);
RADAPI void RADAPIENTRY radDepthStencilStencilMask (RADdepthStencilState depthStencil, RADfaceBitfield faces, RADuint mask);
RADAPI void RADAPIENTRY radDepthStencilDynamic (RADdepthStencilState depthStencil, RADdepthStencilDynamic dynamic, RADboolean enable);
RADAPI RADvertexState RADAPIENTRY radCreateVertexState (RADdevice device);
RADAPI void RADAPIENTRY radReferenceVertexState (RADvertexState vertex);
RADAPI void RADAPIENTRY radReleaseVertexState (RADvertexState vertex);
RADAPI void RADAPIENTRY radVertexDefault (RADvertexState vertex);
RADAPI void RADAPIENTRY radVertexAttribFormat (RADvertexState vertex, RADint attribIndex, RADint numComponents, RADint bytesPerComponent, RADattribType type, RADuint relativeOffset);
RADAPI void RADAPIENTRY radVertexAttribBinding (RADvertexState vertex, RADint attribIndex, RADint bindingIndex);
RADAPI void RADAPIENTRY radVertexBindingGroup (RADvertexState vertex, RADint bindingIndex, RADint group, RADint index);
RADAPI void RADAPIENTRY radVertexAttribEnable (RADvertexState vertex, RADint attribIndex, RADboolean enable);
RADAPI void RADAPIENTRY radVertexBindingStride (RADvertexState vertex, RADint bindingIndex, RADuint stride);
RADAPI RADrtFormatState RADAPIENTRY radCreateRtFormatState (RADdevice device);
RADAPI void RADAPIENTRY radReferenceRtFormatState (RADrtFormatState rtFormat);
RADAPI void RADAPIENTRY radReleaseRtFormatState (RADrtFormatState rtFormat);
RADAPI void RADAPIENTRY radRtFormatDefault (RADrtFormatState rtFormat);
RADAPI void RADAPIENTRY radRtFormatColorFormat (RADrtFormatState rtFormat, RADuint index, RADinternalFormat format);
RADAPI void RADAPIENTRY radRtFormatDepthFormat (RADrtFormatState rtFormat, RADinternalFormat format);
RADAPI void RADAPIENTRY radRtFormatStencilFormat (RADrtFormatState rtFormat, RADinternalFormat format);
RADAPI void RADAPIENTRY radRtFormatColorSamples (RADrtFormatState rtFormat, RADuint samples);
RADAPI void RADAPIENTRY radRtFormatDepthStencilSamples (RADrtFormatState rtFormat, RADuint samples);
RADAPI RADpipeline RADAPIENTRY radCreatePipeline (RADdevice device, RADpipelineType pipelineType);
RADAPI void RADAPIENTRY radReferencePipeline (RADpipeline pipeline);
RADAPI void RADAPIENTRY radReleasePipeline (RADpipeline pipeline);
RADAPI void RADAPIENTRY radPipelineProgramStages (RADpipeline pipeline, RADbitfield stages, RADprogram program);
RADAPI void RADAPIENTRY radPipelineVertexState (RADpipeline pipeline, RADvertexState vertex);
RADAPI void RADAPIENTRY radPipelineColorState (RADpipeline pipeline, RADcolorState color);
RADAPI void RADAPIENTRY radPipelineRasterState (RADpipeline pipeline, RADrasterState raster);
RADAPI void RADAPIENTRY radPipelineDepthStencilState (RADpipeline pipeline, RADdepthStencilState depthStencil);
RADAPI void RADAPIENTRY radPipelineRtFormatState (RADpipeline pipeline, RADrtFormatState rtFormat);
RADAPI void RADAPIENTRY radPipelinePrimitiveType (RADpipeline pipeline, RADprimitiveType mode);
RADAPI void RADAPIENTRY radCompilePipeline (RADpipeline pipeline);
RADAPI RADpipelineHandle RADAPIENTRY radGetPipelineHandle (RADpipeline pipeline);
RADAPI RADcommandBuffer RADAPIENTRY radCreateCommandBuffer (RADdevice device, RADqueueType queueType);
RADAPI void RADAPIENTRY radReferenceCommandBuffer (RADcommandBuffer cmdBuf);
RADAPI void RADAPIENTRY radReleaseCommandBuffer (RADcommandBuffer cmdBuf);
RADAPI void RADAPIENTRY radCmdBindPipeline (RADcommandBuffer cmdBuf, RADpipelineType pipelineType, RADpipelineHandle pipelineHandle);
RADAPI void RADAPIENTRY radCmdBindGroup (RADcommandBuffer cmdBuf, RADbitfield stages, RADuint group, RADuint count, RADbindGroupHandle groupHandle, RADuint offset);
RADAPI void RADAPIENTRY radCmdDrawArrays (RADcommandBuffer cmdBuf, RADprimitiveType mode, RADint first, RADsizei count);
RADAPI void RADAPIENTRY radCmdDrawElements (RADcommandBuffer cmdBuf, RADprimitiveType mode, RADindexType type, RADsizei count, RADindexHandle indexHandle, RADuint offset);
RADAPI RADboolean RADAPIENTRY radCompileCommandBuffer (RADcommandBuffer cmdBuf);
RADAPI RADcommandHandle RADAPIENTRY radGetCommandHandle (RADcommandBuffer cmdBuf);
RADAPI void RADAPIENTRY radCmdStencilValueMask (RADcommandBuffer cmdBuf, RADfaceBitfield faces, RADuint mask);
RADAPI void RADAPIENTRY radCmdStencilMask (RADcommandBuffer cmdBuf, RADfaceBitfield faces, RADuint mask);
RADAPI void RADAPIENTRY radCmdStencilRef (RADcommandBuffer cmdBuf, RADfaceBitfield faces, RADint ref);
RADAPI void RADAPIENTRY radCmdBlendColor (RADcommandBuffer cmdBuf, const RADfloat *blendColor);
RADAPI void RADAPIENTRY radCmdPointSize (RADcommandBuffer cmdBuf, RADfloat pointSize);
RADAPI void RADAPIENTRY radCmdLineWidth (RADcommandBuffer cmdBuf, RADfloat lineWidth);
RADAPI void RADAPIENTRY radCmdPolygonOffsetClamp (RADcommandBuffer cmdBuf, RADfloat factor, RADfloat units, RADfloat clamp);
RADAPI void RADAPIENTRY radCmdSampleMask (RADcommandBuffer cmdBuf, RADuint mask);
RADAPI RADpass RADAPIENTRY radCreatePass (RADdevice device);
RADAPI void RADAPIENTRY radReferencePass (RADpass pass);
RADAPI void RADAPIENTRY radReleasePass (RADpass pass);
RADAPI void RADAPIENTRY radPassDefault (RADpass pass);
RADAPI void RADAPIENTRY radCompilePass (RADpass pass);
RADAPI void RADAPIENTRY radPassRenderTargets (RADpass pass, RADuint numColors, const RADrenderTargetHandle *colors, RADrenderTargetHandle depth, RADrenderTargetHandle stencil);
RADAPI void RADAPIENTRY radPassPreserveEnable (RADpass pass, RADrtAttachment attachment, RADboolean enable);
RADAPI void RADAPIENTRY radPassDiscard (RADpass pass, RADuint numTextures, const RADtexture *textures, const RADoffset2D *offsets);
RADAPI void RADAPIENTRY radPassResolve (RADpass pass, RADrtAttachment attachment, RADtexture texture);
RADAPI void RADAPIENTRY radPassStore (RADpass pass, RADuint numTextures, const RADtexture *textures, const RADoffset2D *offsets);
RADAPI void RADAPIENTRY radPassClip (RADpass pass, const RADrect2D *rect);
RADAPI void RADAPIENTRY radPassDependencies (RADpass pass, RADuint numPasses, const RADpass *otherPasses, const RADbitfield *srcMask, const RADbitfield *dstMask, const RADbitfield *flushMask, const RADbitfield *invalidateMask);
RADAPI void RADAPIENTRY radPassTilingBoundary (RADpass pass, RADboolean boundary);
RADAPI void RADAPIENTRY radPassTileFilterWidth (RADpass pass, RADuint filterWidth, RADuint filterHeight);
RADAPI void RADAPIENTRY radPassTileFootprint (RADpass pass, RADuint bytesPerPixel, RADuint maxFilterWidth, RADuint maxFilterHeight);
RADAPI RADsync RADAPIENTRY radCreateSync (RADdevice device);
RADAPI void RADAPIENTRY radReferenceSync (RADsync sync);
RADAPI void RADAPIENTRY radReleaseSync (RADsync sync);
RADAPI void RADAPIENTRY radQueueFenceSync (RADqueue queue, RADsync sync, RADsyncCondition condition, RADbitfield flags);
RADAPI RADwaitSyncResult RADAPIENTRY radWaitSync (RADsync sync, RADuint64 timeout);
RADAPI RADboolean RADAPIENTRY radQueueWaitSync (RADqueue queue, RADsync sync);
#endif /* RAD_PROTOTYPES */
typedef RADPROC (RADAPIENTRYP PFNRADGETPROCADDRESSPROC) (const RADchar *name);
typedef RADdevice (RADAPIENTRYP PFNRADCREATEDEVICEPROC) (void);
typedef void (RADAPIENTRYP PFNRADREFERENCEDEVICEPROC) (RADdevice device);
typedef void (RADAPIENTRYP PFNRADRELEASEDEVICEPROC) (RADdevice device);
typedef RADuint (RADAPIENTRYP PFNRADGETTOKENHEADERPROC) (RADdevice device, RADtokenName name);
typedef RADqueue (RADAPIENTRYP PFNRADCREATEQUEUEPROC) (RADdevice device, RADqueueType queuetype);
typedef void (RADAPIENTRYP PFNRADREFERENCEQUEUEPROC) (RADqueue queue);
typedef void (RADAPIENTRYP PFNRADRELEASEQUEUEPROC) (RADqueue queue);
typedef void (RADAPIENTRYP PFNRADQUEUETAGBUFFERPROC) (RADqueue queue, RADbuffer buffer);
typedef void (RADAPIENTRYP PFNRADQUEUETAGTEXTUREPROC) (RADqueue queue, RADtexture texture);
typedef void (RADAPIENTRYP PFNRADQUEUESUBMITCOMMANDSPROC) (RADqueue queue, RADuint numCommands, const RADcommandHandle *handles);
typedef void (RADAPIENTRYP PFNRADFLUSHQUEUEPROC) (RADqueue queue);
typedef void (RADAPIENTRYP PFNRADFINISHQUEUEPROC) (RADqueue queue);
typedef void (RADAPIENTRYP PFNRADQUEUEVIEWPORTPROC) (RADqueue queue, RADint x, RADint y, RADint w, RADint h);
typedef void (RADAPIENTRYP PFNRADQUEUESCISSORPROC) (RADqueue queue, RADint x, RADint y, RADint w, RADint h);
typedef void (RADAPIENTRYP PFNRADQUEUECOPYBUFFERTOIMAGEPROC) (RADqueue queue, RADbuffer buffer, RADintptr bufferOffset, RADtexture texture, RADint level, RADuint xoffset, RADuint yoffset, RADuint zoffset, RADsizei width, RADsizei height, RADsizei depth);
typedef void (RADAPIENTRYP PFNRADQUEUECOPYIMAGETOBUFFERPROC) (RADqueue queue, RADbuffer buffer, RADintptr bufferOffset, RADtexture texture, RADint level, RADuint xoffset, RADuint yoffset, RADuint zoffset, RADsizei width, RADsizei height, RADsizei depth);
typedef void (RADAPIENTRYP PFNRADQUEUECOPYBUFFERPROC) (RADqueue queue, RADbuffer srcBuffer, RADintptr srcOffset, RADbuffer dstBuffer, RADintptr dstOffset, RADsizei size);
typedef void (RADAPIENTRYP PFNRADQUEUECLEARCOLORPROC) (RADqueue queue, RADuint index, const RADfloat *color);
typedef void (RADAPIENTRYP PFNRADQUEUECLEARDEPTHPROC) (RADqueue queue, RADfloat depth);
typedef void (RADAPIENTRYP PFNRADQUEUECLEARSTENCILPROC) (RADqueue queue, RADuint stencil);
typedef void (RADAPIENTRYP PFNRADQUEUEPRESENTPROC) (RADqueue queue, RADtexture texture);
typedef void (RADAPIENTRYP PFNRADQUEUEDRAWARRAYSPROC) (RADqueue queue, RADprimitiveType mode, RADint first, RADsizei count);
typedef void (RADAPIENTRYP PFNRADQUEUEDRAWELEMENTSPROC) (RADqueue queue, RADprimitiveType mode, RADindexType type, RADsizei count, RADindexHandle indexHandle, RADuint offset);
typedef void (RADAPIENTRYP PFNRADQUEUEBINDPIPELINEPROC) (RADqueue queue, RADpipelineType pipelineType, RADpipelineHandle pipelineHandle);
typedef void (RADAPIENTRYP PFNRADQUEUEBINDGROUPPROC) (RADqueue queue, RADbitfield stages, RADuint group, RADuint count, RADbindGroupHandle groupHandle, RADuint offset);
typedef void (RADAPIENTRYP PFNRADQUEUEBEGINPASSPROC) (RADqueue queue, RADpass pass);
typedef void (RADAPIENTRYP PFNRADQUEUEENDPASSPROC) (RADqueue queue, RADpass pass);
typedef void (RADAPIENTRYP PFNRADQUEUESUBMITDYNAMICPROC) (RADqueue queue, const void *dynamic, RADsizei length);
typedef void (RADAPIENTRYP PFNRADQUEUESTENCILVALUEMASKPROC) (RADqueue queue, RADfaceBitfield faces, RADuint mask);
typedef void (RADAPIENTRYP PFNRADQUEUESTENCILMASKPROC) (RADqueue queue, RADfaceBitfield faces, RADuint mask);
typedef void (RADAPIENTRYP PFNRADQUEUESTENCILREFPROC) (RADqueue queue, RADfaceBitfield faces, RADint ref);
typedef void (RADAPIENTRYP PFNRADQUEUEBLENDCOLORPROC) (RADqueue queue, const RADfloat *blendColor);
typedef void (RADAPIENTRYP PFNRADQUEUEPOINTSIZEPROC) (RADqueue queue, RADfloat pointSize);
typedef void (RADAPIENTRYP PFNRADQUEUELINEWIDTHPROC) (RADqueue queue, RADfloat lineWidth);
typedef void (RADAPIENTRYP PFNRADQUEUEPOLYGONOFFSETCLAMPPROC) (RADqueue queue, RADfloat factor, RADfloat units, RADfloat clamp);
typedef void (RADAPIENTRYP PFNRADQUEUESAMPLEMASKPROC) (RADqueue queue, RADuint mask);
typedef RADprogram (RADAPIENTRYP PFNRADCREATEPROGRAMPROC) (RADdevice device);
typedef void (RADAPIENTRYP PFNRADREFERENCEPROGRAMPROC) (RADprogram program);
typedef void (RADAPIENTRYP PFNRADRELEASEPROGRAMPROC) (RADprogram program);
typedef void (RADAPIENTRYP PFNRADPROGRAMSOURCEPROC) (RADprogram program, RADprogramFormat format, RADsizei length, const void *source);
typedef RADbuffer (RADAPIENTRYP PFNRADCREATEBUFFERPROC) (RADdevice device);
typedef void (RADAPIENTRYP PFNRADREFERENCEBUFFERPROC) (RADbuffer buffer);
typedef void (RADAPIENTRYP PFNRADRELEASEBUFFERPROC) (RADbuffer buffer, RADtagMode tagMode);
typedef void (RADAPIENTRYP PFNRADBUFFERACCESSPROC) (RADbuffer buffer, RADbitfield access);
typedef void (RADAPIENTRYP PFNRADBUFFERMAPACCESSPROC) (RADbuffer buffer, RADbitfield mapAccess);
typedef void (RADAPIENTRYP PFNRADBUFFERSTORAGEPROC) (RADbuffer buffer, RADsizei size);
typedef void* (RADAPIENTRYP PFNRADMAPBUFFERPROC) (RADbuffer buffer);
typedef RADvertexHandle (RADAPIENTRYP PFNRADGETVERTEXHANDLEPROC) (RADbuffer buffer);
typedef RADindexHandle (RADAPIENTRYP PFNRADGETINDEXHANDLEPROC) (RADbuffer buffer);
typedef RADuniformHandle (RADAPIENTRYP PFNRADGETUNIFORMHANDLEPROC) (RADbuffer buffer);
typedef RADbindGroupHandle (RADAPIENTRYP PFNRADGETBINDGROUPHANDLEPROC) (RADbuffer buffer);
typedef RADtexture (RADAPIENTRYP PFNRADCREATETEXTUREPROC) (RADdevice device);
typedef void (RADAPIENTRYP PFNRADREFERENCETEXTUREPROC) (RADtexture texture);
typedef void (RADAPIENTRYP PFNRADRELEASETEXTUREPROC) (RADtexture texture, RADtagMode tagMode);
typedef void (RADAPIENTRYP PFNRADTEXTUREACCESSPROC) (RADtexture texture, RADbitfield access);
typedef void (RADAPIENTRYP PFNRADTEXTURESTORAGEPROC) (RADtexture texture, RADtextureTarget target, RADsizei levels, RADinternalFormat internalFormat, RADsizei width, RADsizei height, RADsizei depth, RADsizei samples);
typedef RADtextureHandle (RADAPIENTRYP PFNRADGETTEXTURESAMPLERHANDLEPROC) (RADtexture texture, RADsampler sampler, RADtextureTarget target, RADinternalFormat internalFormat, RADuint minLevel, RADuint numLevels, RADuint minLayer, RADuint numLayers);
typedef RADrenderTargetHandle (RADAPIENTRYP PFNRADGETTEXTURERENDERTARGETHANDLEPROC) (RADtexture texture, RADtextureTarget target, RADinternalFormat internalFormat, RADuint level, RADuint minLayer, RADuint numLayers);
typedef RADsampler (RADAPIENTRYP PFNRADCREATESAMPLERPROC) (RADdevice device);
typedef void (RADAPIENTRYP PFNRADREFERENCESAMPLERPROC) (RADsampler sampler);
typedef void (RADAPIENTRYP PFNRADRELEASESAMPLERPROC) (RADsampler sampler);
typedef void (RADAPIENTRYP PFNRADSAMPLERDEFAULTPROC) (RADsampler sampler);
typedef void (RADAPIENTRYP PFNRADSAMPLERMINMAGFILTERPROC) (RADsampler sampler, RADminFilter min, RADmagFilter mag);
typedef void (RADAPIENTRYP PFNRADSAMPLERWRAPMODEPROC) (RADsampler sampler, RADwrapMode s, RADwrapMode t, RADwrapMode r);
typedef void (RADAPIENTRYP PFNRADSAMPLERLODCLAMPPROC) (RADsampler sampler, RADfloat min, RADfloat max);
typedef void (RADAPIENTRYP PFNRADSAMPLERLODBIASPROC) (RADsampler sampler, RADfloat bias);
typedef void (RADAPIENTRYP PFNRADSAMPLERCOMPAREPROC) (RADsampler sampler, RADcompareMode mode, RADcompareFunc func);
typedef void (RADAPIENTRYP PFNRADSAMPLERBORDERCOLORFLOATPROC) (RADsampler sampler, const RADfloat *borderColor);
typedef void (RADAPIENTRYP PFNRADSAMPLERBORDERCOLORINTPROC) (RADsampler sampler, const RADuint *borderColor);
typedef RADcolorState (RADAPIENTRYP PFNRADCREATECOLORSTATEPROC) (RADdevice device);
typedef void (RADAPIENTRYP PFNRADREFERENCECOLORSTATEPROC) (RADcolorState color);
typedef void (RADAPIENTRYP PFNRADRELEASECOLORSTATEPROC) (RADcolorState color);
typedef void (RADAPIENTRYP PFNRADCOLORDEFAULTPROC) (RADcolorState color);
typedef void (RADAPIENTRYP PFNRADCOLORBLENDENABLEPROC) (RADcolorState color, RADuint index, RADboolean enable);
typedef void (RADAPIENTRYP PFNRADCOLORBLENDFUNCPROC) (RADcolorState color, RADuint index, RADblendFunc srcFunc, RADblendFunc dstFunc, RADblendFunc srcFuncAlpha, RADblendFunc dstFuncAlpha);
typedef void (RADAPIENTRYP PFNRADCOLORBLENDEQUATIONPROC) (RADcolorState color, RADuint index, RADblendEquation modeRGB, RADblendEquation modeAlpha);
typedef void (RADAPIENTRYP PFNRADCOLORMASKPROC) (RADcolorState color, RADuint index, RADboolean r, RADboolean g, RADboolean b, RADboolean a);
typedef void (RADAPIENTRYP PFNRADCOLORNUMTARGETSPROC) (RADcolorState color, RADuint numTargets);
typedef void (RADAPIENTRYP PFNRADCOLORLOGICOPENABLEPROC) (RADcolorState color, RADboolean enable);
typedef void (RADAPIENTRYP PFNRADCOLORLOGICOPPROC) (RADcolorState color, RADlogicOp logicOp);
typedef void (RADAPIENTRYP PFNRADCOLORALPHATOCOVERAGEENABLEPROC) (RADcolorState color, RADboolean enable);
typedef void (RADAPIENTRYP PFNRADCOLORBLENDCOLORPROC) (RADcolorState color, const RADfloat *blendColor);
typedef void (RADAPIENTRYP PFNRADCOLORDYNAMICPROC) (RADcolorState color, RADcolorDynamic dynamic, RADboolean enable);
typedef RADrasterState (RADAPIENTRYP PFNRADCREATERASTERSTATEPROC) (RADdevice device);
typedef void (RADAPIENTRYP PFNRADREFERENCERASTERSTATEPROC) (RADrasterState raster);
typedef void (RADAPIENTRYP PFNRADRELEASERASTERSTATEPROC) (RADrasterState raster);
typedef void (RADAPIENTRYP PFNRADRASTERDEFAULTPROC) (RADrasterState raster);
typedef void (RADAPIENTRYP PFNRADRASTERPOINTSIZEPROC) (RADrasterState raster, RADfloat pointSize);
typedef void (RADAPIENTRYP PFNRADRASTERLINEWIDTHPROC) (RADrasterState raster, RADfloat lineWidth);
typedef void (RADAPIENTRYP PFNRADRASTERCULLFACEPROC) (RADrasterState raster, RADfaceBitfield face);
typedef void (RADAPIENTRYP PFNRADRASTERFRONTFACEPROC) (RADrasterState raster, RADfrontFace face);
typedef void (RADAPIENTRYP PFNRADRASTERPOLYGONMODEPROC) (RADrasterState raster, RADpolygonMode polygonMode);
typedef void (RADAPIENTRYP PFNRADRASTERPOLYGONOFFSETCLAMPPROC) (RADrasterState raster, RADfloat factor, RADfloat units, RADfloat clamp);
typedef void (RADAPIENTRYP PFNRADRASTERPOLYGONOFFSETENABLESPROC) (RADrasterState raster, RADpolygonOffsetEnables enables);
typedef void (RADAPIENTRYP PFNRADRASTERDISCARDENABLEPROC) (RADrasterState raster, RADboolean enable);
typedef void (RADAPIENTRYP PFNRADRASTERMULTISAMPLEENABLEPROC) (RADrasterState raster, RADboolean enable);
typedef void (RADAPIENTRYP PFNRADRASTERSAMPLESPROC) (RADrasterState raster, RADuint samples);
typedef void (RADAPIENTRYP PFNRADRASTERSAMPLEMASKPROC) (RADrasterState raster, RADuint mask);
typedef void (RADAPIENTRYP PFNRADRASTERDYNAMICPROC) (RADrasterState raster, RADrasterDynamic dynamic, RADboolean enable);
typedef RADdepthStencilState (RADAPIENTRYP PFNRADCREATEDEPTHSTENCILSTATEPROC) (RADdevice device);
typedef void (RADAPIENTRYP PFNRADREFERENCEDEPTHSTENCILSTATEPROC) (RADdepthStencilState depthStencil);
typedef void (RADAPIENTRYP PFNRADRELEASEDEPTHSTENCILSTATEPROC) (RADdepthStencilState depthStencil);
typedef void (RADAPIENTRYP PFNRADDEPTHSTENCILDEFAULTPROC) (RADdepthStencilState depthStencil);
typedef void (RADAPIENTRYP PFNRADDEPTHSTENCILDEPTHTESTENABLEPROC) (RADdepthStencilState depthStencil, RADboolean enable);
typedef void (RADAPIENTRYP PFNRADDEPTHSTENCILDEPTHWRITEENABLEPROC) (RADdepthStencilState depthStencil, RADboolean enable);
typedef void (RADAPIENTRYP PFNRADDEPTHSTENCILDEPTHFUNCPROC) (RADdepthStencilState depthStencil, RADdepthFunc func);
typedef void (RADAPIENTRYP PFNRADDEPTHSTENCILSTENCILTESTENABLEPROC) (RADdepthStencilState depthStencil, RADboolean enable);
typedef void (RADAPIENTRYP PFNRADDEPTHSTENCILSTENCILFUNCPROC) (RADdepthStencilState depthStencil, RADfaceBitfield faces, RADstencilFunc func, RADint ref, RADuint mask);
typedef void (RADAPIENTRYP PFNRADDEPTHSTENCILSTENCILOPPROC) (RADdepthStencilState depthStencil, RADfaceBitfield faces, RADstencilOp fail, RADstencilOp depthFail, RADstencilOp depthPass);
typedef void (RADAPIENTRYP PFNRADDEPTHSTENCILSTENCILMASKPROC) (RADdepthStencilState depthStencil, RADfaceBitfield faces, RADuint mask);
typedef void (RADAPIENTRYP PFNRADDEPTHSTENCILDYNAMICPROC) (RADdepthStencilState depthStencil, RADdepthStencilDynamic dynamic, RADboolean enable);
typedef RADvertexState (RADAPIENTRYP PFNRADCREATEVERTEXSTATEPROC) (RADdevice device);
typedef void (RADAPIENTRYP PFNRADREFERENCEVERTEXSTATEPROC) (RADvertexState vertex);
typedef void (RADAPIENTRYP PFNRADRELEASEVERTEXSTATEPROC) (RADvertexState vertex);
typedef void (RADAPIENTRYP PFNRADVERTEXDEFAULTPROC) (RADvertexState vertex);
typedef void (RADAPIENTRYP PFNRADVERTEXATTRIBFORMATPROC) (RADvertexState vertex, RADint attribIndex, RADint numComponents, RADint bytesPerComponent, RADattribType type, RADuint relativeOffset);
typedef void (RADAPIENTRYP PFNRADVERTEXATTRIBBINDINGPROC) (RADvertexState vertex, RADint attribIndex, RADint bindingIndex);
typedef void (RADAPIENTRYP PFNRADVERTEXBINDINGGROUPPROC) (RADvertexState vertex, RADint bindingIndex, RADint group, RADint index);
typedef void (RADAPIENTRYP PFNRADVERTEXATTRIBENABLEPROC) (RADvertexState vertex, RADint attribIndex, RADboolean enable);
typedef void (RADAPIENTRYP PFNRADVERTEXBINDINGSTRIDEPROC) (RADvertexState vertex, RADint bindingIndex, RADuint stride);
typedef RADrtFormatState (RADAPIENTRYP PFNRADCREATERTFORMATSTATEPROC) (RADdevice device);
typedef void (RADAPIENTRYP PFNRADREFERENCERTFORMATSTATEPROC) (RADrtFormatState rtFormat);
typedef void (RADAPIENTRYP PFNRADRELEASERTFORMATSTATEPROC) (RADrtFormatState rtFormat);
typedef void (RADAPIENTRYP PFNRADRTFORMATDEFAULTPROC) (RADrtFormatState rtFormat);
typedef void (RADAPIENTRYP PFNRADRTFORMATCOLORFORMATPROC) (RADrtFormatState rtFormat, RADuint index, RADinternalFormat format);
typedef void (RADAPIENTRYP PFNRADRTFORMATDEPTHFORMATPROC) (RADrtFormatState rtFormat, RADinternalFormat format);
typedef void (RADAPIENTRYP PFNRADRTFORMATSTENCILFORMATPROC) (RADrtFormatState rtFormat, RADinternalFormat format);
typedef void (RADAPIENTRYP PFNRADRTFORMATCOLORSAMPLESPROC) (RADrtFormatState rtFormat, RADuint samples);
typedef void (RADAPIENTRYP PFNRADRTFORMATDEPTHSTENCILSAMPLESPROC) (RADrtFormatState rtFormat, RADuint samples);
typedef RADpipeline (RADAPIENTRYP PFNRADCREATEPIPELINEPROC) (RADdevice device, RADpipelineType pipelineType);
typedef void (RADAPIENTRYP PFNRADREFERENCEPIPELINEPROC) (RADpipeline pipeline);
typedef void (RADAPIENTRYP PFNRADRELEASEPIPELINEPROC) (RADpipeline pipeline);
typedef void (RADAPIENTRYP PFNRADPIPELINEPROGRAMSTAGESPROC) (RADpipeline pipeline, RADbitfield stages, RADprogram program);
typedef void (RADAPIENTRYP PFNRADPIPELINEVERTEXSTATEPROC) (RADpipeline pipeline, RADvertexState vertex);
typedef void (RADAPIENTRYP PFNRADPIPELINECOLORSTATEPROC) (RADpipeline pipeline, RADcolorState color);
typedef void (RADAPIENTRYP PFNRADPIPELINERASTERSTATEPROC) (RADpipeline pipeline, RADrasterState raster);
typedef void (RADAPIENTRYP PFNRADPIPELINEDEPTHSTENCILSTATEPROC) (RADpipeline pipeline, RADdepthStencilState depthStencil);
typedef void (RADAPIENTRYP PFNRADPIPELINERTFORMATSTATEPROC) (RADpipeline pipeline, RADrtFormatState rtFormat);
typedef void (RADAPIENTRYP PFNRADPIPELINEPRIMITIVETYPEPROC) (RADpipeline pipeline, RADprimitiveType mode);
typedef void (RADAPIENTRYP PFNRADCOMPILEPIPELINEPROC) (RADpipeline pipeline);
typedef RADpipelineHandle (RADAPIENTRYP PFNRADGETPIPELINEHANDLEPROC) (RADpipeline pipeline);
typedef RADcommandBuffer (RADAPIENTRYP PFNRADCREATECOMMANDBUFFERPROC) (RADdevice device, RADqueueType queueType);
typedef void (RADAPIENTRYP PFNRADREFERENCECOMMANDBUFFERPROC) (RADcommandBuffer cmdBuf);
typedef void (RADAPIENTRYP PFNRADRELEASECOMMANDBUFFERPROC) (RADcommandBuffer cmdBuf);
typedef void (RADAPIENTRYP PFNRADCMDBINDPIPELINEPROC) (RADcommandBuffer cmdBuf, RADpipelineType pipelineType, RADpipelineHandle pipelineHandle);
typedef void (RADAPIENTRYP PFNRADCMDBINDGROUPPROC) (RADcommandBuffer cmdBuf, RADbitfield stages, RADuint group, RADuint count, RADbindGroupHandle groupHandle, RADuint offset);
typedef void (RADAPIENTRYP PFNRADCMDDRAWARRAYSPROC) (RADcommandBuffer cmdBuf, RADprimitiveType mode, RADint first, RADsizei count);
typedef void (RADAPIENTRYP PFNRADCMDDRAWELEMENTSPROC) (RADcommandBuffer cmdBuf, RADprimitiveType mode, RADindexType type, RADsizei count, RADindexHandle indexHandle, RADuint offset);
typedef RADboolean (RADAPIENTRYP PFNRADCOMPILECOMMANDBUFFERPROC) (RADcommandBuffer cmdBuf);
typedef RADcommandHandle (RADAPIENTRYP PFNRADGETCOMMANDHANDLEPROC) (RADcommandBuffer cmdBuf);
typedef void (RADAPIENTRYP PFNRADCMDSTENCILVALUEMASKPROC) (RADcommandBuffer cmdBuf, RADfaceBitfield faces, RADuint mask);
typedef void (RADAPIENTRYP PFNRADCMDSTENCILMASKPROC) (RADcommandBuffer cmdBuf, RADfaceBitfield faces, RADuint mask);
typedef void (RADAPIENTRYP PFNRADCMDSTENCILREFPROC) (RADcommandBuffer cmdBuf, RADfaceBitfield faces, RADint ref);
typedef void (RADAPIENTRYP PFNRADCMDBLENDCOLORPROC) (RADcommandBuffer cmdBuf, const RADfloat *blendColor);
typedef void (RADAPIENTRYP PFNRADCMDPOINTSIZEPROC) (RADcommandBuffer cmdBuf, RADfloat pointSize);
typedef void (RADAPIENTRYP PFNRADCMDLINEWIDTHPROC) (RADcommandBuffer cmdBuf, RADfloat lineWidth);
typedef void (RADAPIENTRYP PFNRADCMDPOLYGONOFFSETCLAMPPROC) (RADcommandBuffer cmdBuf, RADfloat factor, RADfloat units, RADfloat clamp);
typedef void (RADAPIENTRYP PFNRADCMDSAMPLEMASKPROC) (RADcommandBuffer cmdBuf, RADuint mask);
typedef RADpass (RADAPIENTRYP PFNRADCREATEPASSPROC) (RADdevice device);
typedef void (RADAPIENTRYP PFNRADREFERENCEPASSPROC) (RADpass pass);
typedef void (RADAPIENTRYP PFNRADRELEASEPASSPROC) (RADpass pass);
typedef void (RADAPIENTRYP PFNRADPASSDEFAULTPROC) (RADpass pass);
typedef void (RADAPIENTRYP PFNRADCOMPILEPASSPROC) (RADpass pass);
typedef void (RADAPIENTRYP PFNRADPASSRENDERTARGETSPROC) (RADpass pass, RADuint numColors, const RADrenderTargetHandle *colors, RADrenderTargetHandle depth, RADrenderTargetHandle stencil);
typedef void (RADAPIENTRYP PFNRADPASSPRESERVEENABLEPROC) (RADpass pass, RADrtAttachment attachment, RADboolean enable);
typedef void (RADAPIENTRYP PFNRADPASSDISCARDPROC) (RADpass pass, RADuint numTextures, const RADtexture *textures, const RADoffset2D *offsets);
typedef void (RADAPIENTRYP PFNRADPASSRESOLVEPROC) (RADpass pass, RADrtAttachment attachment, RADtexture texture);
typedef void (RADAPIENTRYP PFNRADPASSSTOREPROC) (RADpass pass, RADuint numTextures, const RADtexture *textures, const RADoffset2D *offsets);
typedef void (RADAPIENTRYP PFNRADPASSCLIPPROC) (RADpass pass, const RADrect2D *rect);
typedef void (RADAPIENTRYP PFNRADPASSDEPENDENCIESPROC) (RADpass pass, RADuint numPasses, const RADpass *otherPasses, const RADbitfield *srcMask, const RADbitfield *dstMask, const RADbitfield *flushMask, const RADbitfield *invalidateMask);
typedef void (RADAPIENTRYP PFNRADPASSTILINGBOUNDARYPROC) (RADpass pass, RADboolean boundary);
typedef void (RADAPIENTRYP PFNRADPASSTILEFILTERWIDTHPROC) (RADpass pass, RADuint filterWidth, RADuint filterHeight);
typedef void (RADAPIENTRYP PFNRADPASSTILEFOOTPRINTPROC) (RADpass pass, RADuint bytesPerPixel, RADuint maxFilterWidth, RADuint maxFilterHeight);
typedef RADsync (RADAPIENTRYP PFNRADCREATESYNCPROC) (RADdevice device);
typedef void (RADAPIENTRYP PFNRADREFERENCESYNCPROC) (RADsync sync);
typedef void (RADAPIENTRYP PFNRADRELEASESYNCPROC) (RADsync sync);
typedef void (RADAPIENTRYP PFNRADQUEUEFENCESYNCPROC) (RADqueue queue, RADsync sync, RADsyncCondition condition, RADbitfield flags);
typedef RADwaitSyncResult (RADAPIENTRYP PFNRADWAITSYNCPROC) (RADsync sync, RADuint64 timeout);
typedef RADboolean (RADAPIENTRYP PFNRADQUEUEWAITSYNCPROC) (RADqueue queue, RADsync sync);
#endif
#endif /* __rad_h_ */
......@@ -91,7 +91,7 @@ CONSTRUCTOR static bool eglAttachProcess()
libRAD = loadLibrary(libRAD_lib);
rad::createContext = (egl::Context *(*)(const egl::Config*, const egl::Context*))getProcAddress(libRAD, "glCreateContext");
rad::getProcAddress = (__eglMustCastToProperFunctionPointerType (*)(const char*))getProcAddress(libRAD, "glGetProcAddress");
rad::getProcAddress = (__eglMustCastToProperFunctionPointerType (RADAPIENTRY *)(const char*))getProcAddress(libRAD, "radGetProcAddress");
rad::createBackBuffer = (egl::Image *(*)(int, int, const egl::Config*))getProcAddress(libRAD, "createBackBuffer");
rad::createDepthStencil = (egl::Image *(*)(unsigned int, unsigned int, sw::Format, int, bool))getProcAddress(libRAD, "createDepthStencil");
rad::createFrameBuffer = (sw::FrameBuffer *(*)(EGLNativeDisplayType, EGLNativeWindowType, int, int))getProcAddress(libRAD, "createFrameBuffer");
......@@ -303,7 +303,7 @@ void error(EGLint errorCode)
namespace rad
{
egl::Context *(*createContext)(const egl::Config *config, const egl::Context *shareContext) = 0;
__eglMustCastToProperFunctionPointerType (*getProcAddress)(const char *procname) = 0;
__eglMustCastToProperFunctionPointerType (RADAPIENTRY *getProcAddress)(const char *procname) = 0;
egl::Image *(*createBackBuffer)(int width, int height, const egl::Config *config) = 0;
egl::Image *(*createDepthStencil)(unsigned int width, unsigned int height, sw::Format format, int multiSampleDepth, bool discard) = 0;
......
......@@ -17,6 +17,7 @@
#define EGLAPI
#include <EGL/egl.h>
#include <EGL/eglext.h>
#include <RAD/rad.h>
namespace egl
{
......@@ -86,7 +87,7 @@ namespace sw
namespace rad
{
extern egl::Context *(*createContext)(const egl::Config *config, const egl::Context *shareContext);
extern __eglMustCastToProperFunctionPointerType (*getProcAddress)(const char *procname);
extern __eglMustCastToProperFunctionPointerType (RADAPIENTRY *getProcAddress)(const char *procname);
extern egl::Image *(*createBackBuffer)(int width, int height, const egl::Config *config);
extern egl::Image *(*createDepthStencil)(unsigned int width, unsigned int height, sw::Format format, int multiSampleDepth, bool discard);
......
......@@ -29,6 +29,7 @@
#define GL_APICALL
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
#include <RAD/rad.h>
#include <exception>
#include <limits>
......@@ -6137,6 +6138,393 @@ void GL_APIENTRY glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image
}
}
RADdevice RADAPIENTRY radCreateDevice (void) {UNIMPLEMENTED(); return 0;}
void RADAPIENTRY radReferenceDevice (RADdevice device) {UNIMPLEMENTED();}
void RADAPIENTRY radReleaseDevice (RADdevice device) {UNIMPLEMENTED();}
RADuint RADAPIENTRY radGetTokenHeader (RADdevice device, RADtokenName name) {UNIMPLEMENTED(); return 0;}
RADqueue RADAPIENTRY radCreateQueue (RADdevice device, RADqueueType queuetype) {UNIMPLEMENTED(); return 0;}
void RADAPIENTRY radReferenceQueue (RADqueue queue) {UNIMPLEMENTED();}
void RADAPIENTRY radReleaseQueue (RADqueue queue) {UNIMPLEMENTED();}
void RADAPIENTRY radQueueTagBuffer (RADqueue queue, RADbuffer buffer) {UNIMPLEMENTED();}
void RADAPIENTRY radQueueTagTexture (RADqueue queue, RADtexture texture) {UNIMPLEMENTED();}
void RADAPIENTRY radQueueSubmitCommands (RADqueue queue, RADuint numCommands, const RADcommandHandle *handles) {UNIMPLEMENTED();}
void RADAPIENTRY radFlushQueue (RADqueue queue) {UNIMPLEMENTED();}
void RADAPIENTRY radFinishQueue (RADqueue queue) {UNIMPLEMENTED();}
void RADAPIENTRY radQueueViewport (RADqueue queue, RADint x, RADint y, RADint w, RADint h) {UNIMPLEMENTED();}
void RADAPIENTRY radQueueScissor (RADqueue queue, RADint x, RADint y, RADint w, RADint h) {UNIMPLEMENTED();}
void RADAPIENTRY radQueueCopyBufferToImage (RADqueue queue, RADbuffer buffer, RADintptr bufferOffset, RADtexture texture, RADint level, RADuint xoffset, RADuint yoffset, RADuint zoffset, RADsizei width, RADsizei height, RADsizei depth) {UNIMPLEMENTED();}
void RADAPIENTRY radQueueCopyImageToBuffer (RADqueue queue, RADbuffer buffer, RADintptr bufferOffset, RADtexture texture, RADint level, RADuint xoffset, RADuint yoffset, RADuint zoffset, RADsizei width, RADsizei height, RADsizei depth) {UNIMPLEMENTED();}
void RADAPIENTRY radQueueCopyBuffer (RADqueue queue, RADbuffer srcBuffer, RADintptr srcOffset, RADbuffer dstBuffer, RADintptr dstOffset, RADsizei size) {UNIMPLEMENTED();}
void RADAPIENTRY radQueueClearColor (RADqueue queue, RADuint index, const RADfloat *color) {UNIMPLEMENTED();}
void RADAPIENTRY radQueueClearDepth (RADqueue queue, RADfloat depth) {UNIMPLEMENTED();}
void RADAPIENTRY radQueueClearStencil (RADqueue queue, RADuint stencil) {UNIMPLEMENTED();}
void RADAPIENTRY radQueuePresent (RADqueue queue, RADtexture texture) {UNIMPLEMENTED();}
void RADAPIENTRY radQueueDrawArrays (RADqueue queue, RADprimitiveType mode, RADint first, RADsizei count) {UNIMPLEMENTED();}
void RADAPIENTRY radQueueDrawElements (RADqueue queue, RADprimitiveType mode, RADindexType type, RADsizei count, RADindexHandle indexHandle, RADuint offset) {UNIMPLEMENTED();}
void RADAPIENTRY radQueueBindPipeline (RADqueue queue, RADpipelineType pipelineType, RADpipelineHandle pipelineHandle) {UNIMPLEMENTED();}
void RADAPIENTRY radQueueBindGroup (RADqueue queue, RADbitfield stages, RADuint group, RADuint count, RADbindGroupHandle groupHandle, RADuint offset) {UNIMPLEMENTED();}
void RADAPIENTRY radQueueBeginPass (RADqueue queue, RADpass pass) {UNIMPLEMENTED();}
void RADAPIENTRY radQueueEndPass (RADqueue queue, RADpass pass) {UNIMPLEMENTED();}
void RADAPIENTRY radQueueSubmitDynamic (RADqueue queue, const void *dynamic, RADsizei length) {UNIMPLEMENTED();}
void RADAPIENTRY radQueueStencilValueMask (RADqueue queue, RADfaceBitfield faces, RADuint mask) {UNIMPLEMENTED();}
void RADAPIENTRY radQueueStencilMask (RADqueue queue, RADfaceBitfield faces, RADuint mask) {UNIMPLEMENTED();}
void RADAPIENTRY radQueueStencilRef (RADqueue queue, RADfaceBitfield faces, RADint ref) {UNIMPLEMENTED();}
void RADAPIENTRY radQueueBlendColor (RADqueue queue, const RADfloat *blendColor) {UNIMPLEMENTED();}
void RADAPIENTRY radQueuePointSize (RADqueue queue, RADfloat pointSize) {UNIMPLEMENTED();}
void RADAPIENTRY radQueueLineWidth (RADqueue queue, RADfloat lineWidth) {UNIMPLEMENTED();}
void RADAPIENTRY radQueuePolygonOffsetClamp (RADqueue queue, RADfloat factor, RADfloat units, RADfloat clamp) {UNIMPLEMENTED();}
void RADAPIENTRY radQueueSampleMask (RADqueue queue, RADuint mask) {UNIMPLEMENTED();}
RADprogram RADAPIENTRY radCreateProgram (RADdevice device) {UNIMPLEMENTED(); return 0;}
void RADAPIENTRY radReferenceProgram (RADprogram program) {UNIMPLEMENTED();}
void RADAPIENTRY radReleaseProgram (RADprogram program) {UNIMPLEMENTED();}
void RADAPIENTRY radProgramSource (RADprogram program, RADprogramFormat format, RADsizei length, const void *source) {UNIMPLEMENTED();}
RADbuffer RADAPIENTRY radCreateBuffer (RADdevice device) {UNIMPLEMENTED(); return 0;}
void RADAPIENTRY radReferenceBuffer (RADbuffer buffer) {UNIMPLEMENTED();}
void RADAPIENTRY radReleaseBuffer (RADbuffer buffer, RADtagMode tagMode) {UNIMPLEMENTED();}
void RADAPIENTRY radBufferAccess (RADbuffer buffer, RADbitfield access) {UNIMPLEMENTED();}
void RADAPIENTRY radBufferMapAccess (RADbuffer buffer, RADbitfield mapAccess) {UNIMPLEMENTED();}
void RADAPIENTRY radBufferStorage (RADbuffer buffer, RADsizei size) {UNIMPLEMENTED();}
void* RADAPIENTRY radMapBuffer (RADbuffer buffer) {UNIMPLEMENTED(); return 0;}
RADvertexHandle RADAPIENTRY radGetVertexHandle (RADbuffer buffer) {UNIMPLEMENTED(); return 0;}
RADindexHandle RADAPIENTRY radGetIndexHandle (RADbuffer buffer) {UNIMPLEMENTED(); return 0;}
RADuniformHandle RADAPIENTRY radGetUniformHandle (RADbuffer buffer) {UNIMPLEMENTED(); return 0;}
RADbindGroupHandle RADAPIENTRY radGetBindGroupHandle (RADbuffer buffer) {UNIMPLEMENTED(); return 0;}
RADtexture RADAPIENTRY radCreateTexture (RADdevice device) {UNIMPLEMENTED(); return 0;}
void RADAPIENTRY radReferenceTexture (RADtexture texture) {UNIMPLEMENTED();}
void RADAPIENTRY radReleaseTexture (RADtexture texture, RADtagMode tagMode) {UNIMPLEMENTED();}
void RADAPIENTRY radTextureAccess (RADtexture texture, RADbitfield access) {UNIMPLEMENTED();}
void RADAPIENTRY radTextureStorage (RADtexture texture, RADtextureTarget target, RADsizei levels, RADinternalFormat internalFormat, RADsizei width, RADsizei height, RADsizei depth, RADsizei samples) {UNIMPLEMENTED();}
RADtextureHandle RADAPIENTRY radGetTextureSamplerHandle (RADtexture texture, RADsampler sampler, RADtextureTarget target, RADinternalFormat internalFormat, RADuint minLevel, RADuint numLevels, RADuint minLayer, RADuint numLayers) {UNIMPLEMENTED(); return 0;}
RADrenderTargetHandle RADAPIENTRY radGetTextureRenderTargetHandle (RADtexture texture, RADtextureTarget target, RADinternalFormat internalFormat, RADuint level, RADuint minLayer, RADuint numLayers) {UNIMPLEMENTED(); return 0;}
RADsampler RADAPIENTRY radCreateSampler (RADdevice device) {UNIMPLEMENTED(); return 0;}
void RADAPIENTRY radReferenceSampler (RADsampler sampler) {UNIMPLEMENTED();}
void RADAPIENTRY radReleaseSampler (RADsampler sampler) {UNIMPLEMENTED();}
void RADAPIENTRY radSamplerDefault (RADsampler sampler) {UNIMPLEMENTED();}
void RADAPIENTRY radSamplerMinMagFilter (RADsampler sampler, RADminFilter min, RADmagFilter mag) {UNIMPLEMENTED();}
void RADAPIENTRY radSamplerWrapMode (RADsampler sampler, RADwrapMode s, RADwrapMode t, RADwrapMode r) {UNIMPLEMENTED();}
void RADAPIENTRY radSamplerLodClamp (RADsampler sampler, RADfloat min, RADfloat max) {UNIMPLEMENTED();}
void RADAPIENTRY radSamplerLodBias (RADsampler sampler, RADfloat bias) {UNIMPLEMENTED();}
void RADAPIENTRY radSamplerCompare (RADsampler sampler, RADcompareMode mode, RADcompareFunc func) {UNIMPLEMENTED();}
void RADAPIENTRY radSamplerBorderColorFloat (RADsampler sampler, const RADfloat *borderColor) {UNIMPLEMENTED();}
void RADAPIENTRY radSamplerBorderColorInt (RADsampler sampler, const RADuint *borderColor) {UNIMPLEMENTED();}
RADcolorState RADAPIENTRY radCreateColorState (RADdevice device) {UNIMPLEMENTED(); return 0;}
void RADAPIENTRY radReferenceColorState (RADcolorState color) {UNIMPLEMENTED();}
void RADAPIENTRY radReleaseColorState (RADcolorState color) {UNIMPLEMENTED();}
void RADAPIENTRY radColorDefault (RADcolorState color) {UNIMPLEMENTED();}
void RADAPIENTRY radColorBlendEnable (RADcolorState color, RADuint index, RADboolean enable) {UNIMPLEMENTED();}
void RADAPIENTRY radColorBlendFunc (RADcolorState color, RADuint index, RADblendFunc srcFunc, RADblendFunc dstFunc, RADblendFunc srcFuncAlpha, RADblendFunc dstFuncAlpha) {UNIMPLEMENTED();}
void RADAPIENTRY radColorBlendEquation (RADcolorState color, RADuint index, RADblendEquation modeRGB, RADblendEquation modeAlpha) {UNIMPLEMENTED();}
void RADAPIENTRY radColorMask (RADcolorState color, RADuint index, RADboolean r, RADboolean g, RADboolean b, RADboolean a) {UNIMPLEMENTED();}
void RADAPIENTRY radColorNumTargets (RADcolorState color, RADuint numTargets) {UNIMPLEMENTED();}
void RADAPIENTRY radColorLogicOpEnable (RADcolorState color, RADboolean enable) {UNIMPLEMENTED();}
void RADAPIENTRY radColorLogicOp (RADcolorState color, RADlogicOp logicOp) {UNIMPLEMENTED();}
void RADAPIENTRY radColorAlphaToCoverageEnable (RADcolorState color, RADboolean enable) {UNIMPLEMENTED();}
void RADAPIENTRY radColorBlendColor (RADcolorState color, const RADfloat *blendColor) {UNIMPLEMENTED();}
void RADAPIENTRY radColorDynamic (RADcolorState color, RADcolorDynamic dynamic, RADboolean enable) {UNIMPLEMENTED();}
RADrasterState RADAPIENTRY radCreateRasterState (RADdevice device) {UNIMPLEMENTED(); return 0;}
void RADAPIENTRY radReferenceRasterState (RADrasterState raster) {UNIMPLEMENTED();}
void RADAPIENTRY radReleaseRasterState (RADrasterState raster) {UNIMPLEMENTED();}
void RADAPIENTRY radRasterDefault (RADrasterState raster) {UNIMPLEMENTED();}
void RADAPIENTRY radRasterPointSize (RADrasterState raster, RADfloat pointSize) {UNIMPLEMENTED();}
void RADAPIENTRY radRasterLineWidth (RADrasterState raster, RADfloat lineWidth) {UNIMPLEMENTED();}
void RADAPIENTRY radRasterCullFace (RADrasterState raster, RADfaceBitfield face) {UNIMPLEMENTED();}
void RADAPIENTRY radRasterFrontFace (RADrasterState raster, RADfrontFace face) {UNIMPLEMENTED();}
void RADAPIENTRY radRasterPolygonMode (RADrasterState raster, RADpolygonMode polygonMode) {UNIMPLEMENTED();}
void RADAPIENTRY radRasterPolygonOffsetClamp (RADrasterState raster, RADfloat factor, RADfloat units, RADfloat clamp) {UNIMPLEMENTED();}
void RADAPIENTRY radRasterPolygonOffsetEnables (RADrasterState raster, RADpolygonOffsetEnables enables) {UNIMPLEMENTED();}
void RADAPIENTRY radRasterDiscardEnable (RADrasterState raster, RADboolean enable) {UNIMPLEMENTED();}
void RADAPIENTRY radRasterMultisampleEnable (RADrasterState raster, RADboolean enable) {UNIMPLEMENTED();}
void RADAPIENTRY radRasterSamples (RADrasterState raster, RADuint samples) {UNIMPLEMENTED();}
void RADAPIENTRY radRasterSampleMask (RADrasterState raster, RADuint mask) {UNIMPLEMENTED();}
void RADAPIENTRY radRasterDynamic (RADrasterState raster, RADrasterDynamic dynamic, RADboolean enable) {UNIMPLEMENTED();}
RADdepthStencilState RADAPIENTRY radCreateDepthStencilState (RADdevice device) {UNIMPLEMENTED(); return 0;}
void RADAPIENTRY radReferenceDepthStencilState (RADdepthStencilState depthStencil) {UNIMPLEMENTED();}
void RADAPIENTRY radReleaseDepthStencilState (RADdepthStencilState depthStencil) {UNIMPLEMENTED();}
void RADAPIENTRY radDepthStencilDefault (RADdepthStencilState depthStencil) {UNIMPLEMENTED();}
void RADAPIENTRY radDepthStencilDepthTestEnable (RADdepthStencilState depthStencil, RADboolean enable) {UNIMPLEMENTED();}
void RADAPIENTRY radDepthStencilDepthWriteEnable (RADdepthStencilState depthStencil, RADboolean enable) {UNIMPLEMENTED();}
void RADAPIENTRY radDepthStencilDepthFunc (RADdepthStencilState depthStencil, RADdepthFunc func) {UNIMPLEMENTED();}
void RADAPIENTRY radDepthStencilStencilTestEnable (RADdepthStencilState depthStencil, RADboolean enable) {UNIMPLEMENTED();}
void RADAPIENTRY radDepthStencilStencilFunc (RADdepthStencilState depthStencil, RADfaceBitfield faces, RADstencilFunc func, RADint ref, RADuint mask) {UNIMPLEMENTED();}
void RADAPIENTRY radDepthStencilStencilOp (RADdepthStencilState depthStencil, RADfaceBitfield faces, RADstencilOp fail, RADstencilOp depthFail, RADstencilOp depthPass) {UNIMPLEMENTED();}
void RADAPIENTRY radDepthStencilStencilMask (RADdepthStencilState depthStencil, RADfaceBitfield faces, RADuint mask) {UNIMPLEMENTED();}
void RADAPIENTRY radDepthStencilDynamic (RADdepthStencilState depthStencil, RADdepthStencilDynamic dynamic, RADboolean enable) {UNIMPLEMENTED();}
RADvertexState RADAPIENTRY radCreateVertexState (RADdevice device) {UNIMPLEMENTED(); return 0;}
void RADAPIENTRY radReferenceVertexState (RADvertexState vertex) {UNIMPLEMENTED();}
void RADAPIENTRY radReleaseVertexState (RADvertexState vertex) {UNIMPLEMENTED();}
void RADAPIENTRY radVertexDefault (RADvertexState vertex) {UNIMPLEMENTED();}
void RADAPIENTRY radVertexAttribFormat (RADvertexState vertex, RADint attribIndex, RADint numComponents, RADint bytesPerComponent, RADattribType type, RADuint relativeOffset) {UNIMPLEMENTED();}
void RADAPIENTRY radVertexAttribBinding (RADvertexState vertex, RADint attribIndex, RADint bindingIndex) {UNIMPLEMENTED();}
void RADAPIENTRY radVertexBindingGroup (RADvertexState vertex, RADint bindingIndex, RADint group, RADint index) {UNIMPLEMENTED();}
void RADAPIENTRY radVertexAttribEnable (RADvertexState vertex, RADint attribIndex, RADboolean enable) {UNIMPLEMENTED();}
void RADAPIENTRY radVertexBindingStride (RADvertexState vertex, RADint bindingIndex, RADuint stride) {UNIMPLEMENTED();}
RADrtFormatState RADAPIENTRY radCreateRtFormatState (RADdevice device) {UNIMPLEMENTED(); return 0;}
void RADAPIENTRY radReferenceRtFormatState (RADrtFormatState rtFormat) {UNIMPLEMENTED();}
void RADAPIENTRY radReleaseRtFormatState (RADrtFormatState rtFormat) {UNIMPLEMENTED();}
void RADAPIENTRY radRtFormatDefault (RADrtFormatState rtFormat) {UNIMPLEMENTED();}
void RADAPIENTRY radRtFormatColorFormat (RADrtFormatState rtFormat, RADuint index, RADinternalFormat format) {UNIMPLEMENTED();}
void RADAPIENTRY radRtFormatDepthFormat (RADrtFormatState rtFormat, RADinternalFormat format) {UNIMPLEMENTED();}
void RADAPIENTRY radRtFormatStencilFormat (RADrtFormatState rtFormat, RADinternalFormat format) {UNIMPLEMENTED();}
void RADAPIENTRY radRtFormatColorSamples (RADrtFormatState rtFormat, RADuint samples) {UNIMPLEMENTED();}
void RADAPIENTRY radRtFormatDepthStencilSamples (RADrtFormatState rtFormat, RADuint samples) {UNIMPLEMENTED();}
RADpipeline RADAPIENTRY radCreatePipeline (RADdevice device, RADpipelineType pipelineType) {UNIMPLEMENTED(); return 0;}
void RADAPIENTRY radReferencePipeline (RADpipeline pipeline) {UNIMPLEMENTED();}
void RADAPIENTRY radReleasePipeline (RADpipeline pipeline) {UNIMPLEMENTED();}
void RADAPIENTRY radPipelineProgramStages (RADpipeline pipeline, RADbitfield stages, RADprogram program) {UNIMPLEMENTED();}
void RADAPIENTRY radPipelineVertexState (RADpipeline pipeline, RADvertexState vertex) {UNIMPLEMENTED();}
void RADAPIENTRY radPipelineColorState (RADpipeline pipeline, RADcolorState color) {UNIMPLEMENTED();}
void RADAPIENTRY radPipelineRasterState (RADpipeline pipeline, RADrasterState raster) {UNIMPLEMENTED();}
void RADAPIENTRY radPipelineDepthStencilState (RADpipeline pipeline, RADdepthStencilState depthStencil) {UNIMPLEMENTED();}
void RADAPIENTRY radPipelineRtFormatState (RADpipeline pipeline, RADrtFormatState rtFormat) {UNIMPLEMENTED();}
void RADAPIENTRY radPipelinePrimitiveType (RADpipeline pipeline, RADprimitiveType mode) {UNIMPLEMENTED();}
void RADAPIENTRY radCompilePipeline (RADpipeline pipeline) {UNIMPLEMENTED();}
RADpipelineHandle RADAPIENTRY radGetPipelineHandle (RADpipeline pipeline) {UNIMPLEMENTED(); return 0;}
RADcommandBuffer RADAPIENTRY radCreateCommandBuffer (RADdevice device, RADqueueType queueType) {UNIMPLEMENTED(); return 0;}
void RADAPIENTRY radReferenceCommandBuffer (RADcommandBuffer cmdBuf) {UNIMPLEMENTED();}
void RADAPIENTRY radReleaseCommandBuffer (RADcommandBuffer cmdBuf) {UNIMPLEMENTED();}
void RADAPIENTRY radCmdBindPipeline (RADcommandBuffer cmdBuf, RADpipelineType pipelineType, RADpipelineHandle pipelineHandle) {UNIMPLEMENTED();}
void RADAPIENTRY radCmdBindGroup (RADcommandBuffer cmdBuf, RADbitfield stages, RADuint group, RADuint count, RADbindGroupHandle groupHandle, RADuint offset) {UNIMPLEMENTED();}
void RADAPIENTRY radCmdDrawArrays (RADcommandBuffer cmdBuf, RADprimitiveType mode, RADint first, RADsizei count) {UNIMPLEMENTED();}
void RADAPIENTRY radCmdDrawElements (RADcommandBuffer cmdBuf, RADprimitiveType mode, RADindexType type, RADsizei count, RADindexHandle indexHandle, RADuint offset) {UNIMPLEMENTED();}
RADboolean RADAPIENTRY radCompileCommandBuffer (RADcommandBuffer cmdBuf) {UNIMPLEMENTED(); return 0;}
RADcommandHandle RADAPIENTRY radGetCommandHandle (RADcommandBuffer cmdBuf) {UNIMPLEMENTED(); return 0;}
void RADAPIENTRY radCmdStencilValueMask (RADcommandBuffer cmdBuf, RADfaceBitfield faces, RADuint mask) {UNIMPLEMENTED();}
void RADAPIENTRY radCmdStencilMask (RADcommandBuffer cmdBuf, RADfaceBitfield faces, RADuint mask) {UNIMPLEMENTED();}
void RADAPIENTRY radCmdStencilRef (RADcommandBuffer cmdBuf, RADfaceBitfield faces, RADint ref) {UNIMPLEMENTED();}
void RADAPIENTRY radCmdBlendColor (RADcommandBuffer cmdBuf, const RADfloat *blendColor) {UNIMPLEMENTED();}
void RADAPIENTRY radCmdPointSize (RADcommandBuffer cmdBuf, RADfloat pointSize) {UNIMPLEMENTED();}
void RADAPIENTRY radCmdLineWidth (RADcommandBuffer cmdBuf, RADfloat lineWidth) {UNIMPLEMENTED();}
void RADAPIENTRY radCmdPolygonOffsetClamp (RADcommandBuffer cmdBuf, RADfloat factor, RADfloat units, RADfloat clamp) {UNIMPLEMENTED();}
void RADAPIENTRY radCmdSampleMask (RADcommandBuffer cmdBuf, RADuint mask) {UNIMPLEMENTED();}
RADpass RADAPIENTRY radCreatePass (RADdevice device) {UNIMPLEMENTED(); return 0;}
void RADAPIENTRY radReferencePass (RADpass pass) {UNIMPLEMENTED();}
void RADAPIENTRY radReleasePass (RADpass pass) {UNIMPLEMENTED();}
void RADAPIENTRY radPassDefault (RADpass pass) {UNIMPLEMENTED();}
void RADAPIENTRY radCompilePass (RADpass pass) {UNIMPLEMENTED();}
void RADAPIENTRY radPassRenderTargets (RADpass pass, RADuint numColors, const RADrenderTargetHandle *colors, RADrenderTargetHandle depth, RADrenderTargetHandle stencil) {UNIMPLEMENTED();}
void RADAPIENTRY radPassPreserveEnable (RADpass pass, RADrtAttachment attachment, RADboolean enable) {UNIMPLEMENTED();}
void RADAPIENTRY radPassDiscard (RADpass pass, RADuint numTextures, const RADtexture *textures, const RADoffset2D *offsets) {UNIMPLEMENTED();}
void RADAPIENTRY radPassResolve (RADpass pass, RADrtAttachment attachment, RADtexture texture) {UNIMPLEMENTED();}
void RADAPIENTRY radPassStore (RADpass pass, RADuint numTextures, const RADtexture *textures, const RADoffset2D *offsets) {UNIMPLEMENTED();}
void RADAPIENTRY radPassClip (RADpass pass, const RADrect2D *rect) {UNIMPLEMENTED();}
void RADAPIENTRY radPassDependencies (RADpass pass, RADuint numPasses, const RADpass *otherPasses, const RADbitfield *srcMask, const RADbitfield *dstMask, const RADbitfield *flushMask, const RADbitfield *invalidateMask) {UNIMPLEMENTED();}
void RADAPIENTRY radPassTilingBoundary (RADpass pass, RADboolean boundary) {UNIMPLEMENTED();}
void RADAPIENTRY radPassTileFilterWidth (RADpass pass, RADuint filterWidth, RADuint filterHeight) {UNIMPLEMENTED();}
void RADAPIENTRY radPassTileFootprint (RADpass pass, RADuint bytesPerPixel, RADuint maxFilterWidth, RADuint maxFilterHeight) {UNIMPLEMENTED();}
RADsync RADAPIENTRY radCreateSync (RADdevice device) {UNIMPLEMENTED(); return 0;}
void RADAPIENTRY radReferenceSync (RADsync sync) {UNIMPLEMENTED();}
void RADAPIENTRY radReleaseSync (RADsync sync) {UNIMPLEMENTED();}
void RADAPIENTRY radQueueFenceSync (RADqueue queue, RADsync sync, RADsyncCondition condition, RADbitfield flags) {UNIMPLEMENTED();}
RADwaitSyncResult RADAPIENTRY radWaitSync (RADsync sync, RADuint64 timeout) {UNIMPLEMENTED(); return RAD_WAIT_SYNC_FAILED;}
RADboolean RADAPIENTRY radQueueWaitSync (RADqueue queue, RADsync sync) {UNIMPLEMENTED(); return 0;}
RADPROC RADAPIENTRY radGetProcAddress(const RADchar *procname)
{
struct Extension
{
const char *name;
RADPROC address;
};
static const Extension glExtensions[] =
{
#define EXTENSION(name) {#name, (RADPROC)name}
EXTENSION(radGetProcAddress),
EXTENSION(radCreateDevice),
EXTENSION(radReferenceDevice),
EXTENSION(radReleaseDevice),
EXTENSION(radGetTokenHeader),
EXTENSION(radCreateQueue),
EXTENSION(radReferenceQueue),
EXTENSION(radReleaseQueue),
EXTENSION(radQueueTagBuffer),
EXTENSION(radQueueTagTexture),
EXTENSION(radQueueSubmitCommands),
EXTENSION(radFlushQueue),
EXTENSION(radFinishQueue),
EXTENSION(radQueueViewport),
EXTENSION(radQueueScissor),
EXTENSION(radQueueCopyBufferToImage),
EXTENSION(radQueueCopyImageToBuffer),
EXTENSION(radQueueCopyBuffer),
EXTENSION(radQueueClearColor),
EXTENSION(radQueueClearDepth),
EXTENSION(radQueueClearStencil),
EXTENSION(radQueuePresent),
EXTENSION(radQueueDrawArrays),
EXTENSION(radQueueDrawElements),
EXTENSION(radQueueBindPipeline),
EXTENSION(radQueueBindGroup),
EXTENSION(radQueueBeginPass),
EXTENSION(radQueueEndPass),
EXTENSION(radQueueSubmitDynamic),
EXTENSION(radQueueStencilValueMask),
EXTENSION(radQueueStencilMask),
EXTENSION(radQueueStencilRef),
EXTENSION(radQueueBlendColor),
EXTENSION(radQueuePointSize),
EXTENSION(radQueueLineWidth),
EXTENSION(radQueuePolygonOffsetClamp),
EXTENSION(radQueueSampleMask),
EXTENSION(radCreateProgram),
EXTENSION(radReferenceProgram),
EXTENSION(radReleaseProgram),
EXTENSION(radProgramSource),
EXTENSION(radCreateBuffer),
EXTENSION(radReferenceBuffer),
EXTENSION(radReleaseBuffer),
EXTENSION(radBufferAccess),
EXTENSION(radBufferMapAccess),
EXTENSION(radBufferStorage),
EXTENSION(radMapBuffer),
EXTENSION(radGetVertexHandle),
EXTENSION(radGetIndexHandle),
EXTENSION(radGetUniformHandle),
EXTENSION(radGetBindGroupHandle),
EXTENSION(radCreateTexture),
EXTENSION(radReferenceTexture),
EXTENSION(radReleaseTexture),
EXTENSION(radTextureAccess),
EXTENSION(radTextureStorage),
EXTENSION(radGetTextureSamplerHandle),
EXTENSION(radGetTextureRenderTargetHandle),
EXTENSION(radCreateSampler),
EXTENSION(radReferenceSampler),
EXTENSION(radReleaseSampler),
EXTENSION(radSamplerDefault),
EXTENSION(radSamplerMinMagFilter),
EXTENSION(radSamplerWrapMode),
EXTENSION(radSamplerLodClamp),
EXTENSION(radSamplerLodBias),
EXTENSION(radSamplerCompare),
EXTENSION(radSamplerBorderColorFloat),
EXTENSION(radSamplerBorderColorInt),
EXTENSION(radCreateColorState),
EXTENSION(radReferenceColorState),
EXTENSION(radReleaseColorState),
EXTENSION(radColorDefault),
EXTENSION(radColorBlendEnable),
EXTENSION(radColorBlendFunc),
EXTENSION(radColorBlendEquation),
EXTENSION(radColorMask),
EXTENSION(radColorNumTargets),
EXTENSION(radColorLogicOpEnable),
EXTENSION(radColorLogicOp),
EXTENSION(radColorAlphaToCoverageEnable),
EXTENSION(radColorBlendColor),
EXTENSION(radColorDynamic),
EXTENSION(radCreateRasterState),
EXTENSION(radReferenceRasterState),
EXTENSION(radReleaseRasterState),
EXTENSION(radRasterDefault),
EXTENSION(radRasterPointSize),
EXTENSION(radRasterLineWidth),
EXTENSION(radRasterCullFace),
EXTENSION(radRasterFrontFace),
EXTENSION(radRasterPolygonMode),
EXTENSION(radRasterPolygonOffsetClamp),
EXTENSION(radRasterPolygonOffsetEnables),
EXTENSION(radRasterDiscardEnable),
EXTENSION(radRasterMultisampleEnable),
EXTENSION(radRasterSamples),
EXTENSION(radRasterSampleMask),
EXTENSION(radRasterDynamic),
EXTENSION(radCreateDepthStencilState),
EXTENSION(radReferenceDepthStencilState),
EXTENSION(radReleaseDepthStencilState),
EXTENSION(radDepthStencilDefault),
EXTENSION(radDepthStencilDepthTestEnable),
EXTENSION(radDepthStencilDepthWriteEnable),
EXTENSION(radDepthStencilDepthFunc),
EXTENSION(radDepthStencilStencilTestEnable),
EXTENSION(radDepthStencilStencilFunc),
EXTENSION(radDepthStencilStencilOp),
EXTENSION(radDepthStencilStencilMask),
EXTENSION(radDepthStencilDynamic),
EXTENSION(radCreateVertexState),
EXTENSION(radReferenceVertexState),
EXTENSION(radReleaseVertexState),
EXTENSION(radVertexDefault),
EXTENSION(radVertexAttribFormat),
EXTENSION(radVertexAttribBinding),
EXTENSION(radVertexBindingGroup),
EXTENSION(radVertexAttribEnable),
EXTENSION(radVertexBindingStride),
EXTENSION(radCreateRtFormatState),
EXTENSION(radReferenceRtFormatState),
EXTENSION(radReleaseRtFormatState),
EXTENSION(radRtFormatDefault),
EXTENSION(radRtFormatColorFormat),
EXTENSION(radRtFormatDepthFormat),
EXTENSION(radRtFormatStencilFormat),
EXTENSION(radRtFormatColorSamples),
EXTENSION(radRtFormatDepthStencilSamples),
EXTENSION(radCreatePipeline),
EXTENSION(radReferencePipeline),
EXTENSION(radReleasePipeline),
EXTENSION(radPipelineProgramStages),
EXTENSION(radPipelineVertexState),
EXTENSION(radPipelineColorState),
EXTENSION(radPipelineRasterState),
EXTENSION(radPipelineDepthStencilState),
EXTENSION(radPipelineRtFormatState),
EXTENSION(radPipelinePrimitiveType),
EXTENSION(radCompilePipeline),
EXTENSION(radGetPipelineHandle),
EXTENSION(radCreateCommandBuffer),
EXTENSION(radReferenceCommandBuffer),
EXTENSION(radReleaseCommandBuffer),
EXTENSION(radCmdBindPipeline),
EXTENSION(radCmdBindGroup),
EXTENSION(radCmdDrawArrays),
EXTENSION(radCmdDrawElements),
EXTENSION(radCompileCommandBuffer),
EXTENSION(radGetCommandHandle),
EXTENSION(radCmdStencilValueMask),
EXTENSION(radCmdStencilMask),
EXTENSION(radCmdStencilRef),
EXTENSION(radCmdBlendColor),
EXTENSION(radCmdPointSize),
EXTENSION(radCmdLineWidth),
EXTENSION(radCmdPolygonOffsetClamp),
EXTENSION(radCmdSampleMask),
EXTENSION(radCreatePass),
EXTENSION(radReferencePass),
EXTENSION(radReleasePass),
EXTENSION(radPassDefault),
EXTENSION(radCompilePass),
EXTENSION(radPassRenderTargets),
EXTENSION(radPassPreserveEnable),
EXTENSION(radPassDiscard),
EXTENSION(radPassResolve),
EXTENSION(radPassStore),
EXTENSION(radPassClip),
EXTENSION(radPassDependencies),
EXTENSION(radPassTilingBoundary),
EXTENSION(radPassTileFilterWidth),
EXTENSION(radPassTileFootprint),
EXTENSION(radCreateSync),
EXTENSION(radReferenceSync),
EXTENSION(radReleaseSync),
EXTENSION(radQueueFenceSync),
EXTENSION(radWaitSync),
EXTENSION(radQueueWaitSync),
#undef EXTENSION
};
for(int ext = 0; ext < sizeof(glExtensions) / sizeof(Extension); ext++)
{
if(strcmp(procname, glExtensions[ext].name) == 0)
{
return (RADPROC)glExtensions[ext].address;
}
}
return NULL;
}
__eglMustCastToProperFunctionPointerType glGetProcAddress(const char *procname)
{
struct Extension
......@@ -6147,28 +6535,34 @@ __eglMustCastToProperFunctionPointerType glGetProcAddress(const char *procname)
static const Extension glExtensions[] =
{
{"glTexImage3DOES", (__eglMustCastToProperFunctionPointerType)glTexImage3DOES},
{"glBlitFramebufferANGLE", (__eglMustCastToProperFunctionPointerType)glBlitFramebufferANGLE},
{"glRenderbufferStorageMultisampleANGLE", (__eglMustCastToProperFunctionPointerType)glRenderbufferStorageMultisampleANGLE},
{"glDeleteFencesNV", (__eglMustCastToProperFunctionPointerType)glDeleteFencesNV},
{"glGenFencesNV", (__eglMustCastToProperFunctionPointerType)glGenFencesNV},
{"glIsFenceNV", (__eglMustCastToProperFunctionPointerType)glIsFenceNV},
{"glTestFenceNV", (__eglMustCastToProperFunctionPointerType)glTestFenceNV},
{"glGetFenceivNV", (__eglMustCastToProperFunctionPointerType)glGetFenceivNV},
{"glFinishFenceNV", (__eglMustCastToProperFunctionPointerType)glFinishFenceNV},
{"glSetFenceNV", (__eglMustCastToProperFunctionPointerType)glSetFenceNV},
{"glGetGraphicsResetStatusEXT", (__eglMustCastToProperFunctionPointerType)glGetGraphicsResetStatusEXT},
{"glReadnPixelsEXT", (__eglMustCastToProperFunctionPointerType)glReadnPixelsEXT},
{"glGetnUniformfvEXT", (__eglMustCastToProperFunctionPointerType)glGetnUniformfvEXT},
{"glGetnUniformivEXT", (__eglMustCastToProperFunctionPointerType)glGetnUniformivEXT},
{"glGenQueriesEXT", (__eglMustCastToProperFunctionPointerType)glGenQueriesEXT},
{"glDeleteQueriesEXT", (__eglMustCastToProperFunctionPointerType)glDeleteQueriesEXT},
{"glIsQueryEXT", (__eglMustCastToProperFunctionPointerType)glIsQueryEXT},
{"glBeginQueryEXT", (__eglMustCastToProperFunctionPointerType)glBeginQueryEXT},
{"glEndQueryEXT", (__eglMustCastToProperFunctionPointerType)glEndQueryEXT},
{"glGetQueryivEXT", (__eglMustCastToProperFunctionPointerType)glGetQueryivEXT},
{"glGetQueryObjectuivEXT", (__eglMustCastToProperFunctionPointerType)glGetQueryObjectuivEXT},
{"glEGLImageTargetTexture2DOES", (__eglMustCastToProperFunctionPointerType)glEGLImageTargetTexture2DOES}
#define EXTENSION(name) {#name, (__eglMustCastToProperFunctionPointerType)name}
EXTENSION(glTexImage3DOES),
EXTENSION(glBlitFramebufferANGLE),
EXTENSION(glRenderbufferStorageMultisampleANGLE),
EXTENSION(glDeleteFencesNV),
EXTENSION(glGenFencesNV),
EXTENSION(glIsFenceNV),
EXTENSION(glTestFenceNV),
EXTENSION(glGetFenceivNV),
EXTENSION(glFinishFenceNV),
EXTENSION(glSetFenceNV),
EXTENSION(glGetGraphicsResetStatusEXT),
EXTENSION(glReadnPixelsEXT),
EXTENSION(glGetnUniformfvEXT),
EXTENSION(glGetnUniformivEXT),
EXTENSION(glGenQueriesEXT),
EXTENSION(glDeleteQueriesEXT),
EXTENSION(glIsQueryEXT),
EXTENSION(glBeginQueryEXT),
EXTENSION(glEndQueryEXT),
EXTENSION(glGetQueryivEXT),
EXTENSION(glGetQueryObjectuivEXT),
EXTENSION(glEGLImageTargetTexture2DOES),
EXTENSION(radGetProcAddress),
#undef EXTENSION
};
for(int ext = 0; ext < sizeof(glExtensions) / sizeof(Extension); ext++)
......
......@@ -168,6 +168,8 @@ EXPORTS
glGetQueryivEXT @170
glGetQueryObjectuivEXT @171
radGetProcAddress
; EGL dependencies
glCreateContext
glGetProcAddress
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment