The opcode and command length fields of RenderLarge commands were

mistakenly emitted in the wrong order.
This commit is contained in:
Ian Romanick
2005-01-03 21:03:03 +00:00
parent dd1a817c50
commit 3276c192b7
2 changed files with 19 additions and 13 deletions

View File

@@ -181,6 +181,15 @@ generic_%u_byte( GLint rop, const void * ptr )
return offset
def large_emit_begin(self, indent, f):
print '%s const GLint op = %s;' % (indent, f.opcode_real_name())
print '%s const GLuint cmdlenLarge = cmdlen + 4;' % (indent)
print '%s GLubyte * const pc = __glXFlushRenderBuffer(gc, gc->pc);' % (indent)
print '%s (void) memcpy((void *)(pc + 0), (void *)(&cmdlenLarge), 4);' % (indent)
print '%s (void) memcpy((void *)(pc + 4), (void *)(&op), 4);' % (indent)
return
def common_func_print_just_header(self, f):
print '#define %s %d' % (f.opcode_name(), f.opcode_value())
@@ -316,11 +325,8 @@ generic_%u_byte( GLint rop, const void * ptr )
if f.can_be_large:
print '%s}' % (indent)
print '%selse {' % (indent)
print '%s const GLint op = %s;' % (indent, f.opcode_real_name())
print '%s const GLuint cmdlenLarge = cmdlen + 4;' % (indent)
print '%s GLubyte * const pc = __glXFlushRenderBuffer(gc, gc->pc);' % (indent)
print '%s (void) memcpy((void *)(pc + 0), (void *)(&op), 4);' % (indent)
print '%s (void) memcpy((void *)(pc + 4), (void *)(&cmdlenLarge), 4);' % (indent)
self.large_emit_begin(indent, f)
offset = self.common_emit_args(f, "pc", indent, 8, 1)
p = f.variable_length_parameter()