aboutsummaryrefslogtreecommitdiff
path: root/mesalib/src/mesa/main/mipmap.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2011-07-11 09:02:33 +0200
committermarha <marha@users.sourceforge.net>2011-07-11 09:02:33 +0200
commit4611d27b8966b26b8ac63514a461f31c3172c31c (patch)
tree5de36cfa4517b997cb703cb1eced374c9db1f2b1 /mesalib/src/mesa/main/mipmap.c
parentdbe01a4f78f09723b327d1d8522bfa5026c4f6e0 (diff)
parent0b43e0b4ddbd9fdac70658164f3dbf653067a4de (diff)
downloadvcxsrv-4611d27b8966b26b8ac63514a461f31c3172c31c.tar.gz
vcxsrv-4611d27b8966b26b8ac63514a461f31c3172c31c.tar.bz2
vcxsrv-4611d27b8966b26b8ac63514a461f31c3172c31c.zip
Merge remote-tracking branch 'origin/released'
Conflicts: mesalib/docs/GL3.txt mesalib/src/glsl/linker.cpp mesalib/src/mesa/main/depthstencil.c mesalib/src/mesa/main/fbobject.c mesalib/src/mesa/main/formats.c mesalib/src/mesa/main/formats.h mesalib/src/mesa/main/framebuffer.c mesalib/src/mesa/main/mtypes.h mesalib/src/mesa/main/pack.c mesalib/src/mesa/main/readpix.c mesalib/src/mesa/main/renderbuffer.c mesalib/src/mesa/main/samplerobj.c mesalib/src/mesa/main/shaderapi.c mesalib/src/mesa/main/texenv.c mesalib/src/mesa/main/texobj.c mesalib/src/mesa/main/uniforms.c mesalib/src/mesa/state_tracker/st_cb_clear.c mesalib/src/mesa/state_tracker/st_cb_drawpixels.c mesalib/src/mesa/state_tracker/st_cb_readpixels.c mesalib/src/mesa/state_tracker/st_extensions.c mesalib/src/mesa/state_tracker/st_format.c mesalib/src/mesa/swrast/s_readpix.c
Diffstat (limited to 'mesalib/src/mesa/main/mipmap.c')
-rw-r--r--mesalib/src/mesa/main/mipmap.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/mesalib/src/mesa/main/mipmap.c b/mesalib/src/mesa/main/mipmap.c
index f2724dbca..8a811cb72 100644
--- a/mesalib/src/mesa/main/mipmap.c
+++ b/mesalib/src/mesa/main/mipmap.c
@@ -706,6 +706,17 @@ do_row(GLenum datatype, GLuint comps, GLint srcWidth,
}
}
+ else if (datatype == GL_FLOAT_32_UNSIGNED_INT_24_8_REV && comps == 1) {
+ GLuint i, j, k;
+ const GLfloat *rowA = (const GLfloat *) srcRowA;
+ const GLfloat *rowB = (const GLfloat *) srcRowB;
+ GLfloat *dst = (GLfloat *) dstRow;
+ for (i = j = 0, k = k0; i < (GLuint) dstWidth;
+ i++, j += colStride, k += colStride) {
+ dst[i*2] = (rowA[j*2] + rowA[k*2] + rowB[j*2] + rowB[k*2]) * 0.25F;
+ }
+ }
+
else {
_mesa_problem(NULL, "bad format in do_row()");
}
@@ -1341,6 +1352,15 @@ do_row_3D(GLenum datatype, GLuint comps, GLint srcWidth,
}
}
+ else if (datatype == GL_FLOAT_32_UNSIGNED_INT_24_8_REV && comps == 1) {
+ DECLARE_ROW_POINTERS(GLfloat, 2);
+
+ for (i = j = 0, k = k0; i < (GLuint) dstWidth;
+ i++, j += colStride, k += colStride) {
+ FILTER_F_3D(0);
+ }
+ }
+
else {
_mesa_problem(NULL, "bad format in do_row()");
}