intel / DRI2: When available, use DRI2GetBuffersWithFormat
[mesa.git] / src / mesa / state_tracker / st_public.h
index 5cfb2e41f24d9ce27cbd38952e5c3ff3dbc6d976..030314372f95b5970fb38d96ee7e7309e001ad53 100644 (file)
@@ -42,6 +42,8 @@
 #define ST_SURFACE_DEPTH        8
 
 #define ST_TEXTURE_2D    0x2
+#define ST_TEXTURE_RECT  0x4
+
 #define ST_TEXTURE_RGB   0x1
 #define ST_TEXTURE_RGBA  0x2
 
@@ -51,6 +53,7 @@ struct st_framebuffer;
 struct pipe_context;
 struct pipe_fence_handle;
 struct pipe_surface;
+struct pipe_texture;
 
 
 struct st_context *st_create_context(struct pipe_context *pipe,
@@ -75,15 +78,18 @@ void st_resize_framebuffer( struct st_framebuffer *stfb,
 void st_set_framebuffer_surface(struct st_framebuffer *stfb,
                                 uint surfIndex, struct pipe_surface *surf);
 
-struct pipe_surface *st_get_framebuffer_surface(struct st_framebuffer *stfb,
-                                                uint surfIndex);
+void st_get_framebuffer_dimensions( struct st_framebuffer *stfb,
+                                   uint *width, uint *height);
+
+int st_get_framebuffer_surface(struct st_framebuffer *stfb,
+                               uint surfIndex, struct pipe_surface **surface);
 
-struct pipe_texture *st_get_framebuffer_texture(struct st_framebuffer *stfb,
-                                                uint surfIndex);
+int st_get_framebuffer_texture(struct st_framebuffer *stfb,
+                               uint surfIndex, struct pipe_texture **texture);
 
 void *st_framebuffer_private( struct st_framebuffer *stfb );
 
-void st_unreference_framebuffer( struct st_framebuffer **stfb );
+void st_unreference_framebuffer( struct st_framebuffer *stfb );
 
 void st_make_current(struct st_context *st,
                      struct st_framebuffer *draw,
@@ -94,8 +100,8 @@ void st_flush( struct st_context *st, uint pipeFlushFlags,
 void st_finish( struct st_context *st );
 
 void st_notify_swapbuffers(struct st_framebuffer *stfb);
-void st_notify_swapbuffers_complete(struct st_framebuffer *stfb);
 
+int st_set_teximage(struct pipe_texture *pt, int target);
 
 /** Redirect rendering into stfb's surface to a texture image */
 int st_bind_teximage(struct st_framebuffer *stfb, uint surfIndex,