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
qquickparticlepainter_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
4
#
ifndef
PARTICLE_H
5
#
define
PARTICLE_H
6
7
//
8
// W A R N I N G
9
// -------------
10
//
11
// This file is not part of the Qt API. It exists purely as an
12
// implementation detail. This header file may change from version to
13
// version without notice, or even be removed.
14
//
15
// We mean it.
16
//
17
18
#
include
<
QObject
>
19
#
include
<
QDebug
>
20
#
include
<
utility
>
21
#
include
"qquickparticlesystem_p.h"
22
23
QT_BEGIN_NAMESPACE
24
25
class
Q_QUICKPARTICLES_EXPORT
QQuickParticlePainter
:
public
QQuickItem
26
{
27
Q_OBJECT
28
Q_PROPERTY(QQuickParticleSystem* system READ system WRITE setSystem NOTIFY systemChanged)
29
Q_PROPERTY(QStringList groups READ groups WRITE setGroups NOTIFY groupsChanged)
30
31
QML_NAMED_ELEMENT(ParticlePainter)
32
QML_ADDED_IN_VERSION(2, 0)
33
QML_UNCREATABLE(
"Abstract type. Use one of the inheriting types instead."
)
34
35
public
:
// data
36
typedef
QQuickParticleVarLengthArray<QQuickParticleGroupData::ID, 4> GroupIDs;
37
38
public
:
39
explicit
QQuickParticlePainter(QQuickItem *parent =
nullptr
);
40
~QQuickParticlePainter() override;
41
//Data Interface to system
42
void
load(QQuickParticleData*);
43
void
reload(QQuickParticleData*);
44
void
setCount(
int
c);
45
46
int
count()
const
47
{
48
return
m_count;
49
}
50
51
void
performPendingCommits();
//Called from updatePaintNode
52
QQuickParticleSystem* system()
const
53
{
54
return
m_system;
55
}
56
57
QStringList groups()
const
58
{
59
return
m_groups;
60
}
61
62
const
GroupIDs &groupIds()
const
63
{
64
if
(m_groupIdsNeedRecalculation) {
65
recalculateGroupIds();
66
}
67
return
m_groupIds;
68
}
69
70
void
itemChange(ItemChange,
const
ItemChangeData &) override;
71
72
Q_SIGNALS:
73
void
countChanged();
74
void
systemChanged(QQuickParticleSystem* arg);
75
76
void
groupsChanged(
const
QStringList &arg);
77
78
public
Q_SLOTS:
79
void
setSystem(QQuickParticleSystem* arg);
80
81
void
setGroups(
const
QStringList &arg);
82
83
void
calcSystemOffset(
bool
resetPending =
false
);
84
85
private
Q_SLOTS:
86
virtual
void
sceneGraphInvalidated() {}
87
88
protected
:
89
/* Reset resets all your internal data structures. But anything attached to a particle should
90
be in attached data. So reset + reloads should have no visible effect.
91
###Hunt down all cases where we do a complete reset for convenience and be more targeted
92
*/
93
virtual
void
reset();
94
95
void
componentComplete() override;
96
virtual
void
initialize(
int
gIdx,
int
pIdx){
//Called from main thread
97
Q_UNUSED(gIdx);
98
Q_UNUSED(pIdx);
99
}
100
virtual
void
commit(
int
gIdx,
int
pIdx){
//Called in Render Thread
101
//###If you need to do something on size changed, check m_data size in this? Or we reset you every time?
102
Q_UNUSED(gIdx);
103
Q_UNUSED(pIdx);
104
}
105
106
QQuickParticleSystem* m_system;
107
friend
class
QQuickParticleSystem;
108
int
m_count;
109
bool
m_pleaseReset;
//Used by subclasses, but it's a nice optimization to know when stuff isn't going to matter.
110
QPointF m_systemOffset;
111
112
QQuickWindow *m_window;
113
bool
m_windowChanged;
114
115
private
:
// methods
116
void
recalculateGroupIds()
const
;
117
118
private
:
// data
119
QStringList m_groups;
120
QSet<std::pair<
int
,
int
> > m_pendingCommits;
121
mutable
GroupIDs m_groupIds;
122
mutable
bool
m_groupIdsNeedRecalculation;
123
};
124
125
QT_END_NAMESPACE
126
#
endif
// PARTICLE_H
ImageMaterial
Definition
qquickimageparticle_p.h:144
ImageMaterial::state
virtual ImageMaterialData * state()=0
QQuickGroupGoalAffector
Definition
qquickgroupgoal_p.h:24
QQuickImageParticle
Definition
qquickimageparticle_p.h:150
QQuickParticlePainter
Definition
qquickparticlepainter_p.h:26
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
Color4ub
Definition
qquickparticlesystem_p.h:206
ColoredPointVertex
Definition
qquickimageparticle_p.h:49
ColoredPointVertex::endSize
float endSize
Definition
qquickimageparticle_p.h:55
ColoredPointVertex::color
Color4ub color
Definition
qquickimageparticle_p.h:60
ColoredPointVertex::ax
float ax
Definition
qquickimageparticle_p.h:58
ColoredPointVertex::ay
float ay
Definition
qquickimageparticle_p.h:59
ColoredPointVertex::vy
float vy
Definition
qquickimageparticle_p.h:57
ColoredPointVertex::size
float size
Definition
qquickimageparticle_p.h:54
ColoredPointVertex::x
float x
Definition
qquickimageparticle_p.h:50
ColoredPointVertex::t
float t
Definition
qquickimageparticle_p.h:52
ColoredPointVertex::y
float y
Definition
qquickimageparticle_p.h:51
ColoredPointVertex::lifeSpan
float lifeSpan
Definition
qquickimageparticle_p.h:53
ColoredPointVertex::vx
float vx
Definition
qquickimageparticle_p.h:56
ColoredVertex
Definition
qquickimageparticle_p.h:64
ColoredVertex::tx
uchar tx
Definition
qquickimageparticle_p.h:76
ColoredVertex::lifeSpan
float lifeSpan
Definition
qquickimageparticle_p.h:68
ColoredVertex::y
float y
Definition
qquickimageparticle_p.h:66
ColoredVertex::ty
uchar ty
Definition
qquickimageparticle_p.h:77
ColoredVertex::t
float t
Definition
qquickimageparticle_p.h:67
ColoredVertex::endSize
float endSize
Definition
qquickimageparticle_p.h:70
ColoredVertex::ay
float ay
Definition
qquickimageparticle_p.h:74
ColoredVertex::_padding
uchar _padding[2]
Definition
qquickimageparticle_p.h:78
ColoredVertex::x
float x
Definition
qquickimageparticle_p.h:65
ColoredVertex::vy
float vy
Definition
qquickimageparticle_p.h:72
ColoredVertex::color
Color4ub color
Definition
qquickimageparticle_p.h:75
ColoredVertex::size
float size
Definition
qquickimageparticle_p.h:69
ColoredVertex::ax
float ax
Definition
qquickimageparticle_p.h:73
ColoredVertex::vx
float vx
Definition
qquickimageparticle_p.h:71
DeformableVertex
Definition
qquickimageparticle_p.h:81
DeformableVertex::rotation
float rotation
Definition
qquickimageparticle_p.h:84
DeformableVertex::endSize
float endSize
Definition
qquickimageparticle_p.h:89
DeformableVertex::ty
uchar ty
Definition
qquickimageparticle_p.h:100
DeformableVertex::yy
float yy
Definition
qquickimageparticle_p.h:98
DeformableVertex::ay
float ay
Definition
qquickimageparticle_p.h:93
DeformableVertex::color
Color4ub color
Definition
qquickimageparticle_p.h:94
DeformableVertex::vy
float vy
Definition
qquickimageparticle_p.h:91
DeformableVertex::size
float size
Definition
qquickimageparticle_p.h:88
DeformableVertex::vx
float vx
Definition
qquickimageparticle_p.h:90
DeformableVertex::_padding
uchar _padding
Definition
qquickimageparticle_p.h:102
DeformableVertex::ax
float ax
Definition
qquickimageparticle_p.h:92
DeformableVertex::xx
float xx
Definition
qquickimageparticle_p.h:95
DeformableVertex::lifeSpan
float lifeSpan
Definition
qquickimageparticle_p.h:87
DeformableVertex::rotationVelocity
float rotationVelocity
Definition
qquickimageparticle_p.h:85
DeformableVertex::t
float t
Definition
qquickimageparticle_p.h:86
DeformableVertex::tx
uchar tx
Definition
qquickimageparticle_p.h:99
DeformableVertex::autoRotate
uchar autoRotate
Definition
qquickimageparticle_p.h:101
DeformableVertex::xy
float xy
Definition
qquickimageparticle_p.h:96
DeformableVertex::y
float y
Definition
qquickimageparticle_p.h:83
DeformableVertex::yx
float yx
Definition
qquickimageparticle_p.h:97
DeformableVertex::x
float x
Definition
qquickimageparticle_p.h:82
SimplePointVertex
Definition
qquickimageparticle_p.h:36
SimplePointVertex::size
float size
Definition
qquickimageparticle_p.h:41
SimplePointVertex::x
float x
Definition
qquickimageparticle_p.h:37
SimplePointVertex::y
float y
Definition
qquickimageparticle_p.h:38
SimplePointVertex::lifeSpan
float lifeSpan
Definition
qquickimageparticle_p.h:40
SimplePointVertex::t
float t
Definition
qquickimageparticle_p.h:39
SimplePointVertex::endSize
float endSize
Definition
qquickimageparticle_p.h:42
SimplePointVertex::vy
float vy
Definition
qquickimageparticle_p.h:44
SimplePointVertex::ay
float ay
Definition
qquickimageparticle_p.h:46
SimplePointVertex::vx
float vx
Definition
qquickimageparticle_p.h:43
SimplePointVertex::ax
float ax
Definition
qquickimageparticle_p.h:45
SpriteVertex
Definition
qquickimageparticle_p.h:105
SpriteVertex::ty
uchar ty
Definition
qquickimageparticle_p.h:124
SpriteVertex::animH
float animH
Definition
qquickimageparticle_p.h:128
SpriteVertex::rotation
float rotation
Definition
qquickimageparticle_p.h:108
SpriteVertex::lifeSpan
float lifeSpan
Definition
qquickimageparticle_p.h:111
SpriteVertex::t
float t
Definition
qquickimageparticle_p.h:110
SpriteVertex::animW
float animW
Definition
qquickimageparticle_p.h:127
SpriteVertex::animX2
float animX2
Definition
qquickimageparticle_p.h:132
SpriteVertex::ay
float ay
Definition
qquickimageparticle_p.h:117
SpriteVertex::xy
float xy
Definition
qquickimageparticle_p.h:120
SpriteVertex::x
float x
Definition
qquickimageparticle_p.h:106
SpriteVertex::rotationVelocity
float rotationVelocity
Definition
qquickimageparticle_p.h:109
SpriteVertex::vx
float vx
Definition
qquickimageparticle_p.h:114
SpriteVertex::y
float y
Definition
qquickimageparticle_p.h:107
SpriteVertex::tx
uchar tx
Definition
qquickimageparticle_p.h:123
SpriteVertex::ax
float ax
Definition
qquickimageparticle_p.h:116
SpriteVertex::xx
float xx
Definition
qquickimageparticle_p.h:119
SpriteVertex::animY1
float animY1
Definition
qquickimageparticle_p.h:131
SpriteVertex::animProgress
float animProgress
Definition
qquickimageparticle_p.h:129
SpriteVertex::yy
float yy
Definition
qquickimageparticle_p.h:122
SpriteVertex::_padding
uchar _padding
Definition
qquickimageparticle_p.h:126
SpriteVertex::vy
float vy
Definition
qquickimageparticle_p.h:115
SpriteVertex::autoRotate
uchar autoRotate
Definition
qquickimageparticle_p.h:125
SpriteVertex::animX1
float animX1
Definition
qquickimageparticle_p.h:130
SpriteVertex::endSize
float endSize
Definition
qquickimageparticle_p.h:113
SpriteVertex::color
Color4ub color
Definition
qquickimageparticle_p.h:118
SpriteVertex::yx
float yx
Definition
qquickimageparticle_p.h:121
SpriteVertex::size
float size
Definition
qquickimageparticle_p.h:112
Vertices
Definition
qquickimageparticle_p.h:136
Vertices::v2
Vertex v2
Definition
qquickimageparticle_p.h:138
Vertices::v4
Vertex v4
Definition
qquickimageparticle_p.h:140
Vertices::v1
Vertex v1
Definition
qquickimageparticle_p.h:137
Vertices::v3
Vertex v3
Definition
qquickimageparticle_p.h:139
qtdeclarative
src
particles
qquickparticlepainter_p.h
Generated on
for Qt by
1.18.0