Mark GenQueriesARB at 'always_array="true"'. This eliminates the need
authorIan Romanick <idr@us.ibm.com>
Wed, 22 Jun 2005 17:11:20 +0000 (17:11 +0000)
committerIan Romanick <idr@us.ibm.com>
Wed, 22 Jun 2005 17:11:20 +0000 (17:11 +0000)
to special-case the handling of that function in glX_proto_send.py.

src/glx/x11/indirect.c
src/mesa/glapi/glX_proto_send.py
src/mesa/glapi/gl_API.xml

index 83a2d563abf90b146c19a55d06ebab852d7a1ad0..42e961e5f3f0f35f6a859ca533ebc09d338834b4 100644 (file)
@@ -7624,12 +7624,12 @@ __indirect_glGenQueriesARB(GLsizei n, GLuint * ids)
         XCBConnection *c = XCBConnectionOfDisplay(dpy);
         (void) __glXFlushRenderBuffer(gc, gc->pc);
         XCBGlxGenQueriesARBRep *reply = XCBGlxGenQueriesARBReply(c, XCBGlxGenQueriesARB(c, gc->currentContextTag, n), NULL);
-        (void)memcpy(ids, XCBGlxGenQueriesARBData(reply), XCBGlxGenQueriesARBDataLength(reply) * sizeof(GLuint));
+        ids = (GLuint *)XCBGlxGenQueriesARBData(reply);
         free(reply);
 #else
         GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GenQueriesARB, cmdlen);
         (void) memcpy((void *)(pc + 0), (void *)(&n), 4);
-        (void) __glXReadReply(dpy, 4, ids, GL_FALSE);
+        (void) __glXReadReply(dpy, 4, ids, GL_TRUE);
         UnlockDisplay(dpy); SyncHandle();
 #endif /* USE_XCB */
     }
index 501b514b556c04895ab629163e5f97a7f57ac356..6a4d1dfc0d45b69ca41363bc012b7bbde15cee72 100644 (file)
@@ -576,7 +576,7 @@ generic_%u_byte( GLint rop, const void * ptr )
                                if output and f.reply_always_array:
                                        print '        %s = (%s)%sData(reply);' % (output.name, output.type_string(), xcb_name)
                                elif output and not f.reply_always_array:
-                                       if not output.is_image() and not f.name == "GenQueriesARB":
+                                       if not output.is_image():
                                                print '        if (%sDataLength(reply) == 0)' % (xcb_name)
                                                print '            (void)memcpy(%s, &reply->datum, sizeof(reply->datum));' % (output.name)
                                                print '        else'
index 49eb6d17e206b75f73d3c892a9d3aae180352dd4..2085f0d44ae74e09195d5bc9080b42f570ad4f10 100644 (file)
     <function name="GenQueriesARB" offset="700">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="ids" type="GLuint *" output="true" count="n"/>
-        <glx sop="162"/>
+        <glx sop="162" always_array="true"/>
     </function>
 
     <function name="DeleteQueriesARB" offset="701">