summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/vega/renderer.h
diff options
context:
space:
mode:
authorChia-I Wu <[email protected]>2010-11-27 15:04:30 +0800
committerChia-I Wu <[email protected]>2010-12-01 11:23:49 +0800
commit3b71cb6ad6dabfefc9363a35872f4e70e1125603 (patch)
tree9080df502622b053af88cc7e964521de4cb7451b /src/gallium/state_trackers/vega/renderer.h
parentb23f732075fc4e1cd9cbf5eaaaaa8ef8dc2b7922 (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.h22
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,