diff options
author | Iago Toral Quiroga <[email protected]> | 2014-11-07 11:17:29 +0100 |
---|---|---|
committer | Iago Toral Quiroga <[email protected]> | 2015-01-12 11:20:29 +0100 |
commit | 4468386a3c8126cf94691c5f0ee12b0b157f314c (patch) | |
tree | 2abd536a7053c563353f2935ab0d88682061a309 /src/mesa/main/texcompress_rgtc.c | |
parent | 43a76a9e4416a2ff0b09bb0bc2a39bd4c61148b4 (diff) |
mesa: Remove _mesa_make_temp_ubyte_image
Now that we have _mesa_format_convert we don't need this.
texstore_rgba will use the GL_COLOR_INDEX to RGBA conversion
helpers instead and compressed formats that used
_mesa_make_temp_ubyte_image to create an ubyte RGBA temporary
image can call _mesa_texstore with a RGBA/ubyte 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 f7ee24d47fe..e96af4eb5a6 100644 --- a/src/mesa/main/texcompress_rgtc.c +++ b/src/mesa/main/texcompress_rgtc.c @@ -83,18 +83,24 @@ _mesa_texstore_red_rgtc1(TEXSTORE_PARAMS) const GLubyte *srcaddr; GLubyte srcpixels[4][4]; GLubyte *blkaddr; - GLint dstRowDiff; + GLint dstRowDiff, redRowStride; + GLubyte *tempImageSlices[1]; + ASSERT(dstFormat == MESA_FORMAT_R_RGTC1_UNORM || dstFormat == MESA_FORMAT_L_LATC1_UNORM); - tempImage = _mesa_make_temp_ubyte_image(ctx, dims, - baseInternalFormat, - _mesa_get_format_base_format(dstFormat), - srcWidth, srcHeight, srcDepth, - srcFormat, srcType, srcAddr, - srcPacking); + tempImage = malloc(srcWidth * srcHeight * 1 * sizeof(GLubyte)); if (!tempImage) return GL_FALSE; /* out of memory */ + redRowStride = 1 * srcWidth * sizeof(GLubyte); + tempImageSlices[0] = (GLubyte *) tempImage; + _mesa_texstore(ctx, dims, + baseInternalFormat, + MESA_FORMAT_R_UNORM8, + redRowStride, tempImageSlices, + srcWidth, srcHeight, srcDepth, + srcFormat, srcType, srcAddr, + srcPacking); dst = dstSlices[0]; @@ -177,19 +183,30 @@ _mesa_texstore_rg_rgtc2(TEXSTORE_PARAMS) const GLubyte *srcaddr; GLubyte srcpixels[4][4]; GLubyte *blkaddr; - GLint dstRowDiff; + GLint dstRowDiff, rgRowStride; + mesa_format tempFormat; + GLubyte *tempImageSlices[1]; ASSERT(dstFormat == MESA_FORMAT_RG_RGTC2_UNORM || dstFormat == MESA_FORMAT_LA_LATC2_UNORM); - tempImage = _mesa_make_temp_ubyte_image(ctx, dims, - baseInternalFormat, - _mesa_get_format_base_format(dstFormat), - srcWidth, srcHeight, srcDepth, - srcFormat, srcType, srcAddr, - srcPacking); + if (baseInternalFormat == GL_RG) + tempFormat = MESA_FORMAT_R8G8_UNORM; + else + tempFormat = MESA_FORMAT_L8A8_UNORM; + + rgRowStride = 2 * srcWidth * sizeof(GLubyte); + tempImage = malloc(srcWidth * srcHeight * 2 * sizeof(GLubyte)); if (!tempImage) return GL_FALSE; /* out of memory */ + tempImageSlices[0] = (GLubyte *) tempImage; + _mesa_texstore(ctx, dims, + baseInternalFormat, + tempFormat, + rgRowStride, tempImageSlices, + srcWidth, srcHeight, srcDepth, + srcFormat, srcType, srcAddr, + srcPacking); dst = dstSlices[0]; |