diff options
author | marha <marha@users.sourceforge.net> | 2014-10-25 19:53:22 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2014-10-25 19:53:22 +0200 |
commit | d6d5581d5fba846c8476ad4d593da662306765d7 (patch) | |
tree | 7a864e15d2c5007b7c3298487a59f11f15c55c75 /mesalib/src/mesa/state_tracker/st_atom_rasterizer.c | |
parent | a14858a22f164b5accc4bd192a5d3de21d88e3d1 (diff) | |
download | vcxsrv-d6d5581d5fba846c8476ad4d593da662306765d7.tar.gz vcxsrv-d6d5581d5fba846c8476ad4d593da662306765d7.tar.bz2 vcxsrv-d6d5581d5fba846c8476ad4d593da662306765d7.zip |
libXft mesa xserver pixman xkeyboard-config git update 25 Oct 2014
xserver commit 16a32c53f6e9ad1f3284d4596edfa33e9efb740e
xkeyboard-config commit 0d4c3d9d891536aa1ec4f1fff5e3df51cfd2718d
pixman commit 594e6a6c93e92fcfb495e987aec5617f6c37f467
libXft commit e8a83226bc10afb587f6f34daac44d2ef809c85e
mesa commit 13862812dc910a4ef57cb72cb9fe777ce3c14515
Diffstat (limited to 'mesalib/src/mesa/state_tracker/st_atom_rasterizer.c')
-rw-r--r-- | mesalib/src/mesa/state_tracker/st_atom_rasterizer.c | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/mesalib/src/mesa/state_tracker/st_atom_rasterizer.c b/mesalib/src/mesa/state_tracker/st_atom_rasterizer.c index a2285383e..50209788b 100644 --- a/mesalib/src/mesa/state_tracker/st_atom_rasterizer.c +++ b/mesalib/src/mesa/state_tracker/st_atom_rasterizer.c @@ -33,6 +33,7 @@ #include "main/macros.h" #include "st_context.h" #include "st_atom.h" +#include "st_debug.h" #include "st_program.h" #include "pipe/p_context.h" #include "pipe/p_defines.h" @@ -71,6 +72,11 @@ static void update_raster_state( struct st_context *st ) { raster->front_ccw = (ctx->Polygon.FrontFace == GL_CCW); + /* _NEW_VIEWPORT */ + if (ctx->Transform.ClipOrigin == GL_UPPER_LEFT) { + raster->front_ccw ^= 1; + } + /* * Gallium's surfaces are Y=0=TOP orientation. OpenGL is the * opposite. Window system surfaces are Y=0=TOP. Mesa's FBOs @@ -119,8 +125,14 @@ static void update_raster_state( struct st_context *st ) /* _NEW_POLYGON */ { - raster->fill_front = translate_fill( ctx->Polygon.FrontMode ); - raster->fill_back = translate_fill( ctx->Polygon.BackMode ); + if (ST_DEBUG & DEBUG_WIREFRAME) { + raster->fill_front = PIPE_POLYGON_MODE_LINE; + raster->fill_back = PIPE_POLYGON_MODE_LINE; + } + else { + raster->fill_front = translate_fill( ctx->Polygon.FrontMode ); + raster->fill_back = translate_fill( ctx->Polygon.BackMode ); + } /* Simplify when culling is active: */ @@ -234,6 +246,12 @@ static void update_raster_state( struct st_context *st ) raster->half_pixel_center = 1; if (st_fb_orientation(ctx->DrawBuffer) == Y_0_TOP) raster->bottom_edge_rule = 1; + /* _NEW_VIEWPORT */ + if (ctx->Transform.ClipOrigin == GL_UPPER_LEFT) + raster->bottom_edge_rule ^= 1; + + /* _NEW_VIEWPORT */ + raster->clip_halfz = (ctx->Transform.ClipDepthMode == GL_ZERO_TO_ONE); /* ST_NEW_RASTERIZER */ raster->rasterizer_discard = ctx->RasterDiscard; @@ -265,7 +283,8 @@ const struct st_tracked_state st_update_rasterizer = { _NEW_PROGRAM | _NEW_SCISSOR | _NEW_FRAG_CLAMP | - _NEW_TRANSFORM), /* mesa state dependencies*/ + _NEW_TRANSFORM | + _NEW_VIEWPORT), /* mesa state dependencies*/ (ST_NEW_VERTEX_PROGRAM | ST_NEW_RASTERIZER), /* state tracker dependencies */ }, |