Rev 1892 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1892 | Rev 3959 | ||
---|---|---|---|
Line 36... | Line 36... | ||
36 | #include "cairo-xlib.h" |
36 | #include "cairo-xlib.h" |
37 | #include "cairo-xlib-private.h" |
37 | #include "cairo-xlib-private.h" |
38 | #include "cairo-xlib-xrender-private.h" |
38 | #include "cairo-xlib-xrender-private.h" |
Line 39... | Line 39... | ||
39 | 39 | ||
- | 40 | #include "cairo-surface-private.h" |
|
Line 40... | Line -... | ||
40 | #include "cairo-surface-private.h" |
- | |
41 | - | ||
42 | typedef struct _cairo_xlib_surface cairo_xlib_surface_t; |
- | |
43 | - | ||
44 | struct _cairo_xlib_surface { |
- | |
45 | cairo_surface_t base; |
- | |
46 | - | ||
47 | cairo_xlib_screen_t *screen; |
- | |
48 | cairo_xlib_hook_t close_display_hook; |
- | |
49 | - | ||
50 | Drawable drawable; |
- | |
51 | cairo_bool_t owns_pixmap; |
- | |
52 | Visual *visual; |
- | |
53 | - | ||
54 | int use_pixmap; |
- | |
55 | - | ||
56 | int render_major; |
- | |
57 | int render_minor; |
- | |
58 | - | ||
59 | /* TRUE if the server has a bug with repeating pictures |
- | |
60 | * |
- | |
61 | * https://bugs.freedesktop.org/show_bug.cgi?id=3566 |
- | |
62 | * |
- | |
63 | * We can't test for this because it depends on whether the |
- | |
64 | * picture is in video memory or not. |
- | |
65 | * |
- | |
66 | * We also use this variable as a guard against a second |
- | |
67 | * independent bug with transformed repeating pictures: |
- | |
68 | * |
- | |
69 | * http://lists.freedesktop.org/archives/cairo/2004-September/001839.html |
- | |
70 | * |
- | |
71 | * Both are fixed in xorg >= 6.9 and hopefully in > 6.8.2, so |
- | |
72 | * we can reuse the test for now. |
- | |
73 | */ |
- | |
74 | unsigned int buggy_gradients : 1; |
- | |
75 | unsigned int buggy_pad_reflect : 1; |
- | |
76 | unsigned int buggy_repeat : 1; |
- | |
77 | #define CAIRO_XLIB_SURFACE_HAS_BUGGY_GRADIENTS 1 |
- | |
78 | #define CAIRO_XLIB_SURFACE_HAS_BUGGY_PAD_REFLECT 1 |
- | |
79 | #define CAIRO_XLIB_SURFACE_HAS_BUGGY_REPEAT 1 |
- | |
80 | - | ||
81 | int width; |
- | |
82 | int height; |
- | |
83 | int depth; |
- | |
84 | - | ||
85 | Picture dst_picture, src_picture; |
- | |
86 | - | ||
87 | unsigned int clip_dirty; |
- | |
88 | XRectangle embedded_clip_rects[8]; |
- | |
89 | XRectangle *clip_rects; |
- | |
90 | int num_clip_rects; |
- | |
91 | cairo_region_t *clip_region; |
- | |
92 | - | ||
93 | XRenderPictFormat *xrender_format; |
- | |
94 | cairo_filter_t filter; |
- | |
95 | cairo_extend_t extend; |
- | |
96 | cairo_bool_t has_component_alpha; |
- | |
97 | int precision; |
- | |
98 | XTransform xtransform; |
- | |
99 | - | ||
100 | uint32_t a_mask; |
- | |
101 | uint32_t r_mask; |
- | |
102 | uint32_t g_mask; |
- | |
103 | uint32_t b_mask; |
- | |
104 | }; |
- | |
105 | - | ||
106 | enum { |
- | |
107 | CAIRO_XLIB_SURFACE_CLIP_DIRTY_GC = 0x01, |
- | |
108 | CAIRO_XLIB_SURFACE_CLIP_DIRTY_PICTURE = 0x02, |
- | |
Line 109... | Line 41... | ||
109 | CAIRO_XLIB_SURFACE_CLIP_DIRTY_ALL = 0x03 |
41 | #include "cairo-surface-backend-private.h" |