Warning, file /include/QtOpenGLWidgets/qopenglwidget.h was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004 #ifndef QOPENGLWIDGET_H
0005 #define QOPENGLWIDGET_H
0006
0007 #include <QtOpenGLWidgets/qtopenglwidgetsglobal.h>
0008
0009 #include <QtWidgets/QWidget>
0010 #include <QtGui/QSurfaceFormat>
0011 #include <QtGui/qopengl.h>
0012
0013 QT_BEGIN_NAMESPACE
0014
0015 class QOpenGLWidgetPrivate;
0016
0017 class Q_OPENGLWIDGETS_EXPORT QOpenGLWidget : public QWidget
0018 {
0019 Q_OBJECT
0020 Q_DECLARE_PRIVATE(QOpenGLWidget)
0021
0022 public:
0023 enum UpdateBehavior {
0024 NoPartialUpdate,
0025 PartialUpdate
0026 };
0027 Q_ENUM(UpdateBehavior)
0028
0029 enum TargetBuffer : uint8_t {
0030 LeftBuffer = 0,
0031 RightBuffer
0032 };
0033 Q_ENUM(TargetBuffer)
0034
0035 explicit QOpenGLWidget(QWidget* parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
0036 ~QOpenGLWidget();
0037
0038 void setUpdateBehavior(UpdateBehavior updateBehavior);
0039 UpdateBehavior updateBehavior() const;
0040
0041 void setFormat(const QSurfaceFormat &format);
0042 QSurfaceFormat format() const;
0043
0044 GLenum textureFormat() const;
0045 void setTextureFormat(GLenum texFormat);
0046
0047 bool isValid() const;
0048
0049 void makeCurrent();
0050 void makeCurrent(TargetBuffer targetBuffer);
0051 void doneCurrent();
0052
0053 QOpenGLContext *context() const;
0054 GLuint defaultFramebufferObject() const;
0055 GLuint defaultFramebufferObject(TargetBuffer targetBuffer) const;
0056
0057 QImage grabFramebuffer();
0058 QImage grabFramebuffer(TargetBuffer targetBuffer);
0059
0060 TargetBuffer currentTargetBuffer() const;
0061
0062 Q_SIGNALS:
0063 void aboutToCompose();
0064 void frameSwapped();
0065 void aboutToResize();
0066 void resized();
0067
0068 protected:
0069 virtual void initializeGL();
0070 virtual void resizeGL(int w, int h);
0071 virtual void paintGL();
0072
0073 void paintEvent(QPaintEvent *e) override;
0074 void resizeEvent(QResizeEvent *e) override;
0075 bool event(QEvent *e) override;
0076
0077 int metric(QPaintDevice::PaintDeviceMetric metric) const override;
0078 QPaintDevice *redirected(QPoint *p) const override;
0079 QPaintEngine *paintEngine() const override;
0080
0081 private:
0082 Q_DISABLE_COPY(QOpenGLWidget)
0083 };
0084
0085 QT_END_NAMESPACE
0086
0087 #endif