mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-05-05 20:28:02 +02:00
Silence enumeration warnings following addition of RGB16_565
This commit is contained in:
parent
d901692a55
commit
7ab350378e
18 changed files with 113 additions and 5 deletions
|
|
@ -106,6 +106,9 @@ _cairo_debug_check_image_surface_is_defined (const cairo_surface_t *surface)
|
|||
case CAIRO_FORMAT_A8:
|
||||
width = image->width;
|
||||
break;
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
width = image->width*2;
|
||||
break;
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
case CAIRO_FORMAT_ARGB32:
|
||||
width = image->width*4;
|
||||
|
|
|
|||
|
|
@ -154,6 +154,7 @@ cairo_gl_context_get_glyph_cache (cairo_gl_context_t *ctx,
|
|||
cairo_gl_glyph_cache_t *cache;
|
||||
|
||||
switch (format) {
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
case CAIRO_FORMAT_ARGB32:
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
cache = &ctx->glyph_cache[0];
|
||||
|
|
@ -177,6 +178,7 @@ cairo_gl_context_get_glyph_cache (cairo_gl_context_t *ctx,
|
|||
|
||||
switch (format) {
|
||||
case CAIRO_FORMAT_A1:
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
ASSERT_NOT_REACHED;
|
||||
case CAIRO_FORMAT_ARGB32:
|
||||
|
|
|
|||
|
|
@ -231,6 +231,7 @@ write_png (cairo_surface_t *surface,
|
|||
#endif
|
||||
break;
|
||||
case CAIRO_FORMAT_INVALID:
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
default:
|
||||
status = _cairo_error (CAIRO_STATUS_INVALID_FORMAT);
|
||||
goto BAIL4;
|
||||
|
|
|
|||
|
|
@ -306,6 +306,8 @@ _qimage_format_from_cairo_format (cairo_format_t fmt)
|
|||
return QImage::Format_ARGB32_Premultiplied;
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
return QImage::Format_RGB32;
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
return QImage::Format_RGB16;
|
||||
case CAIRO_FORMAT_A8:
|
||||
return QImage::Format_Indexed8; // XXX not quite
|
||||
case CAIRO_FORMAT_A1:
|
||||
|
|
|
|||
|
|
@ -2148,6 +2148,7 @@ _cairo_scaled_font_show_glyphs (cairo_scaled_font_t *scaled_font,
|
|||
case CAIRO_FORMAT_A1:
|
||||
mask_format = glyph_surface->format;
|
||||
break;
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
case CAIRO_FORMAT_INVALID:
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -828,6 +828,7 @@ _format_to_string (cairo_format_t format)
|
|||
switch (format) {
|
||||
case CAIRO_FORMAT_ARGB32: return "ARGB32";
|
||||
case CAIRO_FORMAT_RGB24: return "RGB24";
|
||||
case CAIRO_FORMAT_RGB16_565: return "RGB16_565";
|
||||
case CAIRO_FORMAT_A8: return "A8";
|
||||
case CAIRO_FORMAT_A1: return "A1";
|
||||
case CAIRO_FORMAT_INVALID: return "INVALID";
|
||||
|
|
@ -1095,6 +1096,17 @@ _write_image_surface (cairo_output_stream_t *output,
|
|||
data += stride;
|
||||
}
|
||||
break;
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
for (row = image->height; row--; ) {
|
||||
uint16_t *src = (uint16_t *) data;
|
||||
uint16_t *dst = (uint16_t *) rowdata;
|
||||
int col;
|
||||
for (col = 0; col < width; col++)
|
||||
dst[col] = bswap_16 (src[col]);
|
||||
_cairo_output_stream_write (output, rowdata, 2*width);
|
||||
data += stride;
|
||||
}
|
||||
break;
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
for (row = image->height; row--; ) {
|
||||
uint8_t *src = data;
|
||||
|
|
@ -1235,6 +1247,9 @@ _emit_image_surface (cairo_script_surface_t *surface,
|
|||
case CAIRO_FORMAT_A8:
|
||||
len = clone->width;
|
||||
break;
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
len = clone->width * 2;
|
||||
break;
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
len = clone->width * 3;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -3854,7 +3854,9 @@ _cairo_xcb_scaled_font_get_glyphset_info_for_format (cairo_scaled_font_t *scaled
|
|||
switch (format) {
|
||||
default:
|
||||
case CAIRO_FORMAT_INVALID:
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
ASSERT_NOT_REACHED;
|
||||
case CAIRO_FORMAT_ARGB32: glyphset_index = GLYPHSET_INDEX_ARGB32; break;
|
||||
case CAIRO_FORMAT_A8: glyphset_index = GLYPHSET_INDEX_A8; break;
|
||||
case CAIRO_FORMAT_A1: glyphset_index = GLYPHSET_INDEX_A1; break;
|
||||
|
|
@ -3918,7 +3920,9 @@ _cairo_xcb_scaled_font_get_glyphset_info_for_pending_free_glyph (
|
|||
switch (surface->format) {
|
||||
default:
|
||||
case CAIRO_FORMAT_INVALID:
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
ASSERT_NOT_REACHED;
|
||||
case CAIRO_FORMAT_ARGB32: i = GLYPHSET_INDEX_ARGB32; break;
|
||||
case CAIRO_FORMAT_A8: i = GLYPHSET_INDEX_A8; break;
|
||||
case CAIRO_FORMAT_A1: i = GLYPHSET_INDEX_A1; break;
|
||||
|
|
@ -4083,6 +4087,7 @@ _cairo_xcb_surface_add_glyph (cairo_xcb_connection_t *connection,
|
|||
}
|
||||
break;
|
||||
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
case CAIRO_FORMAT_INVALID:
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -3752,7 +3752,9 @@ _cairo_xlib_scaled_font_get_glyphset_info_for_format (cairo_scaled_font_t *scale
|
|||
switch (format) {
|
||||
default:
|
||||
case CAIRO_FORMAT_INVALID:
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
ASSERT_NOT_REACHED;
|
||||
case CAIRO_FORMAT_ARGB32: glyphset_index = GLYPHSET_INDEX_ARGB32; break;
|
||||
case CAIRO_FORMAT_A8: glyphset_index = GLYPHSET_INDEX_A8; break;
|
||||
case CAIRO_FORMAT_A1: glyphset_index = GLYPHSET_INDEX_A1; break;
|
||||
|
|
@ -3814,7 +3816,9 @@ _cairo_xlib_scaled_font_get_glyphset_info_for_pending_free_glyph (
|
|||
switch (surface->format) {
|
||||
default:
|
||||
case CAIRO_FORMAT_INVALID:
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
ASSERT_NOT_REACHED;
|
||||
case CAIRO_FORMAT_ARGB32: i = GLYPHSET_INDEX_ARGB32; break;
|
||||
case CAIRO_FORMAT_A8: i = GLYPHSET_INDEX_A8; break;
|
||||
case CAIRO_FORMAT_A1: i = GLYPHSET_INDEX_A1; break;
|
||||
|
|
@ -4002,6 +4006,7 @@ _cairo_xlib_surface_add_glyph (Display *dpy,
|
|||
data = (uint8_t *) new;
|
||||
}
|
||||
break;
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
case CAIRO_FORMAT_INVALID:
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -206,6 +206,7 @@ _format_to_string (cairo_format_t format)
|
|||
switch (format) {
|
||||
case CAIRO_FORMAT_ARGB32: return "ARGB32";
|
||||
case CAIRO_FORMAT_RGB24: return "RGB24";
|
||||
case CAIRO_FORMAT_RGB16_565: return "RGB16_565";
|
||||
case CAIRO_FORMAT_A8: return "A8";
|
||||
case CAIRO_FORMAT_A1: return "A1";
|
||||
case CAIRO_FORMAT_INVALID: return "INVALID";
|
||||
|
|
|
|||
|
|
@ -1600,6 +1600,7 @@ i915_surface_create_for_name (cairo_drm_device_t *base_dev,
|
|||
case CAIRO_FORMAT_ARGB32:
|
||||
content = CAIRO_CONTENT_COLOR_ALPHA;
|
||||
break;
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
content = CAIRO_CONTENT_COLOR;
|
||||
break;
|
||||
|
|
@ -1655,6 +1656,7 @@ i915_buffer_cache_init (intel_buffer_cache_t *cache,
|
|||
case CAIRO_FORMAT_INVALID:
|
||||
case CAIRO_FORMAT_A1:
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
ASSERT_NOT_REACHED;
|
||||
case CAIRO_FORMAT_ARGB32:
|
||||
cache->buffer.map0 = MAPSURF_32BIT | MT_32BIT_ARGB8888;
|
||||
|
|
@ -1734,6 +1736,7 @@ i915_surface_create_from_cacheable_image_internal (i915_device_t *device,
|
|||
switch (image->format) {
|
||||
case CAIRO_FORMAT_ARGB32:
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
caches = &device->image_caches[0];
|
||||
format = CAIRO_FORMAT_ARGB32;
|
||||
bpp = 4;
|
||||
|
|
|
|||
|
|
@ -2073,6 +2073,8 @@ i965_get_card_format (cairo_format_t format)
|
|||
return BRW_SURFACEFORMAT_B8G8R8A8_UNORM;
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
return BRW_SURFACEFORMAT_B8G8R8X8_UNORM;
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
return BRW_SURFACEFORMAT_B5G6R5_UNORM;
|
||||
case CAIRO_FORMAT_A8:
|
||||
return BRW_SURFACEFORMAT_A8_UNORM;
|
||||
case CAIRO_FORMAT_A1:
|
||||
|
|
@ -2090,6 +2092,8 @@ i965_get_dest_format (cairo_format_t format)
|
|||
case CAIRO_FORMAT_ARGB32:
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
return BRW_SURFACEFORMAT_B8G8R8A8_UNORM;
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
return BRW_SURFACEFORMAT_B5G6R5_UNORM;
|
||||
case CAIRO_FORMAT_A8:
|
||||
return BRW_SURFACEFORMAT_A8_UNORM;
|
||||
case CAIRO_FORMAT_A1:
|
||||
|
|
|
|||
|
|
@ -1612,6 +1612,7 @@ i965_surface_create_for_name (cairo_drm_device_t *base_dev,
|
|||
case CAIRO_FORMAT_ARGB32:
|
||||
content = CAIRO_CONTENT_COLOR_ALPHA;
|
||||
break;
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
content = CAIRO_CONTENT_COLOR;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -356,6 +356,7 @@ intel_surface_create_for_name (cairo_drm_device_t *device,
|
|||
case CAIRO_FORMAT_ARGB32:
|
||||
content = CAIRO_CONTENT_COLOR_ALPHA;
|
||||
break;
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
content = CAIRO_CONTENT_COLOR;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -714,6 +714,11 @@ intel_bo_put_image (intel_device_t *dev,
|
|||
data += 4 * src_x;
|
||||
size = 4 * width;
|
||||
break;
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
offset += 2 * dst_x;
|
||||
data += 2 * src_x;
|
||||
size = 2 * width;
|
||||
break;
|
||||
case CAIRO_FORMAT_A8:
|
||||
offset += dst_x;
|
||||
data += src_x;
|
||||
|
|
@ -1029,7 +1034,6 @@ intel_glyph_cache_add_glyph (intel_device_t *device,
|
|||
}
|
||||
break;
|
||||
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
case CAIRO_FORMAT_ARGB32:
|
||||
dst += 4*node->x;
|
||||
width = 4*glyph_surface->width;
|
||||
|
|
@ -1040,6 +1044,8 @@ intel_glyph_cache_add_glyph (intel_device_t *device,
|
|||
}
|
||||
break;
|
||||
default:
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
case CAIRO_FORMAT_INVALID:
|
||||
ASSERT_NOT_REACHED;
|
||||
return _cairo_error (CAIRO_STATUS_INVALID_FORMAT);
|
||||
|
|
@ -1101,7 +1107,6 @@ intel_get_glyph_cache (intel_device_t *device,
|
|||
|
||||
switch (format) {
|
||||
case CAIRO_FORMAT_ARGB32:
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
cache = &device->glyph_cache[0];
|
||||
format = CAIRO_FORMAT_ARGB32;
|
||||
break;
|
||||
|
|
@ -1111,6 +1116,8 @@ intel_get_glyph_cache (intel_device_t *device,
|
|||
format = CAIRO_FORMAT_A8;
|
||||
break;
|
||||
default:
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
case CAIRO_FORMAT_INVALID:
|
||||
ASSERT_NOT_REACHED;
|
||||
return _cairo_error (CAIRO_STATUS_INVALID_FORMAT);
|
||||
|
|
@ -1227,6 +1234,7 @@ intel_buffer_cache_init (intel_buffer_cache_t *cache,
|
|||
|
||||
switch (format) {
|
||||
case CAIRO_FORMAT_A1:
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
case CAIRO_FORMAT_INVALID:
|
||||
ASSERT_NOT_REACHED;
|
||||
|
|
|
|||
|
|
@ -370,6 +370,7 @@ radeon_surface_create_for_name (cairo_drm_device_t *device,
|
|||
default:
|
||||
case CAIRO_FORMAT_INVALID:
|
||||
case CAIRO_FORMAT_A1:
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_INVALID_FORMAT));
|
||||
case CAIRO_FORMAT_ARGB32:
|
||||
content = CAIRO_CONTENT_COLOR_ALPHA;
|
||||
|
|
|
|||
|
|
@ -2840,6 +2840,9 @@ _image_read_raw (csi_file_t *src,
|
|||
case CAIRO_FORMAT_A8:
|
||||
len = width * height;
|
||||
break;
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
len = 2 * width * height;
|
||||
break;
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
len = 3 * width * height;
|
||||
break;
|
||||
|
|
@ -2880,6 +2883,17 @@ _image_read_raw (csi_file_t *src,
|
|||
for (x = width; x--; )
|
||||
row[x] = *--bp;
|
||||
break;
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
for (x = width; x--; ) {
|
||||
#ifdef WORDS_BIGENDIAN
|
||||
row[2*x + 1] = *--bp;
|
||||
row[2*x + 0] = *--bp;
|
||||
#else
|
||||
row[2*x + 0] = *--bp;
|
||||
row[2*x + 1] = *--bp;
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
for (x = width; x--; ) {
|
||||
#ifdef WORDS_BIGENDIAN
|
||||
|
|
@ -2914,6 +2928,17 @@ _image_read_raw (csi_file_t *src,
|
|||
for (x = width; x--; )
|
||||
data[x] = *--bp;
|
||||
break;
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
for (x = width; x--; ) {
|
||||
#ifdef WORDS_BIGENDIAN
|
||||
data[2*x + 1] = *--bp;
|
||||
data[2*x + 0] = *--bp;
|
||||
#else
|
||||
data[2*x + 0] = *--bp;
|
||||
data[2*x + 1] = *--bp;
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
for (x = width; --x>1; ) {
|
||||
#ifdef WORDS_BIGENDIAN
|
||||
|
|
@ -2984,6 +3009,14 @@ _image_read_raw (csi_file_t *src,
|
|||
data[x] = CSI_BITSWAP8_IF_LITTLE_ENDIAN (byte);
|
||||
}
|
||||
break;
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
{
|
||||
uint32_t *rgba = (uint32_t *) data;
|
||||
for (x = len/2; x--; rgba++) {
|
||||
*rgba = bswap_16 (*rgba);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case CAIRO_FORMAT_ARGB32:
|
||||
{
|
||||
uint32_t *rgba = (uint32_t *) data;
|
||||
|
|
@ -5221,6 +5254,7 @@ _similar (csi_t *ctx)
|
|||
case CAIRO_FORMAT_ARGB32:
|
||||
content = CAIRO_CONTENT_COLOR_ALPHA;
|
||||
break;
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
content = CAIRO_CONTENT_COLOR;
|
||||
break;
|
||||
|
|
@ -6140,6 +6174,7 @@ _integer_constants[] = {
|
|||
|
||||
{ "A1", CAIRO_FORMAT_A1 },
|
||||
{ "A8", CAIRO_FORMAT_A8 },
|
||||
{ "RGB16_565", CAIRO_FORMAT_RGB16_565 },
|
||||
{ "RGB24", CAIRO_FORMAT_RGB24 },
|
||||
{ "ARGB32", CAIRO_FORMAT_ARGB32 },
|
||||
{ "INVALID", CAIRO_FORMAT_INVALID },
|
||||
|
|
|
|||
|
|
@ -620,6 +620,7 @@ compare_images (cairo_surface_t *a,
|
|||
break;
|
||||
|
||||
case CAIRO_FORMAT_INVALID:
|
||||
case CAIRO_FORMAT_RGB16_565: /* XXX */
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1442,6 +1442,7 @@ _format_to_string (cairo_format_t format)
|
|||
f(INVALID);
|
||||
f(ARGB32);
|
||||
f(RGB24);
|
||||
f(RGB16_565);
|
||||
f(A8);
|
||||
f(A1);
|
||||
}
|
||||
|
|
@ -1567,9 +1568,10 @@ _emit_image (cairo_surface_t *image,
|
|||
}
|
||||
|
||||
switch (format) {
|
||||
case CAIRO_FORMAT_A1: len = (width + 7)/8; break;
|
||||
case CAIRO_FORMAT_A8: len = width; break;
|
||||
case CAIRO_FORMAT_RGB24: len = 3*width; break;
|
||||
case CAIRO_FORMAT_A1: len = (width + 7)/8; break;
|
||||
case CAIRO_FORMAT_A8: len = width; break;
|
||||
case CAIRO_FORMAT_RGB16_565: len = 2*width; break;
|
||||
case CAIRO_FORMAT_RGB24: len = 3*width; break;
|
||||
default:
|
||||
case CAIRO_FORMAT_INVALID:
|
||||
case CAIRO_FORMAT_ARGB32: len = 4*width; break;
|
||||
|
|
@ -1592,6 +1594,12 @@ _emit_image (cairo_surface_t *image,
|
|||
data += stride;
|
||||
}
|
||||
break;
|
||||
case CAIRO_FORMAT_RGB16_565:
|
||||
for (row = height; row--; ) {
|
||||
_write_data (&stream, data, 2*width);
|
||||
data += stride;
|
||||
}
|
||||
break;
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
for (row = height; row--; ) {
|
||||
int col;
|
||||
|
|
@ -1637,6 +1645,17 @@ _emit_image (cairo_surface_t *image,
|
|||
data += stride;
|
||||
}
|
||||
break;
|
||||
case CAIRO_FORMAT_RGB16_565: /* XXX endianness */
|
||||
for (row = height; row--; ) {
|
||||
uint16_t *src = data;
|
||||
uint16_t *dst = (uint16_t *)rowdata;
|
||||
int col;
|
||||
for (col = 0; col < width; col++)
|
||||
dst[col] = bswap_16 (src[col]);
|
||||
_write_data (&stream, rowdata, 2*width);
|
||||
data += stride;
|
||||
}
|
||||
break;
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
for (row = height; row--; ) {
|
||||
uint8_t *src = data;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue