Commit 787bbe65 authored by Jordan Justen's avatar Jordan Justen

texstore argb2101010: merge GL_RGBA and GL_RGB cases

Signed-off-by: Jordan Justen's avatarJordan Justen <jordan.l.justen@intel.com>
parent 5f96348c
......@@ -1714,18 +1714,23 @@ _mesa_texstore_argb2101010(TEXSTORE_PARAMS)
srcPacking,
ctx->_ImageTransferState);
const GLfloat *src = tempImage;
GLushort aMask = 0;
GLint img, row, col;
if (!tempImage)
return GL_FALSE;
if (srcFormat == GL_RGB) {
aMask = 0xffff;
}
for (img = 0; img < srcDepth; img++) {
GLubyte *dstRow = dstSlices[img];
if (baseInternalFormat == GL_RGBA) {
if (baseInternalFormat == GL_RGBA || baseInternalFormat == GL_RGB) {
for (row = 0; row < srcHeight; row++) {
GLuint *dstUI = (GLuint *) dstRow;
for (col = 0; col < srcWidth; col++) {
GLushort a,r,g,b;
UNCLAMPED_FLOAT_TO_USHORT(a, src[ACOMP]);
a = a | aMask;
UNCLAMPED_FLOAT_TO_USHORT(r, src[RCOMP]);
UNCLAMPED_FLOAT_TO_USHORT(g, src[GCOMP]);
UNCLAMPED_FLOAT_TO_USHORT(b, src[BCOMP]);
......@@ -1734,20 +1739,6 @@ _mesa_texstore_argb2101010(TEXSTORE_PARAMS)
}
dstRow += dstRowStride;
}
} else if (baseInternalFormat == GL_RGB) {
for (row = 0; row < srcHeight; row++) {
GLuint *dstUI = (GLuint *) dstRow;
for (col = 0; col < srcWidth; col++) {
GLushort r,g,b;
UNCLAMPED_FLOAT_TO_USHORT(r, src[RCOMP]);
UNCLAMPED_FLOAT_TO_USHORT(g, src[GCOMP]);
UNCLAMPED_FLOAT_TO_USHORT(b, src[BCOMP]);
dstUI[col] = PACK_COLOR_2101010_US(0xffff, r, g, b);
src += 4;
}
dstRow += dstRowStride;
}
} else {
ASSERT(0);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment