Merge branch 'gallium-newclear'
authorRoland Scheidegger <sroland@vmware.com>
Thu, 3 Jun 2010 15:46:14 +0000 (17:46 +0200)
committerRoland Scheidegger <sroland@vmware.com>
Thu, 3 Jun 2010 15:46:14 +0000 (17:46 +0200)
Conflicts:
src/gallium/state_trackers/python/p_context.i

12 files changed:
1  2 
src/gallium/auxiliary/util/u_blitter.c
src/gallium/drivers/i915/i915_screen.c
src/gallium/drivers/i965/brw_screen.c
src/gallium/drivers/llvmpipe/lp_rast.c
src/gallium/drivers/llvmpipe/lp_rast.h
src/gallium/drivers/llvmpipe/lp_screen.c
src/gallium/drivers/llvmpipe/lp_setup.c
src/gallium/drivers/r300/r300_screen.c
src/gallium/drivers/softpipe/sp_screen.c
src/gallium/drivers/svga/svga_screen.c
src/gallium/drivers/trace/tr_context.c
src/gallium/state_trackers/python/p_context.i

Simple merge
index ff792279d2abccee6dfae0bb7e55b4f05cecabe0,0294e769a6392dd4e181cebfc81089f91b8e5b14..cf0144b5dc60ac99b4c1359fbc6c2d3f8164adac
@@@ -414,29 -414,74 +414,56 @@@ error1
      * Surface functions
      */
  
 -   void surface_copy(struct st_surface *dst,
 -                     unsigned destx, unsigned desty,
 -                     struct st_surface *src,
 -                     unsigned srcx, unsigned srcy,
 -                     unsigned width, unsigned height) 
 +   void resource_copy_region(struct pipe_resource *dst,
 +                             struct pipe_subresource subdst,
 +                             unsigned dstx, unsigned dsty, unsigned dstz,
 +                             struct pipe_resource *src,
 +                             struct pipe_subresource subsrc,
 +                             unsigned srcx, unsigned srcy, unsigned srcz,
 +                             unsigned width, unsigned height)
     {
 -/* XXX
 -      struct pipe_surface *_dst = NULL;
 -      struct pipe_surface *_src = NULL;
 -
 -      _dst = st_pipe_surface(dst, PIPE_BIND_BLIT_DESTINATION);
 -      if(!_dst)
 -         SWIG_exception(SWIG_ValueError, "couldn't acquire destination surface for writing");
 -
 -      _src = st_pipe_surface(src, PIPE_BIND_BLIT_SOURCE);
 -      if(!_src)
 -         SWIG_exception(SWIG_ValueError, "couldn't acquire source surface for reading");
 -
 -      $self->pipe->surface_copy($self->pipe, _dst, destx, desty, _src, srcx, srcy, width, height);
 -
 -   fail:
 -      pipe_surface_reference(&_src, NULL);
 -      pipe_surface_reference(&_dst, NULL);
 -*/
 -   struct pipe_subresource subdst, subsrc;
 -   subsrc.face = src->face;
 -   subsrc.level = src->level;
 -   subdst.face = dst->face;
 -   subdst.level = dst->level;
 -   $self->pipe->resource_copy_region($self->pipe, dst->texture, subdst, destx, desty, dst->zslice,
 -                                     src->texture, subsrc, srcx, srcy, src->zslice, width, height);
 +      $self->pipe->resource_copy_region($self->pipe,
 +                                        dst, subdst, dstx, dsty, dstz,
 +                                        src, subsrc, srcx, srcy, srcz,
 +                                        width, height);
     }
  
-    void resource_fill_region(struct pipe_resource *dst,
-                              struct pipe_subresource subdst,
-                              unsigned dstx, unsigned dsty, unsigned dstz,
-                              unsigned width, unsigned height,
-                              unsigned value)
++
+    void clear_render_target(struct st_surface *dst,
+                             float *rgba,
+                             unsigned x, unsigned y,
+                             unsigned width, unsigned height)
     {
-       $self->pipe->resource_fill_region($self->pipe,
-                                         dst, subdst, dstx, dsty, dstz,
-                                         width, height, value);
+       struct pipe_surface *_dst = NULL;
+      _dst = st_pipe_surface(dst, PIPE_BIND_RENDER_TARGET);
+       if(!_dst)
+          SWIG_exception(SWIG_ValueError, "couldn't acquire destination surface for writing");
+       $self->pipe->clear_render_target($self->pipe, _dst, rgba, x, y, width, height);
+    fail:
+       pipe_surface_reference(&_dst, NULL);
+    }
+    void clear_depth_stencil(struct st_surface *dst,
+                             unsigned clear_flags,
+                             double depth,
+                             unsigned stencil,
+                             unsigned x, unsigned y,
+                             unsigned width, unsigned height)
+    {
+       struct pipe_surface *_dst = NULL;
+      _dst = st_pipe_surface(dst, PIPE_BIND_DEPTH_STENCIL);
+       if(!_dst)
+          SWIG_exception(SWIG_ValueError, "couldn't acquire destination surface for writing");
+       $self->pipe->clear_depth_stencil($self->pipe, _dst, clear_flags, depth, stencil,
+                                        x, y, width, height);
+    fail:
+       pipe_surface_reference(&_dst, NULL);
     }
  
     %cstring_output_allocate_size(char **STRING, int *LENGTH, free(*$1));