Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-21 10:12:17

0001 // Copyright (C) 2016 The Qt Company Ltd.
0002 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
0003 
0004 #ifndef QOPENGLTEXTUREBLITTER_H
0005 #define QOPENGLTEXTUREBLITTER_H
0006 
0007 #include <QtOpenGL/qtopenglglobal.h>
0008 
0009 #include <QtGui/qopengl.h>
0010 #include <QtGui/QMatrix3x3>
0011 #include <QtGui/QMatrix4x4>
0012 
0013 QT_BEGIN_NAMESPACE
0014 
0015 class QOpenGLTextureBlitterPrivate;
0016 
0017 class Q_OPENGL_EXPORT QOpenGLTextureBlitter
0018 {
0019 public:
0020     QOpenGLTextureBlitter();
0021     ~QOpenGLTextureBlitter();
0022 
0023     enum Origin {
0024         OriginBottomLeft,
0025         OriginTopLeft
0026     };
0027 
0028     bool create();
0029     bool isCreated() const;
0030     void destroy();
0031 
0032     bool supportsExternalOESTarget() const;
0033     bool supportsRectangleTarget() const;
0034 
0035     void bind(GLenum target = GL_TEXTURE_2D);
0036     void release();
0037 
0038     void setRedBlueSwizzle(bool swizzle);
0039     void setOpacity(float opacity);
0040 
0041     void blit(GLuint texture, const QMatrix4x4 &targetTransform, Origin sourceOrigin);
0042     void blit(GLuint texture, const QMatrix4x4 &targetTransform, const QMatrix3x3 &sourceTransform);
0043 
0044     static QMatrix4x4 targetTransform(const QRectF &target, const QRect &viewport);
0045     static QMatrix3x3 sourceTransform(const QRectF &subTexture, const QSize &textureSize, Origin origin);
0046 
0047 private:
0048     Q_DISABLE_COPY(QOpenGLTextureBlitter)
0049     Q_DECLARE_PRIVATE(QOpenGLTextureBlitter)
0050     QScopedPointer<QOpenGLTextureBlitterPrivate> d_ptr;
0051 };
0052 
0053 QT_END_NAMESPACE
0054 
0055 #endif //QOPENGLTEXTUREBLITTER_H