mesa/main: linear_to_nonlinear is not always available.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
This commit is contained in:
Chia-I Wu 2009-10-30 14:09:09 +08:00 committed by Brian Paul
parent 37dca7955a
commit 7fb41df2cb

View file

@ -42,30 +42,6 @@
#if FEATURE_EXT_texture_sRGB
/**
* Convert a float value from linear space to a
* non-linear sRGB value in [0, 255].
* Not terribly efficient.
*/
static INLINE GLfloat
linear_to_nonlinear(GLfloat cl)
{
/* can't have values outside [0, 1] */
GLfloat cs;
if (cl < 0.0031308f) {
cs = 12.92f * cl;
}
else {
cs = (GLfloat)(1.055 * _mesa_pow(cl, 0.41666) - 0.055);
}
return cs;
}
#endif /* FEATURE_EXT_texture_sRGB */
/**
* Can the given type represent negative values?
*/
@ -233,6 +209,29 @@ get_tex_ycbcr(GLcontext *ctx, GLuint dimensions,
}
#if FEATURE_EXT_texture_sRGB
/**
* Convert a float value from linear space to a
* non-linear sRGB value in [0, 255].
* Not terribly efficient.
*/
static INLINE GLfloat
linear_to_nonlinear(GLfloat cl)
{
/* can't have values outside [0, 1] */
GLfloat cs;
if (cl < 0.0031308f) {
cs = 12.92f * cl;
}
else {
cs = (GLfloat)(1.055 * _mesa_pow(cl, 0.41666) - 0.055);
}
return cs;
}
/**
* glGetTexImagefor sRGB pixels;
*/
@ -284,6 +283,21 @@ get_tex_srgb(GLcontext *ctx, GLuint dimensions,
}
#else /* FEATURE_EXT_texture_sRGB */
static INLINE void
get_tex_srgb(GLcontext *ctx, GLuint dimensions,
GLenum format, GLenum type, GLvoid *pixels,
const struct gl_texture_image *texImage)
{
ASSERT_NO_FEATURE();
}
#endif /* FEATURE_EXT_texture_sRGB */
/**
* glGetTexImagefor RGBA, Luminance, etc. pixels.
* This is the slow way since we use texture sampling.