Merge remote branch 'origin/master' into nv50-compiler
[mesa.git] / src / gallium / drivers / r300 / r300_transfer.h
index faf62338efbcb9ce871a4012e1754d20db3d7f63..0d32a68d1fa2bec851b147b0756bfe59ffdbb89b 100644 (file)
 #ifndef R300_TRANSFER
 #define R300_TRANSFER
 
-#include "pipe/p_screen.h"
-#include "pipe/p_state.h"
+#include "pipe/p_context.h"
 
-struct r300_texture;
-struct r300_screen;
+struct r300_context;
 
-struct r300_transfer {
-    /* Parent class */
-    struct pipe_transfer transfer;
+struct pipe_transfer*
+r300_texture_get_transfer(struct pipe_context *ctx,
+                         struct pipe_resource *texture,
+                         struct pipe_subresource sr,
+                         unsigned usage,
+                         const struct pipe_box *box);
 
-    /* Parameters of get_tex_transfer. */
-    unsigned x, y, level, zslice, face;
+void
+r300_texture_transfer_destroy(struct pipe_context *ctx,
+                             struct pipe_transfer *trans);
 
-    /* Offset from start of buffer. */
-    unsigned offset;
+void*
+r300_texture_transfer_map(struct pipe_context *ctx,
+                         struct pipe_transfer *transfer);
 
-    /* Untiled texture. */
-    struct r300_texture *untiled_texture;
+void
+r300_texture_transfer_unmap(struct pipe_context *ctx,
+                           struct pipe_transfer *transfer);
 
-    /* Transfer and format flags. */
-    unsigned buffer_usage, render_target_usage;
-};
-
-/* Convenience cast wrapper. */
-static INLINE struct r300_transfer*
-r300_transfer(struct pipe_transfer* transfer)
-{
-    return (struct r300_transfer*)transfer;
-}
-
-void r300_init_screen_transfer_functions(struct pipe_screen *screen);
 
 #endif
-