mirror of
https://gitlab.gnome.org/GNOME/libmks.git
synced 2024-12-22 13:45:21 +00:00
lib: add pixman format conversion to cairo format
This commit is contained in:
parent
35d99a50b1
commit
204271fafd
@ -25,6 +25,7 @@
|
|||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
|
|
||||||
#include <glib/gstdio.h>
|
#include <glib/gstdio.h>
|
||||||
|
#include <pixman.h>
|
||||||
|
|
||||||
#include "mks-paintable-private.h"
|
#include "mks-paintable-private.h"
|
||||||
#include "mks-qemu.h"
|
#include "mks-qemu.h"
|
||||||
@ -40,6 +41,32 @@ struct _MksPaintable
|
|||||||
GDBusConnection *connection;
|
GDBusConnection *connection;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static cairo_format_t
|
||||||
|
_pixman_format_to_cairo_format (guint pixman_format)
|
||||||
|
{
|
||||||
|
switch (pixman_format)
|
||||||
|
{
|
||||||
|
case PIXMAN_rgba_float:
|
||||||
|
return CAIRO_FORMAT_RGBA128F;
|
||||||
|
case PIXMAN_rgb_float:
|
||||||
|
return CAIRO_FORMAT_RGB96F;
|
||||||
|
case PIXMAN_a8r8g8b8:
|
||||||
|
return CAIRO_FORMAT_ARGB32;
|
||||||
|
case PIXMAN_x2r10g10b10:
|
||||||
|
return CAIRO_FORMAT_RGB30;
|
||||||
|
case PIXMAN_x8r8g8b8:
|
||||||
|
return CAIRO_FORMAT_RGB24;
|
||||||
|
case PIXMAN_a8:
|
||||||
|
return CAIRO_FORMAT_A8;
|
||||||
|
case PIXMAN_a1:
|
||||||
|
return CAIRO_FORMAT_A1;
|
||||||
|
case PIXMAN_r5g6b5:
|
||||||
|
return CAIRO_FORMAT_RGB16_565;
|
||||||
|
default:
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
mks_paintable_get_intrinsic_height (GdkPaintable *paintable)
|
mks_paintable_get_intrinsic_height (GdkPaintable *paintable)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user