Line | Source | Count |
1 | | - |
2 | | - |
3 | | - |
4 | | - |
5 | | - |
6 | | - |
7 | | - |
8 | | - |
9 | | - |
10 | | - |
11 | | - |
12 | | - |
13 | | - |
14 | | - |
15 | | - |
16 | | - |
17 | | - |
18 | | - |
19 | | - |
20 | | - |
21 | | - |
22 | | - |
23 | | - |
24 | | - |
25 | | - |
26 | | - |
27 | | - |
28 | | - |
29 | | - |
30 | | - |
31 | | - |
32 | | - |
33 | | - |
34 | | - |
35 | | - |
36 | | - |
37 | | - |
38 | | - |
39 | | - |
40 | #ifndef CUSTOM_PARTICLE_H | - |
41 | #define CUSTOM_PARTICLE_H | - |
42 | | - |
43 | | - |
44 | | - |
45 | | - |
46 | | - |
47 | | - |
48 | | - |
49 | | - |
50 | | - |
51 | | - |
52 | | - |
53 | #include "qquickparticlepainter_p.h" | - |
54 | #include <private/qquickopenglshadereffectnode_p.h> | - |
55 | #include <private/qquickopenglshadereffect_p.h> | - |
56 | | - |
57 | QT_BEGIN_NAMESPACE | - |
58 | | - |
59 | class QSGNode; | - |
60 | struct PlainVertices; | - |
61 | | - |
62 | class QQuickShaderEffectMaterialObject; | - |
63 | | - |
64 | | - |
65 | class QQuickCustomParticle : public QQuickParticlePainter | - |
66 | { | - |
67 | Q_OBJECT | - |
68 | Q_PROPERTY(QByteArray fragmentShader READ fragmentShader WRITE setFragmentShader NOTIFY fragmentShaderChanged) | - |
69 | Q_PROPERTY(QByteArray vertexShader READ vertexShader WRITE setVertexShader NOTIFY vertexShaderChanged) | - |
70 | | - |
71 | public: | - |
72 | explicit QQuickCustomParticle(QQuickItem* parent=0); | - |
73 | ~QQuickCustomParticle(); | - |
74 | | - |
75 | QByteArray fragmentShader() const { return m_common.source.sourceCode[Key::FragmentShader]; } never executed: return m_common.source.sourceCode[Key::FragmentShader]; | 0 |
76 | void setFragmentShader(const QByteArray &code); | - |
77 | | - |
78 | QByteArray vertexShader() const { return m_common.source.sourceCode[Key::VertexShader]; } never executed: return m_common.source.sourceCode[Key::VertexShader]; | 0 |
79 | void setVertexShader(const QByteArray &code); | - |
80 | | - |
81 | Q_SIGNALS: | - |
82 | void fragmentShaderChanged(); | - |
83 | void vertexShaderChanged(); | - |
84 | | - |
85 | protected: | - |
86 | void initialize(int gIdx, int pIdx) override; | - |
87 | void commit(int gIdx, int pIdx) override; | - |
88 | | - |
89 | QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *) override; | - |
90 | QQuickOpenGLShaderEffectNode *prepareNextFrame(QQuickOpenGLShaderEffectNode *rootNode); | - |
91 | void reset() override; | - |
92 | void resize(int oldCount, int newCount); | - |
93 | void componentComplete() override; | - |
94 | QQuickOpenGLShaderEffectNode *buildCustomNodes(); | - |
95 | | - |
96 | void sceneGraphInvalidated() override; | - |
97 | void itemChange(ItemChange change, const ItemChangeData &value) override; | - |
98 | | - |
99 | private Q_SLOTS: | - |
100 | void sourceDestroyed(QObject *object); | - |
101 | | - |
102 | private: | - |
103 | void propertyChanged(int mappedId); | - |
104 | | - |
105 | typedef QQuickOpenGLShaderEffectMaterialKey Key; | - |
106 | typedef QQuickOpenGLShaderEffectMaterial::UniformData UniformData; | - |
107 | | - |
108 | void buildData(QQuickOpenGLShaderEffectNode *rootNode); | - |
109 | void updateVertexShader(); | - |
110 | | - |
111 | QQuickOpenGLShaderEffectCommon m_common; | - |
112 | const QMetaObject *m_myMetaObject; | - |
113 | | - |
114 | QHash<int, QQuickOpenGLShaderEffectNode*> m_nodes; | - |
115 | qreal m_lastTime; | - |
116 | | - |
117 | uint m_dirtyUniforms : 1; | - |
118 | uint m_dirtyUniformValues : 1; | - |
119 | uint m_dirtyTextureProviders : 1; | - |
120 | uint m_dirtyProgram : 1; | - |
121 | }; | - |
122 | | - |
123 | QT_END_NAMESPACE | - |
124 | | - |
125 | #endif //HEADER_GUARD | - |
| | |