mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 13:48:06 +02:00
mesa/main: linear_to_nonlinear is not always available.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
This commit is contained in:
parent
37dca7955a
commit
7fb41df2cb
1 changed files with 38 additions and 24 deletions
|
|
@ -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.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue