Don't special-case index, edgeflag.
Remove display list opcodes for INDEX and EDGEFLAG, handle them through the regular ATTRIB mechanism now that Mesa understands them to just be regular attribs.
This commit is contained in:
+3
-46
@@ -343,8 +343,6 @@ typedef enum
|
||||
OPCODE_ATTR_3F_ARB,
|
||||
OPCODE_ATTR_4F_ARB,
|
||||
OPCODE_MATERIAL,
|
||||
OPCODE_INDEX,
|
||||
OPCODE_EDGEFLAG,
|
||||
OPCODE_BEGIN,
|
||||
OPCODE_END,
|
||||
OPCODE_RECTF,
|
||||
@@ -5110,45 +5108,19 @@ save_EvalPoint2(GLint x, GLint y)
|
||||
static void GLAPIENTRY
|
||||
save_Indexf(GLfloat x)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
Node *n;
|
||||
SAVE_FLUSH_VERTICES(ctx);
|
||||
n = ALLOC_INSTRUCTION(ctx, OPCODE_INDEX, 1);
|
||||
if (n) {
|
||||
n[1].f = x;
|
||||
}
|
||||
|
||||
ctx->ListState.ActiveIndex = 1;
|
||||
ctx->ListState.CurrentIndex = x;
|
||||
|
||||
if (ctx->ExecuteFlag) {
|
||||
CALL_Indexf(ctx->Exec, (x));
|
||||
}
|
||||
save_Attr1fNV(VERT_ATTRIB_COLOR_INDEX, x);
|
||||
}
|
||||
|
||||
static void GLAPIENTRY
|
||||
save_Indexfv(const GLfloat * v)
|
||||
{
|
||||
save_Indexf(v[0]);
|
||||
save_Attr1fNV(VERT_ATTRIB_COLOR_INDEX, v[0]);
|
||||
}
|
||||
|
||||
static void GLAPIENTRY
|
||||
save_EdgeFlag(GLboolean x)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
Node *n;
|
||||
SAVE_FLUSH_VERTICES(ctx);
|
||||
n = ALLOC_INSTRUCTION(ctx, OPCODE_EDGEFLAG, 1);
|
||||
if (n) {
|
||||
n[1].b = x;
|
||||
}
|
||||
|
||||
ctx->ListState.ActiveEdgeFlag = 1;
|
||||
ctx->ListState.CurrentEdgeFlag = x;
|
||||
|
||||
if (ctx->ExecuteFlag) {
|
||||
CALL_EdgeFlag(ctx->Exec, (x));
|
||||
}
|
||||
save_Attr1fNV(VERT_ATTRIB_EDGEFLAG, x ? 1.0 : 0.0);
|
||||
}
|
||||
|
||||
static void GLAPIENTRY
|
||||
@@ -6602,12 +6574,6 @@ execute_list(GLcontext *ctx, GLuint list)
|
||||
CALL_Materialfv(ctx->Exec, (n[1].e, n[2].e, f));
|
||||
}
|
||||
break;
|
||||
case OPCODE_INDEX:
|
||||
CALL_Indexf(ctx->Exec, (n[1].f));
|
||||
break;
|
||||
case OPCODE_EDGEFLAG:
|
||||
CALL_EdgeFlag(ctx->Exec, (n[1].b));
|
||||
break;
|
||||
case OPCODE_BEGIN:
|
||||
CALL_Begin(ctx->Exec, (n[1].e));
|
||||
break;
|
||||
@@ -6793,9 +6759,6 @@ _mesa_NewList(GLuint list, GLenum mode)
|
||||
for (i = 0; i < MAT_ATTRIB_MAX; i++)
|
||||
ctx->ListState.ActiveMaterialSize[i] = 0;
|
||||
|
||||
ctx->ListState.ActiveIndex = 0;
|
||||
ctx->ListState.ActiveEdgeFlag = 0;
|
||||
|
||||
ctx->Driver.CurrentSavePrimitive = PRIM_UNKNOWN;
|
||||
ctx->Driver.NewList(ctx, list, mode);
|
||||
|
||||
@@ -8421,12 +8384,6 @@ print_list(GLcontext *ctx, GLuint list)
|
||||
_mesa_printf("MATERIAL %x %x: %f %f %f %f\n",
|
||||
n[1].i, n[2].i, n[3].f, n[4].f, n[5].f, n[6].f);
|
||||
break;
|
||||
case OPCODE_INDEX:
|
||||
_mesa_printf("INDEX: %f\n", n[1].f);
|
||||
break;
|
||||
case OPCODE_EDGEFLAG:
|
||||
_mesa_printf("EDGEFLAG: %d\n", n[1].i);
|
||||
break;
|
||||
case OPCODE_BEGIN:
|
||||
_mesa_printf("BEGIN %x\n", n[1].i);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user