// qopenglframebufferobject.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2023 Riverbank Computing Limited // // This file is part of PyQt5. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (PyQt_OpenGL) class QOpenGLFramebufferObject { %TypeHeaderCode #include %End %TypeCode // The defaults are different for desktop OpenGL and OpenGL/ES so pretend the // latter is the former. #if defined(QT_OPENGL_ES) #undef GL_RGBA8 #define GL_RGBA8 GL_RGBA #endif %End public: enum Attachment { NoAttachment, CombinedDepthStencil, Depth, }; QOpenGLFramebufferObject(const QSize &size, GLenum target = GL_TEXTURE_2D); QOpenGLFramebufferObject(int width, int height, GLenum target = GL_TEXTURE_2D); QOpenGLFramebufferObject(const QSize &size, QOpenGLFramebufferObject::Attachment attachment, GLenum target = GL_TEXTURE_2D, GLenum internal_format = GL_RGBA8); QOpenGLFramebufferObject(int width, int height, QOpenGLFramebufferObject::Attachment attachment, GLenum target = GL_TEXTURE_2D, GLenum internal_format = GL_RGBA8); QOpenGLFramebufferObject(const QSize &size, const QOpenGLFramebufferObjectFormat &format); QOpenGLFramebufferObject(int width, int height, const QOpenGLFramebufferObjectFormat &format); virtual ~QOpenGLFramebufferObject(); QOpenGLFramebufferObjectFormat format() const; bool isValid() const; bool isBound() const; bool bind(); bool release(); int width() const; int height() const; GLuint texture() const; %If (Qt_5_6_0 -) QVector textures() const; %End QSize size() const; QImage toImage() const; %If (Qt_5_4_0 -) QImage toImage(bool flipped) const; %End %If (Qt_5_6_0 -) QImage toImage(bool flipped, int colorAttachmentIndex) const; %End QOpenGLFramebufferObject::Attachment attachment() const; void setAttachment(QOpenGLFramebufferObject::Attachment attachment); GLuint handle() const; static bool bindDefault(); static bool hasOpenGLFramebufferObjects(); static bool hasOpenGLFramebufferBlit(); %If (Qt_5_7_0 -) enum FramebufferRestorePolicy { DontRestoreFramebufferBinding, RestoreFramebufferBindingToDefault, RestoreFrameBufferBinding, }; %End 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); %If (Qt_5_6_0 -) static void blitFramebuffer(QOpenGLFramebufferObject *target, const QRect &targetRect, QOpenGLFramebufferObject *source, const QRect &sourceRect, GLbitfield buffers, GLenum filter, int readColorAttachmentIndex, int drawColorAttachmentIndex); %End %If (Qt_5_7_0 -) static void blitFramebuffer(QOpenGLFramebufferObject *target, const QRect &targetRect, QOpenGLFramebufferObject *source, const QRect &sourceRect, GLbitfield buffers, GLenum filter, int readColorAttachmentIndex, int drawColorAttachmentIndex, QOpenGLFramebufferObject::FramebufferRestorePolicy restorePolicy); %End %If (Qt_5_3_0 -) GLuint takeTexture(); %End %If (Qt_5_6_0 -) GLuint takeTexture(int colorAttachmentIndex); %End %If (Qt_5_6_0 -) void addColorAttachment(const QSize &size, GLenum internal_format = 0); %End %If (Qt_5_6_0 -) void addColorAttachment(int width, int height, GLenum internal_format = 0); %End %If (Qt_5_6_0 -) QVector sizes() const; %End private: QOpenGLFramebufferObject(const QOpenGLFramebufferObject &); }; %End %If (PyQt_OpenGL) class QOpenGLFramebufferObjectFormat { %TypeHeaderCode #include %End public: QOpenGLFramebufferObjectFormat(); QOpenGLFramebufferObjectFormat(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; }; %End