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
qquickcontext2dtexture_p.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
QQUICKCONTEXT2DTEXTURE_P_H
6
#
define
QQUICKCONTEXT2DTEXTURE_P_H
7
8
//
9
// W A R N I N G
10
// -------------
11
//
12
// This file is not part of the Qt API. It exists purely as an
13
// implementation detail. This header file may change from version to
14
// version without notice, or even be removed.
15
//
16
// We mean it.
17
//
18
19
#
include
<
private
/
qtquickglobal_p
.
h
>
20
21
QT_REQUIRE_CONFIG
(
quick_canvas
);
22
23
#
include
<
QtQuick
/
qsgtexture
.
h
>
24
#
include
"qquickcanvasitem_p.h"
25
#
include
"qquickcontext2d_p.h"
26
#
include
<
QtCore
/
QMutex
>
27
#
include
<
QtCore
/
QWaitCondition
>
28
#
include
<
QtCore
/
QThread
>
29
30
QT_BEGIN_NAMESPACE
31
32
class
QQuickContext2DTile
;
33
class
QQuickContext2DCommandBuffer
;
34
35
class
QQuickContext2DTexture
:
public
QObject
36
{
37
Q_OBJECT
38
public
:
39
class
PaintEvent
:
public
QEvent
{
40
public
:
41
PaintEvent
(
QQuickContext2DCommandBuffer
*
b
) :
QEvent
(
QEvent
::
Type
(
QEvent
::
User
+ 1)),
buffer
(
b
) {}
42
QQuickContext2DCommandBuffer
*
buffer
;
43
};
44
45
class
CanvasChangeEvent
:
public
QEvent
{
46
public
:
47
CanvasChangeEvent
(
const
QSize &cSize,
48
const
QSize &tSize,
49
const
QRect &cWindow,
50
const
QRect &dRect,
51
bool
sm,
52
bool
aa)
53
:
QEvent
(
QEvent
::
Type
(
QEvent
::
User
+ 2))
54
,
canvasSize
(
cSize
)
55
,
tileSize
(
tSize
)
56
,
canvasWindow
(
cWindow
)
57
,
dirtyRect
(
dRect
)
58
,
smooth
(sm)
59
,
antialiasing
(aa)
60
{
61
}
62
QSize
canvasSize
;
63
QSize
tileSize
;
64
QRect
canvasWindow
;
65
QRect
dirtyRect
;
66
bool
smooth
;
67
bool
antialiasing
;
68
};
69
70
QQuickContext2DTexture
();
71
~
QQuickContext2DTexture
();
72
73
virtual
QQuickCanvasItem
::
RenderTarget
renderTarget
()
const
= 0;
74
static
QRect
tiledRect
(
const
QRectF& window,
const
QSize& tileSize);
75
76
bool
setCanvasSize
(
const
QSize &size);
77
bool
setTileSize
(
const
QSize &size);
78
bool
setCanvasWindow
(
const
QRect& canvasWindow);
79
void
setSmooth
(
bool
smooth);
80
void
setAntialiasing
(
bool
antialiasing);
81
bool
setDirtyRect
(
const
QRect &dirtyRect);
82
bool
canvasDestroyed
();
83
void
setOnCustomThread
(
bool
is) { m_onCustomThread = is; }
84
bool
isOnCustomThread
()
const
{
return
m_onCustomThread; }
85
86
// Called during sync() on the scene graph thread while GUI is blocked.
87
virtual
QSGTexture *
textureForNextFrame
(QSGTexture *lastFrame, QQuickWindow *window) = 0;
88
bool
event
(QEvent *e)
override
;
89
90
Q_SIGNALS
:
91
void
textureChanged
();
92
93
public
Q_SLOTS
:
94
void
canvasChanged
(
const
QSize
&
canvasSize
,
const
QSize
&
tileSize
,
const
QRect
&
canvasWindow
,
const
QRect
&
dirtyRect
,
bool
smooth
,
bool
antialiasing
);
95
void
paint
(
QQuickContext2DCommandBuffer
*ccb);
96
void
markDirtyTexture
();
97
void
setItem
(
QQuickCanvasItem
* item);
98
virtual
void
grabImage
(
const
QRectF& region = QRectF()) = 0;
99
100
protected
:
101
virtual
QVector2D
scaleFactor
()
const
{
return
QVector2D(1, 1); }
102
103
void
paintWithoutTiles
(
QQuickContext2DCommandBuffer
*ccb);
104
virtual
QPaintDevice
*
beginPainting
() {m_painting =
true
;
return
nullptr
; }
105
virtual
void
endPainting
() {m_painting =
false
;}
106
virtual
QQuickContext2DTile
*
createTile
()
const
= 0;
107
virtual
void
compositeTile
(
QQuickContext2DTile
* tile) = 0;
108
109
void
clearTiles
();
110
virtual
QSize
adjustedTileSize
(
const
QSize &ts);
111
QRect
createTiles
(
const
QRect& window);
112
113
QList
<
QQuickContext2DTile
*>
m_tiles
;
114
QQuickContext2D
*
m_context
;
115
QSurface *
m_surface
;
116
117
QQuickContext2D
::
State
m_state
;
118
119
QQuickCanvasItem
*
m_item
;
120
QSize
m_canvasSize
;
121
QSize
m_tileSize
;
122
QRect
m_canvasWindow
;
123
qreal
m_canvasDevicePixelRatio
;
124
125
QMutex
m_mutex
;
126
QWaitCondition
m_condition
;
127
128
uint
m_canvasWindowChanged
: 1;
129
uint
m_dirtyTexture
: 1;
130
uint
m_smooth
: 1;
131
uint
m_antialiasing
: 1;
132
uint
m_tiledCanvas
: 1;
133
uint
m_painting
: 1;
134
uint
m_onCustomThread
: 1;
// Not GUI and not SGRender
135
};
136
137
class
QSGPlainTexture;
138
class
QQuickContext2DImageTexture
:
public
QQuickContext2DTexture
139
{
140
Q_OBJECT
141
142
public
:
143
QQuickContext2DImageTexture
();
144
~
QQuickContext2DImageTexture
();
145
146
QQuickCanvasItem
::
RenderTarget
renderTarget
()
const
override
;
147
148
QQuickContext2DTile
*
createTile
()
const
override
;
149
QPaintDevice
*
beginPainting
()
override
;
150
void
endPainting
()
override
;
151
void
compositeTile
(
QQuickContext2DTile
* tile)
override
;
152
153
QSGTexture *
textureForNextFrame
(QSGTexture *lastFrame, QQuickWindow *window)
override
;
154
155
public
Q_SLOTS
:
156
void
grabImage
(
const
QRectF
&
region
=
QRectF
())
override
;
157
158
private
:
159
QImage m_image;
160
QImage m_displayImage;
161
QPainter m_painter;
162
};
163
164
QT_END_NAMESPACE
165
166
#
endif
// QQUICKCONTEXT2DTEXTURE_P_H
QQuickCanvasItem
Definition
qquickcanvasitem_p.h:58
QQuickCanvasItem::rawContext
QQuickCanvasContext * rawContext() const
Definition
qquickcanvasitem.cpp:521
QQuickContext2DCommandBuffer
Definition
qquickcontext2dcommandbuffer_p.h:32
QQuickContext2DCommandBuffer::isEmpty
bool isEmpty() const
Definition
qquickcontext2dcommandbuffer_p.h:40
QQuickContext2DImageTexture
Definition
qquickcontext2dtexture_p.h:139
QQuickContext2DImageTexture::createTile
QQuickContext2DTile * createTile() const override
Definition
qquickcontext2dtexture.cpp:333
QQuickContext2DImageTexture::~QQuickContext2DImageTexture
~QQuickContext2DImageTexture()
Definition
qquickcontext2dtexture.cpp:324
QQuickContext2DImageTexture::endPainting
void endPainting() override
Definition
qquickcontext2dtexture.cpp:386
QQuickContext2DImageTexture::renderTarget
QQuickCanvasItem::RenderTarget renderTarget() const override
Definition
qquickcontext2dtexture.cpp:328
QQuickContext2DImageTexture::compositeTile
void compositeTile(QQuickContext2DTile *tile) override
Definition
qquickcontext2dtexture.cpp:396
QQuickContext2DImageTexture::beginPainting
QPaintDevice * beginPainting() override
Definition
qquickcontext2dtexture.cpp:365
QQuickContext2DImageTexture::textureForNextFrame
QSGTexture * textureForNextFrame(QSGTexture *lastFrame, QQuickWindow *window) override
Definition
qquickcontext2dtexture.cpp:349
QQuickContext2DImageTile
Definition
qquickcontext2dtile_p.h:53
QQuickContext2DImageTile::QQuickContext2DImageTile
QQuickContext2DImageTile()
Definition
qquickcontext2dtile.cpp:61
QQuickContext2DTexture::CanvasChangeEvent
Definition
qquickcontext2dtexture_p.h:45
QQuickContext2DTexture::CanvasChangeEvent::canvasSize
QSize canvasSize
Definition
qquickcontext2dtexture_p.h:62
QQuickContext2DTexture::CanvasChangeEvent::CanvasChangeEvent
CanvasChangeEvent(const QSize &cSize, const QSize &tSize, const QRect &cWindow, const QRect &dRect, bool sm, bool aa)
Definition
qquickcontext2dtexture_p.h:47
QQuickContext2DTexture::CanvasChangeEvent::smooth
bool smooth
Definition
qquickcontext2dtexture_p.h:66
QQuickContext2DTexture::CanvasChangeEvent::canvasWindow
QRect canvasWindow
Definition
qquickcontext2dtexture_p.h:64
QQuickContext2DTexture::CanvasChangeEvent::dirtyRect
QRect dirtyRect
Definition
qquickcontext2dtexture_p.h:65
QQuickContext2DTexture::CanvasChangeEvent::tileSize
QSize tileSize
Definition
qquickcontext2dtexture_p.h:63
QQuickContext2DTexture::CanvasChangeEvent::antialiasing
bool antialiasing
Definition
qquickcontext2dtexture_p.h:67
QQuickContext2DTexture
Definition
qquickcontext2dtexture_p.h:36
QQuickContext2DTexture::event
bool event(QEvent *e) override
This virtual function receives events to an object and should return true if the event e was recogniz...
Definition
qquickcontext2dtexture.cpp:305
QQuickContext2DTexture::canvasDestroyed
bool canvasDestroyed()
Definition
qquickcontext2dtexture.cpp:178
QQuickContext2DTexture::setItem
void setItem(QQuickCanvasItem *item)
Definition
qquickcontext2dtexture.cpp:75
QQuickContext2DTexture::m_smooth
uint m_smooth
Definition
qquickcontext2dtexture_p.h:130
QQuickContext2DTexture::setOnCustomThread
void setOnCustomThread(bool is)
Definition
qquickcontext2dtexture_p.h:83
QQuickContext2DTexture::compositeTile
virtual void compositeTile(QQuickContext2DTile *tile)=0
QQuickContext2DTexture::clearTiles
void clearTiles()
Definition
qquickcontext2dtexture.cpp:294
QQuickContext2DTexture::m_onCustomThread
uint m_onCustomThread
Definition
qquickcontext2dtexture_p.h:134
QQuickContext2DTexture::isOnCustomThread
bool isOnCustomThread() const
Definition
qquickcontext2dtexture_p.h:84
QQuickContext2DTexture::setCanvasWindow
bool setCanvasWindow(const QRect &canvasWindow)
Definition
qquickcontext2dtexture.cpp:86
QQuickContext2DTexture::m_surface
QSurface * m_surface
Definition
qquickcontext2dtexture_p.h:115
QQuickContext2DTexture::scaleFactor
virtual QVector2D scaleFactor() const
Definition
qquickcontext2dtexture_p.h:101
QQuickContext2DTexture::m_canvasSize
QSize m_canvasSize
Definition
qquickcontext2dtexture_p.h:120
QQuickContext2DTexture::createTiles
QRect createTiles(const QRect &window)
Definition
qquickcontext2dtexture.cpp:244
QQuickContext2DTexture::m_dirtyTexture
uint m_dirtyTexture
Definition
qquickcontext2dtexture_p.h:129
QQuickContext2DTexture::m_painting
uint m_painting
Definition
qquickcontext2dtexture_p.h:133
QQuickContext2DTexture::createTile
virtual QQuickContext2DTile * createTile() const =0
QQuickContext2DTexture::m_tileSize
QSize m_tileSize
Definition
qquickcontext2dtexture_p.h:121
QQuickContext2DTexture::grabImage
virtual void grabImage(const QRectF ®ion=QRectF())=0
QQuickContext2DTexture::~QQuickContext2DTexture
~QQuickContext2DTexture()
Definition
qquickcontext2dtexture.cpp:32
QQuickContext2DTexture::m_mutex
QMutex m_mutex
Definition
qquickcontext2dtexture_p.h:125
QQuickContext2DTexture::paint
void paint(QQuickContext2DCommandBuffer *ccb)
Definition
qquickcontext2dtexture.cpp:183
QQuickContext2DTexture::m_state
QQuickContext2D::State m_state
Definition
qquickcontext2dtexture_p.h:117
QQuickContext2DTexture::adjustedTileSize
virtual QSize adjustedTileSize(const QSize &ts)
Definition
qquickcontext2dtexture.cpp:300
QQuickContext2DTexture::endPainting
virtual void endPainting()
Definition
qquickcontext2dtexture_p.h:105
QQuickContext2DTexture::setCanvasSize
bool setCanvasSize(const QSize &size)
Definition
qquickcontext2dtexture.cpp:47
QQuickContext2DTexture::m_antialiasing
uint m_antialiasing
Definition
qquickcontext2dtexture_p.h:131
QQuickContext2DTexture::setTileSize
bool setTileSize(const QSize &size)
Definition
qquickcontext2dtexture.cpp:56
QQuickContext2DTexture::m_condition
QWaitCondition m_condition
Definition
qquickcontext2dtexture_p.h:126
QQuickContext2DTexture::tiledRect
static QRect tiledRect(const QRectF &window, const QSize &tileSize)
Definition
qquickcontext2dtexture.cpp:228
QQuickContext2DTexture::setSmooth
void setSmooth(bool smooth)
Definition
qquickcontext2dtexture.cpp:65
QQuickContext2DTexture::m_canvasDevicePixelRatio
qreal m_canvasDevicePixelRatio
Definition
qquickcontext2dtexture_p.h:123
QQuickContext2DTexture::m_canvasWindowChanged
uint m_canvasWindowChanged
Definition
qquickcontext2dtexture_p.h:128
QQuickContext2DTexture::markDirtyTexture
void markDirtyTexture()
Definition
qquickcontext2dtexture.cpp:37
QQuickContext2DTexture::textureForNextFrame
virtual QSGTexture * textureForNextFrame(QSGTexture *lastFrame, QQuickWindow *window)=0
QQuickContext2DTexture::paintWithoutTiles
void paintWithoutTiles(QQuickContext2DCommandBuffer *ccb)
Definition
qquickcontext2dtexture.cpp:155
QQuickContext2DTexture::setAntialiasing
void setAntialiasing(bool antialiasing)
Definition
qquickcontext2dtexture.cpp:70
QQuickContext2DTexture::setDirtyRect
bool setDirtyRect(const QRect &dirtyRect)
Definition
qquickcontext2dtexture.cpp:113
QQuickContext2DTexture::m_canvasWindow
QRect m_canvasWindow
Definition
qquickcontext2dtexture_p.h:122
QQuickContext2DTexture::m_tiledCanvas
uint m_tiledCanvas
Definition
qquickcontext2dtexture_p.h:132
QQuickContext2DTexture::m_tiles
QList< QQuickContext2DTile * > m_tiles
Definition
qquickcontext2dtexture_p.h:113
QQuickContext2DTexture::QQuickContext2DTexture
QQuickContext2DTexture()
Definition
qquickcontext2dtexture.cpp:18
QQuickContext2DTexture::m_context
QQuickContext2D * m_context
Definition
qquickcontext2dtexture_p.h:114
QQuickContext2DTexture::beginPainting
virtual QPaintDevice * beginPainting()
Definition
qquickcontext2dtexture_p.h:104
QQuickContext2DTexture::m_item
QQuickCanvasItem * m_item
Definition
qquickcontext2dtexture_p.h:119
QQuickContext2DTexture::renderTarget
virtual QQuickCanvasItem::RenderTarget renderTarget() const =0
QQuickContext2DTile
Definition
qquickcontext2dtile_p.h:30
QQuickContext2DTile::dirty
bool dirty() const
Definition
qquickcontext2dtile_p.h:35
QQuickContext2D
Definition
qquickcontext2d_p.h:56
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
QT_REQUIRE_CONFIG
QT_REQUIRE_CONFIG(quick_canvas)
QQuickContext2D::State
Definition
qquickcontext2d_p.h:98
qtdeclarative
src
quick
items
context2d
qquickcontext2dtexture_p.h
Generated on
for Qt by
1.18.0