mesa: add EXT_dsa indexed generic queries
Only GetPointerIndexedvEXT needs an implementation, the other functions are aliases of existing functions.
This commit is contained in:
parent
ef84d93f3d
commit
a0ac0e2653
|
@ -323,6 +323,24 @@
|
|||
<param name="index" type="GLuint" />
|
||||
</function>
|
||||
|
||||
<function name="GetFloatIndexedvEXT" alias="GetFloati_v">
|
||||
<param name="target" type="GLenum" />
|
||||
<param name="index" type="GLuint" />
|
||||
<param name="params" type="GLfloat*" />
|
||||
</function>
|
||||
|
||||
<function name="GetDoubleIndexedvEXT" alias="GetDoublei_v">
|
||||
<param name="target" type="GLenum" />
|
||||
<param name="index" type="GLuint" />
|
||||
<param name="params" type="GLdouble*" />
|
||||
</function>
|
||||
|
||||
<function name="GetPointerIndexedvEXT">
|
||||
<param name="target" type="GLenum" />
|
||||
<param name="index" type="GLuint" />
|
||||
<param name="params" type="GLvoid**" />
|
||||
</function>
|
||||
|
||||
<!-- OpenGL 1.3 -->
|
||||
|
||||
<function name="MatrixLoadTransposefEXT" offset="assign">
|
||||
|
@ -496,5 +514,11 @@
|
|||
<param name="array" type="GLenum" />
|
||||
<param name="index" type="GLuint" />
|
||||
</function>
|
||||
|
||||
<function name="GetPointeri_vEXT" alias="GetPointerIndexedvEXT">
|
||||
<param name="target" type="GLenum" />
|
||||
<param name="index" type="GLuint" />
|
||||
<param name="params" type="GLvoid**" />
|
||||
</function>
|
||||
</category>
|
||||
</OpenGLAPI>
|
||||
|
|
|
@ -1516,7 +1516,7 @@ offsets = {
|
|||
"GetNamedFramebufferAttachmentParameterivEXT": 1480,
|
||||
"EnableClientStateiEXT": 1481,
|
||||
"DisableClientStateiEXT": 1482,
|
||||
|
||||
"GetPointerIndexedvEXT": 1483,
|
||||
}
|
||||
|
||||
functions = [
|
||||
|
|
|
@ -2678,8 +2678,6 @@ find_value_indexed(const char *func, GLenum pname, GLuint index, union value *v)
|
|||
case GL_TEXTURE_BINDING_RECTANGLE: {
|
||||
int target;
|
||||
|
||||
if (ctx->API != API_OPENGL_CORE)
|
||||
goto invalid_enum;
|
||||
target = tex_binding_to_index(ctx, pname);
|
||||
if (target < 0)
|
||||
goto invalid_enum;
|
||||
|
@ -2771,6 +2769,16 @@ find_value_indexed(const char *func, GLenum pname, GLuint index, union value *v)
|
|||
_mesa_ClientActiveTexture(GL_TEXTURE0 + curTexUnitSave);
|
||||
return TYPE_INT;
|
||||
}
|
||||
case GL_TEXTURE_MATRIX:
|
||||
if (index >= ARRAY_SIZE(ctx->TextureMatrixStack))
|
||||
goto invalid_enum;
|
||||
v->value_matrix = ctx->TextureMatrixStack[index].Top;
|
||||
return TYPE_MATRIX;
|
||||
case GL_TRANSPOSE_TEXTURE_MATRIX:
|
||||
if (index >= ARRAY_SIZE(ctx->TextureMatrixStack))
|
||||
goto invalid_enum;
|
||||
v->value_matrix = ctx->TextureMatrixStack[index].Top;
|
||||
return TYPE_MATRIX_T;
|
||||
}
|
||||
|
||||
invalid_enum:
|
||||
|
|
|
@ -68,6 +68,9 @@ _mesa_GetInteger64i_v( GLenum pname, GLuint index, GLint64 *params );
|
|||
extern void GLAPIENTRY
|
||||
_mesa_GetPointerv( GLenum pname, GLvoid **params );
|
||||
|
||||
extern void GLAPIENTRY
|
||||
_mesa_GetPointerIndexedvEXT( GLenum pname, GLuint index, GLvoid **params );
|
||||
|
||||
extern void GLAPIENTRY
|
||||
_mesa_GetFloati_v(GLenum target, GLuint index, GLfloat *data);
|
||||
|
||||
|
|
|
@ -328,6 +328,32 @@ invalid_pname:
|
|||
}
|
||||
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_GetPointerIndexedvEXT( GLenum pname, GLuint index, GLvoid **params )
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
|
||||
if (!params)
|
||||
return;
|
||||
|
||||
if (MESA_VERBOSE & VERBOSE_API)
|
||||
_mesa_debug(ctx, "%s %s\n", "glGetPointerIndexedvEXT", _mesa_enum_to_string(pname));
|
||||
|
||||
switch (pname) {
|
||||
case GL_TEXTURE_COORD_ARRAY_POINTER:
|
||||
*params = (GLvoid *) ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_TEX(index)].Ptr;
|
||||
break;
|
||||
default:
|
||||
goto invalid_pname;
|
||||
}
|
||||
|
||||
return;
|
||||
|
||||
invalid_pname:
|
||||
_mesa_error( ctx, GL_INVALID_ENUM, "glGetPointerIndexedvEXT");
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the current GL error code, or GL_NO_ERROR.
|
||||
* \return current error code
|
||||
|
|
|
@ -1094,7 +1094,7 @@ const struct function common_desktop_functions_possible[] = {
|
|||
//{ "glCopyMultiTexSubImage3DEXT", 12, -1 },
|
||||
{ "glEnableClientStateIndexedEXT", 12, -1 },
|
||||
{ "glDisableClientStateIndexedEXT", 12, -1 },
|
||||
//{ "glGetPointerIndexedvEXT", 12, -1 },
|
||||
{ "glGetPointerIndexedvEXT", 12, -1 },
|
||||
/* GL_EXT_direct_state_access - ARB_vertex_program */
|
||||
//{ "glNamedProgramStringEXT", 10, -1 },
|
||||
//{ "glNamedProgramLocalParameter4dEXT", 10, -1 },
|
||||
|
@ -1185,7 +1185,6 @@ const struct function common_desktop_functions_possible[] = {
|
|||
/* GL_EXT_direct_state_access - GL 3.0 */
|
||||
//{ "glGetFloati_vEXT", 30, -1 },
|
||||
//{ "glGetDoublei_vEXT", 30, -1 },
|
||||
//{ "glGetPointeri_vEXT", 30, -1 },
|
||||
//{ "glNamedRenderbufferStorageEXT", 30, -1 },
|
||||
//{ "glGetNamedRenderbufferParameterivEXT", 30, -1 },
|
||||
//{ "glNamedRenderbufferStorageMultisampleEXT", 30, -1 },
|
||||
|
|
Loading…
Reference in New Issue