From f2bbc9c69f5265986dd5574a790e189a7a126c61 Mon Sep 17 00:00:00 2001 From: Johan Klokkhammer Helsing Date: Fri, 17 Jan 2020 15:51:29 +0100 Subject: Move QOpenGLFrameBufferObject from QtGui to QtOpenGL Task-number: QTBUG-74409 Change-Id: I817ea6f052fc61a6465d443450c8017ac5d0c0e9 Reviewed-by: Laszlo Agocs --- src/gui/opengl/qopenglframebufferobject.h | 200 ------------------------------ 1 file changed, 200 deletions(-) delete mode 100644 src/gui/opengl/qopenglframebufferobject.h (limited to 'src/gui/opengl/qopenglframebufferobject.h') diff --git a/src/gui/opengl/qopenglframebufferobject.h b/src/gui/opengl/qopenglframebufferobject.h deleted file mode 100644 index 161054d1bf..0000000000 --- a/src/gui/opengl/qopenglframebufferobject.h +++ /dev/null @@ -1,200 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtGui module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QOPENGLFRAMEBUFFEROBJECT_H -#define QOPENGLFRAMEBUFFEROBJECT_H - -#include - -#ifndef QT_NO_OPENGL - -#include -#include - -#include - -#if defined(Q_CLANG_QDOC) -#undef GLuint -typedef unsigned int GLuint; -#undef GLenum -typedef unsigned int GLenum; -#undef GL_TEXTURE_2D -#define GL_TEXTURE_2D 0x0DE1 -#undef GLbitfield -typedef unsigned int GLbitfield; -#endif - -QT_BEGIN_NAMESPACE - -class QOpenGLFramebufferObjectPrivate; -class QOpenGLFramebufferObjectFormat; - -class Q_GUI_EXPORT QOpenGLFramebufferObject -{ - Q_DECLARE_PRIVATE(QOpenGLFramebufferObject) -public: - enum Attachment { - NoAttachment, - CombinedDepthStencil, - Depth - }; - - explicit QOpenGLFramebufferObject(const QSize &size, GLenum target = GL_TEXTURE_2D); - QOpenGLFramebufferObject(int width, int height, GLenum target = GL_TEXTURE_2D); - - QOpenGLFramebufferObject(const QSize &size, Attachment attachment, - GLenum target = GL_TEXTURE_2D, GLenum internalFormat = 0); - QOpenGLFramebufferObject(int width, int height, Attachment attachment, - GLenum target = GL_TEXTURE_2D, GLenum internalFormat = 0); - - QOpenGLFramebufferObject(const QSize &size, const QOpenGLFramebufferObjectFormat &format); - QOpenGLFramebufferObject(int width, int height, const QOpenGLFramebufferObjectFormat &format); - - virtual ~QOpenGLFramebufferObject(); - - void addColorAttachment(const QSize &size, GLenum internalFormat = 0); - void addColorAttachment(int width, int height, GLenum internalFormat = 0); - - QOpenGLFramebufferObjectFormat format() const; - - bool isValid() const; - bool isBound() const; - bool bind(); - bool release(); - - int width() const { return size().width(); } - int height() const { return size().height(); } - - GLuint texture() const; - QVector textures() const; - - GLuint takeTexture(); - GLuint takeTexture(int colorAttachmentIndex); - - QSize size() const; - QVector sizes() const; - - QImage toImage() const; - QImage toImage(bool flipped) const; - QImage toImage(bool flipped, int colorAttachmentIndex) const; - - Attachment attachment() const; - void setAttachment(Attachment attachment); - - GLuint handle() const; - - static bool bindDefault(); - - static bool hasOpenGLFramebufferObjects(); - - static bool hasOpenGLFramebufferBlit(); - - enum FramebufferRestorePolicy { - DontRestoreFramebufferBinding, - RestoreFramebufferBindingToDefault, - RestoreFrameBufferBinding - }; - - static void blitFramebuffer(QOpenGLFramebufferObject *target, const QRect &targetRect, - QOpenGLFramebufferObject *source, const QRect &sourceRect, - GLbitfield buffers, - GLenum filter, - int readColorAttachmentIndex, - int drawColorAttachmentIndex, - FramebufferRestorePolicy restorePolicy); - static void blitFramebuffer(QOpenGLFramebufferObject *target, const QRect &targetRect, - QOpenGLFramebufferObject *source, const QRect &sourceRect, - GLbitfield buffers, - GLenum filter, - int readColorAttachmentIndex, - int drawColorAttachmentIndex); - static void blitFramebuffer(QOpenGLFramebufferObject *target, const QRect &targetRect, - QOpenGLFramebufferObject *source, const QRect &sourceRect, - GLbitfield buffers = GL_COLOR_BUFFER_BIT, - GLenum filter = GL_NEAREST); - static void blitFramebuffer(QOpenGLFramebufferObject *target, - QOpenGLFramebufferObject *source, - GLbitfield buffers = GL_COLOR_BUFFER_BIT, - GLenum filter = GL_NEAREST); - -private: - Q_DISABLE_COPY(QOpenGLFramebufferObject) - QScopedPointer d_ptr; - friend class QOpenGLPaintDevice; - friend class QOpenGLFBOGLPaintDevice; -}; - -class QOpenGLFramebufferObjectFormatPrivate; -class Q_GUI_EXPORT QOpenGLFramebufferObjectFormat -{ -public: - QOpenGLFramebufferObjectFormat(); - QOpenGLFramebufferObjectFormat(const QOpenGLFramebufferObjectFormat &other); - QOpenGLFramebufferObjectFormat &operator=(const QOpenGLFramebufferObjectFormat &other); - ~QOpenGLFramebufferObjectFormat(); - - void setSamples(int samples); - int samples() const; - - void setMipmap(bool enabled); - bool mipmap() const; - - void setAttachment(QOpenGLFramebufferObject::Attachment attachment); - QOpenGLFramebufferObject::Attachment attachment() const; - - void setTextureTarget(GLenum target); - GLenum textureTarget() const; - - void setInternalTextureFormat(GLenum internalTextureFormat); - GLenum internalTextureFormat() const; - - bool operator==(const QOpenGLFramebufferObjectFormat& other) const; - bool operator!=(const QOpenGLFramebufferObjectFormat& other) const; - -private: - QOpenGLFramebufferObjectFormatPrivate *d; - - void detach(); -}; - -QT_END_NAMESPACE - -#endif // QT_NO_OPENGL - -#endif // QOPENGLFRAMEBUFFEROBJECT_H -- cgit v1.2.3