diff options
author | Marek Olšák <[email protected]> | 2010-05-26 23:47:27 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2010-05-27 00:08:42 +0200 |
commit | 76034aaf655134c71e1ec619085c46251d037720 (patch) | |
tree | 59b61e35069a07de4b1e5bfcc3d215b9dbed5ddd /src/gallium/drivers/r300/r300_context.h | |
parent | 1345c5bf94dd848bdb601061c7ae654dadc6e542 (diff) |
r300g: decouple drawing code and two-sided stencil refvalue fallback
It's now more separate from the rest of the driver and it can be disabled
by commenting out just 1 line. Well, I couldn't make the previous version
work with SW TCL reliably, that's the reason of this little rework.
Diffstat (limited to 'src/gallium/drivers/r300/r300_context.h')
-rw-r--r-- | src/gallium/drivers/r300/r300_context.h | 24 |
1 files changed, 4 insertions, 20 deletions
diff --git a/src/gallium/drivers/r300/r300_context.h b/src/gallium/drivers/r300/r300_context.h index 97b69e76527..e047307e10b 100644 --- a/src/gallium/drivers/r300/r300_context.h +++ b/src/gallium/drivers/r300/r300_context.h @@ -36,9 +36,9 @@ struct u_upload_mgr; struct r300_context; - struct r300_fragment_shader; struct r300_vertex_shader; +struct r300_stencilref_context; struct r300_atom { /* List pointers. */ @@ -86,7 +86,7 @@ struct r300_dsa_state { /* Whether a two-sided stencil is enabled. */ boolean two_sided; /* Whether a fallback should be used for a two-sided stencil ref value. */ - boolean stencil_ref_bf_fallback; + boolean two_sided_stencil_ref; }; struct r300_rs_state { @@ -331,21 +331,6 @@ struct r300_context { /* Parent class */ struct pipe_context context; - /* Emission of drawing packets. */ - void (*emit_draw_arrays_immediate)( - struct r300_context *r300, - unsigned mode, unsigned start, unsigned count); - - void (*emit_draw_arrays)( - struct r300_context *r300, - unsigned mode, unsigned count); - - void (*emit_draw_elements)( - struct r300_context *r300, struct pipe_resource* indexBuffer, - unsigned indexSize, unsigned minIndex, unsigned maxIndex, - unsigned mode, unsigned start, unsigned count); - - /* The interface to the windowing system, etc. */ struct r300_winsys_screen *rws; /* Screen. */ @@ -354,6 +339,8 @@ struct r300_context { struct draw_context* draw; /* Accelerated blit support. */ struct blitter_context* blitter; + /* Stencil two-sided reference value fallback. */ + struct r300_stencilref_context *stencilref_fallback; /* Vertex buffer for rendering. */ struct pipe_resource* vbo; @@ -441,9 +428,6 @@ struct r300_context { uint32_t zbuffer_bpp; /* Whether rendering is conditional and should be skipped. */ boolean skip_rendering; - /* Whether the two-sided stencil ref value is different for front and - * back faces, and fallback should be used for r3xx-r4xx. */ - boolean stencil_ref_bf_fallback; /* Point sprites texcoord index, 1 bit per texcoord */ int sprite_coord_enable; /* Whether two-sided color selection is enabled (AKA light_twoside). */ |