Merge remote branch 'origin/master' into gallium_draw_llvm
[mesa.git] / src / gallium / drivers / i965 / brw_winsys.h
index af506a283dc43ca9284e10d2c208fa9838358142..f30c7f181323fb0d5cedf364149c613f57a9ee32 100644 (file)
@@ -27,8 +27,8 @@
 #define BRW_WINSYS_H
 
 #include "pipe/p_compiler.h"
-#include "pipe/p_error.h"
-#include "pipe/p_refcnt.h"
+#include "pipe/p_defines.h"
+#include "util/u_inlines.h"
 
 struct brw_winsys;
 struct pipe_fence_handle;
@@ -162,6 +162,16 @@ struct brw_winsys_screen {
                                unsigned alignment,
                                struct brw_winsys_buffer **bo_out);
 
+   enum pipe_error (*bo_from_handle)(struct brw_winsys_screen *sws,
+                                     struct winsys_handle *whandle,
+                                     unsigned *stride,
+                                     unsigned *tiling,
+                                     struct brw_winsys_buffer **bo_out);
+
+   enum pipe_error (*bo_get_handle)(struct brw_winsys_buffer *buffer,
+                                    struct winsys_handle *whandle,
+                                    unsigned stride);
+
    /* Destroy a buffer when our refcount goes to zero:
     */
    void (*bo_destroy)(struct brw_winsys_buffer *buffer);
@@ -244,8 +254,10 @@ bo_reference(struct brw_winsys_buffer **ptr, struct brw_winsys_buffer *buf)
 {
    struct brw_winsys_buffer *old_buf = *ptr;
 
-   if (pipe_reference((struct pipe_reference **)ptr, &buf->reference))
+   if (pipe_reference(&(*ptr)->reference, &buf->reference))
       old_buf->sws->bo_destroy(old_buf);
+
+   *ptr = buf;
 }
 
 
@@ -254,32 +266,6 @@ bo_reference(struct brw_winsys_buffer **ptr, struct brw_winsys_buffer *buf)
  */
 struct pipe_screen *brw_create_screen(struct brw_winsys_screen *iws, unsigned pci_id);
 
-/**
- * Create a brw pipe_context.
- */
-struct pipe_context *brw_create_context(struct pipe_screen *screen);
-
-/**
- * Get the brw_winsys buffer backing the texture.
- *
- * TODO UGLY
- */
-struct pipe_texture;
-boolean brw_texture_get_winsys_buffer(struct pipe_texture *texture,
-                                      struct brw_winsys_buffer **buffer,
-                                      unsigned *stride);
-
-/**
- * Wrap a brw_winsys buffer with a texture blanket.
- *
- * TODO UGLY
- */
-struct pipe_texture * 
-brw_texture_blanket_winsys_buffer(struct pipe_screen *screen,
-                                  const struct pipe_texture *template,
-                                  unsigned pitch,
-                                 unsigned tiling,
-                                  struct brw_winsys_buffer *buffer);
 
 
 /*************************************************************************