~ubuntu-branches/ubuntu/hardy/libgdiplus/hardy

« back to all changes in this revision

Viewing changes to cairo/src/cairo-xlib-private.h

  • Committer: Bazaar Package Importer
  • Author(s): Emilio Pozuelo Monfort
  • Date: 2007-12-18 13:08:10 UTC
  • mfrom: (1.1.15 upstream)
  • Revision ID: james.westby@ubuntu.com-20071218130810-hlmitxfddf6h511j
Tags: 1.2.6-1ubuntu1
* Sync with Debian:
  - debian/control:
    + Add lpia and sparc to the architectures. We support them.
    + Change Maintainer to Ubuntu Mono Team.

Show diffs side-by-side

added added

removed removed

Lines of Context:
35
35
 
36
36
#include "cairoint.h"
37
37
#include "cairo-xlib.h"
 
38
#include "cairo-freelist-private.h"
38
39
 
 
40
typedef struct _cairo_xlib_display cairo_xlib_display_t;
39
41
typedef struct _cairo_xlib_hook cairo_xlib_hook_t;
 
42
typedef struct _cairo_xlib_job cairo_xlib_job_t;
 
43
typedef void (*cairo_xlib_notify_func) (Display *, void *);
 
44
typedef void (*cairo_xlib_notify_resource_func) (Display *, XID);
40
45
 
41
46
struct _cairo_xlib_hook {
42
47
    cairo_xlib_hook_t *next;
43
48
    void (*func) (Display *display, void *data);
44
49
    void *data;
45
 
    void *key;
 
50
    const void *key;
 
51
};
 
52
 
 
53
struct _cairo_xlib_display {
 
54
    cairo_xlib_display_t *next;
 
55
    unsigned int ref_count;
 
56
    cairo_mutex_t mutex;
 
57
 
 
58
    Display *display;
 
59
    cairo_xlib_screen_info_t *screens;
 
60
 
 
61
    cairo_xlib_job_t *workqueue;
 
62
    cairo_freelist_t wq_freelist;
 
63
 
 
64
    cairo_freelist_t hook_freelist;
 
65
    cairo_xlib_hook_t *close_display_hooks;
 
66
    unsigned int closed :1;
46
67
};
47
68
 
48
69
struct _cairo_xlib_screen_info {
49
70
    cairo_xlib_screen_info_t *next;
50
71
    unsigned int ref_count;
51
72
 
52
 
    Display *display;
 
73
    cairo_xlib_display_t *display;
53
74
    Screen *screen;
54
75
    cairo_bool_t has_render;
55
76
 
56
77
    cairo_font_options_t font_options;
57
78
 
58
 
    cairo_xlib_hook_t *close_display_hooks;
 
79
    GC gc[9];
 
80
    unsigned int gc_needs_clip_reset;
59
81
};
60
82
 
 
83
cairo_private cairo_xlib_display_t *
 
84
_cairo_xlib_display_get (Display *display);
 
85
 
 
86
cairo_private cairo_xlib_display_t *
 
87
_cairo_xlib_display_reference (cairo_xlib_display_t *info);
 
88
cairo_private void
 
89
_cairo_xlib_display_destroy (cairo_xlib_display_t *info);
 
90
 
 
91
cairo_private cairo_bool_t
 
92
_cairo_xlib_add_close_display_hook (Display *display, void (*func) (Display *, void *), void *data, const void *key);
 
93
cairo_private void
 
94
_cairo_xlib_remove_close_display_hooks (Display *display, const void *key);
 
95
 
 
96
cairo_private cairo_status_t
 
97
_cairo_xlib_display_queue_work (cairo_xlib_display_t *display,
 
98
                                cairo_xlib_notify_func notify,
 
99
                                void *data,
 
100
                                void (*destroy)(void *));
 
101
cairo_private cairo_status_t
 
102
_cairo_xlib_display_queue_resource (cairo_xlib_display_t *display,
 
103
                                   cairo_xlib_notify_resource_func notify,
 
104
                                   XID resource);
 
105
cairo_private void
 
106
_cairo_xlib_display_notify (cairo_xlib_display_t *display);
 
107
 
61
108
cairo_private cairo_xlib_screen_info_t *
62
109
_cairo_xlib_screen_info_get (Display *display, Screen *screen);
63
110
 
66
113
cairo_private void
67
114
_cairo_xlib_screen_info_destroy (cairo_xlib_screen_info_t *info);
68
115
 
69
 
cairo_private cairo_bool_t
70
 
_cairo_xlib_add_close_display_hook (Display *display, void (*func) (Display *, void *), void *data, void *key);
71
116
cairo_private void
72
 
_cairo_xlib_remove_close_display_hook (Display *display, void *key);
 
117
_cairo_xlib_screen_info_close_display (cairo_xlib_screen_info_t *info);
 
118
 
 
119
cairo_private GC
 
120
_cairo_xlib_screen_get_gc (cairo_xlib_screen_info_t *info, int depth);
 
121
cairo_private cairo_status_t
 
122
_cairo_xlib_screen_put_gc (cairo_xlib_screen_info_t *info, int depth, GC gc, cairo_bool_t reset_clip);
73
123
 
74
124
#if CAIRO_HAS_XLIB_XRENDER_SURFACE
75
125