gallium: unify transfer functions
[mesa.git] / src / gallium / auxiliary / util / u_transfer.h
index f4fdf9a48408aa60277e8edb9ebe2cff5244360e..6c25ee0f024e08b82431a55214f554c97266e9fd 100644 (file)
@@ -27,18 +27,9 @@ void u_default_transfer_flush_region( struct pipe_context *pipe,
                                       struct pipe_transfer *transfer,
                                       const struct pipe_box *box);
 
-struct pipe_transfer * u_default_get_transfer(struct pipe_context *context,
-                                              struct pipe_resource *resource,
-                                              unsigned level,
-                                              unsigned usage,
-                                              const struct pipe_box *box);
-
 void u_default_transfer_unmap( struct pipe_context *pipe,
                                struct pipe_transfer *transfer );
 
-void u_default_transfer_destroy(struct pipe_context *pipe,
-                                struct pipe_transfer *transfer);
-
 
 
 /* Useful helper to allow >1 implementation of resource functionality
@@ -53,24 +44,20 @@ struct u_resource_vtbl {
    void (*resource_destroy)(struct pipe_screen *,
                             struct pipe_resource *pt);
 
-   struct pipe_transfer *(*get_transfer)(struct pipe_context *,
-                                         struct pipe_resource *resource,
-                                         unsigned level,
-                                         unsigned usage,
-                                         const struct pipe_box *);
+   void *(*transfer_map)(struct pipe_context *,
+                         struct pipe_resource *resource,
+                         unsigned level,
+                         unsigned usage,
+                         const struct pipe_box *,
+                         struct pipe_transfer **);
 
-   void (*transfer_destroy)(struct pipe_context *,
-                            struct pipe_transfer *);
-
-   void *(*transfer_map)( struct pipe_context *,
-                          struct pipe_transfer *transfer );
 
    void (*transfer_flush_region)( struct pipe_context *,
                                   struct pipe_transfer *transfer,
                                   const struct pipe_box *);
 
    void (*transfer_unmap)( struct pipe_context *,
-   struct pipe_transfer *transfer );
+                           struct pipe_transfer *transfer );
 
    void (*transfer_inline_write)( struct pipe_context *pipe,
                                   struct pipe_resource *resource,
@@ -96,17 +83,12 @@ boolean u_resource_get_handle_vtbl(struct pipe_screen *screen,
 void u_resource_destroy_vtbl(struct pipe_screen *screen,
                              struct pipe_resource *resource);
 
-struct pipe_transfer *u_get_transfer_vtbl(struct pipe_context *context,
-                                          struct pipe_resource *resource,
-                                          unsigned level,
-                                          unsigned usage,
-                                          const struct pipe_box *box);
-
-void u_transfer_destroy_vtbl(struct pipe_context *pipe,
-                             struct pipe_transfer *transfer);
-
-void *u_transfer_map_vtbl( struct pipe_context *pipe,
-                           struct pipe_transfer *transfer );
+void *u_transfer_map_vtbl(struct pipe_context *context,
+                          struct pipe_resource *resource,
+                          unsigned level,
+                          unsigned usage,
+                          const struct pipe_box *box,
+                          struct pipe_transfer **transfer);
 
 void u_transfer_flush_region_vtbl( struct pipe_context *pipe,
                                    struct pipe_transfer *transfer,