mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 22:38:05 +02:00
Add ARGB modes to support big-endian systems.
This commit is contained in:
parent
add38812f0
commit
40e852271b
2 changed files with 57 additions and 0 deletions
|
|
@ -398,6 +398,46 @@ static void insert_4ub_4f_bgra_1( const struct tnl_clipspace_attr *a, GLubyte *v
|
|||
v[3] = 0xff;
|
||||
}
|
||||
|
||||
static void insert_4ub_4f_argb_4( const struct tnl_clipspace_attr *a, GLubyte *v,
|
||||
const GLfloat *in )
|
||||
{
|
||||
(void) a;
|
||||
UNCLAMPED_FLOAT_TO_UBYTE(v[1], in[0]);
|
||||
UNCLAMPED_FLOAT_TO_UBYTE(v[2], in[1]);
|
||||
UNCLAMPED_FLOAT_TO_UBYTE(v[3], in[2]);
|
||||
UNCLAMPED_FLOAT_TO_UBYTE(v[0], in[3]);
|
||||
}
|
||||
|
||||
static void insert_4ub_4f_argb_3( const struct tnl_clipspace_attr *a, GLubyte *v,
|
||||
const GLfloat *in )
|
||||
{
|
||||
(void) a;
|
||||
UNCLAMPED_FLOAT_TO_UBYTE(v[1], in[0]);
|
||||
UNCLAMPED_FLOAT_TO_UBYTE(v[2], in[1]);
|
||||
UNCLAMPED_FLOAT_TO_UBYTE(v[3], in[2]);
|
||||
v[0] = 0xff;
|
||||
}
|
||||
|
||||
static void insert_4ub_4f_argb_2( const struct tnl_clipspace_attr *a, GLubyte *v,
|
||||
const GLfloat *in )
|
||||
{
|
||||
(void) a;
|
||||
UNCLAMPED_FLOAT_TO_UBYTE(v[1], in[0]);
|
||||
UNCLAMPED_FLOAT_TO_UBYTE(v[2], in[1]);
|
||||
v[3] = 0x00;
|
||||
v[0] = 0xff;
|
||||
}
|
||||
|
||||
static void insert_4ub_4f_argb_1( const struct tnl_clipspace_attr *a, GLubyte *v,
|
||||
const GLfloat *in )
|
||||
{
|
||||
(void) a;
|
||||
UNCLAMPED_FLOAT_TO_UBYTE(v[1], in[0]);
|
||||
v[2] = 0x00;
|
||||
v[3] = 0x00;
|
||||
v[0] = 0xff;
|
||||
}
|
||||
|
||||
static void insert_3ub_3f_rgb_3( const struct tnl_clipspace_attr *a, GLubyte *v,
|
||||
const GLfloat *in )
|
||||
{
|
||||
|
|
@ -598,6 +638,16 @@ static void extract_4ub_4f_bgra( const struct tnl_clipspace_attr *a, GLfloat *ou
|
|||
out[3] = UBYTE_TO_FLOAT(v[3]);
|
||||
}
|
||||
|
||||
static void extract_4ub_4f_argb( const struct tnl_clipspace_attr *a, GLfloat *out,
|
||||
const GLubyte *v )
|
||||
{
|
||||
(void) a;
|
||||
out[3] = UBYTE_TO_FLOAT(v[0]);
|
||||
out[0] = UBYTE_TO_FLOAT(v[1]);
|
||||
out[1] = UBYTE_TO_FLOAT(v[2]);
|
||||
out[2] = UBYTE_TO_FLOAT(v[3]);
|
||||
}
|
||||
|
||||
static void extract_3ub_3f_rgb( const struct tnl_clipspace_attr *a, GLfloat *out,
|
||||
const GLubyte *v )
|
||||
{
|
||||
|
|
@ -708,6 +758,12 @@ static struct {
|
|||
insert_4ub_4f_bgra_4 },
|
||||
4 * sizeof(GLubyte) },
|
||||
|
||||
{ "4ub_4f_argb",
|
||||
extract_4ub_4f_argb,
|
||||
{ insert_4ub_4f_argb_1, insert_4ub_4f_argb_2, insert_4ub_4f_argb_3,
|
||||
insert_4ub_4f_argb_4 },
|
||||
4 * sizeof(GLubyte) },
|
||||
|
||||
{ "4chan_4f_rgba",
|
||||
extract_4chan_4f_rgba,
|
||||
{ insert_4chan_4f_rgba_1, insert_4chan_4f_rgba_2, insert_4chan_4f_rgba_3,
|
||||
|
|
|
|||
|
|
@ -53,6 +53,7 @@ enum tnl_attr_format {
|
|||
EMIT_3UB_3F_BGR, /* for specular color */
|
||||
EMIT_4UB_4F_RGBA, /* for color */
|
||||
EMIT_4UB_4F_BGRA, /* for color */
|
||||
EMIT_4UB_4F_ARGB, /* for color */
|
||||
EMIT_4CHAN_4F_RGBA, /* for swrast color */
|
||||
EMIT_PAD, /* leave a hole of 'offset' bytes */
|
||||
EMIT_MAX
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue