diff options
author | Marek Olšák <[email protected]> | 2011-06-20 03:07:16 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2011-07-10 21:41:16 +0200 |
commit | 4843c7b24af7408329d33ab16bb946b17244a5f8 (patch) | |
tree | 76677de4a399d0c3a74e03a6644774570fc63a6f /src | |
parent | 1165280cbd37dee1e499358633478ab869de21df (diff) |
mesa: implement texfetch functions for depth_buffer_float
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/main/texfetch.c | 16 | ||||
-rw-r--r-- | src/mesa/main/texfetch_tmp.h | 23 |
2 files changed, 31 insertions, 8 deletions
diff --git a/src/mesa/main/texfetch.c b/src/mesa/main/texfetch.c index 4b85bc32a92..72283eb68af 100644 --- a/src/mesa/main/texfetch.c +++ b/src/mesa/main/texfetch.c @@ -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 } }; diff --git a/src/mesa/main/texfetch_tmp.h b/src/mesa/main/texfetch_tmp.h index e6fd81d4d57..3b1eedf39bf 100644 --- a/src/mesa/main/texfetch_tmp.h +++ b/src/mesa/main/texfetch_tmp.h @@ -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 |