blob: d759b3cfbcc9620af67459855e3a39c51016b8b7 (
plain)
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 | // Copyright (C) 2016 The Qt Company Ltd.// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only#ifndef QOPENGLWINDOW_H#define QOPENGLWINDOW_H#include <QtOpenGL/qtopenglglobal.h>#ifndef QT_NO_OPENGL#include <QtGui/QPaintDeviceWindow>#include <QtGui/QOpenGLContext>#include <QtGui/QImage> QT_BEGIN_NAMESPACE class QOpenGLWindowPrivate;class Q_OPENGL_EXPORT QOpenGLWindow :public QPaintDeviceWindow { Q_OBJECT Q_DECLARE_PRIVATE(QOpenGLWindow)public:enum UpdateBehavior { NoPartialUpdate, PartialUpdateBlit, PartialUpdateBlend };explicitQOpenGLWindow(UpdateBehavior updateBehavior = NoPartialUpdate, QWindow *parent =nullptr);explicitQOpenGLWindow(QOpenGLContext *shareContext, UpdateBehavior updateBehavior = NoPartialUpdate, QWindow *parent =nullptr);~QOpenGLWindow(); UpdateBehavior updateBehavior()const;boolisValid()const;voidmakeCurrent();voiddoneCurrent(); QOpenGLContext *context()const; QOpenGLContext *shareContext()const; GLuint defaultFramebufferObject()const; QImage grabFramebuffer(); Q_SIGNALS:voidframeSwapped();protected:virtualvoidinitializeGL();virtualvoidresizeGL(int w,int h);virtualvoidpaintGL();virtualvoidpaintUnderGL();virtualvoidpaintOverGL();voidpaintEvent(QPaintEvent *event) override;voidresizeEvent(QResizeEvent *event) override;intmetric(PaintDeviceMetric metric)const override; QPaintDevice *redirected(QPoint *)const override;private:Q_DISABLE_COPY(QOpenGLWindow)}; QT_END_NAMESPACE #endif// QT_NO_OPENGL#endif
|