Qt 4.8
|
The QGLWidget class is a widget for rendering OpenGL graphics. More...
#include <qgl.h>
Public Functions | |
void | setContext (QGLContext *context, const QGLContext *shareContext=0, bool deleteOldContext=true) |
Sets a new QGLContext, context, for this QGLWidget, using the shared context, shareContext. More... | |
Public Functions inherited from QWidget | |
bool | acceptDrops () const |
QString | accessibleDescription () const |
QString | accessibleName () const |
QList< QAction * > | actions () const |
Returns the (possibly empty) list of this widget's actions. More... | |
void | activateWindow () |
Sets the top-level widget containing this widget to be the active window. More... | |
void | addAction (QAction *action) |
Appends the action action to this widget's list of actions. More... | |
void | addActions (QList< QAction *> actions) |
Appends the actions actions to this widget's list of actions. More... | |
void | adjustSize () |
Adjusts the size of the widget to fit its contents. More... | |
bool | autoFillBackground () const |
QPalette::ColorRole | backgroundRole () const |
Returns the background role of the widget. More... | |
QSize | baseSize () const |
QWidget * | childAt (int x, int y) const |
Returns the visible child widget at the position ({x}, {y}) in the widget's coordinate system. More... | |
QWidget * | childAt (const QPoint &p) const |
Returns the visible child widget at point p in the widget's own coordinate system. More... | |
QRect | childrenRect () const |
QRegion | childrenRegion () const |
void | clearFocus () |
Takes keyboard input focus from the widget. More... | |
void | clearMask () |
Removes any mask set by setMask(). More... | |
QMargins | contentsMargins () const |
The contentsMargins function returns the widget's contents margins. More... | |
QRect | contentsRect () const |
Returns the area inside the widget's margins. More... | |
Qt::ContextMenuPolicy | contextMenuPolicy () const |
void | createWinId () |
QCursor | cursor () const |
int | devType () const |
WId | effectiveWinId () const |
Returns the effective window system identifier of the widget, i. More... | |
void | ensurePolished () const |
Ensures that the widget has been polished by QStyle (i.e., has a proper font and palette). More... | |
Qt::FocusPolicy | focusPolicy () const |
QWidget * | focusProxy () const |
Returns the focus proxy, or 0 if there is no focus proxy. More... | |
QWidget * | focusWidget () const |
Returns the last child of this widget that setFocus had been called on. More... | |
const QFont & | font () const |
QFontInfo | fontInfo () const |
Returns the font info for the widget's current font. More... | |
QFontMetrics | fontMetrics () const |
Returns the font metrics for the widget's current font. More... | |
QPalette::ColorRole | foregroundRole () const |
Returns the foreground role. More... | |
QRect | frameGeometry () const |
QSize | frameSize () const |
const QRect & | geometry () const |
void | getContentsMargins (int *left, int *top, int *right, int *bottom) const |
Returns the widget's contents margins for left, top, right, and bottom. More... | |
HDC | getDC () const |
Returns the window system handle of the widget, for low-level access. More... | |
void | grabGesture (Qt::GestureType type, Qt::GestureFlags flags=Qt::GestureFlags()) |
Subscribes the widget to a given gesture with specific flags. More... | |
void | grabKeyboard () |
Grabs the keyboard input. More... | |
void | grabMouse () |
Grabs the mouse input. More... | |
void | grabMouse (const QCursor &) |
int | grabShortcut (const QKeySequence &key, Qt::ShortcutContext context=Qt::WindowShortcut) |
Adds a shortcut to Qt's shortcut system that watches for the given key sequence in the given context. More... | |
QGraphicsEffect * | graphicsEffect () const |
The graphicsEffect function returns a pointer to the widget's graphics effect. More... | |
QGraphicsProxyWidget * | graphicsProxyWidget () const |
Returns the proxy widget for the corresponding embedded widget in a graphics view; otherwise returns 0. More... | |
bool | hasFocus () const |
bool | hasMouseTracking () const |
int | height () const |
virtual int | heightForWidth (int) const |
Returns the preferred height for this widget, given the width w. More... | |
QInputContext * | inputContext () |
This function returns the QInputContext for this widget. More... | |
Qt::InputMethodHints | inputMethodHints () const |
virtual QVariant | inputMethodQuery (Qt::InputMethodQuery) const |
This method is only relevant for input widgets. More... | |
void | insertAction (QAction *before, QAction *action) |
Inserts the action action to this widget's list of actions, before the action before. More... | |
void | insertActions (QAction *before, QList< QAction *> actions) |
Inserts the actions actions to this widget's list of actions, before the action before. More... | |
WId | internalWinId () const |
Returns the window system identifier of the widget, or 0 if the widget is not created yet. More... | |
bool | isActiveWindow () const |
bool | isAncestorOf (const QWidget *child) const |
Returns true if this widget is a parent, (or grandparent and so on to any level), of the given child, and both widgets are within the same window; otherwise returns false. More... | |
bool | isEnabled () const |
bool | isEnabledTo (QWidget *) const |
Returns true if this widget would become enabled if ancestor is enabled; otherwise returns false. More... | |
bool | isEnabledToTLW () const |
This function is deprecated. More... | |
bool | isFullScreen () const |
bool | isHidden () const |
Returns true if the widget is hidden, otherwise returns false. More... | |
bool | isLeftToRight () const |
bool | isMaximized () const |
bool | isMinimized () const |
bool | isModal () const |
bool | isRightToLeft () const |
bool | isTopLevel () const |
Use isWindow() instead. More... | |
bool | isVisible () const |
bool | isVisibleTo (QWidget *) const |
Returns true if this widget would become visible if ancestor is shown; otherwise returns false. More... | |
bool | isWindow () const |
Returns true if the widget is an independent window, otherwise returns false. More... | |
bool | isWindowModified () const |
QLayout * | layout () const |
Returns the layout manager that is installed on this widget, or 0 if no layout manager is installed. More... | |
Qt::LayoutDirection | layoutDirection () const |
QLocale | locale () const |
Qt::HANDLE | macCGHandle () const |
Returns the CoreGraphics handle of the widget. More... | |
Qt::HANDLE | macQDHandle () const |
Returns the QuickDraw handle of the widget. More... | |
QPoint | mapFrom (QWidget *, const QPoint &) const |
Translates the widget coordinate pos from the coordinate system of parent to this widget's coordinate system. More... | |
QPoint | mapFromGlobal (const QPoint &) const |
Translates the global screen coordinate pos to widget coordinates. More... | |
QPoint | mapFromParent (const QPoint &) const |
Translates the parent widget coordinate pos to widget coordinates. More... | |
QPoint | mapTo (QWidget *, const QPoint &) const |
Translates the widget coordinate pos to the coordinate system of parent. More... | |
QPoint | mapToGlobal (const QPoint &) const |
Translates the widget coordinate pos to global screen coordinates. More... | |
QPoint | mapToParent (const QPoint &) const |
Translates the widget coordinate pos to a coordinate in the parent widget. More... | |
QRegion | mask () const |
Returns the mask currently set on a widget. More... | |
int | maximumHeight () const |
QSize | maximumSize () const |
int | maximumWidth () const |
int | minimumHeight () const |
QSize | minimumSize () const |
virtual QSize | minimumSizeHint () const |
int | minimumWidth () const |
void | move (int x, int y) |
This corresponds to move(QPoint(x, y)). More... | |
void | move (const QPoint &) |
QWidget * | nativeParentWidget () const |
Returns the native parent for this widget, i. More... | |
QWidget * | nextInFocusChain () const |
Returns the next widget in this widget's focus chain. More... | |
QRect | normalGeometry () const |
void | overrideWindowFlags (Qt::WindowFlags type) |
Sets the window flags for the widget to flags, without telling the window system. More... | |
void | overrideWindowState (Qt::WindowStates state) |
const QPalette & | palette () const |
QWidget * | parentWidget () const |
Returns the parent of this widget, or 0 if it does not have any parent widget. More... | |
QPoint | pos () const |
QWidget * | previousInFocusChain () const |
The previousInFocusChain function returns the previous widget in this widget's focus chain. More... | |
QWidget (QWidget *parent=0, Qt::WindowFlags f=0) | |
Constructs a widget which is a child of parent, with widget flags set to f. More... | |
QRect | rect () const |
void | releaseDC (HDC) const |
Releases the HDC hdc acquired by a previous call to getDC(). More... | |
void | releaseKeyboard () |
Releases the keyboard grab. More... | |
void | releaseMouse () |
Releases the mouse grab. More... | |
void | releaseShortcut (int id) |
Removes the shortcut with the given id from Qt's shortcut system. More... | |
void | removeAction (QAction *action) |
Removes the action action from this widget's list of actions. More... | |
void | render (QPaintDevice *target, const QPoint &targetOffset=QPoint(), const QRegion &sourceRegion=QRegion(), RenderFlags renderFlags=RenderFlags(DrawWindowBackground|DrawChildren)) |
Renders the sourceRegion of this widget into the target using renderFlags to determine how to render. More... | |
void | render (QPainter *painter, const QPoint &targetOffset=QPoint(), const QRegion &sourceRegion=QRegion(), RenderFlags renderFlags=RenderFlags(DrawWindowBackground|DrawChildren)) |
Renders the widget into the painter's QPainter::device(). More... | |
void | repaint (int x, int y, int w, int h) |
This version repaints a rectangle (x, y, w, h) inside the widget. More... | |
void | repaint (const QRect &) |
This version repaints a rectangle rect inside the widget. More... | |
void | repaint (const QRegion &) |
This version repaints a region rgn inside the widget. More... | |
void | resize (int w, int h) |
This corresponds to resize(QSize(w, h)). More... | |
void | resize (const QSize &) |
bool | restoreGeometry (const QByteArray &geometry) |
Restores the geometry and state top-level widgets stored in the byte array geometry. More... | |
QByteArray | saveGeometry () const |
Saves the current geometry and state for top-level widgets. More... | |
void | scroll (int dx, int dy) |
Scrolls the widget including its children dx pixels to the right and dy downward. More... | |
void | scroll (int dx, int dy, const QRect &) |
This version only scrolls r and does not move the children of the widget. More... | |
void | setAcceptDrops (bool on) |
void | setAccessibleDescription (const QString &description) |
void | setAccessibleName (const QString &name) |
void | setAttribute (Qt::WidgetAttribute, bool on=true) |
Sets the attribute attribute on this widget if on is true; otherwise clears the attribute. More... | |
void | setAutoFillBackground (bool enabled) |
void | setBackgroundRole (QPalette::ColorRole) |
Sets the background role of the widget to role. More... | |
void | setBaseSize (const QSize &) |
void | setBaseSize (int basew, int baseh) |
This corresponds to setBaseSize(QSize(basew, baseh)). More... | |
void | setContentsMargins (int left, int top, int right, int bottom) |
Sets the margins around the contents of the widget to have the sizes left, top, right, and bottom. More... | |
void | setContentsMargins (const QMargins &margins) |
The setContentsMargins function sets the margins around the widget's contents. More... | |
void | setContextMenuPolicy (Qt::ContextMenuPolicy policy) |
void | setCursor (const QCursor &) |
void | setFixedHeight (int h) |
Sets both the minimum and maximum heights of the widget to h without changing the widths. More... | |
void | setFixedSize (const QSize &) |
Sets both the minimum and maximum sizes of the widget to s, thereby preventing it from ever growing or shrinking. More... | |
void | setFixedSize (int w, int h) |
Sets the width of the widget to w and the height to h. More... | |
void | setFixedWidth (int w) |
Sets both the minimum and maximum width of the widget to w without changing the heights. More... | |
void | setFocus (Qt::FocusReason reason) |
Gives the keyboard input focus to this widget (or its focus proxy) if this widget or one of its parents is the active window. More... | |
void | setFocusPolicy (Qt::FocusPolicy policy) |
void | setFocusProxy (QWidget *) |
Sets the widget's focus proxy to widget w. More... | |
void | setFont (const QFont &) |
Use the single-argument overload instead. More... | |
void | setForegroundRole (QPalette::ColorRole) |
Sets the foreground role of the widget to role. More... | |
void | setGeometry (int x, int y, int w, int h) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This corresponds to setGeometry(QRect(x, y, w, h)). More... | |
void | setGeometry (const QRect &) |
void | setGraphicsEffect (QGraphicsEffect *effect) |
The setGraphicsEffect function is for setting the widget's graphics effect. More... | |
void | setInputContext (QInputContext *) |
This function sets the input context context on this widget. More... | |
void | setInputMethodHints (Qt::InputMethodHints hints) |
void | setLayout (QLayout *) |
Sets the layout manager for this widget to layout. More... | |
void | setLayoutDirection (Qt::LayoutDirection direction) |
void | setLocale (const QLocale &locale) |
void | setMask (const QBitmap &) |
Causes only the pixels of the widget for which bitmap has a corresponding 1 bit to be visible. More... | |
void | setMask (const QRegion &) |
Causes only the parts of the widget which overlap region to be visible. More... | |
void | setMaximumHeight (int maxh) |
void | setMaximumSize (const QSize &) |
void | setMaximumSize (int maxw, int maxh) |
This function corresponds to setMaximumSize(QSize(maxw, maxh)). More... | |
void | setMaximumWidth (int maxw) |
void | setMinimumHeight (int minh) |
void | setMinimumSize (const QSize &) |
void | setMinimumSize (int minw, int minh) |
This function corresponds to setMinimumSize(QSize(minw, minh)). More... | |
void | setMinimumWidth (int minw) |
void | setMouseTracking (bool enable) |
void | setPalette (const QPalette &) |
Use the single-argument overload instead. More... | |
void | setParent (QWidget *parent) |
Sets the parent of the widget to parent, and resets the window flags. More... | |
void | setParent (QWidget *parent, Qt::WindowFlags f) |
This function also takes widget flags, f as an argument. More... | |
void | setShortcutAutoRepeat (int id, bool enable=true) |
If enable is true, auto repeat of the shortcut with the given id is enabled; otherwise it is disabled. More... | |
void | setShortcutEnabled (int id, bool enable=true) |
If enable is true, the shortcut with the given id is enabled; otherwise the shortcut is disabled. More... | |
void | setSizeIncrement (const QSize &) |
void | setSizeIncrement (int w, int h) |
Sets the x (width) size increment to w and the y (height) size increment to h. More... | |
void | setSizePolicy (QSizePolicy) |
void | setSizePolicy (QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical) |
Sets the size policy of the widget to horizontal and vertical, with standard stretch and no height-for-width. More... | |
void | setStatusTip (const QString &) |
void | setStyle (QStyle *) |
Sets the widget's GUI style to style. More... | |
void | setToolTip (const QString &) |
void | setUpdatesEnabled (bool enable) |
void | setupUi (QWidget *widget) |
Sets up the user interface for the specified widget. More... | |
void | setWhatsThis (const QString &) |
void | setWindowFilePath (const QString &filePath) |
void | setWindowFlags (Qt::WindowFlags type) |
void | setWindowIcon (const QIcon &icon) |
void | setWindowIconText (const QString &) |
void | setWindowModality (Qt::WindowModality windowModality) |
void | setWindowOpacity (qreal level) |
void | setWindowRole (const QString &) |
Sets the window's role to role. More... | |
void | setWindowState (Qt::WindowStates state) |
Sets the window state to windowState. More... | |
void | setWindowSurface (QWindowSurface *surface) |
Sets the window surface to be the surface specified. More... | |
QSize | size () const |
virtual QSize | sizeHint () const |
QSize | sizeIncrement () const |
QSizePolicy | sizePolicy () const |
void | stackUnder (QWidget *) |
Places the widget under w in the parent widget's stack. More... | |
QString | statusTip () const |
QStyle * | style () const |
QString | styleSheet () const |
bool | testAttribute (Qt::WidgetAttribute) const |
Returns true if attribute attribute is set on this widget; otherwise returns false. More... | |
QString | toolTip () const |
QWidget * | topLevelWidget () const |
bool | underMouse () const |
Returns true if the widget is under the mouse cursor; otherwise returns false. More... | |
void | ungrabGesture (Qt::GestureType type) |
Unsubscribes the widget from a given gesture type. More... | |
void | unsetCursor () |
void | unsetLayoutDirection () |
void | unsetLocale () |
void | update (int x, int y, int w, int h) |
This version updates a rectangle (x, y, w, h) inside the widget. More... | |
void | update (const QRect &) |
This version updates a rectangle rect inside the widget. More... | |
void | update (const QRegion &) |
This version repaints a region rgn inside the widget. More... | |
void | updateGeometry () |
Notifies the layout system that this widget has changed and may need to change geometry. More... | |
bool | updatesEnabled () const |
QRegion | visibleRegion () const |
Returns the unobscured region where paint events can occur. More... | |
QString | whatsThis () const |
int | width () const |
QWidget * | window () const |
Returns the window for this widget, i.e. More... | |
QString | windowFilePath () const |
Qt::WindowFlags | windowFlags () const |
Window flags are a combination of a type (e. More... | |
QIcon | windowIcon () const |
QString | windowIconText () const |
Qt::WindowModality | windowModality () const |
qreal | windowOpacity () const |
QString | windowRole () const |
Returns the window's role, or an empty string. More... | |
Qt::WindowStates | windowState () const |
Returns the current window state. More... | |
QWindowSurface * | windowSurface () const |
Returns the QWindowSurface this widget will be drawn into. More... | |
QString | windowTitle () const |
Qt::WindowType | windowType () const |
Returns the window type of this widget. More... | |
WId | winId () const |
Returns the window system identifier of the widget. More... | |
int | x () const |
const QX11Info & | x11Info () const |
Returns information about the configuration of the X display used to display the widget. More... | |
Qt::HANDLE | x11PictureHandle () const |
Returns the X11 Picture handle of the widget for XRender support. More... | |
int | y () const |
~QWidget () | |
Destroys the widget. More... | |
Public Functions inherited from QObject | |
bool | blockSignals (bool b) |
If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). More... | |
const QObjectList & | children () const |
Returns a list of child objects. More... | |
bool | connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const |
bool | disconnect (const char *signal=0, const QObject *receiver=0, const char *member=0) |
bool | disconnect (const QObject *receiver, const char *member=0) |
void | dumpObjectInfo () |
Dumps information about signal connections, etc. More... | |
void | dumpObjectTree () |
Dumps a tree of children to the debug output. More... | |
QList< QByteArray > | dynamicPropertyNames () const |
Returns the names of all properties that were dynamically added to the object using setProperty(). More... | |
virtual bool | eventFilter (QObject *, QEvent *) |
Filters events if this object has been installed as an event filter for the watched object. More... | |
template<typename T > | |
T | findChild (const QString &aName=QString()) const |
Returns the child of this object that can be cast into type T and that is called name, or 0 if there is no such object. More... | |
template<typename T > | |
QList< T > | findChildren (const QString &aName=QString()) const |
Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. More... | |
template<typename T > | |
QList< T > | findChildren (const QRegExp &re) const |
bool | inherits (const char *classname) const |
Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false. More... | |
void | installEventFilter (QObject *) |
Installs an event filter filterObj on this object. More... | |
bool | isWidgetType () const |
Returns true if the object is a widget; otherwise returns false. More... | |
void | killTimer (int id) |
Kills the timer with timer identifier, id. More... | |
virtual const QMetaObject * | metaObject () const |
Returns a pointer to the meta-object of this object. More... | |
void | moveToThread (QThread *thread) |
Changes the thread affinity for this object and its children. More... | |
QString | objectName () const |
QObject * | parent () const |
Returns a pointer to the parent object. More... | |
QVariant | property (const char *name) const |
Returns the value of the object's name property. More... | |
Q_INVOKABLE | QObject (QObject *parent=0) |
Constructs an object with parent object parent. More... | |
void | removeEventFilter (QObject *) |
Removes an event filter object obj from this object. More... | |
void | setObjectName (const QString &name) |
void | setParent (QObject *) |
Makes the object a child of parent. More... | |
bool | setProperty (const char *name, const QVariant &value) |
Sets the value of the object's name property to value. More... | |
void | setUserData (uint id, QObjectUserData *data) |
bool | signalsBlocked () const |
Returns true if signals are blocked; otherwise returns false. More... | |
int | startTimer (int interval) |
Starts a timer and returns a timer identifier, or returns zero if it could not start a timer. More... | |
QThread * | thread () const |
Returns the thread in which the object lives. More... | |
QObjectUserData * | userData (uint id) const |
virtual | ~QObject () |
Destroys the object, deleting all its child objects. More... | |
Public Functions inherited from QPaintDevice | |
int | colorCount () const |
int | depth () const |
int | height () const |
int | heightMM () const |
int | logicalDpiX () const |
int | logicalDpiY () const |
QT_DEPRECATED int | numColors () const |
bool | paintingActive () const |
int | physicalDpiX () const |
int | physicalDpiY () const |
int | width () const |
int | widthMM () const |
virtual | ~QPaintDevice () |
Friends | |
class | QGLContext |
class | QGLContextPrivate |
class | QGLDrawable |
class | QGLOverlayWidget |
class | QGLPaintDevice |
class | QGLPixelBuffer |
class | QGLPixelBufferPrivate |
class | QGLWidgetGLPaintDevice |
class | QMacGLWindowChangeEvent |
class | QOpenGLPaintEngine |
QGLWidget (QWidget *parent=0, const QGLWidget *shareWidget=0, Qt::WindowFlags f=0) | |
Constructs an OpenGL widget with a parent widget. More... | |
QGLWidget (QGLContext *context, QWidget *parent=0, const QGLWidget *shareWidget=0, Qt::WindowFlags f=0) | |
Constructs an OpenGL widget with parent parent. More... | |
QGLWidget (const QGLFormat &format, QWidget *parent=0, const QGLWidget *shareWidget=0, Qt::WindowFlags f=0) | |
Constructs an OpenGL widget with parent parent. More... | |
~QGLWidget () | |
Destroys the widget. More... | |
void | qglColor (const QColor &c) const |
Convenience function for specifying a drawing color to OpenGL. More... | |
void | qglClearColor (const QColor &c) const |
Convenience function for specifying the clearing color to OpenGL. More... | |
bool | isValid () const |
Returns true if the widget has a valid GL rendering context; otherwise returns false. More... | |
bool | isSharing () const |
Returns true if this widget's GL context is shared with another GL context, otherwise false is returned. More... | |
void | makeCurrent () |
Makes this widget the current widget for OpenGL operations, i. More... | |
void | doneCurrent () |
Makes no GL context the current context. More... | |
bool | doubleBuffer () const |
Returns true if the contained GL rendering context has double buffering; otherwise returns false. More... | |
void | swapBuffers () |
Swaps the screen contents with an off-screen buffer. More... | |
QGLFormat | format () const |
Returns the format of the contained GL rendering context. More... | |
void | setFormat (const QGLFormat &format) |
Sets a new format for this widget. More... | |
const QGLContext * | context () const |
Returns the context of this widget. More... | |
QPixmap | renderPixmap (int w=0, int h=0, bool useContext=false) |
Renders the current scene on a pixmap and returns the pixmap. More... | |
QImage | grabFrameBuffer (bool withAlpha=false) |
Returns an image of the frame buffer. More... | |
void | makeOverlayCurrent () |
Makes the overlay context of this widget current. More... | |
const QGLContext * | overlayContext () const |
Returns the overlay context of this widget, or 0 if this widget has no overlay. More... | |
void | setMouseTracking (bool enable) |
If enable is true then mouse tracking is enabled; otherwise it is disabled. More... | |
const QGLColormap & | colormap () const |
Returns the colormap for this widget. More... | |
void | setColormap (const QGLColormap &map) |
Set the colormap for this widget to cmap. More... | |
void | renderText (int x, int y, const QString &str, const QFont &fnt=QFont(), int listBase=2000) |
Renders the string str into the GL context of this widget. More... | |
void | renderText (double x, double y, double z, const QString &str, const QFont &fnt=QFont(), int listBase=2000) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.x, y and z are specified in scene or object coordinates relative to the currently set projection and model matrices. More... | |
QPaintEngine * | paintEngine () const |
Returns the GL widget's paint engine. More... | |
GLuint | bindTexture (const QImage &image, GLenum target, GLint format, QGLContext::BindOptions options) |
The binding options are a set of options used to decide how to bind the texture to the context. More... | |
GLuint | bindTexture (const QPixmap &pixmap, GLenum target, GLint format, QGLContext::BindOptions options) |
Generates and binds a 2D GL texture to the current context, based on pixmap. More... | |
GLuint | bindTexture (const QImage &image, GLenum target=GL_TEXTURE_2D, GLint format=GL_RGBA) |
Calls QGLContext:::bindTexture(image, target, format) on the currently set context. More... | |
GLuint | bindTexture (const QPixmap &pixmap, GLenum target=GL_TEXTURE_2D, GLint format=GL_RGBA) |
Calls QGLContext:::bindTexture(pixmap, target, format) on the currently set context. More... | |
GLuint | bindTexture (const QString &fileName) |
Calls QGLContext::bindTexture(fileName) on the currently set context. More... | |
void | deleteTexture (GLuint tx_id) |
Calls QGLContext::deleteTexture(id) on the currently set context. More... | |
void | drawTexture (const QRectF &target, GLuint textureId, GLenum textureTarget=GL_TEXTURE_2D) |
Calls the corresponding QGLContext::drawTexture() with target, textureId, and textureTarget for this widget's context. More... | |
void | drawTexture (const QPointF &point, GLuint textureId, GLenum textureTarget=GL_TEXTURE_2D) |
Calls the corresponding QGLContext::drawTexture() with point, textureId, and textureTarget for this widget's context. More... | |
static QImage | convertToGLFormat (const QImage &img) |
Converts the image img into the unnamed format expected by OpenGL functions such as glTexImage2D(). More... | |
virtual void | updateGL () |
Updates the widget by calling glDraw(). More... | |
virtual void | updateOverlayGL () |
Updates the widget's overlay (if any). More... | |
bool | event (QEvent *) |
Reimplemented Function More... | |
virtual void | initializeGL () |
This virtual function is called once before the first call to paintGL() or resizeGL(), and then once whenever the widget has been assigned a new QGLContext. More... | |
virtual void | resizeGL (int w, int h) |
This virtual function is called whenever the widget has been resized. More... | |
virtual void | paintGL () |
This virtual function is called whenever the widget needs to be painted. More... | |
virtual void | initializeOverlayGL () |
This virtual function is used in the same manner as initializeGL() except that it operates on the widget's overlay context instead of the widget's main context. More... | |
virtual void | resizeOverlayGL (int w, int h) |
This virtual function is used in the same manner as paintGL() except that it operates on the widget's overlay context instead of the widget's main context. More... | |
virtual void | paintOverlayGL () |
This virtual function is used in the same manner as paintGL() except that it operates on the widget's overlay context instead of the widget's main context. More... | |
void | setAutoBufferSwap (bool on) |
If on is true automatic GL buffer swapping is switched on; otherwise it is switched off. More... | |
bool | autoBufferSwap () const |
Returns true if the widget is doing automatic GL buffer swapping; otherwise returns false. More... | |
void | paintEvent (QPaintEvent *) |
Handles paint events passed in the event parameter. More... | |
void | resizeEvent (QResizeEvent *) |
Handles resize events that are passed in the event parameter. More... | |
virtual void | glInit () |
Initializes OpenGL for this widget's context. More... | |
virtual void | glDraw () |
Executes the virtual function paintGL(). More... | |
int | fontDisplayListBase (const QFont &fnt, int listBase=2000) |
Returns the value of the first display list that is generated for the characters in the given font. More... | |
Additional Inherited Members | |
Public Types inherited from QWidget | |
enum | RenderFlag { DrawWindowBackground = 0x1, DrawChildren = 0x2, IgnoreMask = 0x4 } |
This enum describes how to render the widget when calling QWidget::render(). More... | |
Public Types inherited from QPaintDevice | |
enum | PaintDeviceMetric { PdmWidth = 1, PdmHeight, PdmWidthMM, PdmHeightMM, PdmNumColors, PdmDepth, PdmDpiX, PdmDpiY, PdmPhysicalDpiX, PdmPhysicalDpiY } |
Public Slots inherited from QWidget | |
bool | close () |
Closes this widget. More... | |
void | hide () |
Hides the widget. More... | |
void | lower () |
Lowers the widget to the bottom of the parent widget's stack. More... | |
void | raise () |
Raises this widget to the top of the parent widget's stack. More... | |
void | repaint () |
Repaints the widget directly by calling paintEvent() immediately, unless updates are disabled or the widget is hidden. More... | |
void | setDisabled (bool) |
Disables widget input events if disable is true; otherwise enables input events. More... | |
void | setEnabled (bool) |
void | setFocus () |
Gives the keyboard input focus to this widget (or its focus proxy) if this widget or one of its parents is the active window. More... | |
void | setHidden (bool hidden) |
Convenience function, equivalent to setVisible(!hidden). More... | |
QT_MOC_COMPAT void | setShown (bool shown) |
Use setVisible(shown) instead. More... | |
void | setStyleSheet (const QString &styleSheet) |
virtual void | setVisible (bool visible) |
void | setWindowModified (bool) |
void | setWindowTitle (const QString &) |
void | show () |
Shows the widget and its child widgets. More... | |
void | showFullScreen () |
Shows the widget in full-screen mode. More... | |
void | showMaximized () |
Shows the widget maximized. More... | |
void | showMinimized () |
Shows the widget minimized, as an icon. More... | |
void | showNormal () |
Restores the widget after it has been maximized or minimized. More... | |
void | update () |
Updates the widget unless updates are disabled or the widget is hidden. More... | |
Public Slots inherited from QObject | |
void | deleteLater () |
Schedules this object for deletion. More... | |
Signals inherited from QWidget | |
void | customContextMenuRequested (const QPoint &pos) |
This signal is emitted when the widget's contextMenuPolicy is Qt::CustomContextMenu, and the user has requested a context menu on the widget. More... | |
Signals inherited from QObject | |
void | destroyed (QObject *=0) |
This signal is emitted immediately before the object obj is destroyed, and can not be blocked. More... | |
Static Public Functions inherited from QWidget | |
static QWidget * | find (WId) |
Returns a pointer to the widget with window identifer/handle id. More... | |
static QWidget * | keyboardGrabber () |
Returns the widget that is currently grabbing the keyboard input. More... | |
static QWidget * | mouseGrabber () |
Returns the widget that is currently grabbing the mouse input. More... | |
static void | setTabOrder (QWidget *, QWidget *) |
Puts the second widget after the first widget in the focus order. More... | |
Static Public Functions inherited from QObject | |
static bool | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection) |
Creates a connection of the given type from the signal in the sender object to the method in the receiver object. More... | |
static bool | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection) |
static bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member) |
Disconnects signal in object sender from method in object receiver. More... | |
static bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member) |
static uint | registerUserData () |
static QString | tr (const char *sourceText, const char *comment=0, int n=-1) |
static QString | trUtf8 (const char *sourceText, const char *comment=0, int n=-1) |
Static Public Functions inherited from QPaintDevice | |
static QWSDisplay * | qwsDisplay () |
Static Public Variables inherited from QObject | |
static const QMetaObject | staticMetaObject |
This variable stores the meta-object for the class. More... | |
Protected Slots inherited from QWidget | |
void | updateMicroFocus () |
Updates the widget's micro focus. More... | |
Protected Functions inherited from QWidget | |
virtual void | actionEvent (QActionEvent *) |
This event handler is called with the given event whenever the widget's actions are changed. More... | |
virtual void | changeEvent (QEvent *) |
This event handler can be reimplemented to handle state changes. More... | |
virtual void | closeEvent (QCloseEvent *) |
This event handler is called with the given event when Qt receives a window close request for a top-level widget from the window system. More... | |
virtual void | contextMenuEvent (QContextMenuEvent *) |
This event handler, for event event, can be reimplemented in a subclass to receive widget context menu events. More... | |
void | create (WId=0, bool initializeWindow=true, bool destroyOldWindow=true) |
Creates a new widget window if window is 0, otherwise sets the widget's window to window. More... | |
void | destroy (bool destroyWindow=true, bool destroySubWindows=true) |
Frees up window system resources. More... | |
virtual void | dragEnterEvent (QDragEnterEvent *) |
This event handler is called when a drag is in progress and the mouse enters this widget. More... | |
virtual void | dragLeaveEvent (QDragLeaveEvent *) |
This event handler is called when a drag is in progress and the mouse leaves this widget. More... | |
virtual void | dragMoveEvent (QDragMoveEvent *) |
This event handler is called if a drag is in progress, and when any of the following conditions occur: the cursor enters this widget, the cursor moves within this widget, or a modifier key is pressed on the keyboard while this widget has the focus. More... | |
virtual void | dropEvent (QDropEvent *) |
This event handler is called when the drag is dropped on this widget. More... | |
virtual void | enabledChange (bool) |
virtual void | enterEvent (QEvent *) |
This event handler can be reimplemented in a subclass to receive widget enter events which are passed in the event parameter. More... | |
virtual void | focusInEvent (QFocusEvent *) |
This event handler can be reimplemented in a subclass to receive keyboard focus events (focus received) for the widget. More... | |
bool | focusNextChild () |
Finds a new widget to give the keyboard focus to, as appropriate for Tab, and returns true if it can find a new widget, or false if it can't. More... | |
virtual bool | focusNextPrevChild (bool next) |
Finds a new widget to give the keyboard focus to, as appropriate for Tab and Shift+Tab, and returns true if it can find a new widget, or false if it can't. More... | |
virtual void | focusOutEvent (QFocusEvent *) |
This event handler can be reimplemented in a subclass to receive keyboard focus events (focus lost) for the widget. More... | |
bool | focusPreviousChild () |
Finds a new widget to give the keyboard focus to, as appropriate for Shift+Tab, and returns true if it can find a new widget, or false if it can't. More... | |
virtual void | fontChange (const QFont &) |
virtual void | hideEvent (QHideEvent *) |
This event handler can be reimplemented in a subclass to receive widget hide events. More... | |
virtual void | inputMethodEvent (QInputMethodEvent *) |
This event handler, for event event, can be reimplemented in a subclass to receive Input Method composition events. More... | |
virtual void | keyPressEvent (QKeyEvent *) |
This event handler, for event event, can be reimplemented in a subclass to receive key press events for the widget. More... | |
virtual void | keyReleaseEvent (QKeyEvent *) |
This event handler, for event event, can be reimplemented in a subclass to receive key release events for the widget. More... | |
virtual void | languageChange () |
virtual void | leaveEvent (QEvent *) |
This event handler can be reimplemented in a subclass to receive widget leave events which are passed in the event parameter. More... | |
virtual bool | macEvent (EventHandlerCallRef, EventRef) |
This special event handler can be reimplemented in a subclass to receive native Macintosh events. More... | |
int | metric (PaintDeviceMetric) const |
Internal implementation of the virtual QPaintDevice::metric() function. More... | |
virtual void | mouseDoubleClickEvent (QMouseEvent *) |
This event handler, for event event, can be reimplemented in a subclass to receive mouse double click events for the widget. More... | |
virtual void | mouseMoveEvent (QMouseEvent *) |
This event handler, for event event, can be reimplemented in a subclass to receive mouse move events for the widget. More... | |
virtual void | mousePressEvent (QMouseEvent *) |
This event handler, for event event, can be reimplemented in a subclass to receive mouse press events for the widget. More... | |
virtual void | mouseReleaseEvent (QMouseEvent *) |
This event handler, for event event, can be reimplemented in a subclass to receive mouse release events for the widget. More... | |
virtual void | moveEvent (QMoveEvent *) |
This event handler can be reimplemented in a subclass to receive widget move events which are passed in the event parameter. More... | |
virtual void | paletteChange (const QPalette &) |
QWidget (QWidgetPrivate &d, QWidget *parent, Qt::WindowFlags f) | |
virtual bool | qwsEvent (QWSEvent *) |
This special event handler can be reimplemented in a subclass to receive native Qt for Embedded Linux events which are passed in the event parameter. More... | |
void | resetInputContext () |
This function can be called on the widget that currently has focus to reset the input method operating on it. More... | |
virtual void | showEvent (QShowEvent *) |
This event handler can be reimplemented in a subclass to receive widget show events which are passed in the event parameter. More... | |
virtual void | styleChange (QStyle &) |
virtual void | tabletEvent (QTabletEvent *) |
This event handler, for event event, can be reimplemented in a subclass to receive tablet events for the widget. More... | |
virtual void | wheelEvent (QWheelEvent *) |
This event handler, for event event, can be reimplemented in a subclass to receive wheel events for the widget. More... | |
virtual void | windowActivationChange (bool) |
virtual bool | winEvent (MSG *message, long *result) |
This special event handler can be reimplemented in a subclass to receive native Windows events which are passed in the message parameter. More... | |
virtual bool | x11Event (XEvent *) |
This special event handler can be reimplemented in a subclass to receive native X11 events passed in the event parameter. More... | |
Protected Functions inherited from QObject | |
virtual void | childEvent (QChildEvent *) |
This event handler can be reimplemented in a subclass to receive child events. More... | |
virtual void | connectNotify (const char *signal) |
This virtual function is called when something has been connected to signal in this object. More... | |
virtual void | customEvent (QEvent *) |
This event handler can be reimplemented in a subclass to receive custom events. More... | |
virtual void | disconnectNotify (const char *signal) |
This virtual function is called when something has been disconnected from signal in this object. More... | |
QObject (QObjectPrivate &dd, QObject *parent=0) | |
int | receivers (const char *signal) const |
Returns the number of receivers connected to the signal. More... | |
QObject * | sender () const |
Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns 0. More... | |
int | senderSignalIndex () const |
virtual void | timerEvent (QTimerEvent *) |
This event handler can be reimplemented in a subclass to receive timer events for the object. More... | |
Protected Functions inherited from QPaintDevice | |
QPaintDevice () | |
Protected Variables inherited from QObject | |
QScopedPointer< QObjectData > | d_ptr |
Protected Variables inherited from QPaintDevice | |
ushort | painters |
Static Protected Variables inherited from QObject | |
static const QMetaObject | staticQtMetaObject |
Related Functions inherited from QWidget | |
QWidgetList | |
WId | |
Platform dependent window identifier. More... | |
Related Functions inherited from QObject | |
T | qFindChildqFindChildren (const QObject *obj, const QString &name)() |
QList< T > | qFindChildrenqFindChildren (const QObject *obj, const QString &name)() |
QList< T > | qFindChildrenqFindChildren (const QObject *obj, const QRegExp ®Exp)() |
T * | qobject_cast (QObject *object) |
QObjectList | |
void * | qt_find_obj_child (QObject *parent, const char *type, const QString &name) |
Returns a pointer to the object named name that inherits type and with a given parent. More... | |
Related Functions inherited from QPaintDevice | |
const Q_GUI_EXPORT QX11Info * | qt_x11Info (const QPaintDevice *pd) |
Returns the QX11Info structure for the pd paint device. More... | |
The QGLWidget class is a widget for rendering OpenGL graphics.
QGLWidget provides functionality for displaying OpenGL graphics integrated into a Qt application. It is very simple to use. You inherit from it and use the subclass like any other QWidget, except that you have the choice between using QPainter and standard OpenGL rendering commands.
QGLWidget provides three convenient virtual functions that you can reimplement in your subclass to perform the typical OpenGL tasks:
Here is a rough outline of how a QGLWidget subclass might look:
If you need to trigger a repaint from places other than paintGL() (a typical example is when using timers to animate scenes), you should call the widget's updateGL() function.
Your widget's OpenGL rendering context is made current when paintGL(), resizeGL(), or initializeGL() is called. If you need to call the standard OpenGL API functions from other places (e.g. in your widget's constructor or in your own paint functions), you must call makeCurrent() first.
QGLWidget provides functions for requesting a new display format and you can also create widgets with customized rendering contexts.
You can also share OpenGL display lists between QGLWidget objects (see the documentation of the QGLWidget constructors for details).
Note that under Windows, the QGLContext belonging to a QGLWidget has to be recreated when the QGLWidget is reparented. This is necessary due to limitations on the Windows platform. This will most likely cause problems for users that have subclassed and installed their own QGLContext on a QGLWidget. It is possible to work around this issue by putting the QGLWidget inside a dummy widget and then reparenting the dummy widget, instead of the QGLWidget. This will side-step the issue altogether, and is what we recommend for users that need this kind of functionality.
On Mac OS X, when Qt is built with Cocoa support, a QGLWidget can't have any sibling widgets placed ontop of itself. This is due to limitations in the Cocoa API and is not supported by Apple.
The QGLWidget creates a GL overlay context in addition to the normal context if overlays are supported by the underlying system.
If you want to use overlays, you specify it in the format. (Note: Overlay must be requested in the format passed to the QGLWidget constructor.) Your GL widget should also implement some or all of these virtual methods:
These methods work in the same way as the normal paintGL() etc. functions, except that they will be called when the overlay context is made current. You can explicitly make the overlay context current by using makeOverlayCurrent(), and you can access the overlay context directly (e.g. to ask for its transparent color) by calling overlayContext().
On X servers in which the default visual is in an overlay plane, non-GL Qt windows can also be used for overlays.
As described above, subclass QGLWidget to render pure 3D content in the following way:
It is also possible to draw 2D graphics onto a QGLWidget subclass, it is necessary to reimplement QGLWidget::paintEvent() and do the following:
Overpainting 2D content on top of 3D content takes a little more effort. One approach to doing this is shown in the Overpainting Example{Overpainting} example.
As of Qt version 4.8, support for doing threaded GL rendering has been improved. There are three scenarios that we currently support:
1. Buffer swapping in a thread.
Swapping buffers in a double buffered context may be a synchronous, locking call that may be a costly operation in some GL implementations. Especially so on embedded devices. It's not optimal to have the CPU idling while the GPU is doing a buffer swap. In those cases it is possible to do the rendering in the main thread and do the actual buffer swap in a separate thread. This can be done with the following steps:
Doing this will free up the main thread so that it can continue with, for example, handling UI events or network requests. Even if there is a context swap involved, it may be preferable compared to having the main thread wait while the GPU finishes the swap operation. Note that this is highly implementation dependent.
2. Texture uploading in a thread.
Doing texture uploads in a thread may be very useful for applications handling large amounts of images that needs to be displayed, like for instance a photo gallery application. This is supported in Qt through the existing bindTexture() API. A simple way of doing this is to create two sharing QGLWidgets. One is made current in the main GUI thread, while the other is made current in the texture upload thread. The widget in the uploading thread is never shown, it is only used for sharing textures with the main thread. For each texture that is bound via bindTexture(), notify the main thread so that it can start using the texture.
3. Using QPainter to draw into a QGLWidget in a thread.
In Qt 4.8, it is possible to draw into a QGLWidget using a QPainter in a separate thread. Note that this is also possible for QGLPixelBuffers and QGLFramebufferObjects. Since this is only supported in the GL 2 paint engine, OpenGL 2.0 or OpenGL ES 2.0 is required.
QGLWidgets can only be created in the main GUI thread. This means a call to doneCurrent() is necessary to release the GL context from the main thread, before the widget can be drawn into by another thread. Also, the main GUI thread will dispatch resize and paint events to a QGLWidget when the widget is resized, or parts of it becomes exposed or needs redrawing. It is therefore necessary to handle those events because the default implementations inside QGLWidget will try to make the QGLWidget's context current, which again will interfere with any threads rendering into the widget. Reimplement QGLWidget::paintEvent() and QGLWidget::resizeEvent() to notify the rendering thread that a resize or update is necessary, and be careful not to call the base class implementation. If you are rendering an animation, it might not be necessary to handle the paint event at all since the rendering thread is doing regular updates. Then it would be enough to reimplement QGLWidget::paintEvent() to do nothing.
As a general rule when doing threaded rendering: be aware that binding and releasing contexts in different threads have to be synchronized by the user. A GL rendering context can only be current in one thread at any time. If you try to open a QPainter on a QGLWidget and the widget's rendering context is current in another thread, it will fail.
Note that under X11 it is necessary to set the Qt::AA_X11InitThreads application attribute to make the X11 library and GLX calls thread safe, otherwise the above scenarios will fail.
In addition to this, rendering using raw GL calls in a separate thread is supported.
OpenGL is a trademark of Silicon Graphics, Inc. in the United States and other countries.
|
explicit |
Constructs an OpenGL widget with a parent widget.
The default format is used. The widget will be invalid if the system has no OpenGL support.
The parent and widget flag, f, arguments are passed to the QWidget constructor.
If shareWidget is a valid QGLWidget, this widget will share OpenGL display lists and texture objects with shareWidget. But if shareWidget and this widget have different format() {formats}, sharing might not be possible. You can check whether sharing is in effect by calling isSharing().
The initialization of OpenGL rendering state, etc. should be done by overriding the initializeGL() function, rather than in the constructor of your QGLWidget subclass.
Definition at line 3962 of file qgl.cpp.
|
explicit |
Constructs an OpenGL widget with parent parent.
The context argument is a pointer to the QGLContext that you wish to be bound to this widget. This allows you to pass in your own QGLContext sub-classes.
The widget will be invalid if the system has no OpenGL support.
The parent and widget flag, f, arguments are passed to the QWidget constructor.
If shareWidget is a valid QGLWidget, this widget will share OpenGL display lists and texture objects with shareWidget. But if shareWidget and this widget have different format() {formats}, sharing might not be possible. You can check whether sharing is in effect by calling isSharing().
The initialization of OpenGL rendering state, etc. should be done by overriding the initializeGL() function, rather than in the constructor of your QGLWidget subclass.
Definition at line 4037 of file qgl.cpp.
|
explicit |
Constructs an OpenGL widget with parent parent.
The format argument specifies the desired rendering options . If the underlying OpenGL/Window system cannot satisfy all the features requested in format, the nearest subset of features will be used. After creation, the format() method will return the actual format obtained.
The widget will be invalid if the system has no OpenGL support.
The parent and widget flag, f, arguments are passed to the QWidget constructor.
If shareWidget is a valid QGLWidget, this widget will share OpenGL display lists and texture objects with shareWidget. But if shareWidget and this widget have different format() {formats}, sharing might not be possible. You can check whether sharing is in effect by calling isSharing().
The initialization of OpenGL rendering state, etc. should be done by overriding the initializeGL() function, rather than in the constructor of your QGLWidget subclass.
Definition at line 4001 of file qgl.cpp.
QGLWidget::~QGLWidget | ( | ) |
Destroys the widget.
Definition at line 4052 of file qgl.cpp.
|
protected |
Returns true if the widget is doing automatic GL buffer swapping; otherwise returns false.
Definition at line 5321 of file qgl.cpp.
GLuint QGLWidget::bindTexture | ( | const QImage & | image, |
GLenum | target, | ||
GLint | format, | ||
QGLContext::BindOptions | options | ||
) |
The binding options are a set of options used to decide how to bind the texture to the context.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Definition at line 5352 of file qgl.cpp.
GLuint QGLWidget::bindTexture | ( | const QPixmap & | pixmap, |
GLenum | target, | ||
GLint | format, | ||
QGLContext::BindOptions | options | ||
) |
Generates and binds a 2D GL texture to the current context, based on pixmap.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
The generated texture id is returned and can be used in
The binding options are a set of options used to decide how to bind the texture to the context.
Definition at line 5412 of file qgl.cpp.
GLuint QGLWidget::bindTexture | ( | const QImage & | image, |
GLenum | target = GL_TEXTURE_2D , |
||
GLint | format = GL_RGBA |
||
) |
Calls QGLContext:::bindTexture(image, target, format) on the currently set context.
Definition at line 5333 of file qgl.cpp.
GLuint QGLWidget::bindTexture | ( | const QPixmap & | pixmap, |
GLenum | target = GL_TEXTURE_2D , |
||
GLint | format = GL_RGBA |
||
) |
Calls QGLContext:::bindTexture(pixmap, target, format) on the currently set context.
Definition at line 5390 of file qgl.cpp.
GLuint QGLWidget::bindTexture | ( | const QString & | fileName | ) |
Calls QGLContext::bindTexture(fileName) on the currently set context.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Definition at line 5445 of file qgl.cpp.
const QGLColormap & QGLWidget::colormap | ( | ) | const |
Returns the colormap for this widget.
Usually it is only top-level widgets that can have different colormaps installed. Asking for the colormap of a child widget will return the colormap for the child's top-level widget.
If no colormap has been set for this widget, the QGLColormap returned will be empty.
Definition at line 974 of file qgl_mac.mm.
Referenced by event(), QGLOverlayWidget::paintGL(), qStoreColors(), qt_egl_create_surface(), and QGLWidgetPrivate::updateColormap().
const QGLContext * QGLWidget::context | ( | ) | const |
Returns the context of this widget.
It is possible that the context is not valid (see isValid()), for example, if the underlying hardware does not support the format attributes that were requested.
Definition at line 5303 of file qgl.cpp.
Referenced by QMeeGoGraphicsSystem::createWindowSurface(), QGLOverlayWidget::initializeGL(), nearest_gl_texture_size(), QGLOverlayWidget::paintGL(), and qt_gl_share_context().
Converts the image img into the unnamed format expected by OpenGL functions such as glTexImage2D().
The returned image is not usable as a QImage, but QImage::width(), QImage::height() and QImage::bits() may be used with OpenGL. The GL format used is GL_RGBA
.
opengl/texture example The following few lines are from the texture example. Most of the code is irrelevant, so we just quote the relevant bits:
opengl/texture/gltexobj.cpp tex1 tex1 gllogo.bmp
We create tex1 (and another variable) for OpenGL, and load a real image into buf.
convertToGLFormat convertToGLFormat
A few lines later, we convert buf into OpenGL format and store it in tex1.
glTexImage2D glTexImage2D tex1.bits
Note the dimension restrictions for texture images as described in the glTexImage2D() documentation. The width must be 2^m + 2*border and the height 2^n + 2*border where m and n are integers and border is either 0 or 1.
Another function in the same example uses tex1 with OpenGL.
Definition at line 4924 of file qgl.cpp.
void QGLWidget::deleteTexture | ( | GLuint | id | ) |
Calls QGLContext::deleteTexture(id) on the currently set context.
Definition at line 5457 of file qgl.cpp.
void QGLWidget::doneCurrent | ( | ) |
Makes no GL context the current context.
Normally, you do not need to call this function; QGLContext calls it as necessary. However, it may be useful in multithreaded environments.
Definition at line 4204 of file qgl.cpp.
bool QGLWidget::doubleBuffer | ( | ) | const |
Returns true if the contained GL rendering context has double buffering; otherwise returns false.
Definition at line 5309 of file qgl.cpp.
void QGLWidget::drawTexture | ( | const QRectF & | target, |
GLuint | textureId, | ||
GLenum | textureTarget = GL_TEXTURE_2D |
||
) |
Calls the corresponding QGLContext::drawTexture() with target, textureId, and textureTarget for this widget's context.
Definition at line 5482 of file qgl.cpp.
void QGLWidget::drawTexture | ( | const QPointF & | point, |
GLuint | textureId, | ||
GLenum | textureTarget = GL_TEXTURE_2D |
||
) |
Calls the corresponding QGLContext::drawTexture() with point, textureId, and textureTarget for this widget's context.
Definition at line 5507 of file qgl.cpp.
|
protectedvirtual |
Reimplemented Function
Reimplemented from QWidget.
Definition at line 347 of file qgl_qpa.cpp.
Referenced by qStoreColors(), and qt_egl_create_surface().
|
protected |
Returns the value of the first display list that is generated for the characters in the given font.
listBase indicates the base value used when generating the display lists for the font. The default value is 2000.
Definition at line 4976 of file qgl.cpp.
QGLFormat QGLWidget::format | ( | ) | const |
|
protectedvirtual |
Executes the virtual function paintGL().
The widget's rendering context will become the current context and initializeGL() will be called if it hasn't already been called.
Definition at line 4790 of file qgl.cpp.
|
protectedvirtual |
Initializes OpenGL for this widget's context.
Calls the virtual function initializeGL().
Definition at line 4772 of file qgl.cpp.
Referenced by QGLOverlayWidget::paintGL().
QImage QGLWidget::grabFrameBuffer | ( | bool | withAlpha = false | ) |
Returns an image of the frame buffer.
If withAlpha is true the alpha channel is included.
Depending on your hardware, you can explicitly select which color buffer to grab with a glReadBuffer() call before calling this function.
Definition at line 4740 of file qgl.cpp.
|
protectedvirtual |
This virtual function is called once before the first call to paintGL() or resizeGL(), and then once whenever the widget has been assigned a new QGLContext.
Reimplement it in a subclass.
This function should set up any required OpenGL context rendering flags, defining display lists, etc.
There is no need to call makeCurrent() because this has already been done when this function is called.
Reimplemented in QGLOverlayWidget.
|
protectedvirtual |
This virtual function is used in the same manner as initializeGL() except that it operates on the widget's overlay context instead of the widget's main context.
This means that initializeOverlayGL() is called once before the first call to paintOverlayGL() or resizeOverlayGL(). Reimplement it in a subclass.
This function should set up any required OpenGL context rendering flags, defining display lists, etc. for the overlay context.
There is no need to call makeOverlayCurrent() because this has already been done when this function is called.
Definition at line 4428 of file qgl.cpp.
Referenced by QGLOverlayWidget::initializeGL().
bool QGLWidget::isSharing | ( | ) | const |
bool QGLWidget::isValid | ( | ) | const |
Returns true if the widget has a valid GL rendering context; otherwise returns false.
A widget will be invalid if the system has no OpenGL support.
Definition at line 4151 of file qgl.cpp.
Referenced by QGLOverlayWidget::paintGL().
void QGLWidget::makeCurrent | ( | ) |
Makes this widget the current widget for OpenGL operations, i.
e. makes the widget's rendering context the current OpenGL rendering context.
Definition at line 4187 of file qgl.cpp.
Referenced by QGLOverlayWidget::paintGL().
void QGLWidget::makeOverlayCurrent | ( | ) |
Makes the overlay context of this widget current.
Use this if you need to issue OpenGL commands to the overlay context outside of initializeOverlayGL(), resizeOverlayGL(), and paintOverlayGL().
Does nothing if this widget has no overlay.
Definition at line 924 of file qgl_mac.mm.
Referenced by event(), QGLOverlayWidget::paintGL(), qStoreColors(), qt_egl_create_surface(), and QGLWidgetPrivate::updateColormap().
const QGLContext * QGLWidget::overlayContext | ( | ) | const |
Returns the overlay context of this widget, or 0 if this widget has no overlay.
Definition at line 919 of file qgl_mac.mm.
Referenced by QGLContext::choosePixelFormat(), event(), QGLOverlayWidget::paintGL(), qStoreColors(), qt_egl_create_surface(), and QGLWidgetPrivate::updateColormap().
|
virtual |
Returns the GL widget's paint engine.
This is normally a QOpenGLPaintEngine.
Reimplemented from QWidget.
Definition at line 5553 of file qgl.cpp.
|
protectedvirtual |
Handles paint events passed in the event parameter.
Will cause the virtual paintGL() function to be called.
The widget's rendering context will become the current context and initializeGL() will be called if it hasn't already been called.
Reimplemented from QWidget.
Definition at line 4601 of file qgl.cpp.
|
protectedvirtual |
This virtual function is called whenever the widget needs to be painted.
Reimplement it in a subclass.
There is no need to call makeCurrent() because this has already been done when this function is called.
Reimplemented in QGLOverlayWidget.
|
protectedvirtual |
This virtual function is used in the same manner as paintGL() except that it operates on the widget's overlay context instead of the widget's main context.
This means that paintOverlayGL() is called whenever the widget's overlay needs to be painted. Reimplement it in a subclass.
There is no need to call makeOverlayCurrent() because this has already been done when this function is called.
Definition at line 4444 of file qgl.cpp.
Referenced by QGLOverlayWidget::paintGL().
void QGLWidget::qglClearColor | ( | const QColor & | c | ) | const |
Convenience function for specifying the clearing color to OpenGL.
Calls glClearColor (in RGBA mode) or glClearIndex (in color-index mode) with the color c. Applies to this widgets GL context.
Definition at line 4861 of file qgl.cpp.
Referenced by QGLOverlayWidget::initializeGL().
void QGLWidget::qglColor | ( | const QColor & | c | ) | const |
Convenience function for specifying a drawing color to OpenGL.
Calls glColor4 (in RGBA mode) or glIndex (in color-index mode) with the color c. Applies to this widgets GL context.
Definition at line 4828 of file qgl.cpp.
QPixmap QGLWidget::renderPixmap | ( | int | w = 0 , |
int | h = 0 , |
||
bool | useContext = false |
||
) |
Renders the current scene on a pixmap and returns the pixmap.
You can use this method on both visible and invisible QGLWidget objects.
This method will create a pixmap and a temporary QGLContext to render on the pixmap. It will then call initializeGL(), resizeGL(), and paintGL() on this context. Finally, the widget's original GL context is restored.
The size of the pixmap will be w pixels wide and h pixels high unless one of these parameters is 0 (the default), in which case the pixmap will have the same size as the widget.
If useContext is true, this method will try to be more efficient by using the existing GL context to render the pixmap. The default is false. Only use true if you understand the risks. Note that under Windows a temporary context has to be created and usage of the useContext parameter is not supported.
Overlays are not rendered onto the pixmap.
If the GL rendering context and the desktop have different bit depths, the result will most likely look surprising.
Note that the creation of display lists, modifications of the view frustum etc. should be done from within initializeGL(). If this is not done, the temporary QGLContext will not be initialized properly, and the rendered pixmap may be incomplete/corrupted.
Definition at line 4660 of file qgl.cpp.
void QGLWidget::renderText | ( | int | x, |
int | y, | ||
const QString & | str, | ||
const QFont & | font = QFont() , |
||
int | listBase = 2000 |
||
) |
Renders the string str into the GL context of this widget.
x and y are specified in window coordinates, with the origin in the upper left-hand corner of the window. If font is not specified, the currently set application font will be used to render the string. To change the color of the rendered text you can use the glColor() call (or the qglColor() convenience function), just before the renderText() call.
The listBase parameter is obsolete and will be removed in a future version of Qt.
Overpainting Example{Overpaint} with QPainter::drawText() instead.
Definition at line 5112 of file qgl.cpp.
void QGLWidget::renderText | ( | double | x, |
double | y, | ||
double | z, | ||
const QString & | str, | ||
const QFont & | font = QFont() , |
||
int | listBase = 2000 |
||
) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.x, y and z are specified in scene or object coordinates relative to the currently set projection and model matrices.
This can be useful if you want to annotate models with text labels and have the labels move with the model as it is rotated etc.
glDisable(GL_DEPTH_TEST)
before calling this function to annotate the models without depth-testing the text.Overpainting Example{Overpaint} with QPainter::drawText() instead.
Definition at line 5209 of file qgl.cpp.
|
protectedvirtual |
Handles resize events that are passed in the event parameter.
Calls the virtual function resizeGL().
Reimplemented from QWidget.
Definition at line 896 of file qgl_mac.mm.
Referenced by event(), QGLOverlayWidget::paintGL(), qStoreColors(), qt_egl_create_surface(), and QGLWidgetPrivate::updateColormap().
|
protectedvirtual |
This virtual function is called whenever the widget has been resized.
The new size is passed in width and height. Reimplement it in a subclass.
There is no need to call makeCurrent() because this has already been done when this function is called.
Reimplemented in QGLOverlayWidget.
|
protectedvirtual |
This virtual function is used in the same manner as paintGL() except that it operates on the widget's overlay context instead of the widget's main context.
This means that resizeOverlayGL() is called whenever the widget has been resized. The new size is passed in width and height. Reimplement it in a subclass.
There is no need to call makeOverlayCurrent() because this has already been done when this function is called.
Definition at line 4465 of file qgl.cpp.
Referenced by QGLOverlayWidget::resizeGL().
|
protected |
If on is true automatic GL buffer swapping is switched on; otherwise it is switched off.
If on is true and the widget is using a double-buffered format, the background and foreground GL buffers will automatically be swapped after each paintGL() call.
The buffer auto-swapping is on by default.
Definition at line 5315 of file qgl.cpp.
void QGLWidget::setColormap | ( | const QGLColormap & | cmap | ) |
Set the colormap for this widget to cmap.
Usually it is only top-level widgets that can have colormaps installed.
Definition at line 979 of file qgl_mac.mm.
Referenced by event(), qCanAllocColors(), qStoreColors(), qt_egl_create_surface(), and QGLWidgetPrivate::updateColormap().
void QGLWidget::setContext | ( | QGLContext * | context, |
const QGLContext * | shareContext = 0 , |
||
bool | deleteOldContext = true |
||
) |
Sets a new QGLContext, context, for this QGLWidget, using the shared context, shareContext.
If deleteOldContext is true, the original context is deleted; otherwise it is overridden.
Definition at line 932 of file qgl_mac.mm.
Referenced by QGLOverlayWidget::paintGL(), qDeleteQGLContext(), qStoreColors(), qt_egl_create_surface(), and QGLWidgetPrivate::updateColormap().
void QGLWidget::setFormat | ( | const QGLFormat & | format | ) |
Sets a new format for this widget.
If the underlying OpenGL/Window system cannot satisfy all the features requested in format, the nearest subset of features will be used. After creation, the format() method will return the actual rendering context format obtained.
The widget will be assigned a new QGLContext, and the initializeGL() function will be executed for this new context before the first resizeGL() or paintGL().
This method will try to keep display list and texture object sharing in effect with other QGLWidget objects, but changing the format might make sharing impossible. Use isSharing() to see if sharing is still in effect.
Definition at line 4285 of file qgl.cpp.
void QGLWidget::setMouseTracking | ( | bool | enable | ) |
If enable is true then mouse tracking is enabled; otherwise it is disabled.
Definition at line 357 of file qgl_egl.cpp.
Referenced by QGLOverlayWidget::paintGL(), qt_mac_get_widget_rgn(), and QGLWidgetPrivate::updateColormap().
void QGLWidget::swapBuffers | ( | ) |
Swaps the screen contents with an off-screen buffer.
This only works if the widget's format specifies double buffer mode.
Normally, there is no need to explicitly call this function because it is done automatically after each widget repaint, i.e. each time after paintGL() has been executed.
Definition at line 4226 of file qgl.cpp.
|
virtualslot |
Updates the widget by calling glDraw().
Definition at line 4343 of file qgl.cpp.
|
virtualslot |
Updates the widget's overlay (if any).
Will cause the virtual function paintOverlayGL() to be executed.
The widget's rendering context will become the current context and initializeGL() will be called if it hasn't already been called.
Definition at line 928 of file qgl_mac.mm.
Referenced by event(), QGLOverlayWidget::paintGL(), qStoreColors(), qt_egl_create_surface(), and QGLWidgetPrivate::updateColormap().
|
friend |
Definition at line 600 of file qgl.h.
Referenced by QGLPixelBufferPrivate::common_init().
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |