st/python: adapt to interface changes
[mesa.git] / src / gallium / state_trackers / python / p_context.i
index 3c5509cb5e427c0fc3e06c836907099d1e3ec776..3d7b640b47281ea1ddc6b703cbda318ac1a46ee8 100644 (file)
@@ -413,16 +413,17 @@ 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) 
    {
+/* 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");
@@ -430,12 +431,20 @@ error1:
       _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);
    }
 
    void surface_fill(struct st_surface *dst,
@@ -443,16 +452,23 @@ error1:
                      unsigned width, unsigned height,
                      unsigned value) 
    {
+/* XXX
       struct pipe_surface *_dst = NULL;
-      
-      _dst = st_pipe_surface(dst, PIPE_BIND_BLIT_DESTINATION);
+
+     _dst = st_pipe_surface(dst, PIPE_BIND_BLIT_DESTINATION);
       if(!_dst)
          SWIG_exception(SWIG_ValueError, "couldn't acquire destination surface for writing");
 
       $self->pipe->surface_fill($self->pipe, _dst, x, y, width, height, value);
-      
+
    fail:
       pipe_surface_reference(&_dst, NULL);
+*/
+   struct pipe_subresource subdst;
+   subdst.face = dst->face;
+   subdst.level = dst->level;
+   $self->pipe->resource_fill_region($self->pipe, dst->texture, subdst, x, y, dst->zslice,
+                                     width, height, value);
    }
 
    %cstring_output_allocate_size(char **STRING, int *LENGTH, free(*$1));