mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-06-09 05:48:18 +02:00
gallium/util: added util_format_linear()
This commit is contained in:
parent
4c251b8861
commit
11fbdf726d
1 changed files with 41 additions and 1 deletions
|
|
@ -673,7 +673,8 @@ util_format_has_alpha(enum pipe_format format)
|
|||
}
|
||||
|
||||
/**
|
||||
* Return the matching SRGB format, or PIPE_FORMAT_NONE if none.
|
||||
* Given a linear RGB colorspace format, return the corresponding SRGB
|
||||
* format, or PIPE_FORMAT_NONE if none.
|
||||
*/
|
||||
static INLINE enum pipe_format
|
||||
util_format_srgb(enum pipe_format format)
|
||||
|
|
@ -710,6 +711,45 @@ util_format_srgb(enum pipe_format format)
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Given an sRGB format, return the corresponding linear colorspace format.
|
||||
* For non sRGB formats, return the format unchanged.
|
||||
*/
|
||||
static INLINE enum pipe_format
|
||||
util_format_linear(enum pipe_format format)
|
||||
{
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_L8_SRGB:
|
||||
return PIPE_FORMAT_L8_UNORM;
|
||||
case PIPE_FORMAT_L8A8_SRGB:
|
||||
return PIPE_FORMAT_L8A8_UNORM;
|
||||
case PIPE_FORMAT_R8G8B8_SRGB:
|
||||
return PIPE_FORMAT_R8G8B8_UNORM;
|
||||
case PIPE_FORMAT_A8B8G8R8_SRGB:
|
||||
return PIPE_FORMAT_A8B8G8R8_UNORM;
|
||||
case PIPE_FORMAT_X8B8G8R8_SRGB:
|
||||
return PIPE_FORMAT_X8B8G8R8_UNORM;
|
||||
case PIPE_FORMAT_B8G8R8A8_SRGB:
|
||||
return PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
case PIPE_FORMAT_B8G8R8X8_SRGB:
|
||||
return PIPE_FORMAT_B8G8R8X8_UNORM;
|
||||
case PIPE_FORMAT_A8R8G8B8_SRGB:
|
||||
return PIPE_FORMAT_A8R8G8B8_UNORM;
|
||||
case PIPE_FORMAT_X8R8G8B8_SRGB:
|
||||
return PIPE_FORMAT_X8R8G8B8_UNORM;
|
||||
case PIPE_FORMAT_DXT1_SRGB:
|
||||
return PIPE_FORMAT_DXT1_RGB;
|
||||
case PIPE_FORMAT_DXT1_SRGBA:
|
||||
return PIPE_FORMAT_DXT1_RGBA;
|
||||
case PIPE_FORMAT_DXT3_SRGBA:
|
||||
return PIPE_FORMAT_DXT3_RGBA;
|
||||
case PIPE_FORMAT_DXT5_SRGBA:
|
||||
return PIPE_FORMAT_DXT5_RGBA;
|
||||
default:
|
||||
return format;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the number of components stored.
|
||||
* Formats with block size != 1x1 will always have 1 component (the block).
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue