summaryrefslogtreecommitdiff
path: root/src/gallium/state_trackers/vega/polygon.c
diff options
context:
space:
mode:
authorRoland Scheidegger <sroland@vmware.com>2010-02-10 18:46:43 +0100
committerRoland Scheidegger <sroland@vmware.com>2010-02-10 18:46:43 +0100
commit903bb045b506ed5d64d1de90d8a17bb9d0d56a44 (patch)
treee0e74b92de9b922ae1ec067e1b2a02165ec15bf6 /src/gallium/state_trackers/vega/polygon.c
parent98f8c4d0bb702c69fcddb504ddb702abc3aacc06 (diff)
gallium: adapt state trackers to stencil ref change
Diffstat (limited to 'src/gallium/state_trackers/vega/polygon.c')
-rw-r--r--src/gallium/state_trackers/vega/polygon.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/gallium/state_trackers/vega/polygon.c b/src/gallium/state_trackers/vega/polygon.c
index f56ea0c8b4..c06dbf5206 100644
--- a/src/gallium/state_trackers/vega/polygon.c
+++ b/src/gallium/state_trackers/vega/polygon.c
@@ -307,6 +307,7 @@ static void draw_polygon(struct vg_context *ctx,
void polygon_fill(struct polygon *poly, struct vg_context *ctx)
{
struct pipe_depth_stencil_alpha_state dsa;
+ struct pipe_stencil_ref sr;
struct pipe_blend_state blend;
VGfloat bounds[4];
VGfloat min_x, min_y, max_x, max_y;
@@ -325,6 +326,9 @@ void polygon_fill(struct polygon *poly, struct vg_context *ctx)
set_blend_for_fill(&blend);
memset(&dsa, 0, sizeof(struct pipe_depth_stencil_alpha_state));
+ memset(&sr, 0, sizeof(struct pipe_stencil_ref));
+ /* only need a fixed 0. Rely on default or move it out at least? */
+ cso_set_stencil_ref(ctx->cso_context, &sr);
cso_save_blend(ctx->cso_context);
cso_save_depth_stencil_alpha(ctx->cso_context);
@@ -336,7 +340,6 @@ void polygon_fill(struct polygon *poly, struct vg_context *ctx)
dsa.stencil[0].zfail_op = PIPE_STENCIL_OP_KEEP;
dsa.stencil[0].zpass_op = PIPE_STENCIL_OP_INVERT;
dsa.stencil[0].func = PIPE_FUNC_ALWAYS;
- dsa.stencil[0].ref_value = 0;
dsa.stencil[0].valuemask = ~0;
cso_set_blend(ctx->cso_context, &blend);
@@ -352,7 +355,6 @@ void polygon_fill(struct polygon *poly, struct vg_context *ctx)
dsa.stencil[0].zfail_op = PIPE_STENCIL_OP_KEEP;
dsa.stencil[0].zpass_op = PIPE_STENCIL_OP_INCR_WRAP;
dsa.stencil[0].func = PIPE_FUNC_ALWAYS;
- dsa.stencil[0].ref_value = 0;
dsa.stencil[0].valuemask = ~0;
/* back */
@@ -362,7 +364,6 @@ void polygon_fill(struct polygon *poly, struct vg_context *ctx)
dsa.stencil[1].zfail_op = PIPE_STENCIL_OP_KEEP;
dsa.stencil[1].zpass_op = PIPE_STENCIL_OP_DECR_WRAP;
dsa.stencil[1].func = PIPE_FUNC_ALWAYS;
- dsa.stencil[1].ref_value = 0;
dsa.stencil[1].valuemask = ~0;
cso_set_blend(ctx->cso_context, &blend);
@@ -375,7 +376,6 @@ void polygon_fill(struct polygon *poly, struct vg_context *ctx)
cso_save_rasterizer(ctx->cso_context);
dsa.stencil[0].func = PIPE_FUNC_ALWAYS;
- dsa.stencil[0].ref_value = 0;
dsa.stencil[0].valuemask = ~0;
raster.cull_mode = raster.front_winding ^ PIPE_WINDING_BOTH;
@@ -407,7 +407,6 @@ void polygon_fill(struct polygon *poly, struct vg_context *ctx)
dsa.stencil[0].fail_op = PIPE_STENCIL_OP_REPLACE;
dsa.stencil[0].zfail_op = PIPE_STENCIL_OP_REPLACE;
dsa.stencil[0].zpass_op = PIPE_STENCIL_OP_REPLACE;
- dsa.stencil[0].ref_value = 0;
dsa.stencil[0].valuemask = dsa.stencil[0].writemask;
dsa.stencil[1].enabled = 0;
memcpy(&dsa.depth, &ctx->state.g3d.dsa.depth,
@@ -425,6 +424,7 @@ void polygon_array_fill(struct polygon_array *polyarray, struct vg_context *ctx)
{
struct array *polys = polyarray->array;
struct pipe_depth_stencil_alpha_state dsa;
+ struct pipe_stencil_ref sr;
struct pipe_blend_state blend;
VGfloat min_x = polyarray->min_x;
VGfloat min_y = polyarray->min_y;
@@ -442,6 +442,9 @@ void polygon_array_fill(struct polygon_array *polyarray, struct vg_context *ctx)
set_blend_for_fill(&blend);
memset(&dsa, 0, sizeof(struct pipe_depth_stencil_alpha_state));
+ memset(&sr, 0, sizeof(struct pipe_stencil_ref));
+ /* only need a fixed 0. Rely on default or move it out at least? */
+ cso_set_stencil_ref(ctx->cso_context, &sr);
cso_save_blend(ctx->cso_context);
cso_save_depth_stencil_alpha(ctx->cso_context);
@@ -453,7 +456,6 @@ void polygon_array_fill(struct polygon_array *polyarray, struct vg_context *ctx)
dsa.stencil[0].zfail_op = PIPE_STENCIL_OP_KEEP;
dsa.stencil[0].zpass_op = PIPE_STENCIL_OP_INVERT;
dsa.stencil[0].func = PIPE_FUNC_ALWAYS;
- dsa.stencil[0].ref_value = 0;
dsa.stencil[0].valuemask = ~0;
cso_set_blend(ctx->cso_context, &blend);
@@ -472,7 +474,6 @@ void polygon_array_fill(struct polygon_array *polyarray, struct vg_context *ctx)
dsa.stencil[0].zfail_op = PIPE_STENCIL_OP_KEEP;
dsa.stencil[0].zpass_op = PIPE_STENCIL_OP_INCR_WRAP;
dsa.stencil[0].func = PIPE_FUNC_ALWAYS;
- dsa.stencil[0].ref_value = 0;
dsa.stencil[0].valuemask = ~0;
/* back */
@@ -482,7 +483,6 @@ void polygon_array_fill(struct polygon_array *polyarray, struct vg_context *ctx)
dsa.stencil[1].zfail_op = PIPE_STENCIL_OP_KEEP;
dsa.stencil[1].zpass_op = PIPE_STENCIL_OP_DECR_WRAP;
dsa.stencil[1].func = PIPE_FUNC_ALWAYS;
- dsa.stencil[1].ref_value = 0;
dsa.stencil[1].valuemask = ~0;
cso_set_blend(ctx->cso_context, &blend);
@@ -498,7 +498,6 @@ void polygon_array_fill(struct polygon_array *polyarray, struct vg_context *ctx)
cso_save_rasterizer(ctx->cso_context);
dsa.stencil[0].func = PIPE_FUNC_ALWAYS;
- dsa.stencil[0].ref_value = 0;
dsa.stencil[0].valuemask = ~0;
raster.cull_mode = raster.front_winding ^ PIPE_WINDING_BOTH;
@@ -536,7 +535,6 @@ void polygon_array_fill(struct polygon_array *polyarray, struct vg_context *ctx)
dsa.stencil[0].fail_op = PIPE_STENCIL_OP_REPLACE;
dsa.stencil[0].zfail_op = PIPE_STENCIL_OP_REPLACE;
dsa.stencil[0].zpass_op = PIPE_STENCIL_OP_REPLACE;
- dsa.stencil[0].ref_value = 0;
dsa.stencil[0].valuemask = dsa.stencil[0].writemask;
dsa.stencil[1].enabled = 0;
memcpy(&dsa.depth, &ctx->state.g3d.dsa.depth,