diff options
author | Chia-I Wu <[email protected]> | 2010-11-27 15:04:30 +0800 |
---|---|---|
committer | Chia-I Wu <[email protected]> | 2010-12-01 11:23:49 +0800 |
commit | 3b71cb6ad6dabfefc9363a35872f4e70e1125603 (patch) | |
tree | 9080df502622b053af88cc7e964521de4cb7451b /src/gallium/state_trackers/vega/renderer.h | |
parent | b23f732075fc4e1cd9cbf5eaaaaa8ef8dc2b7922 (diff) |
st/vega: Add POLYGON_STENCIL and POLYGON_FILL renderer state.
The states are designated for polygon filling. Polygon filling is a
two-pass process utilizing the stencil buffer. polygon_fill and
polygon_array_fill functions are updated to make use of the state.
Diffstat (limited to 'src/gallium/state_trackers/vega/renderer.h')
-rw-r--r-- | src/gallium/state_trackers/vega/renderer.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/gallium/state_trackers/vega/renderer.h b/src/gallium/state_trackers/vega/renderer.h index 288c17f9c89..8d13c02f3be 100644 --- a/src/gallium/state_trackers/vega/renderer.h +++ b/src/gallium/state_trackers/vega/renderer.h @@ -37,6 +37,8 @@ struct pipe_resource; struct pipe_sampler_state; struct pipe_sampler_view; struct pipe_surface; +struct pipe_vertex_element; +struct pipe_vertex_buffer; struct renderer *renderer_create(struct vg_context *owner); void renderer_destroy(struct renderer *); @@ -94,6 +96,26 @@ void renderer_filter(struct renderer *renderer, void renderer_filter_end(struct renderer *renderer); +VGboolean renderer_polygon_stencil_begin(struct renderer *renderer, + struct pipe_vertex_element *velem, + VGFillRule rule, + VGboolean restore_dsa); + +void renderer_polygon_stencil(struct renderer *renderer, + struct pipe_vertex_buffer *vbuf, + VGuint mode, VGuint start, VGuint count); + +void renderer_polygon_stencil_end(struct renderer *renderer); + +VGboolean renderer_polygon_fill_begin(struct renderer *renderer, + VGboolean save_dsa); + +void renderer_polygon_fill(struct renderer *renderer, + VGfloat min_x, VGfloat min_y, + VGfloat max_x, VGfloat max_y); + +void renderer_polygon_fill_end(struct renderer *renderer); + void renderer_draw_quad(struct renderer *, VGfloat x1, VGfloat y1, VGfloat x2, VGfloat y2, |