#ifndef QGL_H
#define QGL_H
#include <QtGui/qwidget.h>
#include <QtOpenGL/qglcolormap.h>
#include <QtCore/qmap.h>
typedef enum QtValidLicenseForOpenGLModule QtOpenGLModule;
#if defined(Q_WS_MAC)
#elif defined(Q_WS_QWS)
#else
#include <GL/gl.h>
#include <GL/glu.h>
#endif
#if defined(Q_WS_X11)
struct QGLOverlayWidget;
#endif
struct QGLContextPrivate;
namespace QGL{
enum FormatOption{
DoubleBuffer = 1,
DepthBuffer = 2,
Rgba = 4,
AlphaChannel = 8,
AccumBuffer = 16,
StencilBuffer = 32,
StereoBuffers = 64,
DirectRendering = 128,
HasOverlay = 256,
SampleBuffers = 512,
SingleBuffer = 65536,
NoDepthBuffer = 131072,
ColorIndex = 262144,
NoAlphaChannel = 524288,
NoAccumBuffer = 1048576,
NoStencilBuffer = 2097152,
NoStereoBuffers = 4194304,
IndirectRendering = 8388608,
NoOverlay = 16777216,
NoSampleBuffers = 33554432,
};
typedef class QFlags < enum QGL::FormatOption > FormatOptions;
};
inline class QFlags < enum QGL::FormatOption > operator |(enum QGL::FormatOption f1, class QFlags < enum QGL::FormatOption > f2);
inline class QFlags < enum QGL::FormatOption > operator |(enum QGL::FormatOption f1, enum QGL::FormatOption f2);
struct QGLFormatPrivate;
class QGLFormat{
public: QGLFormat();
public: QGLFormat(QGL::FormatOptions options, int plane = 0);
public: QGLFormat(class QGLFormat const & other);
public: class QGLFormat& operator =(class QGLFormat const & other);
public: ~QGLFormat();
public: void setDepthBufferSize(int size);
public: int depthBufferSize() const
public: void setAccumBufferSize(int size);
public: int accumBufferSize() const
public: void setRedBufferSize(int size);
public: int redBufferSize() const
public: void setGreenBufferSize(int size);
public: int greenBufferSize() const
public: void setBlueBufferSize(int size);
public: int blueBufferSize() const
public: void setAlphaBufferSize(int size);
public: int alphaBufferSize() const
public: void setStencilBufferSize(int size);
public: int stencilBufferSize() const
public: void setSampleBuffers(bool enable);
public: void setSamples(int numSamples);
public: int samples() const
public: void setSwapInterval(int interval);
public: int swapInterval() const
public: void setDoubleBuffer(bool enable);
public: void setDepth(bool enable);
public: void setRgba(bool enable);
public: void setAlpha(bool enable);
public: void setAccum(bool enable);
public: void setStencil(bool enable);
public: void setStereo(bool enable);
public: void setDirectRendering(bool enable);
public: void setOverlay(bool enable);
public: int plane() const
public: void setPlane(int plane);
public: void setOption(QGL::FormatOptions opt);
public: bool testOption(QGL::FormatOptions opt) const
public: static class QGLFormat defaultFormat();
public: static void setDefaultFormat(class QGLFormat const & f);
public: static class QGLFormat defaultOverlayFormat();
public: static void setDefaultOverlayFormat(class QGLFormat const & f);
public: static bool hasOpenGL();
public: static bool hasOpenGLOverlays();
public: enum OpenGLVersionFlag{
OpenGL_Version_None = 0,
OpenGL_Version_1_1 = 1,
OpenGL_Version_1_2 = 2,
OpenGL_Version_1_3 = 4,
OpenGL_Version_1_4 = 8,
OpenGL_Version_1_5 = 16,
OpenGL_Version_2_0 = 32,
OpenGL_Version_2_1 = 64,
OpenGL_ES_Common_Version_1_0 = 128,
OpenGL_ES_CommonLite_Version_1_0 = 256,
OpenGL_ES_Common_Version_1_1 = 512,
OpenGL_ES_CommonLite_Version_1_1 = 1024,
OpenGL_ES_Version_2_0 = 2048,
};
public: typedef class QFlags < enum QGLFormat::OpenGLVersionFlag > OpenGLVersionFlags;
public: static class QFlags < enum QGLFormat::OpenGLVersionFlag > openGLVersionFlags();
private: struct QGLFormatPrivate* d;
public: inline bool doubleBuffer() const
public: inline bool depth() const
public: inline bool rgba() const
public: inline bool alpha() const
public: inline bool accum() const
public: inline bool stencil() const
public: inline bool stereo() const
public: inline bool directRendering() const
public: inline bool hasOverlay() const
public: inline bool sampleBuffers() const
friend bool operator ==(class QGLFormat const &, class QGLFormat const &);
friend bool operator !=(class QGLFormat const &, class QGLFormat const &);
};
inline class QFlags < enum QGLFormat::OpenGLVersionFlag > operator |(enum QGLFormat::OpenGLVersionFlag f1, class QFlags < enum QGLFormat::OpenGLVersionFlag > f2);
inline class QFlags < enum QGLFormat::OpenGLVersionFlag > operator |(enum QGLFormat::OpenGLVersionFlag f1, enum QGLFormat::OpenGLVersionFlag f2);
bool operator ==(class QGLFormat const &, class QGLFormat const &);
bool operator !=(class QGLFormat const &, class QGLFormat const &);
class QGLContext{
private: inline struct QGLContextPrivate* d_func();
private: inline struct QGLContextPrivate const * d_func() const
public: QGLContext(class QGLFormat const & format, class QPaintDevice* device);
public: QGLContext(class QGLFormat const & format);
public: virtual ~QGLContext();
public: virtual bool create(class QGLContext const * shareContext = 0);
public: bool isValid() const
public: bool isSharing() const
public: void reset();
public: class QGLFormat format() const
public: class QGLFormat requestedFormat() const
public: void setFormat(class QGLFormat const & format);
public: virtual void makeCurrent();
public: virtual void doneCurrent();
public: virtual void swapBuffers() const
public: GLuint bindTexture(class QImage const & image, GLenum target = 3553, GLint format = 6408);
public: GLuint bindTexture(class QPixmap const & pixmap, GLenum target = 3553, GLint format = 6408);
public: GLuint bindTexture(class QString const & fileName);
public: void deleteTexture(GLuint tx_id);
public: static void setTextureCacheLimit(int size);
public: static int textureCacheLimit();
public: void* getProcAddress(class QString const & proc) const
public: class QPaintDevice* device() const
public: class QColor overlayTransparentColor() const
public: static class QGLContext const * currentContext();
protected: virtual bool chooseContext(class QGLContext const * shareContext = 0);
#if defined(Q_WS_X11)
protected: virtual void* tryVisual(class QGLFormat const & f, int bufDepth = 1);
protected: virtual void* chooseVisual();
#endif
protected: bool deviceIsPixmap() const
protected: bool windowCreated() const
protected: void setWindowCreated(bool on);
protected: bool initialized() const
protected: void setInitialized(bool on);
protected: void generateFontDisplayLists(class QFont const & fnt, int listBase);
protected: uint colorIndex(class QColor const & c) const
protected: void setValid(bool valid);
protected: void setDevice(class QPaintDevice* pDev);
protected: static class QGLContext* currentCtx;
private: struct QGLContextPrivate* d_ptr;
private: QGLContext(QGLContext&);
private: class QGLContext& operator =(QGLContext&);
friend struct QGLContextPrivate;
friend struct QGLPixelBuffer;
friend struct QGLPixelBufferPrivate;
friend class QGLWidget;
friend struct QGLDrawable;
friend struct QGLWidgetPrivate;
friend struct QGLGlyphCache;
friend struct QOpenGLPaintEngine;
friend struct QOpenGLPaintEnginePrivate;
};
struct QGLPixelBuffer;
struct QGLPixelBufferPrivate;
struct QGLDrawable;
struct QGLGlyphCache;
struct QOpenGLPaintEngine;
struct QOpenGLPaintEnginePrivate;
class QGLWidget: public QWidget{
public: virtual struct QMetaObject const * metaObject() const
public: static struct QMetaObject const staticMetaObject;
public: virtual void* qt_metacast(char const *);
public: static inline class QString tr(char const * s, char const * c = 0);
public: static inline class QString trUtf8(char const * s, char const * c = 0);
public: static inline class QString tr(char const * s, char const * c, int n);
public: static inline class QString trUtf8(char const * s, char const * c, int n);
public: virtual int qt_metacall(enum QMetaObject::Call, int, void* *);
private: inline struct QGLWidgetPrivate* d_func();
private: inline struct QGLWidgetPrivate const * d_func() const
public: explicit QGLWidget(class QWidget* parent = 0, class QGLWidget const * shareWidget = 0, Qt::WindowFlags f = 0);
public: explicit QGLWidget(class QGLContext* context, class QWidget* parent = 0, class QGLWidget const * shareWidget = 0, Qt::WindowFlags f = 0);
public: explicit QGLWidget(class QGLFormat const & format, class QWidget* parent = 0, class QGLWidget const * shareWidget = 0, Qt::WindowFlags f = 0);
public: virtual ~QGLWidget();
public: void qglColor(class QColor const & c) const
public: void qglClearColor(class QColor const & c) const
public: bool isValid() const
public: bool isSharing() const
public: void makeCurrent();
public: void doneCurrent();
public: bool doubleBuffer() const
public: void swapBuffers();
public: class QGLFormat format() const
public: void setFormat(class QGLFormat const & format);
public: class QGLContext const * context() const
public: void setContext(class QGLContext* context, class QGLContext const * shareContext = 0, bool deleteOldContext = 1);
public: class QPixmap renderPixmap(int w = 0, int h = 0, bool useContext = 0);
public: class QImage grabFrameBuffer(bool withAlpha = 0);
public: void makeOverlayCurrent();
public: class QGLContext const * overlayContext() const
public: static class QImage convertToGLFormat(class QImage const & img);
public: void setMouseTracking(bool enable);
public: class QGLColormap const & colormap() const
public: void setColormap(class QGLColormap const & map);
public: void renderText(int x, int y, class QString const & str, class QFont const & fnt = QFont::QFont(), int listBase = 2000);
public: void renderText(double x, double y, double z, class QString const & str, class QFont const & fnt = QFont::QFont(), int listBase = 2000);
public: virtual struct QPaintEngine* paintEngine() const
public: GLuint bindTexture(class QImage const & image, GLenum target = 3553, GLint format = 6408);
public: GLuint bindTexture(class QPixmap const & pixmap, GLenum target = 3553, GLint format = 6408);
public: GLuint bindTexture(class QString const & fileName);
public: void deleteTexture(GLuint tx_id);
public: virtual void updateGL();
public: virtual void updateOverlayGL();
protected: virtual bool event(struct QEvent*);
protected: virtual void initializeGL();
protected: virtual void resizeGL(int w, int h);
protected: virtual void paintGL();
protected: virtual void initializeOverlayGL();
protected: virtual void resizeOverlayGL(int w, int h);
protected: virtual void paintOverlayGL();
protected: void setAutoBufferSwap(bool on);
protected: bool autoBufferSwap() const
protected: virtual void paintEvent(struct QPaintEvent*);
protected: virtual void resizeEvent(struct QResizeEvent*);
protected: virtual void glInit();
protected: virtual void glDraw();
protected: int fontDisplayListBase(class QFont const & fnt, int listBase = 2000);
private: QGLWidget(QGLWidget&);
private: class QGLWidget& operator =(QGLWidget&);
friend struct QGLWidgetPrivate;
friend struct QGLDrawable;
friend struct QGLPixelBuffer;
friend struct QGLPixelBufferPrivate;
friend class QGLContext;
friend struct QGLOverlayWidget;
friend struct QOpenGLPaintEngine;
};
#endif // QGL_H