Calculate DEPTH_SCALE correctly for polygon offset.

This commit is contained in:
Keith Whitwell 2004-12-30 16:30:26 +00:00
parent 8be4747fd6
commit c664f0c515
3 changed files with 5 additions and 1 deletions

View file

@ -356,6 +356,7 @@ viaCreateContext(const __GLcontextModes *mesaVis,
vmesa->depth_max = (GLfloat)0xffff;
vmesa->depth_clear_mask = 0xf << 28;
vmesa->ClearDepth = 0xffff;
vmesa->polygon_offset_scale = 1.0 / vmesa->depth_max;
break;
case 24:
vmesa->hasDepth = GL_TRUE;
@ -370,6 +371,7 @@ viaCreateContext(const __GLcontextModes *mesaVis,
vmesa->have_hw_stencil = GL_TRUE;
vmesa->stencilBits = mesaVis->stencilBits;
vmesa->stencil_clear_mask = 0x1 << 28;
vmesa->polygon_offset_scale = 2.0 / vmesa->depth_max;
break;
case 32:
vmesa->hasDepth = GL_TRUE;
@ -380,6 +382,7 @@ viaCreateContext(const __GLcontextModes *mesaVis,
vmesa->depth_clear_mask = 0;
vmesa->ClearDepth = 0xffffffff;
vmesa->depth_clear_mask = 0xf << 28;
vmesa->polygon_offset_scale = 2.0 / vmesa->depth_max;
break;
default:
assert(0);

View file

@ -103,6 +103,7 @@ struct via_context_t {
GLuint depth_clear_mask;
GLuint stencil_clear_mask;
GLfloat depth_max;
GLfloat polygon_offset_scale;
GLubyte *dma;
viaRegion tex;

View file

@ -222,7 +222,7 @@ static struct {
} while (0)
#define DEPTH_SCALE (1.0 / 0xffff)
#define DEPTH_SCALE vmesa->polygon_offset_scale
#define UNFILLED_TRI unfilled_tri
#define UNFILLED_QUAD unfilled_quad
#define VERT_X(_v) _v->v.x