diff options
author | Iago Toral Quiroga <[email protected]> | 2014-11-07 12:20:11 +0100 |
---|---|---|
committer | Iago Toral Quiroga <[email protected]> | 2015-01-12 11:20:29 +0100 |
commit | c540800aa5521023f28eeb288f0d7bb0b67278f3 (patch) | |
tree | 8a739adeab1c99aa1da7125b6dc9fd6844c41c86 /src/mesa/main/texcompress_rgtc.c | |
parent | 4468386a3c8126cf94691c5f0ee12b0b157f314c (diff) |
mesa: Remove _mesa_make_temp_float_image
Now that we have _mesa_format_convert we don't need this.
This was only used to create temporary RGBA float images in the process
of storing some compressed formats. These can call _mesa_texstore
with a RGBA/float dst to achieve the same goal.
Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/mesa/main/texcompress_rgtc.c')
-rw-r--r-- | src/mesa/main/texcompress_rgtc.c | 45 |
1 files changed, 31 insertions, 14 deletions
diff --git a/src/mesa/main/texcompress_rgtc.c b/src/mesa/main/texcompress_rgtc.c index e96af4eb5a6..e3042011a71 100644 --- a/src/mesa/main/texcompress_rgtc.c +++ b/src/mesa/main/texcompress_rgtc.c @@ -136,18 +136,24 @@ _mesa_texstore_signed_red_rgtc1(TEXSTORE_PARAMS) const GLfloat *srcaddr; GLbyte srcpixels[4][4]; GLbyte *blkaddr; - GLint dstRowDiff; + GLint dstRowDiff, redRowStride; + GLfloat *tempImageSlices[1]; + ASSERT(dstFormat == MESA_FORMAT_R_RGTC1_SNORM || dstFormat == MESA_FORMAT_L_LATC1_SNORM); - tempImage = _mesa_make_temp_float_image(ctx, dims, - baseInternalFormat, - _mesa_get_format_base_format(dstFormat), - srcWidth, srcHeight, srcDepth, - srcFormat, srcType, srcAddr, - srcPacking, 0x0); + redRowStride = 1 * srcWidth * sizeof(GLfloat); + tempImage = malloc(srcWidth * srcHeight * 1 * sizeof(GLfloat)); if (!tempImage) return GL_FALSE; /* out of memory */ + tempImageSlices[0] = (GLfloat *) tempImage; + _mesa_texstore(ctx, dims, + baseInternalFormat, + MESA_FORMAT_R_FLOAT32, + redRowStride, (GLubyte **)tempImageSlices, + srcWidth, srcHeight, srcDepth, + srcFormat, srcType, srcAddr, + srcPacking); dst = (GLbyte *) dstSlices[0]; @@ -248,19 +254,30 @@ _mesa_texstore_signed_rg_rgtc2(TEXSTORE_PARAMS) const GLfloat *srcaddr; GLbyte srcpixels[4][4]; GLbyte *blkaddr; - GLint dstRowDiff; + GLint dstRowDiff, rgRowStride; + mesa_format tempFormat; + GLfloat *tempImageSlices[1]; ASSERT(dstFormat == MESA_FORMAT_RG_RGTC2_SNORM || dstFormat == MESA_FORMAT_LA_LATC2_SNORM); - tempImage = _mesa_make_temp_float_image(ctx, dims, - baseInternalFormat, - _mesa_get_format_base_format(dstFormat), - srcWidth, srcHeight, srcDepth, - srcFormat, srcType, srcAddr, - srcPacking, 0x0); + if (baseInternalFormat == GL_RG) + tempFormat = MESA_FORMAT_RG_FLOAT32; + else + tempFormat = MESA_FORMAT_LA_FLOAT32; + + rgRowStride = 2 * srcWidth * sizeof(GLfloat); + tempImage = malloc(srcWidth * srcHeight * 2 * sizeof(GLfloat)); if (!tempImage) return GL_FALSE; /* out of memory */ + tempImageSlices[0] = (GLfloat *) tempImage; + _mesa_texstore(ctx, dims, + baseInternalFormat, + tempFormat, + rgRowStride, (GLubyte **)tempImageSlices, + srcWidth, srcHeight, srcDepth, + srcFormat, srcType, srcAddr, + srcPacking); dst = (GLbyte *) dstSlices[0]; |