mesa: display list support for GL_EXT_texture_integer
This commit is contained in:
parent
98bb70ac84
commit
efd9e24312
|
@ -411,6 +411,12 @@ typedef enum
|
|||
OPCODE_BEGIN_TRANSFORM_FEEDBACK,
|
||||
OPCODE_END_TRANSFORM_FEEDBACK,
|
||||
|
||||
/* GL_EXT_texture_integer */
|
||||
OPCODE_CLEARCOLOR_I,
|
||||
OPCODE_CLEARCOLOR_UI,
|
||||
OPCODE_TEXPARAMETER_I,
|
||||
OPCODE_TEXPARAMETER_UI,
|
||||
|
||||
/* The following three are meta instructions */
|
||||
OPCODE_ERROR, /* raise compiled-in error */
|
||||
OPCODE_CONTINUE,
|
||||
|
@ -6788,6 +6794,107 @@ save_UniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose,
|
|||
}
|
||||
|
||||
|
||||
/** GL_EXT_texture_integer */
|
||||
static void GLAPIENTRY
|
||||
save_ClearColorIi(GLint red, GLint green, GLint blue, GLint alpha)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
Node *n;
|
||||
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
|
||||
n = alloc_instruction(ctx, OPCODE_CLEARCOLOR_I, 4);
|
||||
if (n) {
|
||||
n[1].i = red;
|
||||
n[2].i = green;
|
||||
n[3].i = blue;
|
||||
n[4].i = alpha;
|
||||
}
|
||||
if (ctx->ExecuteFlag) {
|
||||
CALL_ClearColorIiEXT(ctx->Exec, (red, green, blue, alpha));
|
||||
}
|
||||
}
|
||||
|
||||
/** GL_EXT_texture_integer */
|
||||
static void GLAPIENTRY
|
||||
save_ClearColorIui(GLuint red, GLuint green, GLuint blue, GLuint alpha)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
Node *n;
|
||||
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
|
||||
n = alloc_instruction(ctx, OPCODE_CLEARCOLOR_UI, 4);
|
||||
if (n) {
|
||||
n[1].ui = red;
|
||||
n[2].ui = green;
|
||||
n[3].ui = blue;
|
||||
n[4].ui = alpha;
|
||||
}
|
||||
if (ctx->ExecuteFlag) {
|
||||
CALL_ClearColorIuiEXT(ctx->Exec, (red, green, blue, alpha));
|
||||
}
|
||||
}
|
||||
|
||||
/** GL_EXT_texture_integer */
|
||||
static void GLAPIENTRY
|
||||
save_TexParameterIiv(GLenum target, GLenum pname, const GLint *params)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
Node *n;
|
||||
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
|
||||
n = alloc_instruction(ctx, OPCODE_TEXPARAMETER_I, 6);
|
||||
if (n) {
|
||||
n[1].e = target;
|
||||
n[2].e = pname;
|
||||
n[3].i = params[0];
|
||||
n[4].i = params[1];
|
||||
n[5].i = params[2];
|
||||
n[6].i = params[3];
|
||||
}
|
||||
if (ctx->ExecuteFlag) {
|
||||
CALL_TexParameterIivEXT(ctx->Exec, (target, pname, params));
|
||||
}
|
||||
}
|
||||
|
||||
/** GL_EXT_texture_integer */
|
||||
static void GLAPIENTRY
|
||||
save_TexParameterIuiv(GLenum target, GLenum pname, const GLuint *params)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
Node *n;
|
||||
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
|
||||
n = alloc_instruction(ctx, OPCODE_TEXPARAMETER_UI, 6);
|
||||
if (n) {
|
||||
n[1].e = target;
|
||||
n[2].e = pname;
|
||||
n[3].ui = params[0];
|
||||
n[4].ui = params[1];
|
||||
n[5].ui = params[2];
|
||||
n[6].ui = params[3];
|
||||
}
|
||||
if (ctx->ExecuteFlag) {
|
||||
CALL_TexParameterIuivEXT(ctx->Exec, (target, pname, params));
|
||||
}
|
||||
}
|
||||
|
||||
/** GL_EXT_texture_integer */
|
||||
static void GLAPIENTRY
|
||||
exec_GetTexParameterIiv(GLenum target, GLenum pname, GLint *params)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
FLUSH_VERTICES(ctx, 0);
|
||||
CALL_GetTexParameterIivEXT(ctx->Exec, (target, pname, params));
|
||||
}
|
||||
|
||||
/** GL_EXT_texture_integer */
|
||||
static void GLAPIENTRY
|
||||
exec_GetTexParameterIuiv(GLenum target, GLenum pname, GLuint *params)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
FLUSH_VERTICES(ctx, 0);
|
||||
CALL_GetTexParameterIuivEXT(ctx->Exec, (target, pname, params));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Save an error-generating command into display list.
|
||||
|
@ -7904,6 +8011,35 @@ execute_list(struct gl_context *ctx, GLuint list)
|
|||
CALL_EvalPoint2(ctx->Exec, (n[1].i, n[2].i));
|
||||
break;
|
||||
|
||||
/* GL_EXT_texture_integer */
|
||||
case OPCODE_CLEARCOLOR_I:
|
||||
CALL_ClearColorIiEXT(ctx->Exec, (n[1].i, n[2].i, n[3].i, n[4].i));
|
||||
break;
|
||||
case OPCODE_CLEARCOLOR_UI:
|
||||
CALL_ClearColorIuiEXT(ctx->Exec,
|
||||
(n[1].ui, n[2].ui, n[3].ui, n[4].ui));
|
||||
break;
|
||||
case OPCODE_TEXPARAMETER_I:
|
||||
{
|
||||
GLint params[4];
|
||||
params[0] = n[3].i;
|
||||
params[1] = n[4].i;
|
||||
params[2] = n[5].i;
|
||||
params[3] = n[6].i;
|
||||
CALL_TexParameterIivEXT(ctx->Exec, (n[1].e, n[2].e, params));
|
||||
}
|
||||
break;
|
||||
case OPCODE_TEXPARAMETER_UI:
|
||||
{
|
||||
GLuint params[4];
|
||||
params[0] = n[3].ui;
|
||||
params[1] = n[4].ui;
|
||||
params[2] = n[5].ui;
|
||||
params[3] = n[6].ui;
|
||||
CALL_TexParameterIuivEXT(ctx->Exec, (n[1].e, n[2].e, params));
|
||||
}
|
||||
break;
|
||||
|
||||
case OPCODE_CONTINUE:
|
||||
n = (Node *) n[1].next;
|
||||
break;
|
||||
|
@ -9532,6 +9668,14 @@ _mesa_create_save_table(void)
|
|||
SET_ObjectUnpurgeableAPPLE(table, _mesa_ObjectUnpurgeableAPPLE);
|
||||
#endif
|
||||
|
||||
/* GL_EXT_texture_integer */
|
||||
SET_ClearColorIiEXT(table, save_ClearColorIi);
|
||||
SET_ClearColorIuiEXT(table, save_ClearColorIui);
|
||||
SET_TexParameterIivEXT(table, save_TexParameterIiv);
|
||||
SET_TexParameterIuivEXT(table, save_TexParameterIuiv);
|
||||
SET_GetTexParameterIivEXT(table, exec_GetTexParameterIiv);
|
||||
SET_GetTexParameterIuivEXT(table, exec_GetTexParameterIuiv);
|
||||
|
||||
/* GL 3.0 */
|
||||
#if 0
|
||||
SET_ClearBufferiv(table, save_ClearBufferiv);
|
||||
|
|
Loading…
Reference in New Issue