mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 06:48:06 +02:00
mesa: Restore gl_array_object::NewArray
This will be used by the ARB_vertex_attrib_binding implementation.
This reverts commit db38e9a0e1.
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
parent
c6a3fb69c6
commit
6a650fa787
4 changed files with 10 additions and 0 deletions
|
|
@ -135,6 +135,8 @@ client_state(struct gl_context *ctx, GLenum cap, GLboolean state)
|
|||
else
|
||||
arrayObj->_Enabled &= ~flag;
|
||||
|
||||
arrayObj->NewArrays |= flag;
|
||||
|
||||
if (ctx->Driver.Enable) {
|
||||
ctx->Driver.Enable( ctx, cap, state );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1513,6 +1513,9 @@ struct gl_array_object
|
|||
/** Mask of VERT_BIT_* values indicating which arrays are enabled */
|
||||
GLbitfield64 _Enabled;
|
||||
|
||||
/** Mask of VERT_BIT_* values indicating changed/dirty arrays */
|
||||
GLbitfield64 NewArrays;
|
||||
|
||||
/**
|
||||
* Min of all enabled arrays' _MaxElement. When arrays reside inside VBOs
|
||||
* we can determine the max legal (in bounds) glDrawElements array index.
|
||||
|
|
|
|||
|
|
@ -430,6 +430,7 @@ _mesa_update_state_locked( struct gl_context *ctx )
|
|||
new_state = ctx->NewState | new_prog_state;
|
||||
ctx->NewState = 0;
|
||||
ctx->Driver.UpdateState(ctx, new_state);
|
||||
ctx->Array.ArrayObj->NewArrays = 0x0;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -286,6 +286,7 @@ update_array(struct gl_context *ctx,
|
|||
ctx->Array.ArrayBufferObj);
|
||||
|
||||
ctx->NewState |= _NEW_ARRAY;
|
||||
ctx->Array.ArrayObj->NewArrays |= VERT_BIT(attrib);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -537,6 +538,7 @@ _mesa_EnableVertexAttribArray(GLuint index)
|
|||
FLUSH_VERTICES(ctx, _NEW_ARRAY);
|
||||
arrayObj->VertexAttrib[VERT_ATTRIB_GENERIC(index)].Enabled = GL_TRUE;
|
||||
arrayObj->_Enabled |= VERT_BIT_GENERIC(index);
|
||||
arrayObj->NewArrays |= VERT_BIT_GENERIC(index);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -562,6 +564,7 @@ _mesa_DisableVertexAttribArray(GLuint index)
|
|||
FLUSH_VERTICES(ctx, _NEW_ARRAY);
|
||||
arrayObj->VertexAttrib[VERT_ATTRIB_GENERIC(index)].Enabled = GL_FALSE;
|
||||
arrayObj->_Enabled &= ~VERT_BIT_GENERIC(index);
|
||||
arrayObj->NewArrays |= VERT_BIT_GENERIC(index);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1161,6 +1164,7 @@ _mesa_VertexAttribDivisor(GLuint index, GLuint divisor)
|
|||
if (array->InstanceDivisor != divisor) {
|
||||
FLUSH_VERTICES(ctx, _NEW_ARRAY);
|
||||
array->InstanceDivisor = divisor;
|
||||
ctx->Array.ArrayObj->NewArrays |= VERT_BIT(VERT_ATTRIB_GENERIC(index));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue