xref: /qemu/include/ui/qemu-pixman.h (revision d2ec7e24a270ba72a151b506ac57c6cd21e3c587)
1*d2ec7e24SGerd Hoffmann #ifndef QEMU_PIXMAN_H
2*d2ec7e24SGerd Hoffmann #define QEMU_PIXMAN_H
3*d2ec7e24SGerd Hoffmann 
4*d2ec7e24SGerd Hoffmann #include <pixman.h>
5*d2ec7e24SGerd Hoffmann 
6*d2ec7e24SGerd Hoffmann #include "console.h"
7*d2ec7e24SGerd Hoffmann 
8*d2ec7e24SGerd Hoffmann /*
9*d2ec7e24SGerd Hoffmann  * pixman image formats are defined to be native endian,
10*d2ec7e24SGerd Hoffmann  * that means host byte order on qemu.  So we go define
11*d2ec7e24SGerd Hoffmann  * fixed formats here for cases where it is needed, like
12*d2ec7e24SGerd Hoffmann  * feeding libjpeg / libpng and writing screenshots.
13*d2ec7e24SGerd Hoffmann  */
14*d2ec7e24SGerd Hoffmann 
15*d2ec7e24SGerd Hoffmann #ifdef HOST_WORDS_BIGENDIAN
16*d2ec7e24SGerd Hoffmann # define PIXMAN_BE_r8g8b8     PIXMAN_r8g8b8
17*d2ec7e24SGerd Hoffmann #else
18*d2ec7e24SGerd Hoffmann # define PIXMAN_BE_r8g8b8     PIXMAN_b8g8r8
19*d2ec7e24SGerd Hoffmann #endif
20*d2ec7e24SGerd Hoffmann 
21*d2ec7e24SGerd Hoffmann /* -------------------------------------------------------------------- */
22*d2ec7e24SGerd Hoffmann 
23*d2ec7e24SGerd Hoffmann int qemu_pixman_get_type(int rshift, int gshift, int bshift);
24*d2ec7e24SGerd Hoffmann pixman_format_code_t qemu_pixman_get_format(PixelFormat *pf);
25*d2ec7e24SGerd Hoffmann 
26*d2ec7e24SGerd Hoffmann pixman_image_t *qemu_pixman_linebuf_create(pixman_format_code_t format,
27*d2ec7e24SGerd Hoffmann                                            int width);
28*d2ec7e24SGerd Hoffmann void qemu_pixman_linebuf_fill(pixman_image_t *linebuf, pixman_image_t *fb,
29*d2ec7e24SGerd Hoffmann                               int width, int y);
30*d2ec7e24SGerd Hoffmann void qemu_pixman_image_unref(pixman_image_t *image);
31*d2ec7e24SGerd Hoffmann 
32*d2ec7e24SGerd Hoffmann #endif /* QEMU_PIXMAN_H */
33