}
-
-static void
-update_stipple( struct st_context *st )
+/** Update the stipple when the pattern or window height changes */
+void
+st_update_polygon_stipple( struct st_context *st )
{
const struct gl_context *ctx = st->ctx;
const GLuint sz = sizeof(st->state.poly_stipple);
memcpy(st->state.poly_stipple, ctx->PolygonStipple, sz);
- invert_stipple(newStipple.stipple, ctx->PolygonStipple,
- ctx->DrawBuffer->Height);
+ if (!ctx->DrawBuffer->FlipY) {
+ memcpy(newStipple.stipple, ctx->PolygonStipple, sizeof(newStipple.stipple));
+ } else {
+ invert_stipple(newStipple.stipple, ctx->PolygonStipple,
+ ctx->DrawBuffer->Height);
+ }
st->pipe->set_polygon_stipple(st->pipe, &newStipple);
}
}
-
-
-/** Update the stipple when the pattern or window height changes */
-const struct st_tracked_state st_update_polygon_stipple = {
- update_stipple /* update */
-};