summaryrefslogtreecommitdiffstats
path: root/src/opengl/qgl_x11_p.h
blob: b74b385f4b805e4d23ff21955aa4a040ccdabb3b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
/****************************************************************************
**
** Definitions needed for resolving GL/GLX symbols using dlopen()
** under X11.
**
** Copyright (C) 1992-2008 Trolltech ASA.  All rights reserved.
**
** This file is part of the OpenGL module of the TQt GUI Toolkit.
**
** This file may be used under the terms of the GNU General
** Public License versions 2.0 or 3.0 as published by the Free
** Software Foundation and appearing in the files LICENSE.GPL2
** and LICENSE.GPL3 included in the packaging of this file.
** Alternatively you may (at your option) use any later version
** of the GNU General Public License if such license has been
** publicly approved by Trolltech ASA (or its successors, if any)
** and the KDE Free TQt Foundation.
**
** Please review the following information to ensure GNU General
** Public Licensing retquirements will be met:
** http://trolltech.com/products/qt/licenses/licensing/opensource/.
** If you are unsure which license is appropriate for your use, please
** review the following information:
** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
** or contact the sales department at [email protected].
**
** Licensees holding valid TQt Commercial licenses may use this file in
** accordance with the TQt Commercial License Agreement provided with
** the Software.
**
** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
** herein.
**
**********************************************************************/

#ifndef TQGL_P_H
#define TQGL_P_H

//
//  W A R N I N G
//  -------------
//
// This file is not part of the TQt API.  This header file may
// change from version to version without notice, or even be
// removed.
//
// We mean it.
//
//

#ifdef QT_DLOPEN_OPENGL
// resolve the GL symbols we use ourselves
bool qt_resolve_gl_symbols(bool = TRUE);
extern "C" {
// GL symbols
typedef void (*_glCallLists)( GLsizei n, GLenum type, const GLvoid *lists );
typedef void (*_glClearColor)( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha );
typedef void (*_glClearIndex)( GLfloat c );
typedef void (*_glColor3ub)( GLubyte red, GLubyte green, GLubyte blue );
typedef void (*_glDeleteLists)( GLuint list, GLsizei range );
typedef void (*_glDrawBuffer)( GLenum mode );
typedef void (*_glFlush)( void );
typedef void (*_glIndexi)( GLint c );
typedef void (*_glListBase)( GLuint base );
typedef void (*_glLoadIdentity)( void );
typedef void (*_glMatrixMode)( GLenum mode );
typedef void (*_glOrtho)( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_val, GLdouble far_val );
typedef void (*_glPopAttrib)( void );
typedef void (*_glPopMatrix)( void );
typedef void (*_glPushAttrib)( GLbitfield mask );
typedef void (*_glPushMatrix)( void );
typedef void (*_glRasterPos2i)( GLint x, GLint y );
typedef void (*_glRasterPos3d)( GLdouble x, GLdouble y, GLdouble z );
typedef void (*_glReadPixels)( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels );
typedef void (*_glViewport)( GLint x, GLint y, GLsizei width, GLsizei height );
typedef void (*_glPixelStorei)( GLenum pname, GLint param );
typedef void (*_glBitmap)( GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove,
			   const GLubyte *bitmap );
typedef void (*_glDrawPixels)( GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels );
typedef void (*_glNewList)( GLuint list, GLenum mode );
typedef void (*_glGetFloatv)( GLenum pname, GLfloat *params );
typedef void (*_glGetIntegerv)( GLenum pname, GLint *params );
typedef void (*_glEndList)( void );


// GLX symbols - should be in the GL lib as well
typedef XVisualInfo* (*_glXChooseVisual)(Display *dpy, int screen, int *attribList);
typedef GLXContext (*_glXCreateContext)(Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct);
typedef GLXPixmap (*_glXCreateGLXPixmap)(Display *dpy, XVisualInfo *vis, Pixmap pixmap);
typedef void (*_glXDestroyContext)(Display *dpy, GLXContext ctx);
typedef void (*_glXDestroyGLXPixmap)(Display *dpy, GLXPixmap pix);
typedef const char* (*_glXGetClientString)(Display *dpy, int name );
typedef int (*_glXGetConfig)(Display *dpy, XVisualInfo *vis, int attrib, int *value);
typedef Bool (*_glXIsDirect)(Display *dpy, GLXContext ctx);
typedef Bool (*_glXMakeCurrent)(Display *dpy, GLXDrawable drawable, GLXContext ctx);
typedef Bool (*_glXQueryExtension)(Display *dpy, int *errorBase, int *eventBase);
typedef const char* (*_glXQueryExtensionsString)(Display *dpy, int screen);
typedef const char* (*_glXQueryServerString)(Display *dpy, int screen, int name);
typedef void (*_glXSwapBuffers)(Display *dpy, GLXDrawable drawable);
typedef void (*_glXUseXFont)(Font font, int first, int count, int listBase);
typedef void (*_glXWaitX)(void);

extern _glCallLists qt_glCallLists;
extern _glClearColor qt_glClearColor;
extern _glClearIndex qt_glClearIndex;
extern _glColor3ub qt_glColor3ub;
extern _glDeleteLists qt_glDeleteLists;
extern _glDrawBuffer qt_glDrawBuffer;
extern _glFlush qt_glFlush;
extern _glIndexi qt_glIndexi;
extern _glListBase qt_glListBase;
extern _glLoadIdentity qt_glLoadIdentity;
extern _glMatrixMode qt_glMatrixMode;
extern _glOrtho qt_glOrtho;
extern _glPopAttrib qt_glPopAttrib;
extern _glPopMatrix qt_glPopMatrix;
extern _glPushAttrib qt_glPushAttrib;
extern _glPushMatrix qt_glPushMatrix;
extern _glRasterPos2i qt_glRasterPos2i;
extern _glRasterPos3d qt_glRasterPos3d;
extern _glReadPixels qt_glReadPixels;
extern _glViewport qt_glViewport;
extern _glPixelStorei qt_glPixelStorei;
extern _glBitmap qt_glBitmap;
extern _glDrawPixels qt_glDrawPixels;
extern _glNewList qt_glNewList;
extern _glGetFloatv qt_glGetFloatv;
extern _glGetIntegerv qt_glGetIntegerv;
extern _glEndList qt_glEndList;

extern _glXChooseVisual qt_glXChooseVisual;
extern _glXCreateContext qt_glXCreateContext;
extern _glXCreateGLXPixmap qt_glXCreateGLXPixmap;
extern _glXDestroyContext qt_glXDestroyContext;
extern _glXDestroyGLXPixmap qt_glXDestroyGLXPixmap;
extern _glXGetClientString qt_glXGetClientString;
extern _glXGetConfig qt_glXGetConfig;
extern _glXIsDirect qt_glXIsDirect;
extern _glXMakeCurrent qt_glXMakeCurrent;
extern _glXQueryExtension qt_glXQueryExtension;
extern _glXQueryExtensionsString qt_glXQueryExtensionsString;
extern _glXQueryServerString qt_glXQueryServerString;
extern _glXSwapBuffers qt_glXSwapBuffers;
extern _glXUseXFont qt_glXUseXFont;
extern _glXWaitX qt_glXWaitX;
}; // extern "C"

#define glCallLists qt_glCallLists
#define glClearColor qt_glClearColor
#define glClearIndex qt_glClearIndex
#define glColor3ub qt_glColor3ub
#define glDeleteLists qt_glDeleteLists
#define glDrawBuffer qt_glDrawBuffer
#define glFlush qt_glFlush
#define glIndexi qt_glIndexi
#define glListBase qt_glListBase
#define glLoadIdentity qt_glLoadIdentity
#define glMatrixMode qt_glMatrixMode
#define glOrtho qt_glOrtho
#define glPopAttrib qt_glPopAttrib
#define glPopMatrix qt_glPopMatrix
#define glPushAttrib qt_glPushAttrib
#define glPushMatrix qt_glPushMatrix
#define glRasterPos2i qt_glRasterPos2i
#define glRasterPos3d qt_glRasterPos3d
#define glReadPixels qt_glReadPixels
#define glViewport qt_glViewport
#define glPixelStorei qt_glPixelStorei
#define glBitmap qt_glBitmap
#define glDrawPixels qt_glDrawPixels
#define glNewList qt_glNewList
#define glGetFloatv qt_glGetFloatv
#define glGetIntegerv qt_glGetIntegerv
#define glEndList qt_glEndList

#define glXChooseVisual qt_glXChooseVisual
#define glXCreateContext qt_glXCreateContext
#define glXCreateGLXPixmap qt_glXCreateGLXPixmap
#define glXDestroyContext qt_glXDestroyContext
#define glXDestroyGLXPixmap qt_glXDestroyGLXPixmap
#define glXGetClientString qt_glXGetClientString
#define glXGetConfig qt_glXGetConfig
#define glXIsDirect qt_glXIsDirect
#define glXMakeCurrent qt_glXMakeCurrent
#define glXQueryExtension qt_glXQueryExtension
#define glXQueryExtensionsString qt_glXQueryExtensionsString
#define glXQueryServerString qt_glXQueryServerString
#define glXSwapBuffers qt_glXSwapBuffers
#define glXUseXFont qt_glXUseXFont
#define glXWaitX qt_glXWaitX

#else
inline bool qt_resolve_gl_symbols(bool = TRUE) { return TRUE; }
#endif // QT_DLOPEN_OPENGL
#endif // TQGL_P_H