mesa/main: New feature FEATURE_arrayelt.
This allows the removal of AEcontext.
This commit is contained in:
@@ -71,6 +71,10 @@ typedef struct {
|
||||
*/
|
||||
#define TYPE_IDX(t) ( (t) == GL_DOUBLE ? 7 : (t) & 7 )
|
||||
|
||||
|
||||
#if FEATURE_arrayelt
|
||||
|
||||
|
||||
static const int ColorFuncs[2][8] = {
|
||||
{
|
||||
_gloffset_Color3bv,
|
||||
@@ -1160,7 +1164,7 @@ static void _ae_update_state( GLcontext *ctx )
|
||||
at->array = attribArray;
|
||||
/* Note: we can't grab the _glapi_Dispatch->VertexAttrib1fvNV
|
||||
* function pointer here (for float arrays) since the pointer may
|
||||
* change from one execution of _ae_loopback_array_elt() to
|
||||
* change from one execution of _ae_ArrayElement() to
|
||||
* the next. Doing so caused UT to break.
|
||||
*/
|
||||
if (ctx->VertexProgram._Enabled
|
||||
@@ -1254,7 +1258,7 @@ void _ae_unmap_vbos( GLcontext *ctx )
|
||||
* for all enabled vertex arrays (for elt-th element).
|
||||
* Note: this may be called during display list construction.
|
||||
*/
|
||||
void GLAPIENTRY _ae_loopback_array_elt( GLint elt )
|
||||
void GLAPIENTRY _ae_ArrayElement( GLint elt )
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
const AEcontext *actx = AE_CONTEXT(ctx);
|
||||
@@ -1317,3 +1321,13 @@ void _ae_invalidate_state( GLcontext *ctx, GLuint new_state )
|
||||
actx->NewState |= new_state;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void _mesa_install_arrayelt_vtxfmt(struct _glapi_table *disp,
|
||||
const GLvertexformat *vfmt)
|
||||
{
|
||||
SET_ArrayElement(disp, vfmt->ArrayElement);
|
||||
}
|
||||
|
||||
|
||||
#endif /* FEATURE_arrayelt */
|
||||
|
Reference in New Issue
Block a user