]> icculus.org git repositories - dana/openbox.git/blob - render2/instance.h
add support for shaped surfaces
[dana/openbox.git] / render2 / instance.h
1 #ifndef __render_instance_h
2 #define __render_instance_h
3
4 #include <X11/Xlib.h>
5 #include <X11/Xutil.h>
6 #include <GL/glx.h>
7
8 #include <glib.h>
9
10 struct RrInstance {
11     Display *display;
12     int screen;
13     XVisualInfo visinfo;
14     Colormap cmap;
15     GLXContext glx_context;
16
17     Window shape_window;
18
19     GHashTable *surface_map;
20 };
21
22 #define RrDisplay(i)  ((i)->display)
23 #define RrScreen(i)   ((i)->screen)
24 #define RrScreenWidth(i) (WidthOfScreen(ScreenOfDisplay((i)->display, \
25                                                         (i)->screen)))
26 #define RrScreenHeight(i) (HeightOfScreen(ScreenOfDisplay((i)->display, \
27                                                           (i)->screen)))
28 #define RrDepth(i)    ((i)->visinfo.depth)
29 #define RrVisual(i)   ((i)->visinfo.visual)
30 #define RrColormap(i) ((i)->cmap)
31 #define RrContext(i)  ((i)->glx_context)
32
33 #define RrShapeWindow(i) ((i)->shape_window)
34
35 struct RrSurface;
36
37 void RrInstaceAddSurface(struct RrSurface *sur);
38 void RrInstaceRemoveSurface(struct RrSurface *sur);
39 struct RrSurface *RrInstaceLookupSurface(struct RrInstance *inst, Window win);
40
41 #endif