Rev 1892 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1892 | Rev 3959 | ||
---|---|---|---|
Line 44... | Line 44... | ||
44 | #include "cairo-device-private.h" |
44 | #include "cairo-device-private.h" |
45 | #include "cairo-freelist-type-private.h" |
45 | #include "cairo-freelist-type-private.h" |
46 | #include "cairo-list-private.h" |
46 | #include "cairo-list-private.h" |
47 | #include "cairo-reference-count-private.h" |
47 | #include "cairo-reference-count-private.h" |
48 | #include "cairo-types-private.h" |
48 | #include "cairo-types-private.h" |
- | 49 | #include "cairo-scaled-font-private.h" |
|
- | 50 | #include "cairo-surface-private.h" |
|
- | 51 | ||
- | 52 | #include |
|
- | 53 | #include |
|
Line 49... | Line 54... | ||
49 | 54 | ||
- | 55 | typedef struct _cairo_xlib_display cairo_xlib_display_t; |
|
50 | typedef struct _cairo_xlib_display cairo_xlib_display_t; |
56 | typedef struct _cairo_xlib_shm_display cairo_xlib_shm_display_t; |
51 | typedef struct _cairo_xlib_screen cairo_xlib_screen_t; |
- | |
52 | 57 | typedef struct _cairo_xlib_screen cairo_xlib_screen_t; |
|
53 | typedef struct _cairo_xlib_hook cairo_xlib_hook_t; |
58 | typedef struct _cairo_xlib_source cairo_xlib_source_t; |
54 | typedef struct _cairo_xlib_job cairo_xlib_job_t; |
59 | typedef struct _cairo_xlib_proxy cairo_xlib_proxy_t; |
55 | typedef void (*cairo_xlib_notify_func) (Display *, void *); |
- | |
56 | typedef void (*cairo_xlib_notify_resource_func) (Display *, XID); |
- | |
57 | - | ||
58 | struct _cairo_xlib_hook { |
- | |
59 | cairo_xlib_hook_t *prev, *next; /* private */ |
- | |
60 | void (*func) (cairo_xlib_display_t *display, void *data); |
- | |
Line 61... | Line 60... | ||
61 | }; |
60 | typedef struct _cairo_xlib_surface cairo_xlib_surface_t; |
62 | 61 | ||
63 | /* size of color cube */ |
62 | /* size of color cube */ |
64 | #define CUBE_SIZE 6 |
63 | #define CUBE_SIZE 6 |
- | 64 | /* size of gray ramp */ |
|
- | 65 | #define RAMP_SIZE 16 |
|
Line 65... | Line 66... | ||
65 | /* size of gray ramp */ |
66 | /* maximum number of cached GC's */ |
66 | #define RAMP_SIZE 16 |
67 | #define GC_CACHE_SIZE 4 |
Line 67... | Line 68... | ||
67 | 68 | ||
Line 68... | Line 69... | ||
68 | struct _cairo_xlib_display { |
69 | struct _cairo_xlib_display { |
69 | cairo_device_t base; |
70 | cairo_device_t base; |
- | 71 | ||
- | 72 | cairo_xlib_display_t *next; |
|
- | 73 | ||
- | 74 | Display *display; |
|
- | 75 | cairo_list_t screens; |
|
Line 70... | Line 76... | ||
70 | 76 | cairo_list_t fonts; |
|
71 | cairo_xlib_display_t *next; |
77 | |
72 | 78 | cairo_xlib_shm_display_t *shm; |
|
Line 73... | Line -... | ||
73 | Display *display; |
- | |
74 | cairo_list_t screens; |
79 | |
Line -... | Line 80... | ||
- | 80 | const cairo_compositor_t *compositor; |
|
75 | 81 | ||
- | 82 | int render_major; |
|
- | 83 | int render_minor; |
|
- | 84 | XRenderPictFormat *cached_xrender_formats[CAIRO_FORMAT_RGB16_565 + 1]; |
|
- | 85 | ||
- | 86 | int force_precision; |
|
- | 87 | ||
- | 88 | cairo_surface_t *white; |
|
- | 89 | cairo_surface_t *alpha[256]; |
|
- | 90 | cairo_surface_t *solid[32]; |
|
- | 91 | uint32_t solid_cache[32]; /* low 16 are opaque, high 16 transparent */ |
|
- | 92 | struct { |
|
- | 93 | uint32_t color; |
|
- | 94 | int index; |
|
- | 95 | } last_solid_cache[2]; |
|
- | 96 | ||
- | 97 | /* TRUE if the server has a bug with repeating pictures |
|
- | 98 | * |
|
- | 99 | * https://bugs.freedesktop.org/show_bug.cgi?id=3566 |
|
- | 100 | * |
|
- | 101 | * We can't test for this because it depends on whether the |
|
- | 102 | * picture is in video memory or not. |
|
- | 103 | * |
|
76 | int render_major; |
104 | * We also use this variable as a guard against a second |
77 | int render_minor; |
105 | * independent bug with transformed repeating pictures: |
78 | XRenderPictFormat *cached_xrender_formats[CAIRO_FORMAT_RGB16_565 + 1]; |
106 | * |
79 | 107 | * http://lists.freedesktop.org/archives/cairo/2004-September/001839.html |
|
80 | cairo_xlib_job_t *workqueue; |
108 | * |
Line 101... | Line 129... | ||
101 | cairo_list_t link; |
129 | cairo_list_t link; |
Line 102... | Line 130... | ||
102 | 130 | ||
103 | cairo_device_t *device; |
131 | cairo_device_t *device; |
Line -... | Line 132... | ||
- | 132 | Screen *screen; |
|
- | 133 | ||
104 | Screen *screen; |
134 | cairo_list_t surfaces; |
105 | 135 | ||
Line 106... | Line 136... | ||
106 | cairo_bool_t has_font_options; |
136 | cairo_bool_t has_font_options; |
107 | cairo_font_options_t font_options; |
137 | cairo_font_options_t font_options; |
Line 108... | Line 138... | ||
108 | 138 | ||
109 | GC gc[4]; |
139 | GC gc[GC_CACHE_SIZE]; |
Line -... | Line 140... | ||
- | 140 | uint8_t gc_depths[GC_CACHE_SIZE]; |
|
- | 141 | ||
- | 142 | cairo_list_t visuals; |
|
- | 143 | }; |
|
- | 144 | ||
- | 145 | enum { |
|
- | 146 | GLYPHSET_INDEX_ARGB32, |
|
- | 147 | GLYPHSET_INDEX_A8, |
|
- | 148 | GLYPHSET_INDEX_A1, |
|
- | 149 | NUM_GLYPHSETS |
|
- | 150 | }; |
|
- | 151 | ||
- | 152 | typedef struct _cairo_xlib_font_glyphset { |
|
- | 153 | GlyphSet glyphset; |
|
- | 154 | cairo_format_t format; |
|
- | 155 | XRenderPictFormat *xrender_format; |
|
- | 156 | struct _cairo_xlib_font_glyphset_free_glyphs { |
|
- | 157 | int count; |
|
- | 158 | unsigned long indices[128]; |
|
- | 159 | } to_free; |
|
- | 160 | } cairo_xlib_font_glyphset_t; |
|
- | 161 | ||
- | 162 | typedef struct _cairo_xlib_font { |
|
- | 163 | cairo_scaled_font_private_t base; |
|
- | 164 | cairo_scaled_font_t *font; |
|
- | 165 | cairo_device_t *device; |
|
- | 166 | cairo_list_t link; |
|
- | 167 | cairo_xlib_font_glyphset_t glyphset[NUM_GLYPHSETS]; |
|
- | 168 | } cairo_xlib_font_t; |
|
- | 169 | ||
- | 170 | struct _cairo_xlib_surface { |
|
- | 171 | cairo_surface_t base; |
|
- | 172 | ||
- | 173 | Picture picture; |
|
- | 174 | Drawable drawable; |
|
- | 175 | ||
- | 176 | const cairo_compositor_t *compositor; |
|
- | 177 | cairo_surface_t *shm; |
|
- | 178 | int fallback; |
|
- | 179 | ||
- | 180 | cairo_xlib_display_t *display; |
|
- | 181 | cairo_xlib_screen_t *screen; |
|
- | 182 | cairo_list_t link; |
|
- | 183 | ||
- | 184 | Display *dpy; /* only valid between acquire/release */ |
|
- | 185 | cairo_bool_t owns_pixmap; |
|
- | 186 | Visual *visual; |
|
- | 187 | ||
- | 188 | int use_pixmap; |
|
- | 189 | ||
- | 190 | int width; |
|
- | 191 | int height; |
|
- | 192 | int depth; |
|
- | 193 | ||
- | 194 | int precision; |
|
- | 195 | XRenderPictFormat *xrender_format; |
|
- | 196 | /* XXX pixman_format instead of masks? */ |
|
- | 197 | uint32_t a_mask; |
|
- | 198 | uint32_t r_mask; |
|
- | 199 | uint32_t g_mask; |
|
- | 200 | uint32_t b_mask; |
|
- | 201 | ||
- | 202 | struct _cairo_xlib_source { |
|
- | 203 | cairo_surface_t base; |
|
- | 204 | ||
- | 205 | Picture picture; |
|
- | 206 | Pixmap pixmap; |
|
- | 207 | Display *dpy; |
|
- | 208 | ||
- | 209 | unsigned int filter:3; |
|
- | 210 | unsigned int extend:3; |
|
- | 211 | unsigned int has_matrix:1; |
|
- | 212 | unsigned int has_component_alpha:1; |
|
- | 213 | } embedded_source; |
|
- | 214 | }; |
|
- | 215 | ||
- | 216 | struct _cairo_xlib_proxy { |
|
- | 217 | struct _cairo_xlib_source source; |
|
- | 218 | cairo_surface_t *owner; |
|
- | 219 | }; |
|
- | 220 | ||
- | 221 | inline static cairo_bool_t |
|
- | 222 | _cairo_xlib_vendor_is_xorg (Display *dpy) |
|
- | 223 | { |
|
- | 224 | const char *const vendor = ServerVendor (dpy); |
|
- | 225 | return strstr (vendor, "X.Org") || strstr (vendor, "Xorg"); |
|
- | 226 | } |
|
- | 227 | ||
110 | cairo_atomic_int_t gc_depths; /* 4 x uint8_t */ |
228 | cairo_private cairo_status_t |
111 | 229 | _cairo_xlib_surface_get_gc (cairo_xlib_display_t *display, |
|
Line 112... | Line -... | ||
112 | cairo_list_t visuals; |
- | |
113 | }; |
- | |
114 | - | ||
115 | cairo_private cairo_device_t * |
- | |
116 | _cairo_xlib_device_create (Display *display); |
230 | cairo_xlib_surface_t *surface, |
117 | 231 | GC *gc); |
|
Line 118... | Line 232... | ||
118 | cairo_private cairo_xlib_screen_t * |
232 | |
119 | _cairo_xlib_display_get_screen (cairo_xlib_display_t *display, |
233 | cairo_private cairo_device_t * |
- | 234 | _cairo_xlib_device_create (Display *display); |
|
- | 235 | ||
- | 236 | cairo_private void |
|
- | 237 | _cairo_xlib_display_init_shm (cairo_xlib_display_t *display); |
|
Line 120... | Line -... | ||
120 | Screen *screen); |
- | |
121 | - | ||
122 | cairo_private void |
- | |
123 | _cairo_xlib_add_close_display_hook (cairo_xlib_display_t *display, cairo_xlib_hook_t *hook); |
- | |
124 | - | ||
125 | cairo_private void |
- | |
126 | _cairo_xlib_remove_close_display_hook (cairo_xlib_display_t *display, cairo_xlib_hook_t *hook); |
- | |
127 | - | ||
128 | cairo_private cairo_status_t |
- | |
129 | _cairo_xlib_display_queue_work (cairo_xlib_display_t *display, |
238 | |
130 | cairo_xlib_notify_func notify, |
239 | cairo_private void |
131 | void *data, |
240 | _cairo_xlib_display_fini_shm (cairo_xlib_display_t *display); |
Line 132... | Line -... | ||
132 | void (*destroy)(void *)); |
- | |
133 | cairo_private cairo_status_t |
- | |
134 | _cairo_xlib_display_queue_resource (cairo_xlib_display_t *display, |
- | |
135 | cairo_xlib_notify_resource_func notify, |
- | |
136 | XID resource); |
241 | |
137 | cairo_private cairo_status_t |
242 | cairo_private cairo_xlib_screen_t * |
Line 138... | Line 243... | ||
138 | _cairo_xlib_display_acquire (cairo_device_t *device, |
243 | _cairo_xlib_display_get_screen (cairo_xlib_display_t *display, |
139 | cairo_xlib_display_t **display); |
244 | Screen *screen); |
Line 140... | Line 245... | ||
140 | 245 | ||
141 | cairo_private void |
246 | cairo_private cairo_status_t |
Line -... | Line 247... | ||
- | 247 | _cairo_xlib_display_acquire (cairo_device_t *device, |
|
- | 248 | cairo_xlib_display_t **display); |
|
- | 249 | ||
- | 250 | cairo_private cairo_bool_t |
|
142 | _cairo_xlib_display_get_xrender_version (cairo_xlib_display_t *display, |
251 | _cairo_xlib_display_has_repeat (cairo_device_t *device); |
143 | int *major, int *minor); |
252 | |
144 | 253 | cairo_private cairo_bool_t |
|
Line -... | Line 254... | ||
- | 254 | _cairo_xlib_display_has_reflect (cairo_device_t *device); |
|
- | 255 | ||
- | 256 | cairo_private cairo_bool_t |
|
- | 257 | _cairo_xlib_display_has_gradients (cairo_device_t *device); |
|
145 | cairo_private cairo_bool_t |
258 | |
146 | _cairo_xlib_display_has_repeat (cairo_device_t *device); |
259 | cairo_private void |
147 | 260 | _cairo_xlib_display_set_precision(cairo_device_t *device, |
|
148 | cairo_private cairo_bool_t |
261 | int precision); |
Line 149... | Line 262... | ||
149 | _cairo_xlib_display_has_reflect (cairo_device_t *device); |
262 | |
150 | - | ||
151 | cairo_private cairo_bool_t |
- | |
152 | _cairo_xlib_display_has_gradients (cairo_device_t *device); |
- | |
153 | 263 | cairo_private XRenderPictFormat * |
|
154 | cairo_private XRenderPictFormat * |
264 | _cairo_xlib_display_get_xrender_format (cairo_xlib_display_t *display, |
Line 155... | Line 265... | ||
155 | _cairo_xlib_display_get_xrender_format (cairo_xlib_display_t *display, |
265 | cairo_format_t format); |
156 | cairo_format_t format); |
266 | |
157 | 267 | cairo_private XRenderPictFormat * |
|
158 | cairo_private cairo_status_t |
268 | _cairo_xlib_display_get_xrender_format_for_pixman (cairo_xlib_display_t *display, |
159 | _cairo_xlib_screen_get (Display *dpy, |
269 | pixman_format_code_t format); |
160 | Screen *screen, |
- | |
161 | cairo_xlib_screen_t **out); |
270 | |
162 | 271 | cairo_private cairo_status_t |
|
163 | cairo_private void |
272 | _cairo_xlib_screen_get (Display *dpy, |
164 | _cairo_xlib_screen_destroy (cairo_xlib_screen_t *info); |
273 | Screen *screen, |
165 | 274 | cairo_xlib_screen_t **out); |
|
Line 195... | Line 304... | ||
195 | cairo_xlib_visual_info_t **out); |
304 | cairo_xlib_visual_info_t **out); |
Line 196... | Line 305... | ||
196 | 305 | ||
197 | cairo_private void |
306 | cairo_private void |
Line -... | Line 307... | ||
- | 307 | _cairo_xlib_visual_info_destroy (cairo_xlib_visual_info_t *info); |
|
- | 308 | ||
- | 309 | cairo_private const cairo_compositor_t * |
|
- | 310 | _cairo_xlib_core_compositor_get (void); |
|
- | 311 | ||
- | 312 | cairo_private const cairo_compositor_t * |
|
- | 313 | _cairo_xlib_fallback_compositor_get (void); |
|
- | 314 | ||
- | 315 | cairo_private const cairo_compositor_t * |
|
- | 316 | _cairo_xlib_mask_compositor_get (void); |
|
- | 317 | ||
- | 318 | cairo_private const cairo_compositor_t * |
|
- | 319 | _cairo_xlib_traps_compositor_get (void); |
|
- | 320 | ||
- | 321 | cairo_private void |
|
- | 322 | _cairo_xlib_surface_ensure_picture (cairo_xlib_surface_t *surface); |
|
- | 323 | ||
- | 324 | cairo_private void |
|
- | 325 | _cairo_xlib_surface_set_precision (cairo_xlib_surface_t *surface, |
|
- | 326 | cairo_antialias_t antialias); |
|
- | 327 | ||
- | 328 | cairo_private cairo_int_status_t |
|
- | 329 | _cairo_xlib_surface_set_attributes (cairo_xlib_display_t *display, |
|
- | 330 | cairo_xlib_surface_t *surface, |
|
- | 331 | cairo_surface_attributes_t *attributes, |
|
- | 332 | double xc, |
|
- | 333 | double yc); |
|
- | 334 | ||
- | 335 | cairo_private cairo_status_t |
|
- | 336 | _cairo_xlib_surface_draw_image (cairo_xlib_surface_t *surface, |
|
- | 337 | cairo_image_surface_t *image, |
|
- | 338 | int src_x, |
|
- | 339 | int src_y, |
|
- | 340 | int width, |
|
- | 341 | int height, |
|
- | 342 | int dst_x, |
|
- | 343 | int dst_y); |
|
- | 344 | ||
- | 345 | cairo_private cairo_surface_t * |
|
- | 346 | _cairo_xlib_source_create_for_pattern (cairo_surface_t *dst, |
|
- | 347 | const cairo_pattern_t *pattern, |
|
- | 348 | cairo_bool_t is_mask, |
|
- | 349 | const cairo_rectangle_int_t *extents, |
|
- | 350 | const cairo_rectangle_int_t *sample, |
|
- | 351 | int *src_x, int *src_y); |
|
- | 352 | ||
- | 353 | cairo_private void |
|
- | 354 | _cairo_xlib_font_close (cairo_xlib_font_t *font); |
|
- | 355 | ||
- | 356 | #define CAIRO_RENDER_AT_LEAST(surface, major, minor) \ |
|
- | 357 | (((surface)->render_major > major) || \ |
|
- | 358 | (((surface)->render_major == major) && ((surface)->render_minor >= minor))) |
|
- | 359 | ||
- | 360 | #define CAIRO_RENDER_HAS_CREATE_PICTURE(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 0) |
|
- | 361 | #define CAIRO_RENDER_HAS_COMPOSITE(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 0) |
|
- | 362 | #define CAIRO_RENDER_HAS_COMPOSITE_TEXT(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 0) |
|
- | 363 | ||
- | 364 | #define CAIRO_RENDER_HAS_FILL_RECTANGLES(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 1) |
|
- | 365 | ||
- | 366 | #define CAIRO_RENDER_HAS_DISJOINT(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 2) |
|
- | 367 | #define CAIRO_RENDER_HAS_CONJOINT(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 2) |
|
- | 368 | ||
- | 369 | #define CAIRO_RENDER_HAS_TRAPEZOIDS(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 4) |
|
- | 370 | #define CAIRO_RENDER_HAS_TRIANGLES(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 4) |
|
- | 371 | #define CAIRO_RENDER_HAS_TRISTRIP(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 4) |
|
- | 372 | #define CAIRO_RENDER_HAS_TRIFAN(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 4) |
|
- | 373 | ||
- | 374 | #define CAIRO_RENDER_HAS_PICTURE_TRANSFORM(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 6) |
|
- | 375 | #define CAIRO_RENDER_HAS_FILTERS(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 6) |
|
- | 376 | ||
- | 377 | #define CAIRO_RENDER_HAS_EXTENDED_REPEAT(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 10) |
|
- | 378 | #define CAIRO_RENDER_HAS_GRADIENTS(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 10) |
|
- | 379 | ||
- | 380 | #define CAIRO_RENDER_HAS_PDF_OPERATORS(surface) CAIRO_RENDER_AT_LEAST((surface), 0, 11) |
|
- | 381 | ||
- | 382 | #define CAIRO_RENDER_SUPPORTS_OPERATOR(surface, op) \ |
|
- | 383 | ((op) <= CAIRO_OPERATOR_SATURATE || \ |
|
- | 384 | (CAIRO_RENDER_HAS_PDF_OPERATORS(surface) && \ |
|
- | 385 | (op) <= CAIRO_OPERATOR_HSL_LUMINOSITY)) |
|
- | 386 | ||
- | 387 | /* |
|
- | 388 | * Return whether two xlib surfaces share the same |
|
- | 389 | * screen. Both core and Render drawing require this |
|
- | 390 | * when using multiple drawables in an operation. |
|
- | 391 | */ |
|
- | 392 | static inline cairo_bool_t |
|
- | 393 | _cairo_xlib_surface_same_screen (cairo_xlib_surface_t *dst, |
|
- | 394 | cairo_xlib_surface_t *src) |
|
- | 395 | { |
|
- | 396 | return dst->screen == src->screen; |
|
- | 397 | } |
|
- | 398 | ||
- | 399 | cairo_private cairo_int_status_t |
|
- | 400 | _cairo_xlib_core_fill_boxes (cairo_xlib_surface_t *dst, |
|
- | 401 | const cairo_color_t *color, |
|
- | 402 | cairo_boxes_t *boxes); |
|
- | 403 | ||
- | 404 | cairo_private cairo_int_status_t |
|
- | 405 | _cairo_xlib_core_fill_rectangles (cairo_xlib_surface_t *dst, |
|
- | 406 | const cairo_color_t *color, |
|
- | 407 | int num_rects, |
|
- | 408 | cairo_rectangle_int_t *rects); |
|
- | 409 | ||
- | 410 | static inline void |
|
- | 411 | _cairo_xlib_surface_put_gc (cairo_xlib_display_t *display, |
|
- | 412 | cairo_xlib_surface_t *surface, |
|
- | 413 | GC gc) |
|
- | 414 | { |
|
- | 415 | _cairo_xlib_screen_put_gc (display, |
|
- | 416 | surface->screen, |
|
- | 417 | surface->depth, |
|
- | 418 | gc); |
|
- | 419 | } |
|
- | 420 | ||
- | 421 | cairo_private cairo_surface_t * |
|
- | 422 | _cairo_xlib_surface_create_similar_shm (void *surface, |
|
- | 423 | cairo_format_t format, |
|
- | 424 | int width, int height); |
|
- | 425 | ||
- | 426 | cairo_private cairo_surface_t * |
|
- | 427 | _cairo_xlib_surface_get_shm (cairo_xlib_surface_t *surface, |
|
- | 428 | cairo_bool_t overwrite); |
|
- | 429 | ||
- | 430 | cairo_private cairo_int_status_t |
|
- | 431 | _cairo_xlib_surface_put_shm (cairo_xlib_surface_t *surface); |
|
- | 432 | ||
- | 433 | cairo_private cairo_surface_t * |
|
- | 434 | _cairo_xlib_surface_create_shm (cairo_xlib_surface_t *other, |
|
- | 435 | pixman_format_code_t format, |
|
- | 436 | int width, int height); |
|
- | 437 | ||
- | 438 | cairo_private cairo_surface_t * |
|
- | 439 | _cairo_xlib_surface_create_shm__image (cairo_xlib_surface_t *surface, |
|
- | 440 | pixman_format_code_t format, |
|
- | 441 | int width, int height); |
|
- | 442 | ||
- | 443 | cairo_private void |
|
- | 444 | _cairo_xlib_shm_surface_get_ximage (cairo_surface_t *surface, |
|
- | 445 | XImage *ximage); |
|
- | 446 | ||
- | 447 | cairo_private void * |
|
- | 448 | _cairo_xlib_shm_surface_get_obdata (cairo_surface_t *surface); |
|
- | 449 | ||
- | 450 | cairo_private void |
|
- | 451 | _cairo_xlib_shm_surface_mark_active (cairo_surface_t *shm); |
|
- | 452 | ||
- | 453 | cairo_private cairo_bool_t |
|
- | 454 | _cairo_xlib_shm_surface_is_active (cairo_surface_t *surface); |
|
- | 455 | ||
- | 456 | cairo_private cairo_bool_t |
|
- | 457 | _cairo_xlib_shm_surface_is_idle (cairo_surface_t *surface); |
|
- | 458 | ||
- | 459 | cairo_private Pixmap |
|
- | 460 | _cairo_xlib_shm_surface_get_pixmap (cairo_surface_t *surface); |
|
- | 461 | ||
- | 462 | cairo_private XRenderPictFormat * |
|
- | 463 | _cairo_xlib_shm_surface_get_xrender_format (cairo_surface_t *surface); |
|
- | 464 | ||
- | 465 | cairo_private pixman_format_code_t |
|
198 | _cairo_xlib_visual_info_destroy (cairo_xlib_visual_info_t *info); |
466 | _pixman_format_for_xlib_surface (cairo_xlib_surface_t *surface); |