xref: /qemu/include/ui/qemu-pixman.h (revision 092bb3068801bd6bfc90fcced2661e77bb811764)
1daa8e5a0SGerd Hoffmann /*
2daa8e5a0SGerd Hoffmann  * This work is licensed under the terms of the GNU GPL, version 2 or later.
3daa8e5a0SGerd Hoffmann  * See the COPYING file in the top-level directory.
4daa8e5a0SGerd Hoffmann  */
5daa8e5a0SGerd Hoffmann 
6d2ec7e24SGerd Hoffmann #ifndef QEMU_PIXMAN_H
7d2ec7e24SGerd Hoffmann #define QEMU_PIXMAN_H
8d2ec7e24SGerd Hoffmann 
9*092bb306SGerd Hoffmann /* pixman-0.16.0 headers have a redundant declaration */
10*092bb306SGerd Hoffmann #ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE
11*092bb306SGerd Hoffmann #pragma GCC diagnostic ignored "-Wredundant-decls"
12*092bb306SGerd Hoffmann #endif
13d2ec7e24SGerd Hoffmann #include <pixman.h>
14*092bb306SGerd Hoffmann #ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE
15*092bb306SGerd Hoffmann #pragma GCC diagnostic error "-Wredundant-decls"
16*092bb306SGerd Hoffmann #endif
17d2ec7e24SGerd Hoffmann 
18d2ec7e24SGerd Hoffmann #include "console.h"
19d2ec7e24SGerd Hoffmann 
20d2ec7e24SGerd Hoffmann /*
21d2ec7e24SGerd Hoffmann  * pixman image formats are defined to be native endian,
22d2ec7e24SGerd Hoffmann  * that means host byte order on qemu.  So we go define
23d2ec7e24SGerd Hoffmann  * fixed formats here for cases where it is needed, like
24d2ec7e24SGerd Hoffmann  * feeding libjpeg / libpng and writing screenshots.
25d2ec7e24SGerd Hoffmann  */
26d2ec7e24SGerd Hoffmann 
27d2ec7e24SGerd Hoffmann #ifdef HOST_WORDS_BIGENDIAN
28d2ec7e24SGerd Hoffmann # define PIXMAN_BE_r8g8b8     PIXMAN_r8g8b8
29d2ec7e24SGerd Hoffmann #else
30d2ec7e24SGerd Hoffmann # define PIXMAN_BE_r8g8b8     PIXMAN_b8g8r8
31d2ec7e24SGerd Hoffmann #endif
32d2ec7e24SGerd Hoffmann 
33d2ec7e24SGerd Hoffmann /* -------------------------------------------------------------------- */
34d2ec7e24SGerd Hoffmann 
35d2ec7e24SGerd Hoffmann int qemu_pixman_get_type(int rshift, int gshift, int bshift);
36d2ec7e24SGerd Hoffmann pixman_format_code_t qemu_pixman_get_format(PixelFormat *pf);
37d2ec7e24SGerd Hoffmann 
38d2ec7e24SGerd Hoffmann pixman_image_t *qemu_pixman_linebuf_create(pixman_format_code_t format,
39d2ec7e24SGerd Hoffmann                                            int width);
40d2ec7e24SGerd Hoffmann void qemu_pixman_linebuf_fill(pixman_image_t *linebuf, pixman_image_t *fb,
41bc210eb1SGerd Hoffmann                               int width, int x, int y);
42d9a86569SGerd Hoffmann pixman_image_t *qemu_pixman_mirror_create(pixman_format_code_t format,
43d9a86569SGerd Hoffmann                                           pixman_image_t *image);
44d2ec7e24SGerd Hoffmann void qemu_pixman_image_unref(pixman_image_t *image);
45d2ec7e24SGerd Hoffmann 
46d2ec7e24SGerd Hoffmann #endif /* QEMU_PIXMAN_H */
47