// This is the SIP interface definition for TQGL, TQGLContext, TQGLFormat and // TQGLWidget. // // Copyright (c) 2007 // Riverbank Computing Limited // // This file is part of PyTQt. // // This copy of PyTQt 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. // // PyTQt 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 // PyTQt; see the file LICENSE. If not, write to the Free Software Foundation, // Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. %ExportedDoc TQGL TQGL is fully implemented. TQGLContext TQGLContext is fully implemented. TQGLFormat TQGLFormat is fully implemented. TQGLWidget TQGLWidget is fully implemented. %End const int TQGL_VERSION; const char *TQGL_VERSION_STR; const char *qGLVersion(); class TQGL { %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 TQGLFormat : TQGL { %TypeHeaderCode #include %End public: TQGLFormat(); TQGLFormat(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 TQGLFormat defaultFormat(); static void setDefaultFormat(const TQGLFormat &); static TQGLFormat defaultOverlayFormat(); static void setDefaultOverlayFormat(const TQGLFormat &); static bool hasOpenGL(); static bool hasOpenGLOverlays(); }; class TQGLContext : TQGL { %TypeHeaderCode #include %End public: TQGLContext(const TQGLFormat &,TQPaintDevice *); TQGLContext(const TQGLFormat &); virtual bool create(const TQGLContext * = 0); bool isValid() const; bool isSharing() const; virtual void reset(); TQGLFormat format() const; TQGLFormat requestedFormat() const; virtual void setFormat(const TQGLFormat &); virtual void makeCurrent(); virtual void swapBuffers() const; TQPaintDevice *device() const; TQColor overlayTransparentColor() const; static const TQGLContext *currentContext(); protected: virtual bool chooseContext(const TQGLContext * = 0); virtual void doneCurrent(); %If (WS_X11) virtual void *tryVisual(const TQGLFormat &,int = 1); virtual void *chooseVisual(); %End bool deviceIsPixmap() const; bool windowCreated() const; void setWindowCreated(bool); bool initialized() const; void setInitialized(bool); void generateFontDisplayLists(const TQFont &,int); uint colorIndex(const TQColor &) const; void setValid(bool); void setDevice(TQPaintDevice *); private: TQGLContext(); TQGLContext(const TQGLContext &); }; class TQGLWidget : TQWidget, TQGL { %TypeHeaderCode #include %End public: TQGLWidget(TQWidget * /TransferThis/ = 0,const char * = 0, const TQGLWidget * = 0,WFlags = 0); TQGLWidget(TQGLContext * /Transfer/,TQWidget * /TransferThis/ = 0,const char * = 0, const TQGLWidget * = 0,WFlags = 0); TQGLWidget(const TQGLFormat &,TQWidget * /TransferThis/ = 0, const char * = 0,const TQGLWidget * = 0,WFlags = 0); %ConvertToSubClassCode sipClass = (sipCpp->inherits(sipName_TQGLWidget) ? sipClass_TQGLWidget : NULL); %End void qglColor(const TQColor &) const; void qglClearColor(const TQColor &) const; bool isValid() const; bool isSharing() const; virtual void makeCurrent(); void doneCurrent(); bool doubleBuffer() const; virtual void swapBuffers(); TQGLFormat format() const; const TQGLContext *context() const; virtual TQPixmap renderPixmap(int = 0,int = 0,bool = 0); virtual TQImage grabFrameBuffer(bool = 0); virtual void makeOverlayCurrent(); const TQGLContext *overlayContext() const; static TQImage convertToGLFormat(const TQImage &); void setMouseTracking(bool); virtual void reparent(TQWidget * /GetWrapper/,WFlags,const TQPoint &, bool = 0); %MethodCode if (sipCpp -> parent() != a0) if (a0) sipTransferTo(sipSelf,a0Wrapper); else sipTransferBack(sipSelf); Py_BEGIN_ALLOW_THREADS sipSelfWasArg ? sipCpp->TQGLWidget::reparent(a0, a1, *a2, a3) : sipCpp->reparent(a0, a1, *a2, a3); Py_END_ALLOW_THREADS %End const TQGLColormap &colormap() const; void setColormap(const TQGLColormap &); void renderText(int,int,const TQString &,const TQFont & = TQFont(), int = 2000); void renderText(double,double,double,const TQString &, const TQFont & = TQFont(),int = 2000); 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(TQPaintEvent *); void resizeEvent(TQResizeEvent *); virtual void glInit(); virtual void glDraw(); private: TQGLWidget(const TQGLWidget &); };