OPCODE_UNIFORM_MATRIX34D,
OPCODE_UNIFORM_MATRIX43D,
+ /* GL_ARB_gpu_shader_int64 */
+ OPCODE_UNIFORM_1I64,
+ OPCODE_UNIFORM_2I64,
+ OPCODE_UNIFORM_3I64,
+ OPCODE_UNIFORM_4I64,
+ OPCODE_UNIFORM_1I64V,
+ OPCODE_UNIFORM_2I64V,
+ OPCODE_UNIFORM_3I64V,
+ OPCODE_UNIFORM_4I64V,
+ OPCODE_UNIFORM_1UI64,
+ OPCODE_UNIFORM_2UI64,
+ OPCODE_UNIFORM_3UI64,
+ OPCODE_UNIFORM_4UI64,
+ OPCODE_UNIFORM_1UI64V,
+ OPCODE_UNIFORM_2UI64V,
+ OPCODE_UNIFORM_3UI64V,
+ OPCODE_UNIFORM_4UI64V,
+ OPCODE_PROGRAM_UNIFORM_1I64,
+ OPCODE_PROGRAM_UNIFORM_2I64,
+ OPCODE_PROGRAM_UNIFORM_3I64,
+ OPCODE_PROGRAM_UNIFORM_4I64,
+ OPCODE_PROGRAM_UNIFORM_1I64V,
+ OPCODE_PROGRAM_UNIFORM_2I64V,
+ OPCODE_PROGRAM_UNIFORM_3I64V,
+ OPCODE_PROGRAM_UNIFORM_4I64V,
+ OPCODE_PROGRAM_UNIFORM_1UI64,
+ OPCODE_PROGRAM_UNIFORM_2UI64,
+ OPCODE_PROGRAM_UNIFORM_3UI64,
+ OPCODE_PROGRAM_UNIFORM_4UI64,
+ OPCODE_PROGRAM_UNIFORM_1UI64V,
+ OPCODE_PROGRAM_UNIFORM_2UI64V,
+ OPCODE_PROGRAM_UNIFORM_3UI64V,
+ OPCODE_PROGRAM_UNIFORM_4UI64V,
+
/* OpenGL 4.0 / GL_ARB_tessellation_shader */
OPCODE_PATCH_PARAMETER_I,
OPCODE_PATCH_PARAMETER_FV_INNER,
GLuint uint32[2];
};
+union int64_pair
+{
+ GLint64 int64;
+ GLint int32[2];
+};
#define ASSIGN_DOUBLE_TO_NODES(n, idx, value) \
do { \
n[idx+1].ui = tmp.uint32[1]; \
} while (0)
+#define ASSIGN_UINT64_TO_NODES(n, idx, value) \
+ do { \
+ union uint64_pair tmp; \
+ tmp.uint64 = value; \
+ n[idx].ui = tmp.uint32[0]; \
+ n[idx+1].ui = tmp.uint32[1]; \
+ } while (0)
+
+#define ASSIGN_INT64_TO_NODES(n, idx, value) \
+ do { \
+ union int64_pair tmp; \
+ tmp.int64 = value; \
+ n[idx].i = tmp.int32[0]; \
+ n[idx+1].i = tmp.int32[1]; \
+ } while (0)
/**
* How many nodes to allocate at a time. Note that bulk vertex data
case OPCODE_UNIFORM_2UIV:
case OPCODE_UNIFORM_3UIV:
case OPCODE_UNIFORM_4UIV:
+ case OPCODE_UNIFORM_1I64V:
+ case OPCODE_UNIFORM_2I64V:
+ case OPCODE_UNIFORM_3I64V:
+ case OPCODE_UNIFORM_4I64V:
+ case OPCODE_UNIFORM_1UI64V:
+ case OPCODE_UNIFORM_2UI64V:
+ case OPCODE_UNIFORM_3UI64V:
+ case OPCODE_UNIFORM_4UI64V:
free(get_pointer(&n[3]));
break;
case OPCODE_UNIFORM_MATRIX22:
case OPCODE_PROGRAM_UNIFORM_2UIV:
case OPCODE_PROGRAM_UNIFORM_3UIV:
case OPCODE_PROGRAM_UNIFORM_4UIV:
+ case OPCODE_PROGRAM_UNIFORM_1I64V:
+ case OPCODE_PROGRAM_UNIFORM_2I64V:
+ case OPCODE_PROGRAM_UNIFORM_3I64V:
+ case OPCODE_PROGRAM_UNIFORM_4I64V:
+ case OPCODE_PROGRAM_UNIFORM_1UI64V:
+ case OPCODE_PROGRAM_UNIFORM_2UI64V:
+ case OPCODE_PROGRAM_UNIFORM_3UI64V:
+ case OPCODE_PROGRAM_UNIFORM_4UI64V:
free(get_pointer(&n[4]));
break;
case OPCODE_PROGRAM_UNIFORM_MATRIX22F:
}
}
-
static void GLAPIENTRY
-save_UseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program)
+save_Uniform1i64ARB(GLint location, GLint64 x)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_USE_PROGRAM_STAGES, 3);
+ n = alloc_instruction(ctx, OPCODE_UNIFORM_1I64, 3);
if (n) {
- n[1].ui = pipeline;
- n[2].ui = stages;
- n[3].ui = program;
+ n[1].i = location;
+ ASSIGN_INT64_TO_NODES(n, 2, x);
}
if (ctx->ExecuteFlag) {
- CALL_UseProgramStages(ctx->Exec, (pipeline, stages, program));
+ CALL_Uniform1i64ARB(ctx->Exec, (location, x));
}
}
static void GLAPIENTRY
-save_ProgramUniform1f(GLuint program, GLint location, GLfloat x)
+save_Uniform2i64ARB(GLint location, GLint64 x, GLint64 y)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_1F, 3);
+ n = alloc_instruction(ctx, OPCODE_UNIFORM_2I64, 5);
if (n) {
- n[1].ui = program;
- n[2].i = location;
- n[3].f = x;
+ n[1].i = location;
+ ASSIGN_INT64_TO_NODES(n, 2, x);
+ ASSIGN_INT64_TO_NODES(n, 4, y);
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform1f(ctx->Exec, (program, location, x));
+ CALL_Uniform2i64ARB(ctx->Exec, (location, x, y));
}
}
static void GLAPIENTRY
-save_ProgramUniform2f(GLuint program, GLint location, GLfloat x, GLfloat y)
+save_Uniform3i64ARB(GLint location, GLint64 x, GLint64 y, GLint64 z)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_2F, 4);
+ n = alloc_instruction(ctx, OPCODE_UNIFORM_3I64, 7);
if (n) {
- n[1].ui = program;
- n[2].i = location;
- n[3].f = x;
- n[4].f = y;
+ n[1].i = location;
+ ASSIGN_INT64_TO_NODES(n, 2, x);
+ ASSIGN_INT64_TO_NODES(n, 4, y);
+ ASSIGN_INT64_TO_NODES(n, 6, z);
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform2f(ctx->Exec, (program, location, x, y));
+ CALL_Uniform3i64ARB(ctx->Exec, (location, x, y, z));
}
}
static void GLAPIENTRY
-save_ProgramUniform3f(GLuint program, GLint location,
- GLfloat x, GLfloat y, GLfloat z)
+save_Uniform4i64ARB(GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_3F, 5);
+ n = alloc_instruction(ctx, OPCODE_UNIFORM_4I64, 9);
if (n) {
- n[1].ui = program;
- n[2].i = location;
- n[3].f = x;
- n[4].f = y;
- n[5].f = z;
+ n[1].i = location;
+ ASSIGN_INT64_TO_NODES(n, 2, x);
+ ASSIGN_INT64_TO_NODES(n, 4, y);
+ ASSIGN_INT64_TO_NODES(n, 6, z);
+ ASSIGN_INT64_TO_NODES(n, 8, w);
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform3f(ctx->Exec, (program, location, x, y, z));
+ CALL_Uniform4i64ARB(ctx->Exec, (location, x, y, z, w));
}
}
static void GLAPIENTRY
-save_ProgramUniform4f(GLuint program, GLint location,
- GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+save_Uniform1i64vARB(GLint location, GLsizei count, const GLint64 *v)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_4F, 6);
+ n = alloc_instruction(ctx, OPCODE_UNIFORM_1I64V, 2 + POINTER_DWORDS);
if (n) {
- n[1].ui = program;
- n[2].i = location;
- n[3].f = x;
- n[4].f = y;
- n[5].f = z;
- n[6].f = w;
+ n[1].i = location;
+ n[2].i = count;
+ save_pointer(&n[3], memdup(v, count * 1 * sizeof(GLint64)));
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform4f(ctx->Exec, (program, location, x, y, z, w));
+ CALL_Uniform1i64vARB(ctx->Exec, (location, count, v));
}
}
static void GLAPIENTRY
-save_ProgramUniform1fv(GLuint program, GLint location, GLsizei count,
- const GLfloat *v)
+save_Uniform2i64vARB(GLint location, GLsizei count, const GLint64 *v)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_1FV, 3 + POINTER_DWORDS);
+ n = alloc_instruction(ctx, OPCODE_UNIFORM_2I64V, 2 + POINTER_DWORDS);
if (n) {
- n[1].ui = program;
- n[2].i = location;
- n[3].i = count;
- save_pointer(&n[4], memdup(v, count * 1 * sizeof(GLfloat)));
+ n[1].i = location;
+ n[2].i = count;
+ save_pointer(&n[3], memdup(v, count * 2 * sizeof(GLint64)));
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform1fv(ctx->Exec, (program, location, count, v));
+ CALL_Uniform2i64vARB(ctx->Exec, (location, count, v));
}
}
static void GLAPIENTRY
-save_ProgramUniform2fv(GLuint program, GLint location, GLsizei count,
- const GLfloat *v)
+save_Uniform3i64vARB(GLint location, GLsizei count, const GLint64 *v)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_2FV, 3 + POINTER_DWORDS);
+ n = alloc_instruction(ctx, OPCODE_UNIFORM_3I64V, 2 + POINTER_DWORDS);
if (n) {
- n[1].ui = program;
- n[2].i = location;
- n[3].i = count;
- save_pointer(&n[4], memdup(v, count * 2 * sizeof(GLfloat)));
+ n[1].i = location;
+ n[2].i = count;
+ save_pointer(&n[3], memdup(v, count * 3 * sizeof(GLint64)));
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform2fv(ctx->Exec, (program, location, count, v));
+ CALL_Uniform3i64vARB(ctx->Exec, (location, count, v));
}
}
static void GLAPIENTRY
-save_ProgramUniform3fv(GLuint program, GLint location, GLsizei count,
- const GLfloat *v)
+save_Uniform4i64vARB(GLint location, GLsizei count, const GLint64 *v)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_3FV, 3 + POINTER_DWORDS);
+ n = alloc_instruction(ctx, OPCODE_UNIFORM_4I64V, 2 + POINTER_DWORDS);
if (n) {
- n[1].ui = program;
- n[2].i = location;
- n[3].i = count;
- save_pointer(&n[4], memdup(v, count * 3 * sizeof(GLfloat)));
+ n[1].i = location;
+ n[2].i = count;
+ save_pointer(&n[3], memdup(v, count * 4 * sizeof(GLint64)));
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform3fv(ctx->Exec, (program, location, count, v));
+ CALL_Uniform4i64vARB(ctx->Exec, (location, count, v));
}
}
static void GLAPIENTRY
-save_ProgramUniform4fv(GLuint program, GLint location, GLsizei count,
- const GLfloat *v)
+save_Uniform1ui64ARB(GLint location, GLuint64 x)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_4FV, 3 + POINTER_DWORDS);
+ n = alloc_instruction(ctx, OPCODE_UNIFORM_1UI64, 3);
if (n) {
- n[1].ui = program;
- n[2].i = location;
- n[3].i = count;
- save_pointer(&n[4], memdup(v, count * 4 * sizeof(GLfloat)));
+ n[1].i = location;
+ ASSIGN_UINT64_TO_NODES(n, 2, x);
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform4fv(ctx->Exec, (program, location, count, v));
+ CALL_Uniform1ui64ARB(ctx->Exec, (location, x));
}
}
static void GLAPIENTRY
-save_ProgramUniform1d(GLuint program, GLint location, GLdouble x)
+save_Uniform2ui64ARB(GLint location, GLuint64 x, GLuint64 y)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_1D, 4);
+ n = alloc_instruction(ctx, OPCODE_UNIFORM_2UI64, 5);
if (n) {
- n[1].ui = program;
- n[2].i = location;
- ASSIGN_DOUBLE_TO_NODES(n, 3, x);
+ n[1].i = location;
+ ASSIGN_UINT64_TO_NODES(n, 2, x);
+ ASSIGN_UINT64_TO_NODES(n, 4, y);
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform1d(ctx->Exec, (program, location, x));
+ CALL_Uniform2ui64ARB(ctx->Exec, (location, x, y));
}
}
static void GLAPIENTRY
-save_ProgramUniform2d(GLuint program, GLint location, GLdouble x, GLdouble y)
+save_Uniform3ui64ARB(GLint location, GLuint64 x, GLuint64 y, GLuint64 z)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_2D, 6);
+ n = alloc_instruction(ctx, OPCODE_UNIFORM_3UI64, 7);
if (n) {
- n[1].ui = program;
- n[2].i = location;
- ASSIGN_DOUBLE_TO_NODES(n, 3, x);
- ASSIGN_DOUBLE_TO_NODES(n, 5, y);
+ n[1].i = location;
+ ASSIGN_UINT64_TO_NODES(n, 2, x);
+ ASSIGN_UINT64_TO_NODES(n, 4, y);
+ ASSIGN_UINT64_TO_NODES(n, 6, z);
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform2d(ctx->Exec, (program, location, x, y));
+ CALL_Uniform3ui64ARB(ctx->Exec, (location, x, y, z));
}
}
static void GLAPIENTRY
-save_ProgramUniform3d(GLuint program, GLint location,
- GLdouble x, GLdouble y, GLdouble z)
+save_Uniform4ui64ARB(GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_3D, 8);
+ n = alloc_instruction(ctx, OPCODE_UNIFORM_4UI64, 9);
if (n) {
- n[1].ui = program;
- n[2].i = location;
- ASSIGN_DOUBLE_TO_NODES(n, 3, x);
- ASSIGN_DOUBLE_TO_NODES(n, 5, y);
- ASSIGN_DOUBLE_TO_NODES(n, 7, z);
+ n[1].i = location;
+ ASSIGN_UINT64_TO_NODES(n, 2, x);
+ ASSIGN_UINT64_TO_NODES(n, 4, y);
+ ASSIGN_UINT64_TO_NODES(n, 6, z);
+ ASSIGN_UINT64_TO_NODES(n, 8, w);
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform3d(ctx->Exec, (program, location, x, y, z));
+ CALL_Uniform4ui64ARB(ctx->Exec, (location, x, y, z, w));
}
}
static void GLAPIENTRY
-save_ProgramUniform4d(GLuint program, GLint location,
- GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+save_Uniform1ui64vARB(GLint location, GLsizei count, const GLuint64 *v)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_4D, 10);
+ n = alloc_instruction(ctx, OPCODE_UNIFORM_1UI64V, 2 + POINTER_DWORDS);
if (n) {
- n[1].ui = program;
- n[2].i = location;
- ASSIGN_DOUBLE_TO_NODES(n, 3, x);
- ASSIGN_DOUBLE_TO_NODES(n, 5, y);
- ASSIGN_DOUBLE_TO_NODES(n, 7, z);
- ASSIGN_DOUBLE_TO_NODES(n, 9, w);
+ n[1].i = location;
+ n[2].i = count;
+ save_pointer(&n[3], memdup(v, count * 1 * sizeof(GLuint64)));
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform4d(ctx->Exec, (program, location, x, y, z, w));
+ CALL_Uniform1ui64vARB(ctx->Exec, (location, count, v));
}
}
static void GLAPIENTRY
-save_ProgramUniform1dv(GLuint program, GLint location, GLsizei count,
- const GLdouble *v)
+save_Uniform2ui64vARB(GLint location, GLsizei count, const GLuint64 *v)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_1DV, 3 + POINTER_DWORDS);
+ n = alloc_instruction(ctx, OPCODE_UNIFORM_2UI64V, 2 + POINTER_DWORDS);
if (n) {
- n[1].ui = program;
- n[2].i = location;
- n[3].i = count;
- save_pointer(&n[4], memdup(v, count * 1 * sizeof(GLdouble)));
+ n[1].i = location;
+ n[2].i = count;
+ save_pointer(&n[3], memdup(v, count * 2 * sizeof(GLuint64)));
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform1dv(ctx->Exec, (program, location, count, v));
+ CALL_Uniform2ui64vARB(ctx->Exec, (location, count, v));
}
}
static void GLAPIENTRY
-save_ProgramUniform2dv(GLuint program, GLint location, GLsizei count,
- const GLdouble *v)
+save_Uniform3ui64vARB(GLint location, GLsizei count, const GLuint64 *v)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_2DV, 3 + POINTER_DWORDS);
+ n = alloc_instruction(ctx, OPCODE_UNIFORM_3UI64V, 2 + POINTER_DWORDS);
if (n) {
- n[1].ui = program;
- n[2].i = location;
- n[3].i = count;
- save_pointer(&n[4], memdup(v, count * 2 * sizeof(GLdouble)));
+ n[1].i = location;
+ n[2].i = count;
+ save_pointer(&n[3], memdup(v, count * 3 * sizeof(GLuint64)));
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform2dv(ctx->Exec, (program, location, count, v));
+ CALL_Uniform3ui64vARB(ctx->Exec, (location, count, v));
}
}
static void GLAPIENTRY
-save_ProgramUniform3dv(GLuint program, GLint location, GLsizei count,
- const GLdouble *v)
+save_Uniform4ui64vARB(GLint location, GLsizei count, const GLuint64 *v)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_3DV, 3 + POINTER_DWORDS);
+ n = alloc_instruction(ctx, OPCODE_UNIFORM_4UI64V, 2 + POINTER_DWORDS);
if (n) {
- n[1].ui = program;
- n[2].i = location;
- n[3].i = count;
- save_pointer(&n[4], memdup(v, count * 3 * sizeof(GLdouble)));
+ n[1].i = location;
+ n[2].i = count;
+ save_pointer(&n[3], memdup(v, count * 4 * sizeof(GLuint64)));
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform3dv(ctx->Exec, (program, location, count, v));
+ CALL_Uniform4ui64vARB(ctx->Exec, (location, count, v));
}
}
static void GLAPIENTRY
-save_ProgramUniform4dv(GLuint program, GLint location, GLsizei count,
- const GLdouble *v)
+save_ProgramUniform1i64ARB(GLuint program, GLint location, GLint64 x)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_4DV, 3 + POINTER_DWORDS);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_1I64, 4);
if (n) {
n[1].ui = program;
n[2].i = location;
- n[3].i = count;
- save_pointer(&n[4], memdup(v, count * 4 * sizeof(GLdouble)));
+ ASSIGN_INT64_TO_NODES(n, 3, x);
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform4dv(ctx->Exec, (program, location, count, v));
+ CALL_ProgramUniform1i64ARB(ctx->Exec, (program, location, x));
}
}
static void GLAPIENTRY
-save_ProgramUniform1i(GLuint program, GLint location, GLint x)
+save_ProgramUniform2i64ARB(GLuint program, GLint location, GLint64 x,
+ GLint64 y)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_1I, 3);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_2I64, 6);
if (n) {
n[1].ui = program;
n[2].i = location;
- n[3].i = x;
+ ASSIGN_INT64_TO_NODES(n, 3, x);
+ ASSIGN_INT64_TO_NODES(n, 5, y);
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform1i(ctx->Exec, (program, location, x));
+ CALL_ProgramUniform2i64ARB(ctx->Exec, (program, location, x, y));
}
}
static void GLAPIENTRY
-save_ProgramUniform2i(GLuint program, GLint location, GLint x, GLint y)
+save_ProgramUniform3i64ARB(GLuint program, GLint location, GLint64 x,
+ GLint64 y, GLint64 z)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_2I, 4);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_3I64, 8);
if (n) {
n[1].ui = program;
n[2].i = location;
- n[3].i = x;
- n[4].i = y;
+ ASSIGN_INT64_TO_NODES(n, 3, x);
+ ASSIGN_INT64_TO_NODES(n, 5, y);
+ ASSIGN_INT64_TO_NODES(n, 7, z);
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform2i(ctx->Exec, (program, location, x, y));
+ CALL_ProgramUniform3i64ARB(ctx->Exec, (program, location, x, y, z));
}
}
static void GLAPIENTRY
-save_ProgramUniform3i(GLuint program, GLint location,
- GLint x, GLint y, GLint z)
+save_ProgramUniform4i64ARB(GLuint program, GLint location, GLint64 x,
+ GLint64 y, GLint64 z, GLint64 w)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_3I, 5);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_4I64, 10);
if (n) {
n[1].ui = program;
n[2].i = location;
- n[3].i = x;
- n[4].i = y;
- n[5].i = z;
+ ASSIGN_INT64_TO_NODES(n, 3, x);
+ ASSIGN_INT64_TO_NODES(n, 5, y);
+ ASSIGN_INT64_TO_NODES(n, 7, z);
+ ASSIGN_INT64_TO_NODES(n, 9, w);
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform3i(ctx->Exec, (program, location, x, y, z));
+ CALL_ProgramUniform4i64ARB(ctx->Exec, (program, location, x, y, z, w));
}
}
static void GLAPIENTRY
-save_ProgramUniform4i(GLuint program, GLint location,
- GLint x, GLint y, GLint z, GLint w)
+save_ProgramUniform1i64vARB(GLuint program, GLint location, GLsizei count,
+ const GLint64 *v)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_4I, 6);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_1I64V, 3 + POINTER_DWORDS);
if (n) {
n[1].ui = program;
n[2].i = location;
- n[3].i = x;
- n[4].i = y;
- n[5].i = z;
- n[6].i = w;
+ n[3].i = count;
+ save_pointer(&n[4], memdup(v, count * 1 * sizeof(GLint64)));
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform4i(ctx->Exec, (program, location, x, y, z, w));
+ CALL_ProgramUniform1i64vARB(ctx->Exec, (program, location, count, v));
}
}
static void GLAPIENTRY
-save_ProgramUniform1iv(GLuint program, GLint location, GLsizei count,
- const GLint *v)
+save_ProgramUniform2i64vARB(GLuint program, GLint location, GLsizei count,
+ const GLint64 *v)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_1IV, 3 + POINTER_DWORDS);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_2I64V, 3 + POINTER_DWORDS);
if (n) {
n[1].ui = program;
n[2].i = location;
n[3].i = count;
- save_pointer(&n[4], memdup(v, count * 1 * sizeof(GLint)));
+ save_pointer(&n[4], memdup(v, count * 1 * sizeof(GLint64)));
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform1iv(ctx->Exec, (program, location, count, v));
+ CALL_ProgramUniform2i64vARB(ctx->Exec, (program, location, count, v));
}
}
static void GLAPIENTRY
-save_ProgramUniform2iv(GLuint program, GLint location, GLsizei count,
- const GLint *v)
+save_ProgramUniform3i64vARB(GLuint program, GLint location, GLsizei count,
+ const GLint64 *v)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_2IV, 3 + POINTER_DWORDS);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_3I64V, 3 + POINTER_DWORDS);
if (n) {
n[1].ui = program;
n[2].i = location;
n[3].i = count;
- save_pointer(&n[4], memdup(v, count * 2 * sizeof(GLint)));
+ save_pointer(&n[4], memdup(v, count * 1 * sizeof(GLint64)));
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform2iv(ctx->Exec, (program, location, count, v));
+ CALL_ProgramUniform3i64vARB(ctx->Exec, (program, location, count, v));
}
}
static void GLAPIENTRY
-save_ProgramUniform3iv(GLuint program, GLint location, GLsizei count,
- const GLint *v)
+save_ProgramUniform4i64vARB(GLuint program, GLint location, GLsizei count,
+ const GLint64 *v)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_3IV, 3 + POINTER_DWORDS);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_4I64V, 3 + POINTER_DWORDS);
if (n) {
n[1].ui = program;
n[2].i = location;
n[3].i = count;
- save_pointer(&n[4], memdup(v, count * 3 * sizeof(GLint)));
+ save_pointer(&n[4], memdup(v, count * 1 * sizeof(GLint64)));
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform3iv(ctx->Exec, (program, location, count, v));
+ CALL_ProgramUniform4i64vARB(ctx->Exec, (program, location, count, v));
}
}
static void GLAPIENTRY
-save_ProgramUniform4iv(GLuint program, GLint location, GLsizei count,
- const GLint *v)
+save_ProgramUniform1ui64ARB(GLuint program, GLint location, GLuint64 x)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_4IV, 3 + POINTER_DWORDS);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_1UI64, 4);
if (n) {
n[1].ui = program;
n[2].i = location;
- n[3].i = count;
- save_pointer(&n[4], memdup(v, count * 4 * sizeof(GLint)));
+ ASSIGN_UINT64_TO_NODES(n, 3, x);
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform4iv(ctx->Exec, (program, location, count, v));
+ CALL_ProgramUniform1ui64ARB(ctx->Exec, (program, location, x));
}
}
static void GLAPIENTRY
-save_ProgramUniform1ui(GLuint program, GLint location, GLuint x)
+save_ProgramUniform2ui64ARB(GLuint program, GLint location, GLuint64 x,
+ GLuint64 y)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_1UI, 3);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_2UI64, 6);
if (n) {
n[1].ui = program;
n[2].i = location;
- n[3].ui = x;
+ ASSIGN_UINT64_TO_NODES(n, 3, x);
+ ASSIGN_UINT64_TO_NODES(n, 5, y);
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform1ui(ctx->Exec, (program, location, x));
+ CALL_ProgramUniform2ui64ARB(ctx->Exec, (program, location, x, y));
}
}
static void GLAPIENTRY
-save_ProgramUniform2ui(GLuint program, GLint location, GLuint x, GLuint y)
+save_ProgramUniform3ui64ARB(GLuint program, GLint location, GLuint64 x,
+ GLuint64 y, GLuint64 z)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_2UI, 4);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_3UI64, 8);
if (n) {
n[1].ui = program;
n[2].i = location;
- n[3].ui = x;
- n[4].ui = y;
+ ASSIGN_UINT64_TO_NODES(n, 3, x);
+ ASSIGN_UINT64_TO_NODES(n, 5, y);
+ ASSIGN_UINT64_TO_NODES(n, 7, z);
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform2ui(ctx->Exec, (program, location, x, y));
+ CALL_ProgramUniform3ui64ARB(ctx->Exec, (program, location, x, y, z));
}
}
static void GLAPIENTRY
-save_ProgramUniform3ui(GLuint program, GLint location,
- GLuint x, GLuint y, GLuint z)
+save_ProgramUniform4ui64ARB(GLuint program, GLint location, GLuint64 x,
+ GLuint64 y, GLuint64 z, GLuint64 w)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_3UI, 5);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_4UI64, 10);
if (n) {
n[1].ui = program;
n[2].i = location;
- n[3].ui = x;
- n[4].ui = y;
- n[5].ui = z;
+ ASSIGN_UINT64_TO_NODES(n, 3, x);
+ ASSIGN_UINT64_TO_NODES(n, 5, y);
+ ASSIGN_UINT64_TO_NODES(n, 7, z);
+ ASSIGN_UINT64_TO_NODES(n, 9, w);
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform3ui(ctx->Exec, (program, location, x, y, z));
+ CALL_ProgramUniform4i64ARB(ctx->Exec, (program, location, x, y, z, w));
}
}
static void GLAPIENTRY
-save_ProgramUniform4ui(GLuint program, GLint location,
- GLuint x, GLuint y, GLuint z, GLuint w)
+save_ProgramUniform1ui64vARB(GLuint program, GLint location, GLsizei count,
+ const GLuint64 *v)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_4UI, 6);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_1UI64V,
+ 3 + POINTER_DWORDS);
if (n) {
n[1].ui = program;
n[2].i = location;
- n[3].ui = x;
- n[4].ui = y;
- n[5].ui = z;
- n[6].ui = w;
+ n[3].i = count;
+ save_pointer(&n[4], memdup(v, count * 1 * sizeof(GLuint64)));
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform4ui(ctx->Exec, (program, location, x, y, z, w));
+ CALL_ProgramUniform1ui64vARB(ctx->Exec, (program, location, count, v));
}
}
static void GLAPIENTRY
-save_ProgramUniform1uiv(GLuint program, GLint location, GLsizei count,
- const GLuint *v)
+save_ProgramUniform2ui64vARB(GLuint program, GLint location, GLsizei count,
+ const GLuint64 *v)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_1UIV, 3 + POINTER_DWORDS);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_2UI64V,
+ 3 + POINTER_DWORDS);
if (n) {
n[1].ui = program;
n[2].i = location;
n[3].i = count;
- save_pointer(&n[4], memdup(v, count * 1 * sizeof(GLuint)));
+ save_pointer(&n[4], memdup(v, count * 1 * sizeof(GLuint64)));
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform1uiv(ctx->Exec, (program, location, count, v));
+ CALL_ProgramUniform2ui64vARB(ctx->Exec, (program, location, count, v));
}
}
static void GLAPIENTRY
-save_ProgramUniform2uiv(GLuint program, GLint location, GLsizei count,
- const GLuint *v)
+save_ProgramUniform3ui64vARB(GLuint program, GLint location, GLsizei count,
+ const GLuint64 *v)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_2UIV, 3 + POINTER_DWORDS);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_3UI64V,
+ 3 + POINTER_DWORDS);
if (n) {
n[1].ui = program;
n[2].i = location;
n[3].i = count;
- save_pointer(&n[4], memdup(v, count * 2 * sizeof(GLuint)));
+ save_pointer(&n[4], memdup(v, count * 1 * sizeof(GLuint64)));
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform2uiv(ctx->Exec, (program, location, count, v));
+ CALL_ProgramUniform3ui64vARB(ctx->Exec, (program, location, count, v));
}
}
static void GLAPIENTRY
-save_ProgramUniform3uiv(GLuint program, GLint location, GLsizei count,
- const GLuint *v)
+save_ProgramUniform4ui64vARB(GLuint program, GLint location, GLsizei count,
+ const GLuint64 *v)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_3UIV, 3 + POINTER_DWORDS);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_4UI64V,
+ 3 + POINTER_DWORDS);
if (n) {
n[1].ui = program;
n[2].i = location;
n[3].i = count;
- save_pointer(&n[4], memdup(v, count * 3 * sizeof(GLuint)));
+ save_pointer(&n[4], memdup(v, count * 1 * sizeof(GLuint64)));
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform3uiv(ctx->Exec, (program, location, count, v));
+ CALL_ProgramUniform4ui64vARB(ctx->Exec, (program, location, count, v));
}
}
+
static void GLAPIENTRY
-save_ProgramUniform4uiv(GLuint program, GLint location, GLsizei count,
- const GLuint *v)
+save_UseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_4UIV, 3 + POINTER_DWORDS);
+ n = alloc_instruction(ctx, OPCODE_USE_PROGRAM_STAGES, 3);
if (n) {
- n[1].ui = program;
- n[2].i = location;
- n[3].i = count;
- save_pointer(&n[4], memdup(v, count * 4 * sizeof(GLuint)));
+ n[1].ui = pipeline;
+ n[2].ui = stages;
+ n[3].ui = program;
}
if (ctx->ExecuteFlag) {
- CALL_ProgramUniform4uiv(ctx->Exec, (program, location, count, v));
+ CALL_UseProgramStages(ctx->Exec, (pipeline, stages, program));
}
}
static void GLAPIENTRY
-save_ProgramUniformMatrix2fv(GLuint program, GLint location, GLsizei count,
- GLboolean transpose, const GLfloat *v)
+save_ProgramUniform1f(GLuint program, GLint location, GLfloat x)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_MATRIX22F,
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_1F, 3);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ n[3].f = x;
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform1f(ctx->Exec, (program, location, x));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform2f(GLuint program, GLint location, GLfloat x, GLfloat y)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_2F, 4);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ n[3].f = x;
+ n[4].f = y;
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform2f(ctx->Exec, (program, location, x, y));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform3f(GLuint program, GLint location,
+ GLfloat x, GLfloat y, GLfloat z)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_3F, 5);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ n[3].f = x;
+ n[4].f = y;
+ n[5].f = z;
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform3f(ctx->Exec, (program, location, x, y, z));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform4f(GLuint program, GLint location,
+ GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_4F, 6);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ n[3].f = x;
+ n[4].f = y;
+ n[5].f = z;
+ n[6].f = w;
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform4f(ctx->Exec, (program, location, x, y, z, w));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform1fv(GLuint program, GLint location, GLsizei count,
+ const GLfloat *v)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_1FV, 3 + POINTER_DWORDS);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ n[3].i = count;
+ save_pointer(&n[4], memdup(v, count * 1 * sizeof(GLfloat)));
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform1fv(ctx->Exec, (program, location, count, v));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform2fv(GLuint program, GLint location, GLsizei count,
+ const GLfloat *v)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_2FV, 3 + POINTER_DWORDS);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ n[3].i = count;
+ save_pointer(&n[4], memdup(v, count * 2 * sizeof(GLfloat)));
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform2fv(ctx->Exec, (program, location, count, v));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform3fv(GLuint program, GLint location, GLsizei count,
+ const GLfloat *v)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_3FV, 3 + POINTER_DWORDS);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ n[3].i = count;
+ save_pointer(&n[4], memdup(v, count * 3 * sizeof(GLfloat)));
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform3fv(ctx->Exec, (program, location, count, v));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform4fv(GLuint program, GLint location, GLsizei count,
+ const GLfloat *v)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_4FV, 3 + POINTER_DWORDS);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ n[3].i = count;
+ save_pointer(&n[4], memdup(v, count * 4 * sizeof(GLfloat)));
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform4fv(ctx->Exec, (program, location, count, v));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform1d(GLuint program, GLint location, GLdouble x)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_1D, 4);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ ASSIGN_DOUBLE_TO_NODES(n, 3, x);
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform1d(ctx->Exec, (program, location, x));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform2d(GLuint program, GLint location, GLdouble x, GLdouble y)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_2D, 6);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ ASSIGN_DOUBLE_TO_NODES(n, 3, x);
+ ASSIGN_DOUBLE_TO_NODES(n, 5, y);
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform2d(ctx->Exec, (program, location, x, y));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform3d(GLuint program, GLint location,
+ GLdouble x, GLdouble y, GLdouble z)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_3D, 8);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ ASSIGN_DOUBLE_TO_NODES(n, 3, x);
+ ASSIGN_DOUBLE_TO_NODES(n, 5, y);
+ ASSIGN_DOUBLE_TO_NODES(n, 7, z);
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform3d(ctx->Exec, (program, location, x, y, z));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform4d(GLuint program, GLint location,
+ GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_4D, 10);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ ASSIGN_DOUBLE_TO_NODES(n, 3, x);
+ ASSIGN_DOUBLE_TO_NODES(n, 5, y);
+ ASSIGN_DOUBLE_TO_NODES(n, 7, z);
+ ASSIGN_DOUBLE_TO_NODES(n, 9, w);
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform4d(ctx->Exec, (program, location, x, y, z, w));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform1dv(GLuint program, GLint location, GLsizei count,
+ const GLdouble *v)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_1DV, 3 + POINTER_DWORDS);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ n[3].i = count;
+ save_pointer(&n[4], memdup(v, count * 1 * sizeof(GLdouble)));
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform1dv(ctx->Exec, (program, location, count, v));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform2dv(GLuint program, GLint location, GLsizei count,
+ const GLdouble *v)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_2DV, 3 + POINTER_DWORDS);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ n[3].i = count;
+ save_pointer(&n[4], memdup(v, count * 2 * sizeof(GLdouble)));
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform2dv(ctx->Exec, (program, location, count, v));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform3dv(GLuint program, GLint location, GLsizei count,
+ const GLdouble *v)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_3DV, 3 + POINTER_DWORDS);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ n[3].i = count;
+ save_pointer(&n[4], memdup(v, count * 3 * sizeof(GLdouble)));
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform3dv(ctx->Exec, (program, location, count, v));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform4dv(GLuint program, GLint location, GLsizei count,
+ const GLdouble *v)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_4DV, 3 + POINTER_DWORDS);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ n[3].i = count;
+ save_pointer(&n[4], memdup(v, count * 4 * sizeof(GLdouble)));
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform4dv(ctx->Exec, (program, location, count, v));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform1i(GLuint program, GLint location, GLint x)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_1I, 3);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ n[3].i = x;
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform1i(ctx->Exec, (program, location, x));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform2i(GLuint program, GLint location, GLint x, GLint y)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_2I, 4);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ n[3].i = x;
+ n[4].i = y;
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform2i(ctx->Exec, (program, location, x, y));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform3i(GLuint program, GLint location,
+ GLint x, GLint y, GLint z)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_3I, 5);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ n[3].i = x;
+ n[4].i = y;
+ n[5].i = z;
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform3i(ctx->Exec, (program, location, x, y, z));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform4i(GLuint program, GLint location,
+ GLint x, GLint y, GLint z, GLint w)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_4I, 6);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ n[3].i = x;
+ n[4].i = y;
+ n[5].i = z;
+ n[6].i = w;
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform4i(ctx->Exec, (program, location, x, y, z, w));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform1iv(GLuint program, GLint location, GLsizei count,
+ const GLint *v)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_1IV, 3 + POINTER_DWORDS);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ n[3].i = count;
+ save_pointer(&n[4], memdup(v, count * 1 * sizeof(GLint)));
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform1iv(ctx->Exec, (program, location, count, v));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform2iv(GLuint program, GLint location, GLsizei count,
+ const GLint *v)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_2IV, 3 + POINTER_DWORDS);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ n[3].i = count;
+ save_pointer(&n[4], memdup(v, count * 2 * sizeof(GLint)));
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform2iv(ctx->Exec, (program, location, count, v));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform3iv(GLuint program, GLint location, GLsizei count,
+ const GLint *v)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_3IV, 3 + POINTER_DWORDS);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ n[3].i = count;
+ save_pointer(&n[4], memdup(v, count * 3 * sizeof(GLint)));
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform3iv(ctx->Exec, (program, location, count, v));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform4iv(GLuint program, GLint location, GLsizei count,
+ const GLint *v)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_4IV, 3 + POINTER_DWORDS);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ n[3].i = count;
+ save_pointer(&n[4], memdup(v, count * 4 * sizeof(GLint)));
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform4iv(ctx->Exec, (program, location, count, v));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform1ui(GLuint program, GLint location, GLuint x)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_1UI, 3);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ n[3].ui = x;
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform1ui(ctx->Exec, (program, location, x));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform2ui(GLuint program, GLint location, GLuint x, GLuint y)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_2UI, 4);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ n[3].ui = x;
+ n[4].ui = y;
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform2ui(ctx->Exec, (program, location, x, y));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform3ui(GLuint program, GLint location,
+ GLuint x, GLuint y, GLuint z)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_3UI, 5);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ n[3].ui = x;
+ n[4].ui = y;
+ n[5].ui = z;
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform3ui(ctx->Exec, (program, location, x, y, z));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform4ui(GLuint program, GLint location,
+ GLuint x, GLuint y, GLuint z, GLuint w)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_4UI, 6);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ n[3].ui = x;
+ n[4].ui = y;
+ n[5].ui = z;
+ n[6].ui = w;
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform4ui(ctx->Exec, (program, location, x, y, z, w));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform1uiv(GLuint program, GLint location, GLsizei count,
+ const GLuint *v)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_1UIV, 3 + POINTER_DWORDS);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ n[3].i = count;
+ save_pointer(&n[4], memdup(v, count * 1 * sizeof(GLuint)));
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform1uiv(ctx->Exec, (program, location, count, v));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform2uiv(GLuint program, GLint location, GLsizei count,
+ const GLuint *v)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_2UIV, 3 + POINTER_DWORDS);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ n[3].i = count;
+ save_pointer(&n[4], memdup(v, count * 2 * sizeof(GLuint)));
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform2uiv(ctx->Exec, (program, location, count, v));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform3uiv(GLuint program, GLint location, GLsizei count,
+ const GLuint *v)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_3UIV, 3 + POINTER_DWORDS);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ n[3].i = count;
+ save_pointer(&n[4], memdup(v, count * 3 * sizeof(GLuint)));
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform3uiv(ctx->Exec, (program, location, count, v));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniform4uiv(GLuint program, GLint location, GLsizei count,
+ const GLuint *v)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_4UIV, 3 + POINTER_DWORDS);
+ if (n) {
+ n[1].ui = program;
+ n[2].i = location;
+ n[3].i = count;
+ save_pointer(&n[4], memdup(v, count * 4 * sizeof(GLuint)));
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ProgramUniform4uiv(ctx->Exec, (program, location, count, v));
+ }
+}
+
+static void GLAPIENTRY
+save_ProgramUniformMatrix2fv(GLuint program, GLint location, GLsizei count,
+ GLboolean transpose, const GLfloat *v)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_PROGRAM_UNIFORM_MATRIX22F,
4 + POINTER_DWORDS);
if (n) {
n[1].ui = program;
(n[1].i, n[2].i, n[3].b, get_pointer(&n[4])));
break;
+ case OPCODE_UNIFORM_1I64: {
+ union int64_pair x;
+
+ x.int32[0] = n[2].i;
+ x.int32[1] = n[3].i;
+
+ CALL_Uniform1i64ARB(ctx->Exec, (n[1].i, x.int64));
+ break;
+ }
+ case OPCODE_UNIFORM_2I64: {
+ union int64_pair x;
+ union int64_pair y;
+
+ x.int32[0] = n[2].i;
+ x.int32[1] = n[3].i;
+ y.int32[0] = n[4].i;
+ y.int32[1] = n[5].i;
+
+ CALL_Uniform2i64ARB(ctx->Exec, (n[1].i, x.int64, y.int64));
+ break;
+ }
+ case OPCODE_UNIFORM_3I64: {
+ union int64_pair x;
+ union int64_pair y;
+ union int64_pair z;
+
+ x.int32[0] = n[2].i;
+ x.int32[1] = n[3].i;
+ y.int32[0] = n[4].i;
+ y.int32[1] = n[5].i;
+ z.int32[0] = n[6].i;
+ z.int32[1] = n[7].i;
+
+
+ CALL_Uniform3i64ARB(ctx->Exec, (n[1].i, x.int64, y.int64, z.int64));
+ break;
+ }
+ case OPCODE_UNIFORM_4I64: {
+ union int64_pair x;
+ union int64_pair y;
+ union int64_pair z;
+ union int64_pair w;
+
+ x.int32[0] = n[2].i;
+ x.int32[1] = n[3].i;
+ y.int32[0] = n[4].i;
+ y.int32[1] = n[5].i;
+ z.int32[0] = n[6].i;
+ z.int32[1] = n[7].i;
+ w.int32[0] = n[8].i;
+ w.int32[1] = n[9].i;
+
+ CALL_Uniform4i64ARB(ctx->Exec, (n[1].i, x.int64, y.int64, z.int64, w.int64));
+ break;
+ }
+ case OPCODE_UNIFORM_1I64V:
+ CALL_Uniform1i64vARB(ctx->Exec, (n[1].i, n[2].i, get_pointer(&n[3])));
+ break;
+ case OPCODE_UNIFORM_2I64V:
+ CALL_Uniform2i64vARB(ctx->Exec, (n[1].i, n[2].i, get_pointer(&n[3])));
+ break;
+ case OPCODE_UNIFORM_3I64V:
+ CALL_Uniform3i64vARB(ctx->Exec, (n[1].i, n[2].i, get_pointer(&n[3])));
+ break;
+ case OPCODE_UNIFORM_4I64V:
+ CALL_Uniform4i64vARB(ctx->Exec, (n[1].i, n[2].i, get_pointer(&n[3])));
+ break;
+ case OPCODE_UNIFORM_1UI64: {
+ union uint64_pair x;
+
+ x.uint32[0] = n[2].ui;
+ x.uint32[1] = n[3].ui;
+
+ CALL_Uniform1ui64ARB(ctx->Exec, (n[1].i, x.uint64));
+ break;
+ }
+ case OPCODE_UNIFORM_2UI64: {
+ union uint64_pair x;
+ union uint64_pair y;
+
+ x.uint32[0] = n[2].ui;
+ x.uint32[1] = n[3].ui;
+ y.uint32[0] = n[4].ui;
+ y.uint32[1] = n[5].ui;
+
+ CALL_Uniform2ui64ARB(ctx->Exec, (n[1].i, x.uint64, y.uint64));
+ break;
+ }
+ case OPCODE_UNIFORM_3UI64: {
+ union uint64_pair x;
+ union uint64_pair y;
+ union uint64_pair z;
+
+ x.uint32[0] = n[2].ui;
+ x.uint32[1] = n[3].ui;
+ y.uint32[0] = n[4].ui;
+ y.uint32[1] = n[5].ui;
+ z.uint32[0] = n[6].ui;
+ z.uint32[1] = n[7].ui;
+
+
+ CALL_Uniform3ui64ARB(ctx->Exec, (n[1].i, x.uint64, y.uint64,
+ z.uint64));
+ break;
+ }
+ case OPCODE_UNIFORM_4UI64: {
+ union uint64_pair x;
+ union uint64_pair y;
+ union uint64_pair z;
+ union uint64_pair w;
+
+ x.uint32[0] = n[2].ui;
+ x.uint32[1] = n[3].ui;
+ y.uint32[0] = n[4].ui;
+ y.uint32[1] = n[5].ui;
+ z.uint32[0] = n[6].ui;
+ z.uint32[1] = n[7].ui;
+ w.uint32[0] = n[8].ui;
+ w.uint32[1] = n[9].ui;
+
+ CALL_Uniform4ui64ARB(ctx->Exec, (n[1].i, x.uint64, y.uint64,
+ z.uint64, w.uint64));
+ break;
+ }
+ case OPCODE_UNIFORM_1UI64V:
+ CALL_Uniform1ui64vARB(ctx->Exec, (n[1].i, n[2].i,
+ get_pointer(&n[3])));
+ break;
+ case OPCODE_UNIFORM_2UI64V:
+ CALL_Uniform2ui64vARB(ctx->Exec, (n[1].i, n[2].i,
+ get_pointer(&n[3])));
+ break;
+ case OPCODE_UNIFORM_3UI64V:
+ CALL_Uniform3ui64vARB(ctx->Exec, (n[1].i, n[2].i,
+ get_pointer(&n[3])));
+ break;
+ case OPCODE_UNIFORM_4UI64V:
+ CALL_Uniform4ui64vARB(ctx->Exec, (n[1].i, n[2].i,
+ get_pointer(&n[3])));
+ break;
+
+ case OPCODE_PROGRAM_UNIFORM_1I64: {
+ union int64_pair x;
+
+ x.int32[0] = n[3].i;
+ x.int32[1] = n[4].i;
+
+ CALL_ProgramUniform1i64ARB(ctx->Exec, (n[1].ui, n[2].i, x.int64));
+ break;
+ }
+ case OPCODE_PROGRAM_UNIFORM_2I64: {
+ union int64_pair x;
+ union int64_pair y;
+
+ x.int32[0] = n[3].i;
+ x.int32[1] = n[4].i;
+ y.int32[0] = n[5].i;
+ y.int32[1] = n[6].i;
+
+ CALL_ProgramUniform2i64ARB(ctx->Exec, (n[1].ui, n[2].i, x.int64,
+ y.int64));
+ break;
+ }
+ case OPCODE_PROGRAM_UNIFORM_3I64: {
+ union int64_pair x;
+ union int64_pair y;
+ union int64_pair z;
+
+ x.int32[0] = n[3].i;
+ x.int32[1] = n[4].i;
+ y.int32[0] = n[5].i;
+ y.int32[1] = n[6].i;
+ z.int32[0] = n[7].i;
+ z.int32[1] = n[8].i;
+
+ CALL_ProgramUniform3i64ARB(ctx->Exec, (n[1].ui, n[2].i, x.int64,
+ y.int64, z.int64));
+ break;
+ }
+ case OPCODE_PROGRAM_UNIFORM_4I64: {
+ union int64_pair x;
+ union int64_pair y;
+ union int64_pair z;
+ union int64_pair w;
+
+ x.int32[0] = n[3].i;
+ x.int32[1] = n[4].i;
+ y.int32[0] = n[5].i;
+ y.int32[1] = n[6].i;
+ z.int32[0] = n[7].i;
+ z.int32[1] = n[8].i;
+ w.int32[0] = n[9].i;
+ w.int32[1] = n[10].i;
+
+ CALL_ProgramUniform4i64ARB(ctx->Exec, (n[1].ui, n[2].i, x.int64,
+ y.int64, z.int64, w.int64));
+ break;
+ }
+ case OPCODE_PROGRAM_UNIFORM_1I64V:
+ CALL_ProgramUniform1i64vARB(ctx->Exec, (n[1].ui, n[2].i, n[3].i,
+ get_pointer(&n[4])));
+ break;
+ case OPCODE_PROGRAM_UNIFORM_2I64V:
+ CALL_ProgramUniform2i64vARB(ctx->Exec, (n[1].ui, n[2].i, n[3].i,
+ get_pointer(&n[4])));
+ break;
+ case OPCODE_PROGRAM_UNIFORM_3I64V:
+ CALL_ProgramUniform3i64vARB(ctx->Exec, (n[1].ui, n[2].i, n[3].i,
+ get_pointer(&n[4])));
+ break;
+ case OPCODE_PROGRAM_UNIFORM_4I64V:
+ CALL_ProgramUniform4i64vARB(ctx->Exec, (n[1].ui, n[2].i, n[3].i,
+ get_pointer(&n[4])));
+ break;
+ case OPCODE_PROGRAM_UNIFORM_1UI64: {
+ union uint64_pair x;
+
+ x.uint32[0] = n[3].ui;
+ x.uint32[1] = n[4].ui;
+
+ CALL_ProgramUniform1i64ARB(ctx->Exec, (n[1].ui, n[2].i, x.uint64));
+ break;
+ }
+ case OPCODE_PROGRAM_UNIFORM_2UI64: {
+ union uint64_pair x;
+ union uint64_pair y;
+
+ x.uint32[0] = n[3].ui;
+ x.uint32[1] = n[4].ui;
+ y.uint32[0] = n[5].ui;
+ y.uint32[1] = n[6].ui;
+
+ CALL_ProgramUniform2ui64ARB(ctx->Exec, (n[1].ui, n[2].i, x.uint64,
+ y.uint64));
+ break;
+ }
+ case OPCODE_PROGRAM_UNIFORM_3UI64: {
+ union uint64_pair x;
+ union uint64_pair y;
+ union uint64_pair z;
+
+ x.uint32[0] = n[3].ui;
+ x.uint32[1] = n[4].ui;
+ y.uint32[0] = n[5].ui;
+ y.uint32[1] = n[6].ui;
+ z.uint32[0] = n[7].ui;
+ z.uint32[1] = n[8].ui;
+
+ CALL_ProgramUniform3ui64ARB(ctx->Exec, (n[1].ui, n[2].i, x.uint64,
+ y.uint64, z.uint64));
+ break;
+ }
+ case OPCODE_PROGRAM_UNIFORM_4UI64: {
+ union uint64_pair x;
+ union uint64_pair y;
+ union uint64_pair z;
+ union uint64_pair w;
+
+ x.uint32[0] = n[3].ui;
+ x.uint32[1] = n[4].ui;
+ y.uint32[0] = n[5].ui;
+ y.uint32[1] = n[6].ui;
+ z.uint32[0] = n[7].ui;
+ z.uint32[1] = n[8].ui;
+ w.uint32[0] = n[9].ui;
+ w.uint32[1] = n[10].ui;
+
+ CALL_ProgramUniform4ui64ARB(ctx->Exec, (n[1].ui, n[2].i, x.uint64,
+ y.uint64, z.uint64, w.uint64));
+ break;
+ }
+ case OPCODE_PROGRAM_UNIFORM_1UI64V:
+ CALL_ProgramUniform1ui64vARB(ctx->Exec, (n[1].ui, n[2].i, n[3].i,
+ get_pointer(&n[4])));
+ break;
+ case OPCODE_PROGRAM_UNIFORM_2UI64V:
+ CALL_ProgramUniform2ui64vARB(ctx->Exec, (n[1].ui, n[2].i, n[3].i,
+ get_pointer(&n[4])));
+ break;
+ case OPCODE_PROGRAM_UNIFORM_3UI64V:
+ CALL_ProgramUniform3ui64vARB(ctx->Exec, (n[1].ui, n[2].i, n[3].i,
+ get_pointer(&n[4])));
+ break;
+ case OPCODE_PROGRAM_UNIFORM_4UI64V:
+ CALL_ProgramUniform4ui64vARB(ctx->Exec, (n[1].ui, n[2].i, n[3].i,
+ get_pointer(&n[4])));
+ break;
+
case OPCODE_USE_PROGRAM_STAGES:
CALL_UseProgramStages(ctx->Exec, (n[1].ui, n[2].ui, n[3].ui));
break;
SET_UniformMatrix3x4dv(table, save_UniformMatrix3x4dv);
SET_UniformMatrix4x3dv(table, save_UniformMatrix4x3dv);
+ /* GL_ARB_gpu_shader_int64 */
+ SET_Uniform1i64ARB(table, save_Uniform1i64ARB);
+ SET_Uniform2i64ARB(table, save_Uniform2i64ARB);
+ SET_Uniform3i64ARB(table, save_Uniform3i64ARB);
+ SET_Uniform4i64ARB(table, save_Uniform4i64ARB);
+ SET_Uniform1i64vARB(table, save_Uniform1i64vARB);
+ SET_Uniform2i64vARB(table, save_Uniform2i64vARB);
+ SET_Uniform3i64vARB(table, save_Uniform3i64vARB);
+ SET_Uniform4i64vARB(table, save_Uniform4i64vARB);
+ SET_Uniform1ui64ARB(table, save_Uniform1ui64ARB);
+ SET_Uniform2ui64ARB(table, save_Uniform2ui64ARB);
+ SET_Uniform3ui64ARB(table, save_Uniform3ui64ARB);
+ SET_Uniform4ui64ARB(table, save_Uniform4ui64ARB);
+ SET_Uniform1ui64vARB(table, save_Uniform1ui64vARB);
+ SET_Uniform2ui64vARB(table, save_Uniform2ui64vARB);
+ SET_Uniform3ui64vARB(table, save_Uniform3ui64vARB);
+ SET_Uniform4ui64vARB(table, save_Uniform4ui64vARB);
+
+ SET_ProgramUniform1i64ARB(table, save_ProgramUniform1i64ARB);
+ SET_ProgramUniform2i64ARB(table, save_ProgramUniform2i64ARB);
+ SET_ProgramUniform3i64ARB(table, save_ProgramUniform3i64ARB);
+ SET_ProgramUniform4i64ARB(table, save_ProgramUniform4i64ARB);
+ SET_ProgramUniform1i64vARB(table, save_ProgramUniform1i64vARB);
+ SET_ProgramUniform2i64vARB(table, save_ProgramUniform2i64vARB);
+ SET_ProgramUniform3i64vARB(table, save_ProgramUniform3i64vARB);
+ SET_ProgramUniform4i64vARB(table, save_ProgramUniform4i64vARB);
+ SET_ProgramUniform1ui64ARB(table, save_ProgramUniform1ui64ARB);
+ SET_ProgramUniform2ui64ARB(table, save_ProgramUniform2ui64ARB);
+ SET_ProgramUniform3ui64ARB(table, save_ProgramUniform3ui64ARB);
+ SET_ProgramUniform4ui64ARB(table, save_ProgramUniform4ui64ARB);
+ SET_ProgramUniform1ui64vARB(table, save_ProgramUniform1ui64vARB);
+ SET_ProgramUniform2ui64vARB(table, save_ProgramUniform2ui64vARB);
+ SET_ProgramUniform3ui64vARB(table, save_ProgramUniform3ui64vARB);
+ SET_ProgramUniform4ui64vARB(table, save_ProgramUniform4ui64vARB);
+
/* These are: */
SET_BeginTransformFeedback(table, save_BeginTransformFeedback);
SET_EndTransformFeedback(table, save_EndTransformFeedback);