mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 04:58:05 +02:00
mesa: include formats.h
This commit is contained in:
parent
813870fd95
commit
9e7b56c980
1 changed files with 1 additions and 136 deletions
|
|
@ -37,142 +37,7 @@
|
|||
|
||||
|
||||
#include "mtypes.h"
|
||||
|
||||
|
||||
/**
|
||||
* Mesa internal texture image formats.
|
||||
* All texture images are stored in one of these formats.
|
||||
*
|
||||
* NOTE: when you add a new format, be sure to update the do_row()
|
||||
* function in texstore.c used for auto mipmap generation.
|
||||
*/
|
||||
enum _format {
|
||||
/**
|
||||
* \name Hardware-friendly formats.
|
||||
*
|
||||
* Drivers can override the default formats and convert texture images to
|
||||
* one of these as required. The driver's
|
||||
* dd_function_table::ChooseTextureFormat function will choose one of these
|
||||
* formats.
|
||||
*
|
||||
* \note In the default case, some of these formats will be duplicates of
|
||||
* the generic formats listed below. However, these formats guarantee their
|
||||
* internal component sizes, while GLchan may vary between GLubyte, GLushort
|
||||
* and GLfloat.
|
||||
*/
|
||||
/*@{*/
|
||||
/* msb <------ TEXEL BITS -----------> lsb */
|
||||
/* ---- ---- ---- ---- ---- ---- ---- ---- */
|
||||
MESA_FORMAT_RGBA8888, /* RRRR RRRR GGGG GGGG BBBB BBBB AAAA AAAA */
|
||||
MESA_FORMAT_RGBA8888_REV, /* AAAA AAAA BBBB BBBB GGGG GGGG RRRR RRRR */
|
||||
MESA_FORMAT_ARGB8888, /* AAAA AAAA RRRR RRRR GGGG GGGG BBBB BBBB */
|
||||
MESA_FORMAT_ARGB8888_REV, /* BBBB BBBB GGGG GGGG RRRR RRRR AAAA AAAA */
|
||||
MESA_FORMAT_RGB888, /* RRRR RRRR GGGG GGGG BBBB BBBB */
|
||||
MESA_FORMAT_BGR888, /* BBBB BBBB GGGG GGGG RRRR RRRR */
|
||||
MESA_FORMAT_RGB565, /* RRRR RGGG GGGB BBBB */
|
||||
MESA_FORMAT_RGB565_REV, /* GGGB BBBB RRRR RGGG */
|
||||
MESA_FORMAT_RGBA4444, /* RRRR GGGG BBBB AAAA */
|
||||
MESA_FORMAT_ARGB4444, /* AAAA RRRR GGGG BBBB */
|
||||
MESA_FORMAT_ARGB4444_REV, /* GGGG BBBB AAAA RRRR */
|
||||
MESA_FORMAT_RGBA5551, /* RRRR RGGG GGBB BBBA */
|
||||
MESA_FORMAT_ARGB1555, /* ARRR RRGG GGGB BBBB */
|
||||
MESA_FORMAT_ARGB1555_REV, /* GGGB BBBB ARRR RRGG */
|
||||
MESA_FORMAT_AL88, /* AAAA AAAA LLLL LLLL */
|
||||
MESA_FORMAT_AL88_REV, /* LLLL LLLL AAAA AAAA */
|
||||
MESA_FORMAT_RGB332, /* RRRG GGBB */
|
||||
MESA_FORMAT_A8, /* AAAA AAAA */
|
||||
MESA_FORMAT_L8, /* LLLL LLLL */
|
||||
MESA_FORMAT_I8, /* IIII IIII */
|
||||
MESA_FORMAT_CI8, /* CCCC CCCC */
|
||||
MESA_FORMAT_YCBCR, /* YYYY YYYY UorV UorV */
|
||||
MESA_FORMAT_YCBCR_REV, /* UorV UorV YYYY YYYY */
|
||||
MESA_FORMAT_Z24_S8, /* ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ SSSS SSSS */
|
||||
MESA_FORMAT_S8_Z24, /* SSSS SSSS ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ */
|
||||
MESA_FORMAT_Z16, /* ZZZZ ZZZZ ZZZZ ZZZZ */
|
||||
MESA_FORMAT_Z32, /* ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ */
|
||||
/*@}*/
|
||||
|
||||
#if FEATURE_EXT_texture_sRGB
|
||||
/**
|
||||
* \name 8-bit/channel sRGB formats
|
||||
*/
|
||||
/*@{*/
|
||||
MESA_FORMAT_SRGB8,
|
||||
MESA_FORMAT_SRGBA8,
|
||||
MESA_FORMAT_SARGB8,
|
||||
MESA_FORMAT_SL8,
|
||||
MESA_FORMAT_SLA8,
|
||||
#if FEATURE_texture_s3tc
|
||||
MESA_FORMAT_SRGB_DXT1,
|
||||
MESA_FORMAT_SRGBA_DXT1,
|
||||
MESA_FORMAT_SRGBA_DXT3,
|
||||
MESA_FORMAT_SRGBA_DXT5,
|
||||
#endif
|
||||
/*@}*/
|
||||
#endif
|
||||
|
||||
/**
|
||||
* \name Compressed texture formats.
|
||||
*/
|
||||
/*@{*/
|
||||
#if FEATURE_texture_fxt1
|
||||
MESA_FORMAT_RGB_FXT1,
|
||||
MESA_FORMAT_RGBA_FXT1,
|
||||
#endif
|
||||
#if FEATURE_texture_s3tc
|
||||
MESA_FORMAT_RGB_DXT1,
|
||||
MESA_FORMAT_RGBA_DXT1,
|
||||
MESA_FORMAT_RGBA_DXT3,
|
||||
MESA_FORMAT_RGBA_DXT5,
|
||||
#endif
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* \name Generic GLchan-based formats.
|
||||
*
|
||||
* Software-oriented texture formats. Texels are arrays of GLchan
|
||||
* values so there are no byte order issues.
|
||||
*
|
||||
* \note Because these are based on the GLchan data type, one cannot assume
|
||||
* 8 bits per channel with these formats. If you require GLubyte channels,
|
||||
* use one of the hardware formats above.
|
||||
*/
|
||||
/*@{*/
|
||||
MESA_FORMAT_RGBA,
|
||||
MESA_FORMAT_RGB,
|
||||
MESA_FORMAT_ALPHA,
|
||||
MESA_FORMAT_LUMINANCE,
|
||||
MESA_FORMAT_LUMINANCE_ALPHA,
|
||||
MESA_FORMAT_INTENSITY,
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* \name Floating point texture formats.
|
||||
*/
|
||||
/*@{*/
|
||||
MESA_FORMAT_RGBA_FLOAT32,
|
||||
MESA_FORMAT_RGBA_FLOAT16,
|
||||
MESA_FORMAT_RGB_FLOAT32,
|
||||
MESA_FORMAT_RGB_FLOAT16,
|
||||
MESA_FORMAT_ALPHA_FLOAT32,
|
||||
MESA_FORMAT_ALPHA_FLOAT16,
|
||||
MESA_FORMAT_LUMINANCE_FLOAT32,
|
||||
MESA_FORMAT_LUMINANCE_FLOAT16,
|
||||
MESA_FORMAT_LUMINANCE_ALPHA_FLOAT32,
|
||||
MESA_FORMAT_LUMINANCE_ALPHA_FLOAT16,
|
||||
MESA_FORMAT_INTENSITY_FLOAT32,
|
||||
MESA_FORMAT_INTENSITY_FLOAT16,
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* \name Signed fixed point texture formats.
|
||||
*/
|
||||
/*@{*/
|
||||
MESA_FORMAT_DUDV8,
|
||||
MESA_FORMAT_SIGNED_RGBA8888,
|
||||
MESA_FORMAT_SIGNED_RGBA8888_REV
|
||||
/*@}*/
|
||||
};
|
||||
#include "formats.h"
|
||||
|
||||
|
||||
/** GLchan-valued formats */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue