void (*set_blend_state)( struct pipe_context *,
const struct pipe_blend_state * );
+ void (*set_framebuffer_state)( struct pipe_context *,
+ const struct pipe_framebuffer_state * );
+
void (*set_cbuf_state)( struct pipe_context *,
const struct pipe_surface * );
/* This will change for hardware pipes...
*/
-struct pipe_surface {
+struct pipe_surface
+{
+ GLuint width, height;
GLubyte *ptr;
GLint stride;
GLuint cpp;
};
+struct pipe_framebuffer_state
+{
+ GLuint num_cbufs; /**< Number of color bufs to draw to */
+ struct pipe_surface *cbufs[4]; /**< OpenGL can write to as many as
+ 4 color buffers at once */
+ struct pipe_surface *zbuf; /**< Z buffer */
+ struct pipe_surface *sbuf; /**< Stencil buffer */
+ struct pipe_surface *abuf; /**< Accum buffer */
+};
+
+
/**
* Texture sampler state.
*/
/* The most recent drawing state as set by the driver:
*/
+ struct pipe_framebuffer_state framebuffer;
struct pipe_viewport viewport;
struct pipe_setup_state setup;
struct pipe_fs_state fs;
state_tracker/st_atom_clip.c \
state_tracker/st_atom_depth.c \
state_tracker/st_atom_fs.c \
+ state_tracker/st_atom_framebuffer.c \
state_tracker/st_atom_scissor.c \
state_tracker/st_atom_stencil.c \
state_tracker/st_atom_setup.c \
* though, we just shove random objects across the interface.
*/
struct {
+ struct pipe_framebuffer_state framebuffer;
struct pipe_viewport viewport;
struct pipe_setup_state setup;
struct pipe_fs_state fs;