[Mesa-dev] [PATCH 03/11] glapi/glx: skip that which is marked for skipping
Adam Jackson
ajax at redhat.com
Thu Mar 24 18:09:58 UTC 2016
Signed-off-by: Adam Jackson <ajax at redhat.com>
---
src/glx/indirect_vertex_array.c | 39 --------
src/glx/indirect_vertex_program.c | 202 --------------------------------------
src/glx/tests/indirect_api.cpp | 2 -
src/mapi/glapi/gen/glX_XML.py | 6 +-
4 files changed, 4 insertions(+), 245 deletions(-)
diff --git a/src/glx/indirect_vertex_array.c b/src/glx/indirect_vertex_array.c
index 2bf2ff1..1fb5137 100644
--- a/src/glx/indirect_vertex_array.c
+++ b/src/glx/indirect_vertex_array.c
@@ -1691,45 +1691,6 @@ __indirect_glVertexAttribPointer(GLuint index, GLint size,
}
-/**
- * I don't have 100% confidence that this is correct. The different rules
- * about whether or not generic vertex attributes alias "classic" vertex
- * attributes (i.e., attrib1 ?= primary color) between ARB_vertex_program,
- * ARB_vertex_shader, and NV_vertex_program are a bit confusing. My
- * feeling is that the client-side doesn't have to worry about it. The
- * client just sends all the data to the server and lets the server deal
- * with it.
- */
-void
-__indirect_glVertexAttribPointerNV(GLuint index, GLint size,
- GLenum type, GLsizei stride,
- const GLvoid * pointer)
-{
- struct glx_context *gc = __glXGetCurrentContext();
- GLboolean normalized = GL_FALSE;
-
-
- switch (type) {
- case GL_UNSIGNED_BYTE:
- if (size != 4) {
- __glXSetError(gc, GL_INVALID_VALUE);
- return;
- }
- normalized = GL_TRUE;
-
- case GL_SHORT:
- case GL_FLOAT:
- case GL_DOUBLE:
- __indirect_glVertexAttribPointer(index, size, type,
- normalized, stride, pointer);
- return;
- default:
- __glXSetError(gc, GL_INVALID_ENUM);
- return;
- }
-}
-
-
void
__indirect_glClientActiveTexture(GLenum texture)
{
diff --git a/src/glx/indirect_vertex_program.c b/src/glx/indirect_vertex_program.c
index 54a936d..e3f57c5 100644
--- a/src/glx/indirect_vertex_program.c
+++ b/src/glx/indirect_vertex_program.c
@@ -35,33 +35,6 @@
#endif
static void
-do_vertex_attrib_enable(GLuint index, GLboolean val)
-{
- struct glx_context *gc = __glXGetCurrentContext();
- __GLXattribute *state = (__GLXattribute *) (gc->client_state_private);
-
- if (!__glXSetArrayEnable(state, GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB,
- index, val)) {
- __glXSetError(gc, GL_INVALID_ENUM);
- }
-}
-
-
-void
-__indirect_glEnableVertexAttribArray(GLuint index)
-{
- do_vertex_attrib_enable(index, GL_TRUE);
-}
-
-
-void
-__indirect_glDisableVertexAttribArray(GLuint index)
-{
- do_vertex_attrib_enable(index, GL_FALSE);
-}
-
-
-static void
get_parameter(unsigned opcode, unsigned size, GLenum target, GLuint index,
void *params)
{
@@ -116,178 +89,3 @@ __indirect_glGetProgramLocalParameterdvARB(GLenum target, GLuint index,
{
get_parameter(1306, 8, target, index, params);
}
-
-
-void
-__indirect_glGetVertexAttribPointerv(GLuint index, GLenum pname,
- GLvoid ** pointer)
-{
- struct glx_context *const gc = __glXGetCurrentContext();
- __GLXattribute *state = (__GLXattribute *) (gc->client_state_private);
-
- if (pname != GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB) {
- __glXSetError(gc, GL_INVALID_ENUM);
- }
-
- if (!__glXGetArrayPointer(state, GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB,
- index, pointer)) {
- __glXSetError(gc, GL_INVALID_VALUE);
- }
-}
-
-
-/**
- * Get the selected attribute from the vertex array state vector.
- *
- * \returns
- * On success \c GL_TRUE is returned. Otherwise, \c GL_FALSE is returned.
- */
-static GLboolean
-get_attrib_array_data(__GLXattribute * state, GLuint index, GLenum cap,
- GLintptr * data)
-{
- GLboolean retval = GL_FALSE;
- const GLenum attrib = GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB;
-
- switch (cap) {
- case GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB:
- retval = __glXGetArrayEnable(state, attrib, index, data);
- break;
-
- case GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB:
- retval = __glXGetArraySize(state, attrib, index, data);
- break;
-
- case GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB:
- retval = __glXGetArrayStride(state, attrib, index, data);
- break;
-
- case GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB:
- retval = __glXGetArrayType(state, attrib, index, data);
- break;
-
- case GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB:
- retval = __glXGetArrayNormalized(state, attrib, index, data);
- break;
- }
-
-
- return retval;
-}
-
-
-static void
-get_vertex_attrib(struct glx_context * gc, unsigned vop,
- GLuint index, GLenum pname, xReply * reply)
-{
- Display *const dpy = gc->currentDpy;
- GLubyte *const pc = __glXSetupVendorRequest(gc,
- X_GLXVendorPrivateWithReply,
- vop, 8);
-
- *((uint32_t *) (pc + 0)) = index;
- *((uint32_t *) (pc + 4)) = pname;
-
- (void) _XReply(dpy, reply, 0, False);
-}
-
-
-void
-__indirect_glGetVertexAttribiv(GLuint index, GLenum pname, GLint * params)
-{
- struct glx_context *const gc = __glXGetCurrentContext();
- Display *const dpy = gc->currentDpy;
- __GLXattribute *state = (__GLXattribute *) (gc->client_state_private);
- xGLXSingleReply reply;
-
-
- get_vertex_attrib(gc, 1303, index, pname, (xReply *) & reply);
-
- if (reply.size != 0) {
- GLintptr data;
-
-
- if (get_attrib_array_data(state, index, pname, &data)) {
- *params = (GLint) data;
- }
- else {
- if (reply.size == 1) {
- *params = (GLint) reply.pad3;
- }
- else {
- _XRead(dpy, (void *) params, 4 * reply.size);
- }
- }
- }
-
- UnlockDisplay(dpy);
- SyncHandle();
-}
-
-
-void
-__indirect_glGetVertexAttribfv(GLuint index, GLenum pname,
- GLfloat * params)
-{
- struct glx_context *const gc = __glXGetCurrentContext();
- Display *const dpy = gc->currentDpy;
- __GLXattribute *state = (__GLXattribute *) (gc->client_state_private);
- xGLXSingleReply reply;
-
-
- get_vertex_attrib(gc, 1302, index, pname, (xReply *) & reply);
-
- if (reply.size != 0) {
- GLintptr data;
-
-
- if (get_attrib_array_data(state, index, pname, &data)) {
- *params = (GLfloat) data;
- }
- else {
- if (reply.size == 1) {
- (void) memcpy(params, &reply.pad3, sizeof(GLfloat));
- }
- else {
- _XRead(dpy, (void *) params, 4 * reply.size);
- }
- }
- }
-
- UnlockDisplay(dpy);
- SyncHandle();
-}
-
-
-void
-__indirect_glGetVertexAttribdv(GLuint index, GLenum pname,
- GLdouble * params)
-{
- struct glx_context *const gc = __glXGetCurrentContext();
- Display *const dpy = gc->currentDpy;
- __GLXattribute *state = (__GLXattribute *) (gc->client_state_private);
- xGLXSingleReply reply;
-
-
- get_vertex_attrib(gc, 1301, index, pname, (xReply *) & reply);
-
- if (reply.size != 0) {
- GLintptr data;
-
-
- if (get_attrib_array_data(state, index, pname, &data)) {
- *params = (GLdouble) data;
- }
- else {
- if (reply.size == 1) {
- (void) memcpy(params, &reply.pad3, sizeof(GLdouble));
- }
- else {
- _XRead(dpy, (void *) params, 8 * reply.size);
- }
- }
- }
-
- UnlockDisplay(dpy);
- SyncHandle();
-}
diff --git a/src/glx/tests/indirect_api.cpp b/src/glx/tests/indirect_api.cpp
index 34304a1..39fd610 100644
--- a/src/glx/tests/indirect_api.cpp
+++ b/src/glx/tests/indirect_api.cpp
@@ -657,7 +657,6 @@ void __indirect_glVertexAttrib4sNV(void) { }
void __indirect_glVertexAttrib4svNV(void) { }
void __indirect_glVertexAttrib4ubNV(void) { }
void __indirect_glVertexAttrib4ubvNV(void) { }
-void __indirect_glVertexAttribPointerNV(void) { }
void __indirect_glVertexAttribs1dvNV(void) { }
void __indirect_glVertexAttribs1fvNV(void) { }
void __indirect_glVertexAttribs1svNV(void) { }
@@ -1444,7 +1443,6 @@ TEST_F(IndirectAPI, NV_vertex_program)
EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib4svNV, table[_glapi_get_proc_offset("glVertexAttrib4svNV")]);
EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib4ubNV, table[_glapi_get_proc_offset("glVertexAttrib4ubNV")]);
EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib4ubvNV, table[_glapi_get_proc_offset("glVertexAttrib4ubvNV")]);
- EXPECT_EQ((_glapi_proc) __indirect_glVertexAttribPointerNV, table[_glapi_get_proc_offset("glVertexAttribPointerNV")]);
EXPECT_EQ((_glapi_proc) __indirect_glVertexAttribs1dvNV, table[_glapi_get_proc_offset("glVertexAttribs1dvNV")]);
EXPECT_EQ((_glapi_proc) __indirect_glVertexAttribs1fvNV, table[_glapi_get_proc_offset("glVertexAttribs1fvNV")]);
EXPECT_EQ((_glapi_proc) __indirect_glVertexAttribs1svNV, table[_glapi_get_proc_offset("glVertexAttribs1svNV")]);
diff --git a/src/mapi/glapi/gen/glX_XML.py b/src/mapi/glapi/gen/glX_XML.py
index 12ff291..166dbc1 100644
--- a/src/mapi/glapi/gen/glX_XML.py
+++ b/src/mapi/glapi/gen/glX_XML.py
@@ -97,14 +97,16 @@ class glx_function(gl_XML.gl_function):
self.server_handcode = 0
self.client_handcode = 0
- self.ignore = 0
self.count_parameter_list = []
self.counter_list = []
self.parameters_by_name = {}
self.offsets_calculated = 0
+ self.ignore = 0
gl_XML.gl_function.__init__(self, element, context)
+ self.ignore = self.ignore or self.exec_flavor == 'skip'
+
return
@@ -168,7 +170,7 @@ class glx_function(gl_XML.gl_function):
else:
raise RuntimeError('Invalid handcode mode "%s" in function "%s".' % (handcode, self.name))
- self.ignore = gl_XML.is_attr_true( child, 'ignore' )
+ self.ignore = self.ignore or gl_XML.is_attr_true( child, 'ignore' )
self.can_be_large = gl_XML.is_attr_true( child, 'large' )
self.glx_doubles_in_order = gl_XML.is_attr_true( child, 'doubles_in_order' )
self.reply_always_array = gl_XML.is_attr_true( child, 'always_array' )
--
2.5.0
More information about the mesa-dev
mailing list