diff options
Diffstat (limited to 'Build/source/libs/cairo/cairo-1.12.16/src/cairo-xlib-private.h')
-rw-r--r-- | Build/source/libs/cairo/cairo-1.12.16/src/cairo-xlib-private.h | 468 |
1 files changed, 0 insertions, 468 deletions
diff --git a/Build/source/libs/cairo/cairo-1.12.16/src/cairo-xlib-private.h b/Build/source/libs/cairo/cairo-1.12.16/src/cairo-xlib-private.h deleted file mode 100644 index 4fd725f9331..00000000000 --- a/Build/source/libs/cairo/cairo-1.12.16/src/cairo-xlib-private.h +++ /dev/null @@ -1,468 +0,0 @@ -/* Cairo - a vector graphics library with display and print output - * - * Copyright © 2005 Red Hat, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it either under the terms of the GNU Lesser General Public - * License version 2.1 as published by the Free Software Foundation - * (the "LGPL") or, at your option, under the terms of the Mozilla - * Public License Version 1.1 (the "MPL"). If you do not alter this - * notice, a recipient may use your version of this file under either - * the MPL or the LGPL. - * - * You should have received a copy of the LGPL along with this library - * in the file COPYING-LGPL-2.1; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA - * You should have received a copy of the MPL along with this library - * in the file COPYING-MPL-1.1 - * - * The contents of this file are subject to the Mozilla Public License - * Version 1.1 (the "License"); you may not use this file except in - * compliance with the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY - * OF ANY KIND, either express or implied. See the LGPL or the MPL for - * the specific language governing rights and limitations. - * - * The Original Code is the cairo graphics library. - * - * The Initial Developer of the Original Code is Red Hat, Inc. - * - * Contributors(s): - * Chris Wilson <chris@chris-wilson.co.uk> - * Karl Tomlinson <karlt+@karlt.net>, Mozilla Corporation - */ - -#ifndef CAIRO_XLIB_PRIVATE_H -#define CAIRO_XLIB_PRIVATE_H - -#include "cairo-xlib.h" -#include "cairo-xlib-xrender-private.h" - -#include "cairo-compiler-private.h" -#include "cairo-device-private.h" -#include "cairo-freelist-type-private.h" -#include "cairo-list-private.h" -#include "cairo-reference-count-private.h" -#include "cairo-types-private.h" -#include "cairo-scaled-font-private.h" -#include "cairo-surface-private.h" - -#include <pixman.h> -#include <string.h> - -typedef struct _cairo_xlib_display cairo_xlib_display_t; -typedef struct _cairo_xlib_shm_display cairo_xlib_shm_display_t; -typedef struct _cairo_xlib_screen cairo_xlib_screen_t; -typedef struct _cairo_xlib_source cairo_xlib_source_t; -typedef struct _cairo_xlib_proxy cairo_xlib_proxy_t; -typedef struct _cairo_xlib_surface cairo_xlib_surface_t; - -/* size of color cube */ -#define CUBE_SIZE 6 -/* size of gray ramp */ -#define RAMP_SIZE 16 -/* maximum number of cached GC's */ -#define GC_CACHE_SIZE 4 - -struct _cairo_xlib_display { - cairo_device_t base; - - cairo_xlib_display_t *next; - - Display *display; - cairo_list_t screens; - cairo_list_t fonts; - - cairo_xlib_shm_display_t *shm; - - const cairo_compositor_t *compositor; - - int render_major; - int render_minor; - XRenderPictFormat *cached_xrender_formats[CAIRO_FORMAT_RGB16_565 + 1]; - - int force_precision; - - cairo_surface_t *white; - cairo_surface_t *alpha[256]; - cairo_surface_t *solid[32]; - uint32_t solid_cache[32]; /* low 16 are opaque, high 16 transparent */ - struct { - uint32_t color; - int index; - } last_solid_cache[2]; - - /* TRUE if the server has a bug with repeating pictures - * - * https://bugs.freedesktop.org/show_bug.cgi?id=3566 - * - * We can't test for this because it depends on whether the - * picture is in video memory or not. - * - * We also use this variable as a guard against a second - * independent bug with transformed repeating pictures: - * - * http://lists.freedesktop.org/archives/cairo/2004-September/001839.html - * - * Both are fixed in xorg >= 6.9 and hopefully in > 6.8.2, so - * we can reuse the test for now. - */ - unsigned int buggy_gradients : 1; - unsigned int buggy_pad_reflect : 1; - unsigned int buggy_repeat : 1; - unsigned int closed :1; -}; - -typedef struct _cairo_xlib_visual_info { - cairo_list_t link; - VisualID visualid; - struct { uint8_t a, r, g, b; } colors[256]; - uint8_t cube_to_pseudocolor[CUBE_SIZE][CUBE_SIZE][CUBE_SIZE]; - uint8_t field8_to_cube[256]; - int8_t dither8_to_cube[256]; - uint8_t gray8_to_pseudocolor[256]; -} cairo_xlib_visual_info_t; - -struct _cairo_xlib_screen { - cairo_list_t link; - - cairo_device_t *device; - Screen *screen; - - cairo_list_t surfaces; - - cairo_bool_t has_font_options; - cairo_font_options_t font_options; - - GC gc[GC_CACHE_SIZE]; - uint8_t gc_depths[GC_CACHE_SIZE]; - - cairo_list_t visuals; -}; - -enum { - GLYPHSET_INDEX_ARGB32, - GLYPHSET_INDEX_A8, - GLYPHSET_INDEX_A1, - NUM_GLYPHSETS -}; - -typedef struct _cairo_xlib_font_glyphset { - GlyphSet glyphset; - cairo_format_t format; - XRenderPictFormat *xrender_format; - struct _cairo_xlib_font_glyphset_free_glyphs { - int count; - unsigned long indices[128]; - } to_free; -} cairo_xlib_font_glyphset_t; - -typedef struct _cairo_xlib_font { - cairo_scaled_font_private_t base; - cairo_scaled_font_t *font; - cairo_device_t *device; - cairo_list_t link; - cairo_xlib_font_glyphset_t glyphset[NUM_GLYPHSETS]; -} cairo_xlib_font_t; - -struct _cairo_xlib_surface { - cairo_surface_t base; - - Picture picture; - Drawable drawable; - - const cairo_compositor_t *compositor; - cairo_surface_t *shm; - int fallback; - - cairo_xlib_display_t *display; - cairo_xlib_screen_t *screen; - cairo_list_t link; - - Display *dpy; /* only valid between acquire/release */ - cairo_bool_t owns_pixmap; - Visual *visual; - - int use_pixmap; - - int width; - int height; - int depth; - - int precision; - XRenderPictFormat *xrender_format; - /* XXX pixman_format instead of masks? */ - uint32_t a_mask; - uint32_t r_mask; - uint32_t g_mask; - uint32_t b_mask; - - struct _cairo_xlib_source { - cairo_surface_t base; - - Picture picture; - Pixmap pixmap; - Display *dpy; - - unsigned int filter:3; - unsigned int extend:3; - unsigned int has_matrix:1; - unsigned int has_component_alpha:1; - } embedded_source; -}; - -struct _cairo_xlib_proxy { - struct _cairo_xlib_source source; - cairo_surface_t *owner; -}; - -inline static cairo_bool_t -_cairo_xlib_vendor_is_xorg (Display *dpy) -{ - const char *const vendor = ServerVendor (dpy); - return strstr (vendor, "X.Org") || strstr (vendor, "Xorg"); -} - -cairo_private cairo_status_t -_cairo_xlib_surface_get_gc (cairo_xlib_display_t *display, - cairo_xlib_surface_t *surface, - GC *gc); - -cairo_private cairo_device_t * -_cairo_xlib_device_create (Display *display); - -cairo_private void -_cairo_xlib_display_init_shm (cairo_xlib_display_t *display); - -cairo_private void -_cairo_xlib_display_fini_shm (cairo_xlib_display_t *display); - -cairo_private cairo_xlib_screen_t * -_cairo_xlib_display_get_screen (cairo_xlib_display_t *display, - Screen *screen); - -cairo_private cairo_status_t -_cairo_xlib_display_acquire (cairo_device_t *device, - cairo_xlib_display_t **display); - -cairo_private cairo_bool_t -_cairo_xlib_display_has_repeat (cairo_device_t *device); - -cairo_private cairo_bool_t -_cairo_xlib_display_has_reflect (cairo_device_t *device); - -cairo_private cairo_bool_t -_cairo_xlib_display_has_gradients (cairo_device_t *device); - -cairo_private void -_cairo_xlib_display_set_precision(cairo_device_t *device, - int precision); - -cairo_private XRenderPictFormat * -_cairo_xlib_display_get_xrender_format (cairo_xlib_display_t *display, - cairo_format_t format); - -cairo_private XRenderPictFormat * -_cairo_xlib_display_get_xrender_format_for_pixman (cairo_xlib_display_t *display, - pixman_format_code_t format); - -cairo_private cairo_status_t -_cairo_xlib_screen_get (Display *dpy, - Screen *screen, - cairo_xlib_screen_t **out); - -cairo_private void -_cairo_xlib_screen_destroy (cairo_xlib_display_t *display, - cairo_xlib_screen_t *info); - -cairo_private GC -_cairo_xlib_screen_get_gc (cairo_xlib_display_t *display, - cairo_xlib_screen_t *info, - int depth, - Drawable drawable); -cairo_private void -_cairo_xlib_screen_put_gc (cairo_xlib_display_t *display, - cairo_xlib_screen_t *info, - int depth, - GC gc); - -cairo_private cairo_font_options_t * -_cairo_xlib_screen_get_font_options (cairo_xlib_screen_t *info); - -cairo_private cairo_status_t -_cairo_xlib_screen_get_visual_info (cairo_xlib_display_t *display, - cairo_xlib_screen_t *info, - Visual *visual, - cairo_xlib_visual_info_t **out); - -cairo_private cairo_status_t -_cairo_xlib_visual_info_create (Display *dpy, - int screen, - VisualID visualid, - cairo_xlib_visual_info_t **out); - -cairo_private void -_cairo_xlib_visual_info_destroy (cairo_xlib_visual_info_t *info); - -cairo_private const cairo_compositor_t * -_cairo_xlib_core_compositor_get (void); - -cairo_private const cairo_compositor_t * -_cairo_xlib_fallback_compositor_get (void); - -cairo_private const cairo_compositor_t * -_cairo_xlib_mask_compositor_get (void); - -cairo_private const cairo_compositor_t * -_cairo_xlib_traps_compositor_get (void); - -cairo_private void -_cairo_xlib_surface_ensure_picture (cairo_xlib_surface_t *surface); - -cairo_private void -_cairo_xlib_surface_set_precision (cairo_xlib_surface_t *surface, - cairo_antialias_t antialias); - -cairo_private cairo_int_status_t -_cairo_xlib_surface_set_attributes (cairo_xlib_display_t *display, - cairo_xlib_surface_t *surface, - cairo_surface_attributes_t *attributes, - double xc, - double yc); - -cairo_private cairo_status_t -_cairo_xlib_surface_draw_image (cairo_xlib_surface_t *surface, - cairo_image_surface_t *image, - int src_x, - int src_y, - int width, - int height, - int dst_x, - int dst_y); - -cairo_private cairo_surface_t * -_cairo_xlib_source_create_for_pattern (cairo_surface_t *dst, - const cairo_pattern_t *pattern, - cairo_bool_t is_mask, - const cairo_rectangle_int_t *extents, - const cairo_rectangle_int_t *sample, - int *src_x, int *src_y); - -cairo_private void -_cairo_xlib_font_close (cairo_xlib_font_t *font); - -#define CAIRO_RENDER_AT_LEAST(surface, major, minor) \ - (((surface)->render_major > major) || \ - (((surface)->render_major == major) && ((surface)->render_minor >= minor))) - -#define CAIRO_RENDER_HAS_CREATE_PICTURE(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 0) -#define CAIRO_RENDER_HAS_COMPOSITE(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 0) -#define CAIRO_RENDER_HAS_COMPOSITE_TEXT(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 0) - -#define CAIRO_RENDER_HAS_FILL_RECTANGLES(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 1) - -#define CAIRO_RENDER_HAS_DISJOINT(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 2) -#define CAIRO_RENDER_HAS_CONJOINT(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 2) - -#define CAIRO_RENDER_HAS_TRAPEZOIDS(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 4) -#define CAIRO_RENDER_HAS_TRIANGLES(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 4) -#define CAIRO_RENDER_HAS_TRISTRIP(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 4) -#define CAIRO_RENDER_HAS_TRIFAN(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 4) - -#define CAIRO_RENDER_HAS_PICTURE_TRANSFORM(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 6) -#define CAIRO_RENDER_HAS_FILTERS(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 6) - -#define CAIRO_RENDER_HAS_EXTENDED_REPEAT(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 10) -#define CAIRO_RENDER_HAS_GRADIENTS(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 10) - -#define CAIRO_RENDER_HAS_PDF_OPERATORS(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 11) - -#define CAIRO_RENDER_SUPPORTS_OPERATOR(surface, op) \ - ((op) <= CAIRO_OPERATOR_SATURATE || \ - (CAIRO_RENDER_HAS_PDF_OPERATORS(surface) && \ - (op) <= CAIRO_OPERATOR_HSL_LUMINOSITY)) - -/* - * Return whether two xlib surfaces share the same - * screen. Both core and Render drawing require this - * when using multiple drawables in an operation. - */ -static inline cairo_bool_t -_cairo_xlib_surface_same_screen (cairo_xlib_surface_t *dst, - cairo_xlib_surface_t *src) -{ - return dst->screen == src->screen; -} - -cairo_private cairo_int_status_t -_cairo_xlib_core_fill_boxes (cairo_xlib_surface_t *dst, - const cairo_color_t *color, - cairo_boxes_t *boxes); - -cairo_private cairo_int_status_t -_cairo_xlib_core_fill_rectangles (cairo_xlib_surface_t *dst, - const cairo_color_t *color, - int num_rects, - cairo_rectangle_int_t *rects); - -static inline void -_cairo_xlib_surface_put_gc (cairo_xlib_display_t *display, - cairo_xlib_surface_t *surface, - GC gc) -{ - _cairo_xlib_screen_put_gc (display, - surface->screen, - surface->depth, - gc); -} - -cairo_private cairo_surface_t * -_cairo_xlib_surface_create_similar_shm (void *surface, - cairo_format_t format, - int width, int height); - -cairo_private cairo_surface_t * -_cairo_xlib_surface_get_shm (cairo_xlib_surface_t *surface, - cairo_bool_t overwrite); - -cairo_private cairo_int_status_t -_cairo_xlib_surface_put_shm (cairo_xlib_surface_t *surface); - -cairo_private cairo_surface_t * -_cairo_xlib_surface_create_shm (cairo_xlib_surface_t *other, - pixman_format_code_t format, - int width, int height); - -cairo_private cairo_surface_t * -_cairo_xlib_surface_create_shm__image (cairo_xlib_surface_t *surface, - pixman_format_code_t format, - int width, int height); - -cairo_private void -_cairo_xlib_shm_surface_get_ximage (cairo_surface_t *surface, - XImage *ximage); - -cairo_private void * -_cairo_xlib_shm_surface_get_obdata (cairo_surface_t *surface); - -cairo_private void -_cairo_xlib_shm_surface_mark_active (cairo_surface_t *shm); - -cairo_private cairo_bool_t -_cairo_xlib_shm_surface_is_active (cairo_surface_t *surface); - -cairo_private cairo_bool_t -_cairo_xlib_shm_surface_is_idle (cairo_surface_t *surface); - -cairo_private Pixmap -_cairo_xlib_shm_surface_get_pixmap (cairo_surface_t *surface); - -cairo_private XRenderPictFormat * -_cairo_xlib_shm_surface_get_xrender_format (cairo_surface_t *surface); - -cairo_private pixman_format_code_t -_pixman_format_for_xlib_surface (cairo_xlib_surface_t *surface); - -#endif /* CAIRO_XLIB_PRIVATE_H */ |