diff options
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/swrast/s_texfetch.c | 46 |
1 files changed, 20 insertions, 26 deletions
diff --git a/src/mesa/swrast/s_texfetch.c b/src/mesa/swrast/s_texfetch.c index 9117885e791..c133eac9b81 100644 --- a/src/mesa/swrast/s_texfetch.c +++ b/src/mesa/swrast/s_texfetch.c @@ -1175,9 +1175,15 @@ texfetch_funcs[] = }; -static FetchTexelFunc -get_texel_fetch_func(gl_format format, GLuint dims) +/** + * Initialize the texture image's FetchTexel methods. + */ +static void +set_fetch_functions(const struct gl_sampler_object *samp, + struct swrast_texture_image *texImage, GLuint dims) { + gl_format format = texImage->Base.TexFormat; + #ifdef DEBUG /* check that the table entries are sorted by format name */ gl_format fmt; @@ -1188,39 +1194,27 @@ get_texel_fetch_func(gl_format format, GLuint dims) STATIC_ASSERT(Elements(texfetch_funcs) == MESA_FORMAT_COUNT); + if (samp->sRGBDecode == GL_SKIP_DECODE_EXT && + _mesa_get_format_color_encoding(format) == GL_SRGB) { + format = _mesa_get_srgb_format_linear(format); + } + assert(format < MESA_FORMAT_COUNT); switch (dims) { case 1: - return texfetch_funcs[format].Fetch1D; + texImage->FetchTexel = texfetch_funcs[format].Fetch1D; + break; case 2: - return texfetch_funcs[format].Fetch2D; + texImage->FetchTexel = texfetch_funcs[format].Fetch2D; + break; case 3: - return texfetch_funcs[format].Fetch3D; + texImage->FetchTexel = texfetch_funcs[format].Fetch3D; + break; default: - assert(0 && "bad dims in get_texel_fetch_func"); - return NULL; - } -} - - -/** - * Initialize the texture image's FetchTexel methods. - */ -static void -set_fetch_functions(struct gl_sampler_object *samp, - struct swrast_texture_image *texImage, GLuint dims) -{ - gl_format format = texImage->Base.TexFormat; - - ASSERT(dims == 1 || dims == 2 || dims == 3); - - if (samp->sRGBDecode == GL_SKIP_DECODE_EXT && - _mesa_get_format_color_encoding(format) == GL_SRGB) { - format = _mesa_get_srgb_format_linear(format); + assert(!"Bad dims in set_fetch_functions()"); } - texImage->FetchTexel = get_texel_fetch_func(format, dims); ASSERT(texImage->FetchTexel); } |