aboutsummaryrefslogtreecommitdiffstats
path: root/src/declarative/particles/qsgcustomparticle_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/declarative/particles/qsgcustomparticle_p.h')
-rw-r--r--src/declarative/particles/qsgcustomparticle_p.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/declarative/particles/qsgcustomparticle_p.h b/src/declarative/particles/qsgcustomparticle_p.h
index 95144ef638..863da052f3 100644
--- a/src/declarative/particles/qsgcustomparticle_p.h
+++ b/src/declarative/particles/qsgcustomparticle_p.h
@@ -52,7 +52,7 @@ QT_BEGIN_NAMESPACE
QT_MODULE(Declarative)
class QSGNode;
-
+struct PlainVertices;
//Genealogy: Hybrid of UltraParticle and ShaderEffectItem
class QSGCustomParticle : public QSGParticlePainter
{
@@ -64,7 +64,6 @@ public:
explicit QSGCustomParticle(QSGItem* parent=0);
virtual void load(QSGParticleData*);
virtual void reload(QSGParticleData*);
- virtual void setCount(int c);
QByteArray fragmentShader() const { return m_source.fragmentCode; }
void setFragmentShader(const QByteArray &code);
@@ -84,14 +83,17 @@ protected:
void disconnectPropertySignals();
void connectPropertySignals();
void reset();
+ void resize(int oldCount, int newCount);
void updateProperties();
void lookThroughShaderCode(const QByteArray &code);
virtual void componentComplete();
QSGShaderEffectNode *buildCustomNode();
+ void performPendingResize();
private:
void buildData();
+
bool m_pleaseReset;
bool m_dirtyData;
QSGShaderEffectProgram m_source;
@@ -105,6 +107,10 @@ private:
QSGShaderEffectMaterial m_material;
QSGShaderEffectNode* m_node;
qreal m_lastTime;
+
+ bool m_resizePending;
+ QVector<PlainVertices*> m_pendingResizeVector;
+ PlainVertices* m_defaultVertices;
};
QT_END_NAMESPACE