blob: 06ffcf928bc4e9904067c9eb12b5719ea4df07e7 (
plain)
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 | // 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 QOPENGLTEXTUREBLITTER_H#define QOPENGLTEXTUREBLITTER_H#include <QtOpenGL/qtopenglglobal.h>#include <QtGui/qopengl.h>#include <QtGui/QMatrix3x3>#include <QtGui/QMatrix4x4> QT_BEGIN_NAMESPACE class QOpenGLTextureBlitterPrivate;class Q_OPENGL_EXPORT QOpenGLTextureBlitter {public:QOpenGLTextureBlitter();~QOpenGLTextureBlitter();enum Origin { OriginBottomLeft, OriginTopLeft };boolcreate();boolisCreated()const;voiddestroy();boolsupportsExternalOESTarget()const;boolsupportsRectangleTarget()const;voidbind(GLenum target = GL_TEXTURE_2D);voidrelease();voidsetRedBlueSwizzle(bool swizzle);voidsetOpacity(float opacity);voidblit(GLuint texture,const QMatrix4x4 &targetTransform, Origin sourceOrigin);voidblit(GLuint texture,const QMatrix4x4 &targetTransform,const QMatrix3x3 &sourceTransform);static QMatrix4x4 targetTransform(const QRectF &target,const QRect &viewport);static QMatrix3x3 sourceTransform(const QRectF &subTexture,const QSize &textureSize, Origin origin);private:Q_DISABLE_COPY(QOpenGLTextureBlitter)Q_DECLARE_PRIVATE(QOpenGLTextureBlitter) QScopedPointer<QOpenGLTextureBlitterPrivate> d_ptr;}; QT_END_NAMESPACE #endif//QOPENGLTEXTUREBLITTER_H
|