Merge branch 'mesa_7_5_branch' into mesa_7_6_branch
[mesa.git] / src / mesa / glapi / glX_proto_send.py
index b00b8a1ba6d712df074672b86b7eea27feff9aa0..daca1b767a3cbcaf47d3eed20430f91de61b058f 100644 (file)
@@ -333,7 +333,7 @@ const GLuint __glXDefaultPixelStore[9] = { 0, 0, 0, 0, 0, 0, 0, 0, 1 };
                                        if image.img_pad_dimensions:
                                                do_it = 1
                                                break
-                       
+
 
                                if do_it:
                                        [h, n] = hash_pixel_function(func)
@@ -373,9 +373,13 @@ const GLuint __glXDefaultPixelStore[9] = { 0, 0, 0, 0, 0, 0, 0, 0, 1 };
                                print '{'
                                print '    __GLXcontext * const gc = __glXGetCurrentContext();'
                                print ''
+                               print '#ifdef GLX_DIRECT_RENDERING'
                                print '    if (gc->driContext) {'
                                print '    %sCALL_%s(GET_DISPATCH(), (%s));' % (ret_string, func.name, func.get_called_parameter_string())
-                               print '    } else {'
+                               print '    } else'
+                               print '#endif'
+                               print '    {'
+
                                footer = '}\n}\n'
                        else:
                                print '#define %s %d' % (func.opcode_name(), func.opcode_value())
@@ -422,7 +426,10 @@ generic_%u_byte( GLint rop, const void * ptr )
                else:
                        src_ptr = "&" + p.name
 
-               if not extra_offset:
+               if p.is_padding:
+                       print '(void) memset((void *)(%s + %u), 0, %s);' \
+                           % (pc, p.offset + adjust, p.size_string() )
+               elif not extra_offset:
                        print '(void) memcpy((void *)(%s + %u), (void *)(%s), %s);' \
                            % (pc, p.offset + adjust, src_ptr, p.size_string() )
                else:
@@ -472,6 +479,10 @@ generic_%u_byte( GLint rop, const void * ptr )
                                else:
                                        dim_str = str(dim)
 
+                               if param.is_padding:
+                                       print '(void) memset((void *)(%s + %u), 0, %s);' \
+                                       % (pc, (param.offset - 4) + adjust, param.size_string() )
+
                                if param.img_null_flag:
                                        if large:
                                                print '(void) memcpy((void *)(%s + %u), zero, 4);' % (pc, (param.offset - 4) + adjust)
@@ -739,6 +750,9 @@ generic_%u_byte( GLint rop, const void * ptr )
 
                        p_string = ""
                        for param in f.parameterIterateGlxSend():
+                               if param.is_padding:
+                                       continue
+
                                p_string += ", " + param.name
 
                                if param.is_image():