mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 04:38:03 +02:00
Change float depthScale param to _mesa_unpack_depth_span() to GLuint depthMax.
This commit is contained in:
parent
64359af071
commit
25cfb68f0b
4 changed files with 22 additions and 20 deletions
|
|
@ -3889,12 +3889,12 @@ _mesa_pack_stencil_span( const GLcontext *ctx, GLuint n,
|
|||
* The glPixelTransfer (scale/bias) params will be applied.
|
||||
*
|
||||
* \param dstType one of GL_UNSIGNED_SHORT, GL_UNSIGNED_INT, GL_FLOAT
|
||||
* \param depthScale scale factor (max value) for returned GLushort or
|
||||
* GLuint values (ignored for GLfloat).
|
||||
* \param depthMax max value for returned GLushort or GLuint values
|
||||
* (ignored for GLfloat).
|
||||
*/
|
||||
void
|
||||
_mesa_unpack_depth_span( const GLcontext *ctx, GLuint n,
|
||||
GLenum dstType, GLvoid *dest, GLfloat depthScale,
|
||||
GLenum dstType, GLvoid *dest, GLuint depthMax,
|
||||
GLenum srcType, const GLvoid *source,
|
||||
const struct gl_pixelstore_attrib *srcPacking )
|
||||
{
|
||||
|
|
@ -3919,7 +3919,7 @@ _mesa_unpack_depth_span( const GLcontext *ctx, GLuint n,
|
|||
}
|
||||
if (srcType == GL_UNSIGNED_SHORT
|
||||
&& dstType == GL_UNSIGNED_INT
|
||||
&& depthScale == (GLfloat) 0xffffffff) {
|
||||
&& depthMax == 0xffffffff) {
|
||||
const GLushort *src = (const GLushort *) source;
|
||||
GLuint *dst = (GLuint *) dest;
|
||||
GLuint i;
|
||||
|
|
@ -3967,7 +3967,7 @@ _mesa_unpack_depth_span( const GLcontext *ctx, GLuint n,
|
|||
break;
|
||||
case GL_UNSIGNED_INT_24_8_EXT: /* GL_EXT_packed_depth_stencil */
|
||||
if (dstType == GL_UNSIGNED_INT &&
|
||||
depthScale == (GLfloat) 0xffffff &&
|
||||
depthMax == 0xffffff &&
|
||||
ctx->Pixel.DepthScale == 1.0 &&
|
||||
ctx->Pixel.DepthBias == 0.0) {
|
||||
const GLuint *src = (const GLuint *) source;
|
||||
|
|
@ -4045,16 +4045,16 @@ _mesa_unpack_depth_span( const GLcontext *ctx, GLuint n,
|
|||
if (dstType == GL_UNSIGNED_INT) {
|
||||
GLuint *zValues = (GLuint *) dest;
|
||||
GLuint i;
|
||||
if (depthScale <= (GLfloat) 0xffffff) {
|
||||
if (depthMax <= 0xffffff) {
|
||||
/* no overflow worries */
|
||||
for (i = 0; i < n; i++) {
|
||||
zValues[i] = (GLuint) (depthValues[i] * depthScale);
|
||||
zValues[i] = (GLuint) (depthValues[i] * (GLfloat) depthMax);
|
||||
}
|
||||
}
|
||||
else {
|
||||
/* need to use double precision to prevent overflow problems */
|
||||
for (i = 0; i < n; i++) {
|
||||
GLdouble z = depthValues[i] * depthScale;
|
||||
GLdouble z = depthValues[i] * (GLfloat) depthMax;
|
||||
if (z >= (GLdouble) 0xffffffff)
|
||||
zValues[i] = 0xffffffff;
|
||||
else
|
||||
|
|
@ -4065,14 +4065,14 @@ _mesa_unpack_depth_span( const GLcontext *ctx, GLuint n,
|
|||
else if (dstType == GL_UNSIGNED_SHORT) {
|
||||
GLushort *zValues = (GLushort *) dest;
|
||||
GLuint i;
|
||||
ASSERT(depthScale <= 65535.0);
|
||||
ASSERT(depthMax <= 0xffff);
|
||||
for (i = 0; i < n; i++) {
|
||||
zValues[i] = (GLushort) (depthValues[i] * depthScale);
|
||||
zValues[i] = (GLushort) (depthValues[i] * (GLfloat) depthMax);
|
||||
}
|
||||
}
|
||||
else {
|
||||
ASSERT(dstType == GL_FLOAT);
|
||||
ASSERT(depthScale == 1.0F);
|
||||
/*ASSERT(depthMax == 1.0F);*/
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
/*
|
||||
* Mesa 3-D graphics library
|
||||
* Version: 6.5.2
|
||||
* Version: 7.1
|
||||
*
|
||||
* Copyright (C) 1999-2006 Brian Paul All Rights Reserved.
|
||||
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
|
|
@ -181,7 +181,7 @@ _mesa_pack_stencil_span( const GLcontext *ctx, GLuint n,
|
|||
|
||||
extern void
|
||||
_mesa_unpack_depth_span( const GLcontext *ctx, GLuint n,
|
||||
GLenum dstType, GLvoid *dest, GLfloat depthScale,
|
||||
GLenum dstType, GLvoid *dest, GLuint depthMax,
|
||||
GLenum srcType, const GLvoid *source,
|
||||
const struct gl_pixelstore_attrib *srcPacking );
|
||||
|
||||
|
|
|
|||
|
|
@ -1077,7 +1077,7 @@ _mesa_texstore_rgba(TEXSTORE_PARAMS)
|
|||
GLboolean
|
||||
_mesa_texstore_z32(TEXSTORE_PARAMS)
|
||||
{
|
||||
const GLfloat depthScale = (GLfloat) 0xffffffff;
|
||||
const GLuint depthScale = 0xffffffff;
|
||||
(void) dims;
|
||||
ASSERT(dstFormat == &_mesa_texformat_z32);
|
||||
ASSERT(dstFormat->TexelBytes == sizeof(GLuint));
|
||||
|
|
@ -1124,7 +1124,7 @@ _mesa_texstore_z32(TEXSTORE_PARAMS)
|
|||
GLboolean
|
||||
_mesa_texstore_z16(TEXSTORE_PARAMS)
|
||||
{
|
||||
const GLfloat depthScale = 65535.0f;
|
||||
const GLuint depthScale = 0xffff;
|
||||
(void) dims;
|
||||
ASSERT(dstFormat == &_mesa_texformat_z16);
|
||||
ASSERT(dstFormat->TexelBytes == sizeof(GLushort));
|
||||
|
|
@ -2319,6 +2319,8 @@ _mesa_texstore_ycbcr(TEXSTORE_PARAMS)
|
|||
GLboolean
|
||||
_mesa_texstore_z24_s8(TEXSTORE_PARAMS)
|
||||
{
|
||||
const GLuint depthScale = 0xffffff;
|
||||
|
||||
ASSERT(dstFormat == &_mesa_texformat_z24_s8);
|
||||
ASSERT(srcFormat == GL_DEPTH_STENCIL_EXT);
|
||||
ASSERT(srcType == GL_UNSIGNED_INT_24_8_EXT);
|
||||
|
|
@ -2357,7 +2359,7 @@ _mesa_texstore_z24_s8(TEXSTORE_PARAMS)
|
|||
_mesa_unpack_depth_span(ctx, srcWidth,
|
||||
GL_UNSIGNED_INT, /* dst type */
|
||||
dstRow, /* dst addr */
|
||||
(GLfloat) 0xffffff, /* depthScale */
|
||||
depthScale,
|
||||
srcType, src, srcPacking);
|
||||
/* get the 8-bit stencil values */
|
||||
_mesa_unpack_stencil_span(ctx, srcWidth,
|
||||
|
|
|
|||
|
|
@ -484,7 +484,7 @@ draw_depth_pixels( GLcontext *ctx, GLint x, GLint y,
|
|||
}
|
||||
else {
|
||||
/* General case */
|
||||
const GLfloat depthMax = ctx->DrawBuffer->_DepthMaxF;
|
||||
const GLuint depthMax = ctx->DrawBuffer->_DepthMax;
|
||||
GLint skipPixels = 0;
|
||||
|
||||
/* in case width > MAX_WIDTH do the copy in chunks */
|
||||
|
|
@ -695,7 +695,7 @@ draw_depth_stencil_pixels(GLcontext *ctx, GLint x, GLint y,
|
|||
const GLint imgX = x, imgY = y;
|
||||
const GLboolean scaleOrBias
|
||||
= ctx->Pixel.DepthScale != 1.0 || ctx->Pixel.DepthBias != 0.0;
|
||||
const GLfloat depthScale = ctx->DrawBuffer->_DepthMaxF;
|
||||
const GLuint depthMax = ctx->DrawBuffer->_DepthMax;
|
||||
const GLuint stencilMask = ctx->Stencil.WriteMask[0];
|
||||
const GLuint stencilType = (STENCIL_BITS == 8) ?
|
||||
GL_UNSIGNED_BYTE : GL_UNSIGNED_SHORT;
|
||||
|
|
@ -783,7 +783,7 @@ draw_depth_stencil_pixels(GLcontext *ctx, GLint x, GLint y,
|
|||
/* general case */
|
||||
GLuint zValues[MAX_WIDTH]; /* 16 or 32-bit Z value storage */
|
||||
_mesa_unpack_depth_span(ctx, width,
|
||||
depthRb->DataType, zValues, depthScale,
|
||||
depthRb->DataType, zValues, depthMax,
|
||||
type, depthStencilSrc, &clippedUnpack);
|
||||
if (zoom) {
|
||||
_swrast_write_zoomed_z_span(ctx, imgX, imgY, width, x,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue