Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qopengltextureblitter.h
Go to the documentation of this file.
1
// Copyright (C) 2016 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
// Qt-Security score:significant reason:default
4
5
#
ifndef
QOPENGLTEXTUREBLITTER_H
6
#
define
QOPENGLTEXTUREBLITTER_H
7
8
#
include
<
QtOpenGL
/
qtopenglglobal
.
h
>
9
10
#
include
<
QtGui
/
qopengl
.
h
>
11
#
include
<
QtGui
/
QMatrix3x3
>
12
#
include
<
QtGui
/
QMatrix4x4
>
13
14
QT_BEGIN_NAMESPACE
15
16
class
QOpenGLTextureBlitterPrivate;
17
18
class
Q_OPENGL_EXPORT
QOpenGLTextureBlitter
19
{
20
public
:
21
QOpenGLTextureBlitter();
22
~QOpenGLTextureBlitter();
23
24
enum
Origin {
25
OriginBottomLeft,
26
OriginTopLeft
27
};
28
29
bool
create();
30
bool
isCreated()
const
;
31
void
destroy();
32
33
bool
supportsExternalOESTarget()
const
;
34
bool
supportsRectangleTarget()
const
;
35
36
void
bind(GLenum target = GL_TEXTURE_2D);
37
void
release();
38
39
void
setRedBlueSwizzle(
bool
swizzle);
40
void
setOpacity(
float
opacity);
41
42
void
blit(GLuint texture,
const
QMatrix4x4 &targetTransform, Origin sourceOrigin);
43
void
blit(GLuint texture,
const
QMatrix4x4 &targetTransform,
const
QMatrix3x3 &sourceTransform);
44
45
static
QMatrix4x4 targetTransform(
const
QRectF &target,
const
QRect &viewport);
46
static
QMatrix3x3 sourceTransform(
const
QRectF &subTexture,
const
QSize &textureSize, Origin origin);
47
48
private
:
49
Q_DISABLE_COPY(QOpenGLTextureBlitter)
50
Q_DECLARE_PRIVATE(QOpenGLTextureBlitter)
51
QScopedPointer<QOpenGLTextureBlitterPrivate> d_ptr;
52
};
53
54
QT_END_NAMESPACE
55
56
#
endif
//QOPENGLTEXTUREBLITTER_H
QBlitterTextureBinder
Definition
qopengltextureblitter.cpp:174
QBlitterTextureBinder::QBlitterTextureBinder
QBlitterTextureBinder(GLenum target, GLuint textureId)
Definition
qopengltextureblitter.cpp:176
QBlitterTextureBinder::~QBlitterTextureBinder
~QBlitterTextureBinder()
Definition
qopengltextureblitter.cpp:180
QOpenGLTextureBlitterPrivate
Definition
qopengltextureblitter.cpp:190
QOpenGLTextureBlitterPrivate::opacity
float opacity
Definition
qopengltextureblitter.cpp:249
QOpenGLTextureBlitterPrivate::ProgramIndex
ProgramIndex
Definition
qopengltextureblitter.cpp:198
QOpenGLTextureBlitterPrivate::TEXTURE_EXTERNAL_OES
@ TEXTURE_EXTERNAL_OES
Definition
qopengltextureblitter.cpp:200
QOpenGLTextureBlitterPrivate::TEXTURE_RECTANGLE
@ TEXTURE_RECTANGLE
Definition
qopengltextureblitter.cpp:201
QOpenGLTextureBlitterPrivate::TEXTURE_2D
@ TEXTURE_2D
Definition
qopengltextureblitter.cpp:199
QOpenGLTextureBlitterPrivate::toTextureCoordinates
QMatrix3x3 toTextureCoordinates(const QMatrix3x3 &sourceTransform) const
Definition
qopengltextureblitter.cpp:302
QOpenGLTextureBlitterPrivate::currentTarget
GLenum currentTarget
Definition
qopengltextureblitter.cpp:251
QOpenGLTextureBlitterPrivate::ensureProgram
bool ensureProgram(ProgramIndex idx)
Definition
qopengltextureblitter.cpp:395
QOpenGLTextureBlitterPrivate::vertexBuffer
QOpenGLBuffer vertexBuffer
Definition
qopengltextureblitter.cpp:223
QOpenGLTextureBlitterPrivate::blit
void blit(GLuint texture, const QMatrix4x4 &targetTransform, QOpenGLTextureBlitter::Origin origin)
Definition
qopengltextureblitter.cpp:336
QOpenGLTextureBlitterPrivate::q
QOpenGLTextureBlitter * q
Definition
qopengltextureblitter.cpp:222
QOpenGLTextureBlitterPrivate::QOpenGLTextureBlitterPrivate
QOpenGLTextureBlitterPrivate(QOpenGLTextureBlitter *q_ptr)
Definition
qopengltextureblitter.cpp:204
QOpenGLTextureBlitterPrivate::textureBuffer
QOpenGLBuffer textureBuffer
Definition
qopengltextureblitter.cpp:224
QOpenGLTextureBlitterPrivate::vao
QScopedPointer< QOpenGLVertexArrayObject > vao
Definition
qopengltextureblitter.cpp:250
QOpenGLTextureBlitterPrivate::buildProgram
bool buildProgram(ProgramIndex idx, const char *vs, const char *fs)
Definition
qopengltextureblitter.cpp:364
QOpenGLTextureBlitterPrivate::blit
void blit(GLuint texture, const QMatrix4x4 &targetTransform, const QMatrix3x3 &sourceTransform)
Definition
qopengltextureblitter.cpp:319
QOpenGLTextureBlitterPrivate::TextureMatrixUniform
TextureMatrixUniform
Definition
qopengltextureblitter.cpp:192
QOpenGLTextureBlitterPrivate::IdentityFlipped
@ IdentityFlipped
Definition
qopengltextureblitter.cpp:195
QOpenGLTextureBlitterPrivate::User
@ User
Definition
qopengltextureblitter.cpp:193
QOpenGLTextureBlitterPrivate::Identity
@ Identity
Definition
qopengltextureblitter.cpp:194
QOpenGLTextureBlitterPrivate::prepareProgram
bool prepareProgram(const QMatrix4x4 &vertexTransform)
Definition
qopengltextureblitter.cpp:269
QOpenGLTextureBlitterPrivate::swizzle
bool swizzle
Definition
qopengltextureblitter.cpp:248
QOpenGLTextureBlitter
The QOpenGLTextureBlitter class provides a convenient way to draw textured quads via OpenGL.
Definition
qopengltextureblitter.h:19
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
GL_TEXTURE_EXTERNAL_OES
#define GL_TEXTURE_EXTERNAL_OES
Definition
qopengles2ext.h:272
GL_TEXTURE_RECTANGLE
#define GL_TEXTURE_RECTANGLE
Definition
qopenglext.h:1316
GL_TEXTURE_WIDTH
#define GL_TEXTURE_WIDTH
Definition
qopengltextureblitter.cpp:21
fragment_shader_external_oes
static const char fragment_shader_external_oes[]
Definition
qopengltextureblitter.cpp:119
fragment_shader150
static const char fragment_shader150[]
Definition
qopengltextureblitter.cpp:84
vertex_shader
static const char vertex_shader[]
Definition
qopengltextureblitter.cpp:97
GL_TEXTURE_HEIGHT
#define GL_TEXTURE_HEIGHT
Definition
qopengltextureblitter.cpp:24
texture_buffer_data
static const GLfloat texture_buffer_data[]
Definition
qopengltextureblitter.cpp:164
fragment_shader150_rectangle
static const char fragment_shader150_rectangle[]
Definition
qopengltextureblitter.cpp:142
vertex_buffer_data
static const GLfloat vertex_buffer_data[]
Definition
qopengltextureblitter.cpp:155
fragment_shader_rectangle
static const char fragment_shader_rectangle[]
Definition
qopengltextureblitter.cpp:131
targetToProgramIndex
static QOpenGLTextureBlitterPrivate::ProgramIndex targetToProgramIndex(GLenum target)
Definition
qopengltextureblitter.cpp:254
fragment_shader
static const char fragment_shader[]
Definition
qopengltextureblitter.cpp:108
vertex_shader150
static const char vertex_shader150[]
Definition
qopengltextureblitter.cpp:72
QOpenGLTextureBlitterPrivate::Program
Definition
qopengltextureblitter.cpp:225
QOpenGLTextureBlitterPrivate::Program::glProgram
QScopedPointer< QOpenGLShaderProgram > glProgram
Definition
qopengltextureblitter.cpp:237
QOpenGLTextureBlitterPrivate::Program::vertexTransformUniformPos
GLuint vertexTransformUniformPos
Definition
qopengltextureblitter.cpp:239
QOpenGLTextureBlitterPrivate::Program::vertexCoordAttribPos
GLuint vertexCoordAttribPos
Definition
qopengltextureblitter.cpp:238
QOpenGLTextureBlitterPrivate::Program::opacity
float opacity
Definition
qopengltextureblitter.cpp:245
QOpenGLTextureBlitterPrivate::Program::swizzle
bool swizzle
Definition
qopengltextureblitter.cpp:244
QOpenGLTextureBlitterPrivate::Program::textureCoordAttribPos
GLuint textureCoordAttribPos
Definition
qopengltextureblitter.cpp:240
QOpenGLTextureBlitterPrivate::Program::swizzleUniformPos
GLuint swizzleUniformPos
Definition
qopengltextureblitter.cpp:242
QOpenGLTextureBlitterPrivate::Program::textureTransformUniformPos
GLuint textureTransformUniformPos
Definition
qopengltextureblitter.cpp:241
QOpenGLTextureBlitterPrivate::Program::opacityUniformPos
GLuint opacityUniformPos
Definition
qopengltextureblitter.cpp:243
QOpenGLTextureBlitterPrivate::Program::Program
Program()
Definition
qopengltextureblitter.cpp:226
QOpenGLTextureBlitterPrivate::Program::textureMatrixUniformState
TextureMatrixUniform textureMatrixUniformState
Definition
qopengltextureblitter.cpp:246
qtbase
src
opengl
qopengltextureblitter.h
Generated on
for Qt by
1.18.0