mesa: implement texfetch functions for depth_buffer_float

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
Marek Olšák 2011-06-20 03:07:16 +02:00
parent 1165280cbd
commit 4843c7b24a
2 changed files with 31 additions and 8 deletions

View file

@ -916,17 +916,17 @@ texfetch_funcs[MESA_FORMAT_COUNT] =
},
{
MESA_FORMAT_Z32_FLOAT,
NULL, /* XXX */
NULL,
NULL,
NULL
fetch_texel_1d_f_r_f32, /* Reuse the R32F functions. */
fetch_texel_2d_f_r_f32,
fetch_texel_3d_f_r_f32,
store_texel_r_f32
},
{
MESA_FORMAT_Z32_FLOAT_X24S8,
NULL, /* XXX */
NULL,
NULL,
NULL
fetch_texel_1d_z32f_x24s8,
fetch_texel_2d_z32f_x24s8,
fetch_texel_3d_z32f_x24s8,
store_texel_z32f_x24s8
}
};

View file

@ -2374,6 +2374,29 @@ static void store_texel_r11_g11_b10f(struct gl_texture_image *texImage,
#endif
/* MESA_FORMAT_Z32_FLOAT_X24S8 ***********************************************/
static void FETCH(z32f_x24s8)(const struct gl_texture_image *texImage,
GLint i, GLint j, GLint k, GLfloat *texel)
{
const GLfloat *src = TEXEL_ADDR(GLfloat, texImage, i, j, k, 2);
texel[RCOMP] = src[0];
texel[GCOMP] = 0.0F;
texel[BCOMP] = 0.0F;
texel[ACOMP] = 1.0F;
}
#if DIM == 3
static void store_texel_z32f_x24s8(struct gl_texture_image *texImage,
GLint i, GLint j, GLint k, const void *texel)
{
const GLfloat *src = (const GLfloat *) texel;
GLfloat *dst = TEXEL_ADDR(GLfloat, texImage, i, j, k, 2);
dst[0] = src[0];
}
#endif
#undef TEXEL_ADDR
#undef DIM
#undef FETCH