gdk: canonicalize RGB destination formats
This commit is contained in:
parent
6cfb02aeba
commit
513338248d
1 changed files with 42 additions and 41 deletions
83
gdk/gdkrgb.c
83
gdk/gdkrgb.c
|
|
@ -57,11 +57,11 @@ typedef enum
|
|||
GDK_RGB_FORMAT_888_MSB,
|
||||
GDK_RGB_FORMAT_0888,
|
||||
GDK_RGB_FORMAT_0888_BR,
|
||||
GDK_RGB_FORMAT_RGB0_NATIVE,
|
||||
GDK_RGB_FORMAT_101010_R_LOW_LE,
|
||||
GDK_RGB_FORMAT_101010_B_LOW_LE,
|
||||
GDK_RGB_FORMAT_101010_R_LOW_BE,
|
||||
GDK_RGB_FORMAT_101010_B_LOW_BE
|
||||
GDK_RGB_FORMAT_8880_BR,
|
||||
GDK_RGB_FORMAT_101010_R_LOW_LSB,
|
||||
GDK_RGB_FORMAT_101010_B_LOW_LSB,
|
||||
GDK_RGB_FORMAT_101010_R_LOW_MSB,
|
||||
GDK_RGB_FORMAT_101010_B_LOW_MSB
|
||||
} GdkRgbFormat;
|
||||
|
||||
typedef void (*GdkRgbConvFunc) (GdkRgbInfo *image_info, GdkImage *image,
|
||||
|
|
@ -3724,7 +3724,8 @@ gdk_rgb_select_conv (GdkRgbInfo *image_info)
|
|||
|
||||
if (image_info->bitmap)
|
||||
conv = gdk_rgb_convert_1;
|
||||
else if (bpp == 16 && depth == 16 && !byterev &&
|
||||
else if (bpp == 16 && depth == 16 &&
|
||||
vtype == GDK_VISUAL_TRUE_COLOR && !byterev &&
|
||||
red_mask == 0xf800 && green_mask == 0x7e0 && blue_mask == 0x1f)
|
||||
{
|
||||
SET_CONV (gdk_rgb_convert_565, GDK_RGB_FORMAT_565);
|
||||
|
|
@ -3779,11 +3780,11 @@ gdk_rgb_select_conv (GdkRgbInfo *image_info)
|
|||
#if G_BYTE_ORDER == G_BIG_ENDIAN
|
||||
else if (bpp == 32 && depth == 24 && vtype == GDK_VISUAL_TRUE_COLOR &&
|
||||
(mask_bgr && byte_order == GDK_MSB_FIRST))
|
||||
SET_CONV (gdk_rgb_convert_8880_br, GDK_RGB_FORMAT_RGB0_NATIVE);
|
||||
SET_CONV (gdk_rgb_convert_8880_br, GDK_RGB_FORMAT_8880_BR);
|
||||
#else
|
||||
else if (bpp == 32 && depth == 24 && vtype == GDK_VISUAL_TRUE_COLOR &&
|
||||
(mask_bgr && byte_order == GDK_LSB_FIRST))
|
||||
SET_CONV (gdk_rgb_convert_8880_br, GDK_RGB_FORMAT_RGB0_NATIVE);
|
||||
SET_CONV (gdk_rgb_convert_8880_br, GDK_RGB_FORMAT_8880_BR);
|
||||
#endif
|
||||
else if (bpp == 32 && (depth == 30 || depth == 32) &&
|
||||
vtype == GDK_VISUAL_TRUE_COLOR &&
|
||||
|
|
@ -3798,15 +3799,15 @@ gdk_rgb_select_conv (GdkRgbInfo *image_info)
|
|||
? gdk_rgb_convert_101010_r_low_lsb
|
||||
: gdk_rgb_convert_101010_r_low_msb),
|
||||
(byte_order == GDK_LSB_FIRST
|
||||
? GDK_RGB_FORMAT_101010_R_LOW_LE
|
||||
: GDK_RGB_FORMAT_101010_R_LOW_BE));
|
||||
? GDK_RGB_FORMAT_101010_R_LOW_LSB
|
||||
: GDK_RGB_FORMAT_101010_R_LOW_MSB));
|
||||
else
|
||||
SET_CONV ((byte_order == GDK_LSB_FIRST
|
||||
? gdk_rgb_convert_101010_b_low_lsb
|
||||
: gdk_rgb_convert_101010_b_low_msb),
|
||||
(byte_order == GDK_LSB_FIRST
|
||||
? GDK_RGB_FORMAT_101010_B_LOW_LE
|
||||
: GDK_RGB_FORMAT_101010_B_LOW_BE));
|
||||
? GDK_RGB_FORMAT_101010_B_LOW_LSB
|
||||
: GDK_RGB_FORMAT_101010_B_LOW_MSB));
|
||||
}
|
||||
|
||||
else if (vtype == GDK_VISUAL_TRUE_COLOR && byte_order == GDK_LSB_FIRST)
|
||||
|
|
@ -4073,7 +4074,7 @@ gdk_rgb_get_info_from_drawable (GdkDrawable *drawable)
|
|||
(p) += 4; \
|
||||
} G_STMT_END
|
||||
|
||||
#define GDK_RGB16_STORE_RGB0_NATIVE(p, r, g, b, a) G_STMT_START { \
|
||||
#define GDK_RGB16_STORE_8880_BR(p, r, g, b, a) G_STMT_START { \
|
||||
guint32 pixel__ = (((b) >> 8) << 16) | \
|
||||
(((g) >> 8) << 8) | \
|
||||
((r) >> 8); \
|
||||
|
|
@ -4115,7 +4116,7 @@ gdk_rgb_get_info_from_drawable (GdkDrawable *drawable)
|
|||
(p) += 2; \
|
||||
} G_STMT_END
|
||||
|
||||
#define GDK_RGB16_STORE_101010_R_LOW_LE(p, r, g, b, a) \
|
||||
#define GDK_RGB16_STORE_101010_R_LOW_LSB(p, r, g, b, a) \
|
||||
G_STMT_START { \
|
||||
guint32 pixel__ = (a) | \
|
||||
(((b) >> 6) << 20) | \
|
||||
|
|
@ -4126,7 +4127,7 @@ G_STMT_START { \
|
|||
(p) += 4; \
|
||||
} G_STMT_END
|
||||
|
||||
#define GDK_RGB16_STORE_101010_B_LOW_LE(p, r, g, b, a) \
|
||||
#define GDK_RGB16_STORE_101010_B_LOW_LSB(p, r, g, b, a) \
|
||||
G_STMT_START { \
|
||||
guint32 pixel__ = (a) | \
|
||||
(((r) >> 6) << 20) | \
|
||||
|
|
@ -4137,7 +4138,7 @@ G_STMT_START { \
|
|||
(p) += 4; \
|
||||
} G_STMT_END
|
||||
|
||||
#define GDK_RGB16_STORE_101010_R_LOW_BE(p, r, g, b, a) \
|
||||
#define GDK_RGB16_STORE_101010_R_LOW_MSB(p, r, g, b, a) \
|
||||
G_STMT_START { \
|
||||
guint32 pixel__ = (a) | \
|
||||
(((b) >> 6) << 20) | \
|
||||
|
|
@ -4148,7 +4149,7 @@ G_STMT_START { \
|
|||
(p) += 4; \
|
||||
} G_STMT_END
|
||||
|
||||
#define GDK_RGB16_STORE_101010_B_LOW_BE(p, r, g, b, a) \
|
||||
#define GDK_RGB16_STORE_101010_B_LOW_MSB(p, r, g, b, a) \
|
||||
G_STMT_START { \
|
||||
guint32 pixel__ = (a) | \
|
||||
(((r) >> 6) << 20) | \
|
||||
|
|
@ -4220,19 +4221,19 @@ DEFINE_GDK_RGB16_PAIR (rgb, 3, GDK_RGB16_STORE_RGB)
|
|||
DEFINE_GDK_RGB16_PAIR (bgr, 3, GDK_RGB16_STORE_BGR)
|
||||
DEFINE_GDK_RGB16_PAIR (bgra, 4, GDK_RGB16_STORE_BGRA)
|
||||
DEFINE_GDK_RGB16_PAIR (argb, 4, GDK_RGB16_STORE_ARGB)
|
||||
DEFINE_GDK_RGB16_PAIR (rgb0_native, 4, GDK_RGB16_STORE_RGB0_NATIVE)
|
||||
DEFINE_GDK_RGB16_PAIR (8880_br, 4, GDK_RGB16_STORE_8880_BR)
|
||||
DEFINE_GDK_RGB16_PAIR (565, 2, GDK_RGB16_STORE_565)
|
||||
DEFINE_GDK_RGB16_PAIR (565_br, 2, GDK_RGB16_STORE_565_BR)
|
||||
DEFINE_GDK_RGB16_PAIR (555, 2, GDK_RGB16_STORE_555)
|
||||
DEFINE_GDK_RGB16_PAIR (555_br, 2, GDK_RGB16_STORE_555_BR)
|
||||
DEFINE_GDK_RGB16_PAIR (101010_r_low_le, 4,
|
||||
GDK_RGB16_STORE_101010_R_LOW_LE)
|
||||
DEFINE_GDK_RGB16_PAIR (101010_b_low_le, 4,
|
||||
GDK_RGB16_STORE_101010_B_LOW_LE)
|
||||
DEFINE_GDK_RGB16_PAIR (101010_r_low_be, 4,
|
||||
GDK_RGB16_STORE_101010_R_LOW_BE)
|
||||
DEFINE_GDK_RGB16_PAIR (101010_b_low_be, 4,
|
||||
GDK_RGB16_STORE_101010_B_LOW_BE)
|
||||
DEFINE_GDK_RGB16_PAIR (101010_r_low_lsb, 4,
|
||||
GDK_RGB16_STORE_101010_R_LOW_LSB)
|
||||
DEFINE_GDK_RGB16_PAIR (101010_b_low_lsb, 4,
|
||||
GDK_RGB16_STORE_101010_B_LOW_LSB)
|
||||
DEFINE_GDK_RGB16_PAIR (101010_r_low_msb, 4,
|
||||
GDK_RGB16_STORE_101010_R_LOW_MSB)
|
||||
DEFINE_GDK_RGB16_PAIR (101010_b_low_msb, 4,
|
||||
GDK_RGB16_STORE_101010_B_LOW_MSB)
|
||||
|
||||
#undef DEFINE_GDK_RGB16_PAIR
|
||||
#undef DEFINE_GDK_RGB16_CONVERTER
|
||||
|
|
@ -4241,15 +4242,15 @@ DEFINE_GDK_RGB16_PAIR (101010_b_low_be, 4,
|
|||
#undef GDK_RGB16_STORE_BGR
|
||||
#undef GDK_RGB16_STORE_BGRA
|
||||
#undef GDK_RGB16_STORE_ARGB
|
||||
#undef GDK_RGB16_STORE_RGB0_NATIVE
|
||||
#undef GDK_RGB16_STORE_8880_BR
|
||||
#undef GDK_RGB16_STORE_565
|
||||
#undef GDK_RGB16_STORE_565_BR
|
||||
#undef GDK_RGB16_STORE_555
|
||||
#undef GDK_RGB16_STORE_555_BR
|
||||
#undef GDK_RGB16_STORE_101010_R_LOW_LE
|
||||
#undef GDK_RGB16_STORE_101010_B_LOW_LE
|
||||
#undef GDK_RGB16_STORE_101010_R_LOW_BE
|
||||
#undef GDK_RGB16_STORE_101010_B_LOW_BE
|
||||
#undef GDK_RGB16_STORE_101010_R_LOW_LSB
|
||||
#undef GDK_RGB16_STORE_101010_B_LOW_LSB
|
||||
#undef GDK_RGB16_STORE_101010_R_LOW_MSB
|
||||
#undef GDK_RGB16_STORE_101010_B_LOW_MSB
|
||||
|
||||
|
||||
static void
|
||||
|
|
@ -4416,20 +4417,20 @@ gdk_rgb16_select_converter (GdkRgbInfo *image_info,
|
|||
case GDK_RGB_FORMAT_0888_BR:
|
||||
SELECT_PAIR (argb);
|
||||
|
||||
case GDK_RGB_FORMAT_RGB0_NATIVE:
|
||||
SELECT_PAIR (rgb0_native);
|
||||
case GDK_RGB_FORMAT_8880_BR:
|
||||
SELECT_PAIR (8880_br);
|
||||
|
||||
case GDK_RGB_FORMAT_101010_R_LOW_LE:
|
||||
SELECT_PAIR (101010_r_low_le);
|
||||
case GDK_RGB_FORMAT_101010_R_LOW_LSB:
|
||||
SELECT_PAIR (101010_r_low_lsb);
|
||||
|
||||
case GDK_RGB_FORMAT_101010_B_LOW_LE:
|
||||
SELECT_PAIR (101010_b_low_le);
|
||||
case GDK_RGB_FORMAT_101010_B_LOW_LSB:
|
||||
SELECT_PAIR (101010_b_low_lsb);
|
||||
|
||||
case GDK_RGB_FORMAT_101010_R_LOW_BE:
|
||||
SELECT_PAIR (101010_r_low_be);
|
||||
case GDK_RGB_FORMAT_101010_R_LOW_MSB:
|
||||
SELECT_PAIR (101010_r_low_msb);
|
||||
|
||||
case GDK_RGB_FORMAT_101010_B_LOW_BE:
|
||||
SELECT_PAIR (101010_b_low_be);
|
||||
case GDK_RGB_FORMAT_101010_B_LOW_MSB:
|
||||
SELECT_PAIR (101010_b_low_msb);
|
||||
|
||||
default:
|
||||
break;
|
||||
|
|
|
|||
Loading…
Reference in a new issue