// This is the SIP interface definition for QGL, QGLContext, QGLFormat and // QGLWidget. // // Copyright (c) 2007 // Riverbank Computing Limited // // This file is part of PyQt. // // This copy of PyQt is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by the Free // Software Foundation; either version 2, or (at your option) any later // version. // // PyQt is supplied in the hope that it will be useful, but WITHOUT ANY // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more // details. // // You should have received a copy of the GNU General Public License along with // PyQt; see the file LICENSE. If not, write to the Free Software Foundation, // Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. %ExportedDoc QGL QGL is fully implemented. QGLContext QGLContext is fully implemented. QGLFormat QGLFormat is fully implemented. QGLWidget QGLWidget is fully implemented. %End %If (Qt_2_00 -) const int QGL_VERSION; const char *QGL_VERSION_STR; const char *qGLVersion(); class QGL { %TypeHeaderCode #include %End public: enum FormatOption { DoubleBuffer, DepthBuffer, Rgba, AlphaChannel, AccumBuffer, StencilBuffer, StereoBuffers, DirectRendering, HasOverlay, SingleBuffer, NoDepthBuffer, ColorIndex, NoAlphaChannel, NoAccumBuffer, NoStencilBuffer, NoStereoBuffers, IndirectRendering, NoOverlay }; }; class QGLFormat : QGL { %TypeHeaderCode #include %End public: QGLFormat(); QGLFormat(int,int = 0); bool doubleBuffer() const; void setDoubleBuffer(bool); bool depth() const; void setDepth(bool); bool rgba() const; void setRgba(bool); bool alpha() const; void setAlpha(bool); bool accum() const; void setAccum(bool); bool stencil() const; void setStencil(bool); bool stereo() const; void setStereo(bool); bool directRendering() const; void setDirectRendering(bool); bool hasOverlay() const; void setOverlay(bool); int plane() const; void setPlane(int); void setOption(FormatOption); bool testOption(FormatOption) const; static QGLFormat defaultFormat(); static void setDefaultFormat(const QGLFormat &); static QGLFormat defaultOverlayFormat(); static void setDefaultOverlayFormat(const QGLFormat &); static bool hasOpenGL(); static bool hasOpenGLOverlays(); }; class QGLContext : QGL { %TypeHeaderCode #include %End public: QGLContext(const QGLFormat &,QPaintDevice *); %If (Qt_3_2_0 -) QGLContext(const QGLFormat &); %End virtual bool create(const QGLContext * = 0); bool isValid() const; bool isSharing() const; virtual void reset(); QGLFormat format() const; %If (Qt_3_0_0 -) QGLFormat requestedFormat() const; %End virtual void setFormat(const QGLFormat &); virtual void makeCurrent(); virtual void swapBuffers() const; QPaintDevice *device() const; QColor overlayTransparentColor() const; static const QGLContext *currentContext(); protected: virtual bool chooseContext(const QGLContext * = 0); virtual void doneCurrent(); %If (WS_X11) virtual void *tryVisual(const QGLFormat &,int = 1); virtual void *chooseVisual(); %End bool deviceIsPixmap() const; bool windowCreated() const; void setWindowCreated(bool); bool initialized() const; void setInitialized(bool); %If (Qt_3_1_0 -) void generateFontDisplayLists(const QFont &,int); %End uint colorIndex(const QColor &) const; %If (Qt_3_2_0 -) void setValid(bool); void setDevice(QPaintDevice *); %End private: QGLContext(); QGLContext(const QGLContext &); }; class QGLWidget : QWidget, QGL { %TypeHeaderCode #include %End public: QGLWidget(QWidget * /TransferThis/ = 0,const char * = 0, const QGLWidget * = 0,WFlags = 0); %If (Qt_3_2_0 -) QGLWidget(QGLContext * /Transfer/,QWidget * /TransferThis/ = 0,const char * = 0, const QGLWidget * = 0,WFlags = 0); %End QGLWidget(const QGLFormat &,QWidget * /TransferThis/ = 0, const char * = 0,const QGLWidget * = 0,WFlags = 0); %ConvertToSubClassCode sipClass = (sipCpp->inherits(sipName_QGLWidget) ? sipClass_QGLWidget : NULL); %End void qglColor(const QColor &) const; void qglClearColor(const QColor &) const; bool isValid() const; bool isSharing() const; virtual void makeCurrent(); %If (Qt_3_2_0 -) void doneCurrent(); %End bool doubleBuffer() const; virtual void swapBuffers(); QGLFormat format() const; const QGLContext *context() const; virtual QPixmap renderPixmap(int = 0,int = 0,bool = 0); %If (Qt_3_0_0 -) virtual QImage grabFrameBuffer(bool = 0); %End virtual void makeOverlayCurrent(); const QGLContext *overlayContext() const; static QImage convertToGLFormat(const QImage &); void setMouseTracking(bool); %If (Qt_3_0_0 -) virtual void reparent(QWidget * /GetWrapper/,WFlags,const QPoint &, bool = 0); %MethodCode if (sipCpp -> parent() != a0) if (a0) sipTransferTo(sipSelf,a0Wrapper); else sipTransferBack(sipSelf); Py_BEGIN_ALLOW_THREADS sipSelfWasArg ? sipCpp->QGLWidget::reparent(a0, a1, *a2, a3) : sipCpp->reparent(a0, a1, *a2, a3); Py_END_ALLOW_THREADS %End const QGLColormap &colormap() const; void setColormap(const QGLColormap &); %End %If (Qt_3_1_0 -) void renderText(int,int,const QString &,const QFont & = QFont(), int = 2000); void renderText(double,double,double,const QString &, const QFont & = QFont(),int = 2000); %End public slots: virtual void updateGL(); virtual void updateOverlayGL(); protected: virtual void initializeGL(); virtual void resizeGL(int,int); virtual void paintGL(); virtual void initializeOverlayGL(); virtual void resizeOverlayGL(int,int); virtual void paintOverlayGL(); void setAutoBufferSwap(bool); bool autoBufferSwap() const; void paintEvent(QPaintEvent *); void resizeEvent(QResizeEvent *); virtual void glInit(); virtual void glDraw(); private: QGLWidget(const QGLWidget &); }; %End