104 INLINE XIM
get_im()
const;
120 int &x,
int &y,
int &width,
int &height);
127 Atom _wm_delete_window;
130 Atom _net_wm_window_type;
131 Atom _net_wm_window_type_splash;
132 Atom _net_wm_window_type_fullscreen;
134 Atom _net_wm_state_fullscreen;
135 Atom _net_wm_state_above;
136 Atom _net_wm_state_below;
137 Atom _net_wm_state_add;
138 Atom _net_wm_state_remove;
139 Atom _net_wm_bypass_compositor;
142 typedef int (*pfn_XcursorGetDefaultSize)(X11_Display *);
143 typedef XcursorImages *(*pfn_XcursorXcFileLoadImages)(XcursorFile *, int);
144 typedef X11_Cursor (*pfn_XcursorImagesLoadCursor)(X11_Display *,
const XcursorImages *);
145 typedef void (*pfn_XcursorImagesDestroy)(XcursorImages *);
146 typedef XcursorImage *(*pfn_XcursorImageCreate)(int, int);
147 typedef X11_Cursor (*pfn_XcursorImageLoadCursor)(X11_Display *,
const XcursorImage *);
148 typedef void (*pfn_XcursorImageDestroy)(XcursorImage *);
151 pfn_XcursorXcFileLoadImages _XcursorXcFileLoadImages;
152 pfn_XcursorImagesLoadCursor _XcursorImagesLoadCursor;
153 pfn_XcursorImagesDestroy _XcursorImagesDestroy;
154 pfn_XcursorImageCreate _XcursorImageCreate;
155 pfn_XcursorImageLoadCursor _XcursorImageLoadCursor;
156 pfn_XcursorImageDestroy _XcursorImageDestroy;
158 typedef Bool (*pfn_XRRQueryExtension)(X11_Display *,
int*,
int*);
159 typedef Status (*pfn_XRRQueryVersion)(X11_Display *,
int*,
int*);
160 typedef XRRScreenSize *(*pfn_XRRSizes)(X11_Display*, int,
int*);
161 typedef short *(*pfn_XRRRates)(X11_Display*, int, int,
int*);
162 typedef XRRScreenConfiguration *(*pfn_XRRGetScreenInfo)(X11_Display*, X11_Window);
163 typedef SizeID (*pfn_XRRConfigCurrentConfiguration)(XRRScreenConfiguration*, Rotation*);
164 typedef Status (*pfn_XRRSetScreenConfig)(X11_Display*, XRRScreenConfiguration *,
165 Drawable, int, Rotation, Time);
168 pfn_XRRSizes _XRRSizes;
169 pfn_XRRRates _XRRRates;
170 pfn_XRRGetScreenInfo _XRRGetScreenInfo;
171 pfn_XRRConfigCurrentConfiguration _XRRConfigCurrentConfiguration;
172 pfn_XRRSetScreenConfig _XRRSetScreenConfig;
175 X11_Display *_display;
180 X11_Cursor _hidden_cursor;
182 typedef Bool (*pfn_XF86DGAQueryVersion)(X11_Display *,
int*,
int*);
183 typedef Status (*pfn_XF86DGADirectVideo)(X11_Display *, int, int);
184 pfn_XF86DGADirectVideo _XF86DGADirectVideo;
189 pfn_XRRGetScreenResources _XRRGetScreenResourcesCurrent;
190 pfn_XRRFreeScreenResources _XRRFreeScreenResources;
191 pfn_XRRGetCrtcInfo _XRRGetCrtcInfo;
192 pfn_XRRFreeCrtcInfo _XRRFreeCrtcInfo;
195 void make_hidden_cursor();
196 void release_hidden_cursor();
198 static void install_error_handlers();
199 static int error_handler(X11_Display *display, XErrorEvent *error);
200 static int io_error_handler(X11_Display *display);
202 typedef int ErrorHandlerFunc(X11_Display *, XErrorEvent *);
203 typedef int IOErrorHandlerFunc(X11_Display *);
204 static bool _error_handlers_installed;
205 static ErrorHandlerFunc *_prev_error_handler;
206 static IOErrorHandlerFunc *_prev_io_error_handler;
208 static bool _x_error_messages_enabled;
209 static int _x_error_count;
220 static void init_type() {
221 GraphicsPipe::init_type();
223 GraphicsPipe::get_class_type());
226 return get_class_type();
228 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}