1 /**************************************************************************** 2 ** $Id: qt/qgl_x11_p.h 3.3.8 edited Jan 11 14:38 $ 3 ** 4 ** Definitions needed for resolving GL/GLX symbols using dlopen() 5 ** under X11. 6 ** 7 ** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved. 8 ** 9 ** This file is part of the OpenGL module of the Qt GUI Toolkit. 10 ** 11 ** This file may be distributed and/or modified under the terms of the 12 ** GNU General Public License version 2 as published by the Free Software 13 ** Foundation and appearing in the file LICENSE.GPL included in the 14 ** packaging of this file. 15 ** 16 ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition 17 ** licenses for Qt/Embedded may use this file in accordance with the 18 ** Qt Embedded Commercial License Agreement provided with the Software. 19 ** 20 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 21 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 22 ** 23 ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for 24 ** information about Qt Commercial License Agreements. 25 ** See http://www.trolltech.com/gpl/ for GPL licensing information. 26 ** 27 ** Contact info@trolltech.com if any conditions of this licensing are 28 ** not clear to you. 29 ** 30 **********************************************************************/ 31 32 #ifndef QGL_P_H 33 #define QGL_P_H 34 35 // 36 // W A R N I N G 37 // ------------- 38 // 39 // This file is not part of the Qt API. This header file may 40 // change from version to version without notice, or even be 41 // removed. 42 // 43 // We mean it. 44 // 45 // 46 47 #ifdef QT_DLOPEN_OPENGL 48 // resolve the GL symbols we use ourselves 49 bool qt_resolve_gl_symbols(bool = TRUE); 50 extern "C" { 51 // GL symbols 52 typedef void (*_glCallLists)( GLsizei n, GLenum type, const GLvoid *lists ); 53 typedef void (*_glClearColor)( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ); 54 typedef void (*_glClearIndex)( GLfloat c ); 55 typedef void (*_glColor3ub)( GLubyte red, GLubyte green, GLubyte blue ); 56 typedef void (*_glDeleteLists)( GLuint list, GLsizei range ); 57 typedef void (*_glDrawBuffer)( GLenum mode ); 58 typedef void (*_glFlush)( void ); 59 typedef void (*_glIndexi)( GLint c ); 60 typedef void (*_glListBase)( GLuint base ); 61 typedef void (*_glLoadIdentity)( void ); 62 typedef void (*_glMatrixMode)( GLenum mode ); 63 typedef void (*_glOrtho)( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_val, GLdouble far_val ); 64 typedef void (*_glPopAttrib)( void ); 65 typedef void (*_glPopMatrix)( void ); 66 typedef void (*_glPushAttrib)( GLbitfield mask ); 67 typedef void (*_glPushMatrix)( void ); 68 typedef void (*_glRasterPos2i)( GLint x, GLint y ); 69 typedef void (*_glRasterPos3d)( GLdouble x, GLdouble y, GLdouble z ); 70 typedef void (*_glReadPixels)( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels ); 71 typedef void (*_glViewport)( GLint x, GLint y, GLsizei width, GLsizei height ); 72 typedef void (*_glPixelStorei)( GLenum pname, GLint param ); 73 typedef void (*_glBitmap)( GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, 74 const GLubyte *bitmap ); 75 typedef void (*_glDrawPixels)( GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels ); 76 typedef void (*_glNewList)( GLuint list, GLenum mode ); 77 typedef void (*_glGetFloatv)( GLenum pname, GLfloat *params ); 78 typedef void (*_glGetIntegerv)( GLenum pname, GLint *params ); 79 typedef void (*_glEndList)( void ); 80 81 82 // GLX symbols - should be in the GL lib as well 83 typedef XVisualInfo* (*_glXChooseVisual)(Display *dpy, int screen, int *attribList); 84 typedef GLXContext (*_glXCreateContext)(Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct); 85 typedef GLXPixmap (*_glXCreateGLXPixmap)(Display *dpy, XVisualInfo *vis, Pixmap pixmap); 86 typedef void (*_glXDestroyContext)(Display *dpy, GLXContext ctx); 87 typedef void (*_glXDestroyGLXPixmap)(Display *dpy, GLXPixmap pix); 88 typedef const char* (*_glXGetClientString)(Display *dpy, int name ); 89 typedef int (*_glXGetConfig)(Display *dpy, XVisualInfo *vis, int attrib, int *value); 90 typedef Bool (*_glXIsDirect)(Display *dpy, GLXContext ctx); 91 typedef Bool (*_glXMakeCurrent)(Display *dpy, GLXDrawable drawable, GLXContext ctx); 92 typedef Bool (*_glXQueryExtension)(Display *dpy, int *errorBase, int *eventBase); 93 typedef const char* (*_glXQueryExtensionsString)(Display *dpy, int screen); 94 typedef const char* (*_glXQueryServerString)(Display *dpy, int screen, int name); 95 typedef void (*_glXSwapBuffers)(Display *dpy, GLXDrawable drawable); 96 typedef void (*_glXUseXFont)(Font font, int first, int count, int listBase); 97 typedef void (*_glXWaitX)(void); 98 99 extern _glCallLists qt_glCallLists; 100 extern _glClearColor qt_glClearColor; 101 extern _glClearIndex qt_glClearIndex; 102 extern _glColor3ub qt_glColor3ub; 103 extern _glDeleteLists qt_glDeleteLists; 104 extern _glDrawBuffer qt_glDrawBuffer; 105 extern _glFlush qt_glFlush; 106 extern _glIndexi qt_glIndexi; 107 extern _glListBase qt_glListBase; 108 extern _glLoadIdentity qt_glLoadIdentity; 109 extern _glMatrixMode qt_glMatrixMode; 110 extern _glOrtho qt_glOrtho; 111 extern _glPopAttrib qt_glPopAttrib; 112 extern _glPopMatrix qt_glPopMatrix; 113 extern _glPushAttrib qt_glPushAttrib; 114 extern _glPushMatrix qt_glPushMatrix; 115 extern _glRasterPos2i qt_glRasterPos2i; 116 extern _glRasterPos3d qt_glRasterPos3d; 117 extern _glReadPixels qt_glReadPixels; 118 extern _glViewport qt_glViewport; 119 extern _glPixelStorei qt_glPixelStorei; 120 extern _glBitmap qt_glBitmap; 121 extern _glDrawPixels qt_glDrawPixels; 122 extern _glNewList qt_glNewList; 123 extern _glGetFloatv qt_glGetFloatv; 124 extern _glGetIntegerv qt_glGetIntegerv; 125 extern _glEndList qt_glEndList; 126 127 extern _glXChooseVisual qt_glXChooseVisual; 128 extern _glXCreateContext qt_glXCreateContext; 129 extern _glXCreateGLXPixmap qt_glXCreateGLXPixmap; 130 extern _glXDestroyContext qt_glXDestroyContext; 131 extern _glXDestroyGLXPixmap qt_glXDestroyGLXPixmap; 132 extern _glXGetClientString qt_glXGetClientString; 133 extern _glXGetConfig qt_glXGetConfig; 134 extern _glXIsDirect qt_glXIsDirect; 135 extern _glXMakeCurrent qt_glXMakeCurrent; 136 extern _glXQueryExtension qt_glXQueryExtension; 137 extern _glXQueryExtensionsString qt_glXQueryExtensionsString; 138 extern _glXQueryServerString qt_glXQueryServerString; 139 extern _glXSwapBuffers qt_glXSwapBuffers; 140 extern _glXUseXFont qt_glXUseXFont; 141 extern _glXWaitX qt_glXWaitX; 142 }; // extern "C" 143 144 #define glCallLists qt_glCallLists 145 #define glClearColor qt_glClearColor 146 #define glClearIndex qt_glClearIndex 147 #define glColor3ub qt_glColor3ub 148 #define glDeleteLists qt_glDeleteLists 149 #define glDrawBuffer qt_glDrawBuffer 150 #define glFlush qt_glFlush 151 #define glIndexi qt_glIndexi 152 #define glListBase qt_glListBase 153 #define glLoadIdentity qt_glLoadIdentity 154 #define glMatrixMode qt_glMatrixMode 155 #define glOrtho qt_glOrtho 156 #define glPopAttrib qt_glPopAttrib 157 #define glPopMatrix qt_glPopMatrix 158 #define glPushAttrib qt_glPushAttrib 159 #define glPushMatrix qt_glPushMatrix 160 #define glRasterPos2i qt_glRasterPos2i 161 #define glRasterPos3d qt_glRasterPos3d 162 #define glReadPixels qt_glReadPixels 163 #define glViewport qt_glViewport 164 #define glPixelStorei qt_glPixelStorei 165 #define glBitmap qt_glBitmap 166 #define glDrawPixels qt_glDrawPixels 167 #define glNewList qt_glNewList 168 #define glGetFloatv qt_glGetFloatv 169 #define glGetIntegerv qt_glGetIntegerv 170 #define glEndList qt_glEndList 171 172 #define glXChooseVisual qt_glXChooseVisual 173 #define glXCreateContext qt_glXCreateContext 174 #define glXCreateGLXPixmap qt_glXCreateGLXPixmap 175 #define glXDestroyContext qt_glXDestroyContext 176 #define glXDestroyGLXPixmap qt_glXDestroyGLXPixmap 177 #define glXGetClientString qt_glXGetClientString 178 #define glXGetConfig qt_glXGetConfig 179 #define glXIsDirect qt_glXIsDirect 180 #define glXMakeCurrent qt_glXMakeCurrent 181 #define glXQueryExtension qt_glXQueryExtension 182 #define glXQueryExtensionsString qt_glXQueryExtensionsString 183 #define glXQueryServerString qt_glXQueryServerString 184 #define glXSwapBuffers qt_glXSwapBuffers 185 #define glXUseXFont qt_glXUseXFont 186 #define glXWaitX qt_glXWaitX 187 188 #else 189 inline bool qt_resolve_gl_symbols(bool = TRUE) { return TRUE; } 190 #endif // QT_DLOPEN_OPENGL 191 #endif // QGL_P_H 192