libGLV  0.4.0
glv.h
Go to the documentation of this file.
1 #ifndef GLV_H
2 #define GLV_H
3 /*===========================================================================/
4 
5  GLV Library for X11
6  Copyright (C) 2003-2006,2012 Karl Robillard
7 
8 /===========================================================================*/
9 
10 
11 #include <GL/glx.h>
12 
13 
14 typedef struct {
15  int type;
16  int code;
17  int state;
18  int x;
19  int y;
20 } GLViewEvent;
21 
22 
23 typedef struct {
24  /* Read/write */
25 
26  void* user;
27 
28 
29  /* Read-only */
30 
31  int width;
32  int height;
33 
34 
35  /* Read-only for X11 */
36 
37  Display* display;
38  int screen;
39  Window window;
40  GLXContext ctx;
41 
42 
43  /* Private */
44 
45  void (*eventHandler)( void*, GLViewEvent* );
46  unsigned short flags;
47  void* omode;
48  Atom deleteAtom;
49  Cursor nullCursor;
50 } GLView;
51 
52 
53 typedef struct {
54  int id;
55  int width;
56  int height;
58  int depth;
59 } GLViewMode;
60 
61 
62 typedef void (*GLViewMode_f)( const GLViewMode*, void* );
63 typedef void (*GLViewEvent_f)( GLView*, GLViewEvent* );
64 
65 
66 #define GLV_ATTRIB_DOUBLEBUFFER 1
67 #define GLV_ATTRIB_STENCIL 2
68 #define GLV_ATTRIB_MULTISAMPLE 4
69 #define GLV_ATTRIB_ES 8
70 #define GLV_ATTRIB_DEBUG 16
71 
72 #define GLV_MODEID_WINDOW -1
73 
74 /* GLViewEvent type */
75 #define GLV_EVENT_RESIZE 1
76 #define GLV_EVENT_CLOSE 2
77 #define GLV_EVENT_BUTTON_DOWN 3
78 #define GLV_EVENT_BUTTON_UP 4
79 #define GLV_EVENT_MOTION 5
80 #define GLV_EVENT_WHEEL 6
81 #define GLV_EVENT_KEY_DOWN 7
82 #define GLV_EVENT_KEY_UP 8
83 #define GLV_EVENT_FOCUS_IN 9
84 #define GLV_EVENT_FOCUS_OUT 10
85 #define GLV_EVENT_EXPOSE 11
86 #define GLV_EVENT_USER 32
87 
88 /* GLViewEvent code for GLV_EVENT_BUTTON_DOWN/UP events */
89 #define GLV_BUTTON_LEFT Button1
90 #define GLV_BUTTON_MIDDLE Button2
91 #define GLV_BUTTON_RIGHT Button3
92 
93 /* GLViewEvent y for GLV_EVENT_WHEEL events */
94 #define GLV_WHEEL_DELTA 120
95 
96 /* GLViewEvent state masks */
97 #define GLV_MASK_SHIFT ShiftMask
98 #define GLV_MASK_CTRL ControlMask
99 #define GLV_MASK_ALT Mod1Mask
100 #define GLV_MASK_CAPS LockMask
101 #define GLV_MASK_LEFT Button1Mask
102 #define GLV_MASK_MIDDLE Button2Mask
103 #define GLV_MASK_RIGHT Button3Mask
104 
105 
106 #ifdef __cplusplus
107 extern "C" {
108 #endif
109 
110 
111 extern int glv_queryModes( GLViewMode_f func, void* );
112 
113 extern GLView* glv_create( int attributes, int glVersion );
114 extern void glv_destroy( GLView* view );
115 extern int glv_attributes( GLView* view );
116 extern int glv_dpi( GLView* view );
117 extern int glv_changeMode( GLView* view, const GLViewMode* mode );
118 extern void glv_swapBuffers( GLView* view );
119 extern void glv_makeCurrent( GLView* view );
120 extern void glv_show( GLView* view );
121 extern void glv_hide( GLView* view );
122 extern void glv_setTitle( GLView* view, const char* title );
123 extern void glv_move( GLView* view, int x, int y );
124 extern void glv_resize( GLView* view, int w, int h );
125 extern void glv_raise( GLView* view );
126 extern void glv_iconify( GLView* view );
127 extern void glv_showCursor( GLView* view, int on );
128 
129 extern void glv_setEventHandler( GLView* view, GLViewEvent_f func );
130 extern void glv_waitEvent( GLView* view );
131 extern void glv_handleEvents( GLView* view );
132 extern void glv_filterRepeatKeys( GLView* view, int on );
133 extern int glv_ascii();
134 extern int glv_clipboardText( GLView* view,
135  void (*func)(const char* data, int len, void* user),
136  void* user );
137 
138 
139 #ifdef __cplusplus
140 }
141 #endif
142 
143 
144 #endif // GLV_H
int height
Definition: glv.h:32
int glv_queryModes(GLViewMode_f func, void *)
Definition: glv.c:575
void glv_move(GLView *view, int x, int y)
Definition: glv.c:1117
int refreshRate
Definition: glv.h:57
void glv_raise(GLView *view)
Definition: glv.c:1136
int glv_clipboardText(GLView *view, void(*func)(const char *data, int len, void *user), void *user)
Definition: glv.c:1486
int height
Definition: glv.h:56
void glv_iconify(GLView *view)
Definition: glv.c:1145
int id
Definition: glv.h:54
int depth
Definition: glv.h:58
GLView * glv_create(int attributes, int glVersion)
Definition: glv.c:270
The GLViewEvent struct is passed to the event handler callback.
Definition: glv.h:14
void glv_setTitle(GLView *view, const char *title)
Definition: glv.c:1106
void glv_handleEvents(GLView *view)
Definition: glv.c:1265
int state
Definition: glv.h:17
int y
Definition: glv.h:19
int x
Definition: glv.h:18
int glv_dpi(GLView *view)
Definition: glv.c:554
void glv_resize(GLView *view, int w, int h)
Definition: glv.c:1127
void glv_filterRepeatKeys(GLView *view, int on)
Definition: glv.c:1447
int type
Definition: glv.h:15
void glv_hide(GLView *view)
Definition: glv.c:1096
void * user
Definition: glv.h:26
void glv_swapBuffers(GLView *view)
Definition: glv.c:1068
void glv_setEventHandler(GLView *view, GLViewEvent_f func)
Definition: glv.c:1196
void glv_waitEvent(GLView *view)
Definition: glv.c:1217
void glv_show(GLView *view)
Definition: glv.c:1086
int code
Definition: glv.h:16
int width
Definition: glv.h:55
void glv_makeCurrent(GLView *view)
Definition: glv.c:1077
void glv_showCursor(GLView *view, int on)
Definition: glv.c:1156
int width
Definition: glv.h:31
The GLView struct...
Definition: glv.h:23
int glv_changeMode(GLView *view, const GLViewMode *mode)
Definition: glv.c:919
int glv_attributes(GLView *view)
Definition: glv.c:545
The GLViewMode struct holds information about a video mode.
Definition: glv.h:53
void glv_destroy(GLView *view)
Definition: glv.c:498