/**************************************************************************** ** ** Definitions needed for resolving GL/GLX symbols using dlopen() ** under X11. ** ** Copyright (C) 2010 Timothy Pearson and (C) 1992-2008 Trolltech ASA. ** ** 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 requirements 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 sales@trolltech.com. ** ** 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 TQT_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 tqmask ); 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 // TQT_DLOPEN_OPENGL #endif // TQGL_P_H