From c8a5c00ec1c06f7c00070d55cd61cb8d52dc67cf Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Wed, 8 Jun 2011 17:55:41 +1000 Subject: [PATCH] Immense Particles Refactor Part D Changed the names of several properties: FollowEmitter: emissionShape->emitShape emissionHeight->emitHeight emissionWidth->emitWidth Emitter: particlesPerSecond->emitRate particleDuration->lifeSpan particleDurationVariation->lifeSpanVariation maxParticles->emitCap particleSize->size particleEndSize->endSize particleSizeVariation->sizeVariation ImageParticle: image->source And stopped being silly in the example launcher. --- demos/declarative/flickr/content/ImageDetails.qml | 6 +- demos/declarative/flickr/content/Progress.qml | 14 ++--- demos/declarative/flickr/content/StreamView.qml | 18 +++--- demos/declarative/flickr/content/images/noise.png | Bin 92003 -> 25447 bytes demos/declarative/flickr/flickr.qml | 22 +++---- .../plasmapatrol/content/BlasterHardpoint.qml | 22 +++---- .../plasmapatrol/content/CannonHardpoint.qml | 16 ++--- demos/declarative/plasmapatrol/content/Cruiser.qml | 20 +++--- demos/declarative/plasmapatrol/content/Frigate.qml | 18 +++--- .../plasmapatrol/content/LaserHardpoint.qml | 20 +++--- .../plasmapatrol/content/PlasmaPatrolParticles.qml | 36 +++++------ demos/declarative/plasmapatrol/content/Sloop.qml | 12 ++-- demos/declarative/plasmapatrol/plasmapatrol.qml | 10 +-- .../samegame/SamegameCore/BoomBlock.qml | 10 +-- demos/declarative/samegame/samegame.qml | 6 +- .../imageprovider/imageprovider-example.qml | 4 +- examples/declarative/particles/allsmiles/plain.qml | 8 +-- examples/declarative/particles/allsmiles/smile.qml | 6 +- .../particles/allsmiles/smilefactory.qml | 22 +++---- .../particles/allsmiles/spriteparticles.qml | 16 ++--- .../particles/allsmiles/spritestateparticles.qml | 8 +-- .../particles/allsmiles/spritevariedparticles.qml | 8 +-- .../particles/allsmiles/ultraparticles.qml | 8 +-- .../declarative/particles/asteroid/asteroid.qml | 30 ++++----- .../declarative/particles/asteroid/blackhole.qml | 38 +++++------ .../declarative/particles/custom/blurparticles.qml | 6 +- .../declarative/particles/exampleslauncher.qml | 70 +-------------------- .../particles/modelparticles/bubbles.qml | 4 +- .../particles/modelparticles/gridsplosion.qml | 8 +-- .../particles/modelparticles/package.qml | 4 +- .../particles/modelparticles/stream.qml | 22 +++---- examples/declarative/particles/snow/snow.qml | 8 +-- .../particles/spaceexplorer/spaceexplorer.qml | 48 +++++++------- .../particles/trails/dynamicemitters.qml | 18 +++--- .../declarative/particles/trails/fireballs.qml | 62 +++++++++--------- examples/declarative/particles/trails/layered.qml | 10 +-- examples/declarative/particles/trails/list.qml | 10 +-- .../declarative/particles/trails/overburst.qml | 14 ++--- examples/declarative/particles/trails/portal.qml | 22 +++---- examples/declarative/particles/trails/rainbow.qml | 12 ++-- examples/declarative/particles/trails/shimmer.qml | 10 +-- examples/declarative/particles/trails/trails.qml | 22 +++---- .../declarative/particles/trails/turbulence.qml | 36 +++++------ .../particles/trails/velocityfrommotion.qml | 40 ++++++------ .../declarative/toys/dynamicscene/dynamicscene.qml | 10 +-- examples/declarative/toys/dynamicscene/qml/Sun.qml | 2 +- .../ui-components/flipable/content/Card.qml | 2 +- .../ui-components/flipable/flipable.qml | 4 +- src/declarative/particles/qsgfollowemitter_p.h | 8 +-- src/declarative/particles/qsgimageparticle_p.h | 2 +- src/declarative/particles/qsgparticleemitter_p.h | 16 ++--- 51 files changed, 391 insertions(+), 457 deletions(-) diff --git a/demos/declarative/flickr/content/ImageDetails.qml b/demos/declarative/flickr/content/ImageDetails.qml index 46827ae..7434646 100644 --- a/demos/declarative/flickr/content/ImageDetails.qml +++ b/demos/declarative/flickr/content/ImageDetails.qml @@ -242,9 +242,9 @@ Flipable { width: Math.min(bigImage.width * bigImage.scale, flickable.width); height: Math.min(bigImage.height * bigImage.scale, flickable.height); anchors.centerIn: parent - particleSize: 4 - particleDuration: flipDuration - particlesPerSecond: 2048 + size: 4 + lifeSpan: flipDuration + emitRate: 2048 emitting: false } CustomParticle{ diff --git a/demos/declarative/flickr/content/Progress.qml b/demos/declarative/flickr/content/Progress.qml index 30142b4..73a91a4 100644 --- a/demos/declarative/flickr/content/Progress.qml +++ b/demos/declarative/flickr/content/Progress.qml @@ -63,7 +63,7 @@ Item{ color: "lightsteelblue" alpha: 0.1 colorVariation: 0.05 - image: "images/particle.png" + source: "images/particle.png" system: barSys } Emitter{ @@ -71,12 +71,12 @@ Item{ x: 2; width: Math.max(parent.width * progress - 4, 0); speed: AngledDirection{ angleVariation: 180; magnitudeVariation: 12 } system: barSys - particlesPerSecond: width; - particleDuration: 1000 - particleSize: 20 - particleSizeVariation: 4 - particleEndSize: 12 - maxParticles: parent.width; + emitRate: width; + lifeSpan: 1000 + size: 20 + sizeVariation: 4 + endSize: 12 + emitCap: parent.width; } Text { diff --git a/demos/declarative/flickr/content/StreamView.qml b/demos/declarative/flickr/content/StreamView.qml index 22e7d5d..d7b608a 100644 --- a/demos/declarative/flickr/content/StreamView.qml +++ b/demos/declarative/flickr/content/StreamView.qml @@ -73,9 +73,9 @@ Item{ y: -128 height: 32 speed: PointDirection{ y: (container.height + 128)/12 } - particlesPerSecond: 0.4 - particleDuration: 1000000//eventually -1 should mean a million seconds for neatness - maxParticles: 15 + emitRate: 0.4 + lifeSpan: 1000000//eventually -1 should mean a million seconds for neatness + emitCap: 15 } Emitter{ system: sys @@ -84,9 +84,9 @@ Item{ y: -128 height: 32 speed: PointDirection{ y: (container.height + 128)/12 } - particlesPerSecond: 0.4 - particleDuration: 1000000//eventually -1 should mean a million seconds for neatness - maxParticles: 15 + emitRate: 0.4 + lifeSpan: 1000000//eventually -1 should mean a million seconds for neatness + emitCap: 15 } Emitter{ system: sys @@ -95,9 +95,9 @@ Item{ y: -128 height: 32 speed: PointDirection{ y: (container.height + 128)/12 } - particlesPerSecond: 0.4 - particleDuration: 1000000//eventually -1 should mean a million seconds for neatness - maxParticles: 15 + emitRate: 0.4 + lifeSpan: 1000000//eventually -1 should mean a million seconds for neatness + emitCap: 15 } Kill{ system: sys diff --git a/demos/declarative/flickr/content/images/noise.png b/demos/declarative/flickr/content/images/noise.png index abc3c18d5f099a1a989368669111129c171fc879..c5a5ba0053b0219518b6ce34b7b60f67f15f1c40 100644 GIT binary patch literal 25447 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%0ABm3XM{AMsFqx0jyy%E$e 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 0 ? hp * 1 + 20 : 0 - particleDuration: 2400 - maxParticles: (maxHP * 1 + 20)*2.4 + emitRate: hp > 0 ? hp * 1 + 20 : 0 + lifeSpan: 2400 + emitCap: (maxHP * 1 + 20)*2.4 - particleSize: 48 - particleSizeVariation: 16 - particleEndSize: 16 + size: 48 + sizeVariation: 16 + endSize: 16 speed: AngledDirection{angleVariation:360; magnitudeVariation: 32} } @@ -81,11 +81,11 @@ Item { shape: EllipseShape{ fill: false } emitting: hp>0 - particlesPerSecond: 16 - particleDuration: 2000 + emitRate: 16 + lifeSpan: 2000 - particleSize: 48 - particleSizeVariation: 24 + size: 48 + sizeVariation: 24 SpriteGoal{ id: destructor diff --git a/demos/declarative/plasmapatrol/content/Frigate.qml b/demos/declarative/plasmapatrol/content/Frigate.qml index f18de01..d314052 100644 --- a/demos/declarative/plasmapatrol/content/Frigate.qml +++ b/demos/declarative/plasmapatrol/content/Frigate.qml @@ -58,9 +58,9 @@ Item { system: container.system particle: "frigateShield" anchors.centerIn: parent - particleSize: 92 - particlesPerSecond: 1 - particleDuration: 4800 + size: 92 + emitRate: 1 + lifeSpan: 4800 emitting: hp > 0 } Emitter{ @@ -71,12 +71,12 @@ Item { height: 16 shape: EllipseShape{} - particleSize: 16 - particleSizeVariation: 8 - particleEndSize: 8 - particlesPerSecond: hp > 0 ? hp * 1 + 20 : 0 - particleDuration: 1200 - maxParticles: (maxHP * 1 + 20)*2 + size: 16 + sizeVariation: 8 + endSize: 8 + emitRate: hp > 0 ? hp * 1 + 20 : 0 + lifeSpan: 1200 + emitCap: (maxHP * 1 + 20)*2 } Timer{ id: fireControl diff --git a/demos/declarative/plasmapatrol/content/LaserHardpoint.qml b/demos/declarative/plasmapatrol/content/LaserHardpoint.qml index 3705d29..e994248 100644 --- a/demos/declarative/plasmapatrol/content/LaserHardpoint.qml +++ b/demos/declarative/plasmapatrol/content/LaserHardpoint.qml @@ -57,12 +57,12 @@ Item { emitting: container.show shape: EllipseShape{} speed: TargetedDirection{ targetX: width/2; targetY: width/2; magnitude: -1; proportionalMagnitude: true } - particleDuration: 1000 - particlesPerSecond: 64 + lifeSpan: 1000 + emitRate: 64 - particleSize: 24 - particleSizeVariation: 8 - particleEndSize: 8 + size: 24 + sizeVariation: 8 + endSize: 8 } function fireAt(targetArg, hardpoint){ @@ -97,11 +97,11 @@ Item { mirrored: (emitter.y < 0 || emitter.x < 0) && !(emitter.y < 0 && emitter.x < 0 )//I just want XOR } - particleDuration: 1000 - particlesPerSecond: 8000 - maxParticles: 800 - particleSize: 16 - particleEndSize: 0 + lifeSpan: 1000 + emitRate: 8000 + emitCap: 800 + size: 16 + endSize: 0 speed: PointDirection{xVariation: 4; yVariation: 4} } diff --git a/demos/declarative/plasmapatrol/content/PlasmaPatrolParticles.qml b/demos/declarative/plasmapatrol/content/PlasmaPatrolParticles.qml index 26d5f21..b65686e 100644 --- a/demos/declarative/plasmapatrol/content/PlasmaPatrolParticles.qml +++ b/demos/declarative/plasmapatrol/content/PlasmaPatrolParticles.qml @@ -46,7 +46,7 @@ Item{ ImageParticle{ system: sys particles: ["default"] - image: "pics/blur-circle3.png" + source: "pics/blur-circle3.png" color: "#003A3A3A" colorVariation: 0.1 z: 0 @@ -54,7 +54,7 @@ Item{ ImageParticle{ system: sys particles: ["redTeam"] - image: "pics/blur-circle3.png" + source: "pics/blur-circle3.png" color: "#0028060A" colorVariation: 0.1 z: 0 @@ -62,7 +62,7 @@ Item{ ImageParticle{ system: sys particles: ["greenTeam"] - image: "pics/blur-circle3.png" + source: "pics/blur-circle3.png" color: "#0006280A" colorVariation: 0.1 z: 0 @@ -70,7 +70,7 @@ Item{ ImageParticle{ system: sys particles: ["blaster"] - image: "pics/star2.png" + source: "pics/star2.png" //color: "#0F282406" color: "#0F484416" colorVariation: 0.2 @@ -79,7 +79,7 @@ Item{ ImageParticle{ system: sys particles: ["laser"] - image: "pics/star3.png" + source: "pics/star3.png" //color: "#00123F68" color: "#00428FF8" colorVariation: 0.2 @@ -88,7 +88,7 @@ Item{ ImageParticle{ system: sys particles: ["cannon"] - image: "pics/particle.png" + source: "pics/particle.png" color: "#80FFAAFF" colorVariation: 0.1 z: 2 @@ -96,7 +96,7 @@ Item{ ImageParticle{ system: sys particles: ["cannonCore"] - image: "pics/particle.png" + source: "pics/particle.png" color: "#00666666" colorVariation: 0.8 z: 1 @@ -104,7 +104,7 @@ Item{ ImageParticle{ system: sys particles: ["cannonWake"] - image: "pics/star.png" + source: "pics/star.png" color: "#00CCCCCC" colorVariation: 0.2 z: 1 @@ -112,7 +112,7 @@ Item{ ImageParticle{ system: sys particles: ["frigateShield"] - image: "pics/blur-circle2.png" + source: "pics/blur-circle2.png" color: "#00000000" colorVariation: 0.05 blueVariation: 0.5 @@ -148,12 +148,12 @@ Item{ system: sys particle: "cannonWake" follow: "cannon" - particlesPerParticlePerSecond: 64 - particleDuration: 600 + emitRatePerParticle: 64 + lifeSpan: 600 speed: AngledDirection{ angleVariation: 360; magnitude: 48} - particleSize: 16 - particleEndSize: 8 - particleSizeVariation: 2 + size: 16 + endSize: 8 + sizeVariation: 2 emitting: true width: 1000//XXX: Terrible hack height: 1000 @@ -162,10 +162,10 @@ Item{ system: sys particle: "cannonCore" follow: "cannon" - particlesPerParticlePerSecond: 256 - particleDuration: 128 - particleSize: 24 - particleEndSize: 8 + emitRatePerParticle: 256 + lifeSpan: 128 + size: 24 + endSize: 8 emitting: true width: 1000//XXX: Terrible hack height: 1000 diff --git a/demos/declarative/plasmapatrol/content/Sloop.qml b/demos/declarative/plasmapatrol/content/Sloop.qml index 20b60c5..1a6f3a9 100644 --- a/demos/declarative/plasmapatrol/content/Sloop.qml +++ b/demos/declarative/plasmapatrol/content/Sloop.qml @@ -63,15 +63,15 @@ Item { particle: container.shipParticle shape: EllipseShape{} - particlesPerSecond: hp > 0 ? hp + 20 : 0 - particleDuration: blinkInterval - maxParticles: (maxHP + 20) + emitRate: hp > 0 ? hp + 20 : 0 + lifeSpan: blinkInterval + emitCap: (maxHP + 20) acceleration: AngledDirection{angleVariation: 360; magnitude: 8} - particleSize: 24 - particleEndSize: 4 - particleSizeVariation: 8 + size: 24 + endSize: 4 + sizeVariation: 8 width: 16 height: 16 x: 64 diff --git a/demos/declarative/plasmapatrol/plasmapatrol.qml b/demos/declarative/plasmapatrol/plasmapatrol.qml index c490dfd..dfc36de 100644 --- a/demos/declarative/plasmapatrol/plasmapatrol.qml +++ b/demos/declarative/plasmapatrol/plasmapatrol.qml @@ -98,12 +98,12 @@ Rectangle { system: particles emitting: true particle: "default" - particlesPerSecond: 1200 - particleDuration: 1200 + emitRate: 1200 + lifeSpan: 1200 shape: MaskShape{source:"content/pics/TitleText.png"} - particleSize: 16 - particleEndSize: 0 - particleSizeVariation: 8 + size: 16 + endSize: 0 + sizeVariation: 8 speed: AngledDirection{angleVariation:360; magnitudeVariation: 6} } } diff --git a/demos/declarative/samegame/SamegameCore/BoomBlock.qml b/demos/declarative/samegame/SamegameCore/BoomBlock.qml index b234688..2a7e12f 100644 --- a/demos/declarative/samegame/SamegameCore/BoomBlock.qml +++ b/demos/declarative/samegame/SamegameCore/BoomBlock.qml @@ -88,11 +88,11 @@ Item { speed: TargetedDirection{targetX: block.width/2; targetY: block.height/2; magnitude: -60; magnitudeVariation: 60} shape: EllipseShape{fill:true} emitting: false; - particleDuration: 700; particleDurationVariation: 100 - particlesPerSecond: 1000 - maxParticles: 100 //only fires 0.1s bursts (still 2x old number, ImageParticle wants less than 16000 max though) - particleSize: 28 - particleEndSize: 14 + lifeSpan: 700; lifeSpanVariation: 100 + emitRate: 1000 + emitCap: 100 //only fires 0.1s bursts (still 2x old number, ImageParticle wants less than 16000 max though) + size: 28 + endSize: 14 } states: [ diff --git a/demos/declarative/samegame/samegame.qml b/demos/declarative/samegame/samegame.qml index c547e1a..88579de 100644 --- a/demos/declarative/samegame/samegame.qml +++ b/demos/declarative/samegame/samegame.qml @@ -81,7 +81,7 @@ Rectangle { system: particleSystem particles: ["red"] color: Qt.darker("red");//Actually want desaturated... - image: "SamegameCore/pics/particle.png" + source: "SamegameCore/pics/particle.png" colorVariation: 0.4 alpha: 0.1 } @@ -89,7 +89,7 @@ Rectangle { system: particleSystem particles: ["green"] color: Qt.darker("green");//Actually want desaturated... - image: "SamegameCore/pics/particle.png" + source: "SamegameCore/pics/particle.png" colorVariation: 0.4 alpha: 0.1 } @@ -97,7 +97,7 @@ Rectangle { system: particleSystem particles: ["blue"] color: Qt.darker("blue");//Actually want desaturated... - image: "SamegameCore/pics/particle.png" + source: "SamegameCore/pics/particle.png" colorVariation: 0.4 alpha: 0.1 } diff --git a/examples/declarative/cppextensions/imageprovider/imageprovider-example.qml b/examples/declarative/cppextensions/imageprovider/imageprovider-example.qml index e25b420..f8f7b0e 100644 --- a/examples/declarative/cppextensions/imageprovider/imageprovider-example.qml +++ b/examples/declarative/cppextensions/imageprovider/imageprovider-example.qml @@ -42,8 +42,8 @@ import "ImageProviderCore" // import the plugin that registers the color image p //![0] Column { - Image { source: "image://colors/yellow" } - Image { source: "image://colors/red" } + Image { source: "source://colors/yellow" } + Image { source: "source://colors/red" } } //![0] diff --git a/examples/declarative/particles/allsmiles/plain.qml b/examples/declarative/particles/allsmiles/plain.qml index 1b456b0..890a578 100644 --- a/examples/declarative/particles/allsmiles/plain.qml +++ b/examples/declarative/particles/allsmiles/plain.qml @@ -9,14 +9,14 @@ Rectangle{ ImageParticle{ id: up system: sys - image: "content/singlesmile.png" + source: "content/singlesmile.png" } Emitter{ anchors.centerIn: parent system: sys - particlesPerSecond: 1000 - particleSize: 20 - particleDuration: 10000 + emitRate: 1000 + size: 20 + lifeSpan: 10000 speed: AngledDirection{angleVariation: 360; magnitudeVariation: 100;} } MouseArea{ diff --git a/examples/declarative/particles/allsmiles/smile.qml b/examples/declarative/particles/allsmiles/smile.qml index 9ce0e3a..6b122e7 100644 --- a/examples/declarative/particles/allsmiles/smile.qml +++ b/examples/declarative/particles/allsmiles/smile.qml @@ -129,10 +129,10 @@ Rectangle{ id: emitter system: sys emitting: false - particleDuration: 4000 - maxParticles: 1200 + lifeSpan: 4000 + emitCap: 1200 anchors.fill: parent - particleSize: 32 + size: 32 speed: PointDirection{ xVariation: 12; yVariation: 12 } } MouseArea{ diff --git a/examples/declarative/particles/allsmiles/smilefactory.qml b/examples/declarative/particles/allsmiles/smilefactory.qml index 262644e..5b36eee 100644 --- a/examples/declarative/particles/allsmiles/smilefactory.qml +++ b/examples/declarative/particles/allsmiles/smilefactory.qml @@ -49,7 +49,7 @@ Rectangle{ ImageParticle{ system: sys particles: ["goingLeft", "goingRight"] - image: "content/singlesmile.png" + source: "content/singlesmile.png" rotation: 90 rotationSpeed: 90 autoRotation: true @@ -57,7 +57,7 @@ Rectangle{ ImageParticle{ system: sys particles: ["goingDown"] - image: "content/squarefacespriteXX.png" + source: "content/squarefacespriteXX.png" rotation: 180 yVector: PointDirection{ y: 0.5; yVariation: 0.25; xVariation: 0.25; } } @@ -87,9 +87,9 @@ Rectangle{ emitting: false particle: "goingRight" speed: PointDirection{ x: 100 } - particleDuration: 4000 - particlesPerSecond: 2 - particleSize: 32 + lifeSpan: 4000 + emitRate: 2 + size: 32 } Emitter{ id: emitB @@ -99,9 +99,9 @@ Rectangle{ emitting: false particle: "goingLeft" speed: PointDirection{ x: -100 } - particleDuration: 4000 - particlesPerSecond: 2 - particleSize: 32 + lifeSpan: 4000 + emitRate: 2 + size: 32 } Emitter{ id: emitC @@ -111,8 +111,8 @@ Rectangle{ emitting: false particle: "goingDown" speed: PointDirection{ x: 100 } - particleDuration: 4000 - particlesPerSecond: 2 - particleSize: 32 + lifeSpan: 4000 + emitRate: 2 + size: 32 } } diff --git a/examples/declarative/particles/allsmiles/spriteparticles.qml b/examples/declarative/particles/allsmiles/spriteparticles.qml index 1f385f2..f5479f1 100644 --- a/examples/declarative/particles/allsmiles/spriteparticles.qml +++ b/examples/declarative/particles/allsmiles/spriteparticles.qml @@ -48,7 +48,7 @@ Rectangle{ ImageParticle{ id: test particles: ["Test"] - image: "content/particle.png" + source: "content/particle.png" system: sys z: 2 anchors.fill: parent @@ -76,10 +76,10 @@ Rectangle{ particle: "Test" anchors.fill: parent id: particles2 - particlesPerSecond: 6000 - particleDuration: 720 + emitRate: 6000 + lifeSpan: 720 emitting: true - particleSize: 10 + size: 10 shape: mask } Emitter{ @@ -87,12 +87,12 @@ Rectangle{ particle: "Face" anchors.fill: parent id: particles - particlesPerSecond: 60 - particleDuration: 1440 + emitRate: 60 + lifeSpan: 1440 emitting: true speed: PointDirection{xVariation: 10; yVariation: 10;} - particleSize: 30 - particleSizeVariation: 10 + size: 30 + sizeVariation: 10 shape: mask } ParticleSystem{ diff --git a/examples/declarative/particles/allsmiles/spritestateparticles.qml b/examples/declarative/particles/allsmiles/spritestateparticles.qml index 0818686..a599c69 100644 --- a/examples/declarative/particles/allsmiles/spritestateparticles.qml +++ b/examples/declarative/particles/allsmiles/spritestateparticles.qml @@ -170,13 +170,13 @@ Rectangle{ } Emitter{ system: sys - particlesPerSecond: 16 - particleDuration: 10000 + emitRate: 16 + lifeSpan: 10000 emitting: true speed: AngledDirection{angle: 90; magnitude: 60; angleVariation: 5} acceleration: PointDirection{ y: 10 } - particleSize: 30 - particleSizeVariation: 10 + size: 30 + sizeVariation: 10 width: parent.width height: 100 } diff --git a/examples/declarative/particles/allsmiles/spritevariedparticles.qml b/examples/declarative/particles/allsmiles/spritevariedparticles.qml index e6aeacc..d6e1372 100644 --- a/examples/declarative/particles/allsmiles/spritevariedparticles.qml +++ b/examples/declarative/particles/allsmiles/spritevariedparticles.qml @@ -96,13 +96,13 @@ Rectangle{ id: particleEmitter system: sys width: parent.width - particlesPerSecond: 16 - particleDuration: 8000 + emitRate: 16 + lifeSpan: 8000 emitting: true speed: AngledDirection{angle: 90; magnitude: 300; magnitudeVariation: 100; angleVariation: 5} acceleration: PointDirection{ y: 10 } - particleSize: 30 - particleSizeVariation: 10 + size: 30 + sizeVariation: 10 } Binding{ target: particleEmitter diff --git a/examples/declarative/particles/allsmiles/ultraparticles.qml b/examples/declarative/particles/allsmiles/ultraparticles.qml index f2b6f8d..0ea095d 100644 --- a/examples/declarative/particles/allsmiles/ultraparticles.qml +++ b/examples/declarative/particles/allsmiles/ultraparticles.qml @@ -84,12 +84,12 @@ Rectangle{ system: sys anchors.centerIn: parent id: particles - particlesPerSecond: 200 - particleDuration: 6000 + emitRate: 200 + lifeSpan: 6000 emitting: true speed: AngledDirection{angleVariation: 360; magnitude: 80; magnitudeVariation: 40} - particleSize: 40 - particleEndSize: 80 + size: 40 + endSize: 80 } Text{ x: 16 diff --git a/examples/declarative/particles/asteroid/asteroid.qml b/examples/declarative/particles/asteroid/asteroid.qml index 223ea81..2ecfc42 100644 --- a/examples/declarative/particles/asteroid/asteroid.qml +++ b/examples/declarative/particles/asteroid/asteroid.qml @@ -68,7 +68,7 @@ Item { ImageParticle { system: sys particles: ["starfield"] - image: "content/star.png" + source: "content/star.png" colorVariation: 0.3 color: "white" } @@ -77,27 +77,27 @@ Item { system: sys particle: "starfield" - particlesPerSecond: 80 - particleDuration: 2500 + emitRate: 80 + lifeSpan: 2500 anchors.centerIn: parent //acceleration: AngledDirection{angleVariation: 360; magnitude: 200}//Is this a better effect, more consistent speed? acceleration: PointDirection{ xVariation: 200; yVariation: 200; } - particleSize: 0 - particleEndSize: 80 - particleSizeVariation: 10 + size: 0 + endSize: 80 + sizeVariation: 10 } Emitter{ system: sys particle: "meteor" - particlesPerSecond: 12 - particleDuration: 5000 + emitRate: 12 + lifeSpan: 5000 emitting: true acceleration: PointDirection{ xVariation: 80; yVariation: 80; } - particleSize: 15 - particleEndSize: 300 + size: 15 + endSize: 300 anchors.centerIn: parent } ImageParticle{ @@ -172,7 +172,7 @@ Item { z:0 system: sys particles: ["exhaust"] - image: "content/particle4.png" + source: "content/particle4.png" color: "orange" SequentialAnimation on color { @@ -196,8 +196,8 @@ Item { system: sys particle: "exhaust" - particlesPerSecond: 300 - particleDuration: 500 + emitRate: 300 + lifeSpan: 500 y: holder.y x: holder.x @@ -207,7 +207,7 @@ Item { acceleration: PointDirection{ xVariation: 10; yVariation: 10; } - particleSize: 4 - particleSizeVariation: 4 + size: 4 + sizeVariation: 4 } } diff --git a/examples/declarative/particles/asteroid/blackhole.qml b/examples/declarative/particles/asteroid/blackhole.qml index 1bc406b..4a7ce02 100644 --- a/examples/declarative/particles/asteroid/blackhole.qml +++ b/examples/declarative/particles/asteroid/blackhole.qml @@ -68,22 +68,22 @@ Rectangle{ Emitter{ particle: "stars" system: particles - particlesPerSecond: 40 - particleDuration: 4000 + emitRate: 40 + lifeSpan: 4000 emitting: true - particleSize: 30 - particleSizeVariation: 10 + size: 30 + sizeVariation: 10 speed: PointDirection{ x: 220; xVariation: 40 } height: parent.height } Emitter{ particle: "roids" system: particles - particlesPerSecond: 10 - particleDuration: 4000 + emitRate: 10 + lifeSpan: 4000 emitting: true - particleSize: 30 - particleSizeVariation: 10 + size: 30 + sizeVariation: 10 speed: PointDirection{ x: 220; xVariation: 40 } height: parent.height } @@ -95,7 +95,7 @@ Rectangle{ id: stars particles: ["stars"] system: particles - image: "content/star.png" + source: "content/star.png" color: "white" colorVariation: 0.1 alpha: 0 @@ -117,7 +117,7 @@ Rectangle{ id: shot particles: ["shot"] system: particles - image: "content/star.png" + source: "content/star.png" color: "#0FF06600" colorVariation: 0.3 @@ -126,7 +126,7 @@ Rectangle{ id: engine particles: ["engine"] system: particles - image: "content/particle4.png" + source: "content/particle4.png" color: "orange" SequentialAnimation on color { @@ -172,12 +172,12 @@ Rectangle{ Emitter{ particle: "engine" system: particles - particlesPerSecond: 200 - particleDuration: 1000 + emitRate: 200 + lifeSpan: 1000 emitting: true - particleSize: 10 - particleEndSize: 4 - particleSizeVariation: 4 + size: 10 + endSize: 4 + sizeVariation: 4 speed: PointDirection{ x: -128; xVariation: 32 } height: parent.height width: 20 @@ -185,10 +185,10 @@ Rectangle{ Emitter{ particle: "shot" system: particles - particlesPerSecond: 32 - particleDuration: 2000 + emitRate: 32 + lifeSpan: 2000 emitting: spacePressed - particleSize: 40 + size: 40 speed: PointDirection{ x: 256; } x: parent.width y: parent.height/2 diff --git a/examples/declarative/particles/custom/blurparticles.qml b/examples/declarative/particles/custom/blurparticles.qml index 7d0f9cc..8a3e9ad 100644 --- a/examples/declarative/particles/custom/blurparticles.qml +++ b/examples/declarative/particles/custom/blurparticles.qml @@ -11,10 +11,10 @@ Rectangle{ Emitter{ system:sys height: parent.height - particlesPerSecond: 1 - particleDuration: 12000 + emitRate: 1 + lifeSpan: 12000 speed: PointDirection{x:20;} - particleSize: 64 + size: 64 } ShaderEffectSource{ id: theSource diff --git a/examples/declarative/particles/exampleslauncher.qml b/examples/declarative/particles/exampleslauncher.qml index c08123c..354bcdf 100644 --- a/examples/declarative/particles/exampleslauncher.qml +++ b/examples/declarative/particles/exampleslauncher.qml @@ -52,8 +52,6 @@ Rectangle{ id: shell anchors.fill: parent } - property string emissionMode: "Falling" - onEmissionModeChanged: workaround.active = true VisualDataModel{//TODO: Transitions between modes id: vdm model: [ @@ -111,72 +109,8 @@ Rectangle{ } GridView{ anchors.fill: parent - anchors.bottomMargin: 128 + cellWidth: 120 + cellHeight: 120 model: vdm - visible: emissionMode == "Grid" - opacity: visible?1:0 - Behavior on opacity{NumberAnimation{}} - } - ParticleSystem{ id: sys } - ModelParticle{ - system: sys - model: vdm - } - Kill{ - //TODO: File bug? - id: workaround - system: sys - active: false - onActiveChanged: timer.start() - Timer{ - id: timer - interval: 32 - running: false - repeat: false - onTriggered: workaround.active = false - } - } - Emitter{ - system: sys - emitting: emissionMode == "Falling" - width: parent.width - particlesPerSecond: 2 - particleDuration: 6000 - speed: PointDirection{y:100;} - } - Emitter{ - system: sys - emitting: emissionMode == "Bursting" - anchors.centerIn: parent - particlesPerSecond: 2 - particleDuration: 6000 - speed: AngledDirection{magnitude: 60; angleVariation: 360} - } - Emitter{ - system: sys - emitting: emissionMode == "Shimmering" - anchors.fill: parent - particlesPerSecond: 4 - particleDuration: 4000 - } - Row{ - anchors.bottom: parent.bottom - anchors.horizontalCenter: parent.horizontalCenter - Button{ - text:"Grid" - onClicked: emissionMode = "Grid"; - } - Button{ - text:"Fall" - onClicked: emissionMode = "Falling"; - } - Button{ - text:"Burst" - onClicked: emissionMode = "Bursting"; - } - Button{ - text:"Shimmer" - onClicked: emissionMode = "Shimmering"; - } } } diff --git a/examples/declarative/particles/modelparticles/bubbles.qml b/examples/declarative/particles/modelparticles/bubbles.qml index d0eb3ea..23f0b82 100644 --- a/examples/declarative/particles/modelparticles/bubbles.qml +++ b/examples/declarative/particles/modelparticles/bubbles.qml @@ -63,8 +63,8 @@ Item{ x: parent.width/4 y:parent.height speed: PointDirection{ y: -64; yVariation: 16 } - particlesPerSecond: 1 - particleDuration: 8000 + emitRate: 1 + lifeSpan: 8000 } Wander{ system: sys diff --git a/examples/declarative/particles/modelparticles/gridsplosion.qml b/examples/declarative/particles/modelparticles/gridsplosion.qml index fe2dd26..db86012 100644 --- a/examples/declarative/particles/modelparticles/gridsplosion.qml +++ b/examples/declarative/particles/modelparticles/gridsplosion.qml @@ -52,9 +52,9 @@ Item{ system: sys id: burster; emitting: false - particlesPerSecond: 1000 - particleDuration: 50000 - maxParticles: 100; + emitRate: 1000 + lifeSpan: 50000 + emitCap: 100; speed: PointDirection{xVariation: 400; yVariation: 400} anchors.centerIn: parent Timer{ @@ -72,7 +72,7 @@ Item{ } ImageParticle{ system: sys - image: "../trails/content/particle.png" + source: "../trails/content/particle.png" color: "black" colorVariation: 0.0 } diff --git a/examples/declarative/particles/modelparticles/package.qml b/examples/declarative/particles/modelparticles/package.qml index 6487380..0aa8903 100644 --- a/examples/declarative/particles/modelparticles/package.qml +++ b/examples/declarative/particles/modelparticles/package.qml @@ -85,7 +85,7 @@ Rectangle { width: 100 x: 50 speed: PointDirection{ y: 40 } - particleDuration: 5000 - particlesPerSecond: 1.6 + lifeSpan: 5000 + emitRate: 1.6 } } diff --git a/examples/declarative/particles/modelparticles/stream.qml b/examples/declarative/particles/modelparticles/stream.qml index 73107ad..5c7a6f7 100644 --- a/examples/declarative/particles/modelparticles/stream.qml +++ b/examples/declarative/particles/modelparticles/stream.qml @@ -75,8 +75,8 @@ Item{ x: -132/2 y: 132/2 speed: PointDirection{ x: 32; xVariation: 8 } - particlesPerSecond: 0.5 - particleDuration: 120000 //TODO: A -1 or something which does 'infinite'? (but need disable fade first) + emitRate: 0.5 + lifeSpan: 120000 //TODO: A -1 or something which does 'infinite'? (but need disable fade first) particle: "photos" } Kill{ @@ -88,7 +88,7 @@ Item{ ImageParticle{ system: sys particles: ["fireworks"] - image: "../trails/content/star.png" + source: "../trails/content/star.png" color: "lightsteelblue" alpha: 0 colorVariation: 0 @@ -163,9 +163,9 @@ Item{ Emitter{ id: centerEmitter speed: PointDirection{ x: 32; xVariation: 8;} - particlesPerSecond: 0.5 - particleDuration: 12000 //TODO: A -1 or something which does 'infinite'? (but need disable fade first) - maxParticles: 20 + emitRate: 0.5 + lifeSpan: 12000 //TODO: A -1 or something which does 'infinite'? (but need disable fade first) + emitCap: 20 particle: "photos" system: sys anchors.centerIn: parent @@ -177,16 +177,16 @@ Item{ id: spawnFireworks particle: "fireworks" system: sys - maxParticles: 400 - particlesPerSecond: 400 - particleDuration: 2800 + emitCap: 400 + emitRate: 400 + lifeSpan: 2800 x: parent.width/2 y: parent.height/2 - 64 width: 8 height: 8 emitting: false - particleSize: 32 - particleEndSize: 8 + size: 32 + endSize: 8 speed: AngledDirection{ magnitude: 160; magnitudeVariation: 120; angleVariation: 90; angle: 270 } acceleration: PointDirection{ y: 160 } } diff --git a/examples/declarative/particles/snow/snow.qml b/examples/declarative/particles/snow/snow.qml index 41adccf..ea2de17 100644 --- a/examples/declarative/particles/snow/snow.qml +++ b/examples/declarative/particles/snow/snow.qml @@ -65,13 +65,13 @@ Rectangle{ } Emitter { system: particles - particlesPerSecond: 20 - particleDuration: 7000 + emitRate: 20 + lifeSpan: 7000 emitting: true speed: PointDirection{ y:80; yVariation: 40; } acceleration: PointDirection{ y: 4 } - particleSize: 20 - particleSizeVariation: 10 + size: 20 + sizeVariation: 10 width: parent.width height: 100 } diff --git a/examples/declarative/particles/spaceexplorer/spaceexplorer.qml b/examples/declarative/particles/spaceexplorer/spaceexplorer.qml index f303bb4..1bb3cda 100644 --- a/examples/declarative/particles/spaceexplorer/spaceexplorer.qml +++ b/examples/declarative/particles/spaceexplorer/spaceexplorer.qml @@ -78,11 +78,11 @@ Rectangle{ Emitter{ particle: "stars2" system: background - particlesPerSecond: 60 - particleDuration: 4000 + emitRate: 60 + lifeSpan: 4000 emitting: true - particleSize: 10 - particleSizeVariation: 10 + size: 10 + sizeVariation: 10 anchors.fill: parent } ParticleSystem{ id: background } @@ -90,7 +90,7 @@ Rectangle{ particles: ["stars2"] system: background anchors.fill: parent - image: "content/star.png" + source: "content/star.png" color: "white" colorVariation: 0.1 } @@ -201,7 +201,7 @@ Rectangle{ particles: ["stars"] anchors.fill: parent system: foreground - image: "content/star.png" + source: "content/star.png" color: "white" colorVariation: 0.1 } @@ -209,7 +209,7 @@ Rectangle{ particles: ["shot"] anchors.fill: parent system: foreground - image: "content/star.png" + source: "content/star.png" color: "orange" colorVariation: 0.3 @@ -219,7 +219,7 @@ Rectangle{ particles: ["engine"] anchors.fill: parent system: foreground - image: "content/particle4.png" + source: "content/particle4.png" color: "orange" SequentialAnimation on color { @@ -327,21 +327,21 @@ Rectangle{ Emitter{ particle: "powerups" system: foreground - particlesPerSecond: 1 - particleDuration: 6000 + emitRate: 1 + lifeSpan: 6000 emitting: !gameOver - particleSize: 60 - particleSizeVariation: 10 + size: 60 + sizeVariation: 10 anchors.fill: parent } Emitter{ particle: "stars" system: foreground - particlesPerSecond: 40 - particleDuration: 4000 + emitRate: 40 + lifeSpan: 4000 emitting: !gameOver - particleSize: 30 - particleSizeVariation: 10 + size: 30 + sizeVariation: 10 anchors.fill: parent } SpriteImage{ @@ -382,12 +382,12 @@ Rectangle{ Emitter{ system: foreground particle: "engine" - particlesPerSecond: 100 - particleDuration: 1000 + emitRate: 100 + lifeSpan: 1000 emitting: !gameOver - particleSize: 10 - particleEndSize: 4 - particleSizeVariation: 4 + size: 10 + endSize: 4 + sizeVariation: 4 speed: PointDirection{ x: -128 * Math.cos(rocket.rotation * (Math.PI / 180)) y: -128 * Math.sin(rocket.rotation * (Math.PI / 180)) @@ -400,10 +400,10 @@ Rectangle{ Emitter{ system: foreground particle: "shot" - particlesPerSecond: 16 - particleDuration: 1600 + emitRate: 16 + lifeSpan: 1600 emitting: !gameOver && shoot - particleSize: 40 + size: 40 speed: PointDirection{ x: 256 * Math.cos(rocket.rotation * (Math.PI / 180)) y: 256 * Math.sin(rocket.rotation * (Math.PI / 180)) diff --git a/examples/declarative/particles/trails/dynamicemitters.qml b/examples/declarative/particles/trails/dynamicemitters.qml index 8e55503..588474f 100644 --- a/examples/declarative/particles/trails/dynamicemitters.qml +++ b/examples/declarative/particles/trails/dynamicemitters.qml @@ -51,7 +51,7 @@ Rectangle{ } ImageParticle{ system: sys - image: "content/particle.png" + source: "content/particle.png" color: "white" colorVariation: 1.0 alpha: 0.1 @@ -64,10 +64,10 @@ Rectangle{ id: emitMore system: sys emitting: true - particlesPerSecond: 128 - particleDuration: 600 - particleSize: 16 - particleEndSize: 8 + emitRate: 128 + lifeSpan: 600 + size: 16 + endSize: 8 speed: AngledDirection{angleVariation:360; magnitude: 60} } @@ -81,10 +81,10 @@ Rectangle{ } system: sys emitting: true - particlesPerSecond: 64 - particleDuration: 600 - particleSize: 24 - particleEndSize: 8 + emitRate: 64 + lifeSpan: 600 + size: 24 + endSize: 8 NumberAnimation on x{ id: xAnim; to: targetX diff --git a/examples/declarative/particles/trails/fireballs.qml b/examples/declarative/particles/trails/fireballs.qml index cd81168..4cc2eac 100644 --- a/examples/declarative/particles/trails/fireballs.qml +++ b/examples/declarative/particles/trails/fireballs.qml @@ -57,7 +57,7 @@ Rectangle { anchors.fill: parent particles: ["E"] system: particles - image: "content/particleA.png" + source: "content/particleA.png" colorVariation: 0.2 color: "#00ff400f" } @@ -67,7 +67,7 @@ Rectangle { system: particles anchors.fill: parent particles: ["A", "B"] - image: "content/particle.png" + source: "content/particle.png" colorVariation: 0 color: "#00111111" } @@ -76,7 +76,7 @@ Rectangle { anchors.fill: parent system: particles particles: ["C", "D"] - image: "content/particle.png" + source: "content/particle.png" colorVariation: 0.1 color: "#00ff400f" } @@ -88,15 +88,15 @@ Rectangle { y: parent.height width: parent.width - particlesPerSecond: 350 - particleDuration: 3500 + emitRate: 350 + lifeSpan: 3500 acceleration: PointDirection{ y: -17; xVariation: 3 } speed: PointDirection{xVariation: 3} - particleSize: 24 - particleSizeVariation: 8 - particleEndSize: 4 + size: 24 + sizeVariation: 8 + endSize: 4 } FollowEmitter{ id: fireSmoke @@ -106,15 +106,15 @@ Rectangle { width: root.width height: root.height - 68 - particlesPerParticlePerSecond: 1 - particleDuration: 2000 + emitRatePerParticle: 1 + lifeSpan: 2000 speed: PointDirection{y:-17*6; yVariation: -17; xVariation: 3} acceleration: PointDirection{xVariation: 3} - particleSize: 36 - particleSizeVariation: 8 - particleEndSize: 16 + size: 36 + sizeVariation: 8 + endSize: 16 } FollowEmitter{ id: fireballFlame @@ -123,14 +123,14 @@ Rectangle { particle: "D" follow: "E" - particlesPerParticlePerSecond: 120 - particleDuration: 180 - emissionWidth: 8 - emissionHeight: 8 + emitRatePerParticle: 120 + lifeSpan: 180 + emitWidth: 8 + emitHeight: 8 - particleSize: 16 - particleSizeVariation: 4 - particleEndSize: 4 + size: 16 + sizeVariation: 4 + endSize: 4 } FollowEmitter{ @@ -140,17 +140,17 @@ Rectangle { particle: "A" follow: "E" - particlesPerParticlePerSecond: 128 - particleDuration: 2400 - emissionWidth: 16 - emissionHeight: 16 + emitRatePerParticle: 128 + lifeSpan: 2400 + emitWidth: 16 + emitHeight: 16 speed: PointDirection{yVariation: 16; xVariation: 16} acceleration: PointDirection{y: -16} - particleSize: 24 - particleSizeVariation: 8 - particleEndSize: 8 + size: 24 + sizeVariation: 8 + endSize: 8 } Emitter{ id: balls @@ -160,14 +160,14 @@ Rectangle { y: parent.height width: parent.width - particlesPerSecond: 2 - particleDuration: 7000 + emitRate: 2 + lifeSpan: 7000 speed: PointDirection{y:-17*4*2; xVariation: 6*6} acceleration: PointDirection{y: 17*2; xVariation: 6*6} - particleSize: 12 - particleSizeVariation: 4 + size: 12 + sizeVariation: 4 } } diff --git a/examples/declarative/particles/trails/layered.qml b/examples/declarative/particles/trails/layered.qml index b2895dd..d4a823b 100644 --- a/examples/declarative/particles/trails/layered.qml +++ b/examples/declarative/particles/trails/layered.qml @@ -59,20 +59,20 @@ Rectangle{ system: sys y:root.height + 20 width: root.width - particlesPerSecond: 200 - particleDuration: 4000 + emitRate: 200 + lifeSpan: 4000 speed: PointDirection{ y: -120; } } ImageParticle{ system: sys visible: !cloneMode - image: "content/particle2.png" + source: "content/particle2.png" } ImageParticle{ system: sys visible: cloneMode z: 0 - image: "content/particle3.png" + source: "content/particle3.png" } ImageParticle{ system: sys @@ -82,6 +82,6 @@ Rectangle{ height: 240 width: root.width z: 1 - image: "content/particle.png" + source: "content/particle.png" } } diff --git a/examples/declarative/particles/trails/list.qml b/examples/declarative/particles/trails/list.qml index 7874590..7e8fb44 100644 --- a/examples/declarative/particles/trails/list.qml +++ b/examples/declarative/particles/trails/list.qml @@ -54,7 +54,7 @@ Rectangle { anchors.fill: parent system: particles z: 10 - image: "content/star.png" + source: "content/star.png" color: "white" colorVariation: 0.0 } @@ -96,10 +96,10 @@ Rectangle { anchors.fill: parent system: particles; emitting: anim.running - particlesPerSecond: 600 - particleDuration: 600 - particleSize: 16 - particleEndSize: 8 + emitRate: 600 + lifeSpan: 600 + size: 16 + endSize: 8 } } } diff --git a/examples/declarative/particles/trails/overburst.qml b/examples/declarative/particles/trails/overburst.qml index ed9313d..c3129a1 100644 --- a/examples/declarative/particles/trails/overburst.qml +++ b/examples/declarative/particles/trails/overburst.qml @@ -49,7 +49,7 @@ Rectangle{ ImageParticle{ system: sys id: cp - image: "content/particle.png" + source: "content/particle.png" colorVariation: 0.4 color: "#000000FF" } @@ -60,13 +60,13 @@ Rectangle{ emitting: ma.pressed x: ma.mouseX y: ma.mouseY - particlesPerSecond: 16000 - particleDuration: 1000 - maxParticles: 4000 + emitRate: 16000 + lifeSpan: 1000 + emitCap: 4000 acceleration: AngledDirection{angleVariation: 360; magnitude: 360; } - particleSize: 8 - particleEndSize: 16 - particleSizeVariation: 4 + size: 8 + endSize: 16 + sizeVariation: 4 } MouseArea{ anchors.fill: parent diff --git a/examples/declarative/particles/trails/portal.qml b/examples/declarative/particles/trails/portal.qml index ae9b447..8cf323b 100644 --- a/examples/declarative/particles/trails/portal.qml +++ b/examples/declarative/particles/trails/portal.qml @@ -58,7 +58,7 @@ Rectangle{ particles: ["center","edge"] anchors.fill: parent system: particles - image: "content/particle.png" + source: "content/particle.png" colorVariation: 0.1 color: "#009999FF" } @@ -66,12 +66,12 @@ Rectangle{ anchors.fill: parent particle: "center" system: particles - particlesPerSecond: 200 - particleDuration: 2000 + emitRate: 200 + lifeSpan: 2000 emitting: true - particleSize: 20 - particleSizeVariation: 2 - particleEndSize: 0 + size: 20 + sizeVariation: 2 + endSize: 0 shape: EllipseShape{fill: false} speed: TargetedDirection{ targetX: root.width/2 @@ -84,12 +84,12 @@ Rectangle{ anchors.fill: parent particle: "edge" system: particles - particlesPerSecond: 4000 - particleDuration: 2000 + emitRate: 4000 + lifeSpan: 2000 emitting: true - particleSize: 20 - particleSizeVariation: 2 - particleEndSize: 0 + size: 20 + sizeVariation: 2 + endSize: 0 shape: EllipseShape{fill: false} speed: TargetedDirection{ targetX: root.width/2 diff --git a/examples/declarative/particles/trails/rainbow.qml b/examples/declarative/particles/trails/rainbow.qml index 543a9b6..c0b61bf 100644 --- a/examples/declarative/particles/trails/rainbow.qml +++ b/examples/declarative/particles/trails/rainbow.qml @@ -53,14 +53,14 @@ Rectangle { colorVariation: 0.5 alpha: 0 - image: "content/particle.png" + source: "content/particle.png" colorTable: "content/colortable.png" sizeTable: "content/colortable.png" } Emitter{ system: particles - particlesPerSecond: 500 - particleDuration: 2000 + emitRate: 500 + lifeSpan: 2000 y: root.height / 2 + Math.sin(t * 2) * root.height * 0.3 x: root.width / 2 + Math.cos(t) * root.width * 0.3 @@ -75,8 +75,8 @@ Rectangle { speed: PointDirection{ xVariation: 5; yVariation: 5;} acceleration: PointDirection{ xVariation: 5; yVariation: 5;} - particleSize: 16 - //particleEndSize: 8 - //particleSizeVariation: 8 + size: 16 + //endSize: 8 + //sizeVariation: 8 } } diff --git a/examples/declarative/particles/trails/shimmer.qml b/examples/declarative/particles/trails/shimmer.qml index b3157f6..2bd4f69 100644 --- a/examples/declarative/particles/trails/shimmer.qml +++ b/examples/declarative/particles/trails/shimmer.qml @@ -56,7 +56,7 @@ Rectangle{ ImageParticle{ anchors.fill: parent system: particles - image: "content/star.png" + source: "content/star.png" sizeTable: "content/sparkleSize.png" alpha: 0 colorVariation: 0.6 @@ -64,10 +64,10 @@ Rectangle{ Emitter{ anchors.fill: parent system: particles - particlesPerSecond: 2000 - particleDuration: 2000 + emitRate: 2000 + lifeSpan: 2000 emitting: true - particleSize: 30 - particleSizeVariation: 10 + size: 30 + sizeVariation: 10 } } diff --git a/examples/declarative/particles/trails/trails.qml b/examples/declarative/particles/trails/trails.qml index 6ee8a6e..689de4e 100644 --- a/examples/declarative/particles/trails/trails.qml +++ b/examples/declarative/particles/trails/trails.qml @@ -49,7 +49,7 @@ Rectangle{ ImageParticle{ system: sys id: cp - image: "content/particle.png" + source: "content/particle.png" color: "#00FFFFFF" colorVariation: 0.4 } @@ -58,12 +58,12 @@ Rectangle{ id: bursty system: sys emitting: false - particlesPerSecond: 2000 - particleDuration: 500 + emitRate: 2000 + lifeSpan: 500 acceleration: AngledDirection{ angle: 90; angleVariation: 360; magnitude: 640; } - particleSize: 8 - particleEndSize: 16 - particleSizeVariation: 4 + size: 8 + endSize: 16 + sizeVariation: 4 } Emitter{ system: sys @@ -71,12 +71,12 @@ Rectangle{ emitting: ma.pressed x: ma.mouseX y: ma.mouseY - particlesPerSecond: 400 - particleDuration: 2000 + emitRate: 400 + lifeSpan: 2000 acceleration: AngledDirection{ angle: 90; angleVariation: 22; magnitude: 32; } - particleSize: 8 - particleEndSize: 16 - particleSizeVariation: 8 + size: 8 + endSize: 16 + sizeVariation: 8 } MouseArea{ id: ma diff --git a/examples/declarative/particles/trails/turbulence.qml b/examples/declarative/particles/trails/turbulence.qml index bde25bc..6159b3e 100644 --- a/examples/declarative/particles/trails/turbulence.qml +++ b/examples/declarative/particles/trails/turbulence.qml @@ -69,14 +69,14 @@ Rectangle{ ImageParticle{ particles: ["smoke"] system: ps - image: "content/particle.png" + source: "content/particle.png" color: "#11111111" colorVariation: 0 } ImageParticle{ particles: ["flame"] system: ps - image: "content/particle.png" + source: "content/particle.png" color: "#11ff400f" colorVariation: 0.1 } @@ -85,11 +85,11 @@ Rectangle{ system: ps particle: "flame" - particlesPerSecond: 120 - particleDuration: 1200 - particleSize: 20 - particleEndSize: 10 - particleSizeVariation: 10 + emitRate: 120 + lifeSpan: 1200 + size: 20 + endSize: 10 + sizeVariation: 10 acceleration: PointDirection{ y: -40 } speed: AngledDirection{ angle: 270; magnitude: 20; angleVariation: 22; magnitudeVariation: 5 } } @@ -101,12 +101,12 @@ Rectangle{ particle: "smoke" follow: "flame" - particlesPerParticlePerSecond: 4 - particleDuration: 2400 - particleDurationVariation: 400 - particleSize: 16 - particleEndSize: 8 - particleSizeVariation: 8 + emitRatePerParticle: 4 + lifeSpan: 2400 + lifeSpanVariation: 400 + size: 16 + endSize: 8 + sizeVariation: 8 acceleration: PointDirection{ y: -40 } speed: AngledDirection{ angle: 270; magnitude: 40; angleVariation: 22; magnitudeVariation: 5 } } @@ -118,11 +118,11 @@ Rectangle{ particle: "smoke" follow: "flame" - particlesPerParticlePerSecond: 1 - particleDuration: 2400 - particleSize: 36 - particleEndSize: 24 - particleSizeVariation: 8 + emitRatePerParticle: 1 + lifeSpan: 2400 + size: 36 + endSize: 24 + sizeVariation: 8 acceleration: PointDirection{ y: -40 } speed: AngledDirection{ angle: 270; magnitude: 40; angleVariation: 22; magnitudeVariation: 5 } } diff --git a/examples/declarative/particles/trails/velocityfrommotion.qml b/examples/declarative/particles/trails/velocityfrommotion.qml index d2e4ed2..d361c99 100644 --- a/examples/declarative/particles/trails/velocityfrommotion.qml +++ b/examples/declarative/particles/trails/velocityfrommotion.qml @@ -77,7 +77,7 @@ Rectangle { ParticleSystem{ id: sys1 } ImageParticle{ system: sys1 - image: "content/particle.png" + source: "content/particle.png" color: "cyan" alpha: 0 SequentialAnimation on color { @@ -109,8 +109,8 @@ Rectangle { id: trailsNormal system: sys1 - particlesPerSecond: 500 - particleDuration: 2000 + emitRate: 500 + lifeSpan: 2000 y: mouseArea.pressed ? mouseArea.mouseY : circle.cy @@ -120,8 +120,8 @@ Rectangle { acceleration: PointDirection{xVariation: 10; yVariation: 10;} speedFromMovement: 8 - particleSize: 8 - particleSizeVariation: 4 + size: 8 + sizeVariation: 4 } ParticleSystem { id: sys2 } ImageParticle{ @@ -142,14 +142,14 @@ Rectangle { } } colorVariation: 0.5 - image: "content/star.png" + source: "content/star.png" } Emitter{ id: trailsStars system: sys2 - particlesPerSecond: 100 - particleDuration: 2200 + emitRate: 100 + lifeSpan: 2200 y: mouseArea.pressed ? mouseArea.mouseY : circle.cy @@ -159,12 +159,12 @@ Rectangle { acceleration: PointDirection{xVariation: 10; yVariation: 10;} speedFromMovement: 8 - particleSize: 22 - particleSizeVariation: 4 + size: 22 + sizeVariation: 4 } ParticleSystem { id: sys3; } ImageParticle{ - image: "content/particle.png" + source: "content/particle.png" system: sys3 color: "orange" alpha: 0 @@ -189,8 +189,8 @@ Rectangle { id: trailsNormal2 system: sys3 - particlesPerSecond: 300 - particleDuration: 2000 + emitRate: 300 + lifeSpan: 2000 y: mouseArea.pressed ? mouseArea.mouseY : circle2.cy x: mouseArea.pressed ? mouseArea.mouseX : circle2.cx @@ -200,13 +200,13 @@ Rectangle { speed: PointDirection{xVariation: 4; yVariation: 4;} acceleration: PointDirection{xVariation: 10; yVariation: 10;} - particleSize: 12 - particleSizeVariation: 4 + size: 12 + sizeVariation: 4 } ParticleSystem { id: sys4; } ImageParticle{ system: sys4 - image: "content/star.png" + source: "content/star.png" color: "green" alpha: 0 SequentialAnimation on color { @@ -229,8 +229,8 @@ Rectangle { id: trailsStars2 system: sys4 - particlesPerSecond: 50 - particleDuration: 2200 + emitRate: 50 + lifeSpan: 2200 y: mouseArea.pressed ? mouseArea.mouseY : circle2.cy @@ -240,8 +240,8 @@ Rectangle { speed: PointDirection{xVariation: 2; yVariation: 2;} acceleration: PointDirection{xVariation: 10; yVariation: 10;} - particleSize: 22 - particleSizeVariation: 4 + size: 22 + sizeVariation: 4 } diff --git a/examples/declarative/toys/dynamicscene/dynamicscene.qml b/examples/declarative/toys/dynamicscene/dynamicscene.qml index a436b41..1742047 100644 --- a/examples/declarative/toys/dynamicscene/dynamicscene.qml +++ b/examples/declarative/toys/dynamicscene/dynamicscene.qml @@ -147,27 +147,27 @@ Item { PaletteItem { anchors.verticalCenter: parent.verticalCenter componentFile: "Sun.qml" - image: "../images/sun.png" + source: "../images/sun.png" } PaletteItem { anchors.verticalCenter: parent.verticalCenter componentFile: "GenericSceneItem.qml" - image: "../images/moon.png" + source: "../images/moon.png" } PaletteItem { anchors.verticalCenter: parent.verticalCenter componentFile: "PerspectiveItem.qml" - image: "../images/tree_s.png" + source: "../images/tree_s.png" } PaletteItem { anchors.verticalCenter: parent.verticalCenter componentFile: "PerspectiveItem.qml" - image: "../images/rabbit_brown.png" + source: "../images/rabbit_brown.png" } PaletteItem { anchors.verticalCenter: parent.verticalCenter componentFile: "PerspectiveItem.qml" - image: "../images/rabbit_bw.png" + source: "../images/rabbit_bw.png" } } } diff --git a/examples/declarative/toys/dynamicscene/qml/Sun.qml b/examples/declarative/toys/dynamicscene/qml/Sun.qml index d632461..df3246d 100644 --- a/examples/declarative/toys/dynamicscene/qml/Sun.qml +++ b/examples/declarative/toys/dynamicscene/qml/Sun.qml @@ -44,7 +44,7 @@ Image { id: sun property bool created: false - property string image: "../images/sun.png" + property string source: "../images/sun.png" source: image diff --git a/examples/declarative/ui-components/flipable/content/Card.qml b/examples/declarative/ui-components/flipable/content/Card.qml index 6374dd8..6574733 100644 --- a/examples/declarative/ui-components/flipable/content/Card.qml +++ b/examples/declarative/ui-components/flipable/content/Card.qml @@ -43,7 +43,7 @@ import QtQuick 1.0 Flipable { id: container - property alias image: frontImage.source + property alias source: frontImage.source property bool flipped: true property int xAxis: 0 property int yAxis: 0 diff --git a/examples/declarative/ui-components/flipable/flipable.qml b/examples/declarative/ui-components/flipable/flipable.qml index 6d0235e..3b23aa0 100644 --- a/examples/declarative/ui-components/flipable/flipable.qml +++ b/examples/declarative/ui-components/flipable/flipable.qml @@ -49,7 +49,7 @@ Rectangle { Row { anchors.centerIn: parent; spacing: 30 - Card { image: "content/9_club.png"; angle: 180; yAxis: 1 } - Card { image: "content/5_heart.png"; angle: 540; xAxis: 1 } + Card { source: "content/9_club.png"; angle: 180; yAxis: 1 } + Card { source: "content/5_heart.png"; angle: 540; xAxis: 1 } } } diff --git a/src/declarative/particles/qsgfollowemitter_p.h b/src/declarative/particles/qsgfollowemitter_p.h index 314bd4e..bf5d2fe 100644 --- a/src/declarative/particles/qsgfollowemitter_p.h +++ b/src/declarative/particles/qsgfollowemitter_p.h @@ -56,13 +56,13 @@ class QSGFollowEmitter : public QSGParticleEmitter Q_OBJECT Q_PROPERTY(QString follow READ follow WRITE setFollow NOTIFY followChanged) //### Remove, and just document that particles per second is per particle? But has count issues - Q_PROPERTY(int particlesPerParticlePerSecond READ particlesPerParticlePerSecond WRITE setParticlesPerParticlePerSecond NOTIFY particlesPerParticlePerSecondChanged) + Q_PROPERTY(int emitRatePerParticle READ particlesPerParticlePerSecond WRITE setParticlesPerParticlePerSecond NOTIFY particlesPerParticlePerSecondChanged) //TODO: Document that FollowEmitter's box is where it follows. It emits in a rect centered on the followed particle //TODO: A set of properties that can involve the particle size of the followed - Q_PROPERTY(QSGParticleExtruder* emissionShape READ emissonShape WRITE setEmissionShape NOTIFY emissionShapeChanged) - Q_PROPERTY(qreal emissionHeight READ emitterYVariation WRITE setEmitterYVariation NOTIFY emitterYVariationChanged) - Q_PROPERTY(qreal emissionWidth READ emitterXVariation WRITE setEmitterXVariation NOTIFY emitterXVariationChanged) + Q_PROPERTY(QSGParticleExtruder* emitShape READ emissonShape WRITE setEmissionShape NOTIFY emissionShapeChanged) + Q_PROPERTY(qreal emitHeight READ emitterYVariation WRITE setEmitterYVariation NOTIFY emitterYVariationChanged) + Q_PROPERTY(qreal emitWidth READ emitterXVariation WRITE setEmitterXVariation NOTIFY emitterXVariationChanged) public: explicit QSGFollowEmitter(QSGItem *parent = 0); diff --git a/src/declarative/particles/qsgimageparticle_p.h b/src/declarative/particles/qsgimageparticle_p.h index 1318647..c6ec4c2 100644 --- a/src/declarative/particles/qsgimageparticle_p.h +++ b/src/declarative/particles/qsgimageparticle_p.h @@ -130,7 +130,7 @@ struct IntermediateVertices { class QSGImageParticle : public QSGParticlePainter { Q_OBJECT - Q_PROPERTY(QUrl image READ image WRITE setImage NOTIFY imageChanged) + Q_PROPERTY(QUrl source READ image WRITE setImage NOTIFY imageChanged) Q_PROPERTY(QUrl colorTable READ colortable WRITE setColortable NOTIFY colortableChanged) Q_PROPERTY(QUrl sizeTable READ sizetable WRITE setSizetable NOTIFY sizetableChanged) Q_PROPERTY(QUrl opacityTable READ opacitytable WRITE setOpacitytable NOTIFY opacitytableChanged) diff --git a/src/declarative/particles/qsgparticleemitter_p.h b/src/declarative/particles/qsgparticleemitter_p.h index ad6a5f6..9fafd9d 100644 --- a/src/declarative/particles/qsgparticleemitter_p.h +++ b/src/declarative/particles/qsgparticleemitter_p.h @@ -66,14 +66,14 @@ class QSGParticleEmitter : public QSGItem Q_PROPERTY(QSGParticleExtruder* shape READ extruder WRITE setExtruder NOTIFY extruderChanged) Q_PROPERTY(bool emitting READ emitting WRITE setEmitting NOTIFY emittingChanged) - Q_PROPERTY(qreal particlesPerSecond READ particlesPerSecond WRITE setParticlesPerSecond NOTIFY particlesPerSecondChanged) - Q_PROPERTY(int particleDuration READ particleDuration WRITE setParticleDuration NOTIFY particleDurationChanged) - Q_PROPERTY(int particleDurationVariation READ particleDurationVariation WRITE setParticleDurationVariation NOTIFY particleDurationVariationChanged) - Q_PROPERTY(int maxParticles READ maxParticleCount WRITE setMaxParticleCount NOTIFY maxParticleCountChanged) - - Q_PROPERTY(qreal particleSize READ particleSize WRITE setParticleSize NOTIFY particleSizeChanged) - Q_PROPERTY(qreal particleEndSize READ particleEndSize WRITE setParticleEndSize NOTIFY particleEndSizeChanged) - Q_PROPERTY(qreal particleSizeVariation READ particleSizeVariation WRITE setParticleSizeVariation NOTIFY particleSizeVariationChanged) + Q_PROPERTY(qreal emitRate READ particlesPerSecond WRITE setParticlesPerSecond NOTIFY particlesPerSecondChanged) + Q_PROPERTY(int lifeSpan READ particleDuration WRITE setParticleDuration NOTIFY particleDurationChanged) + Q_PROPERTY(int lifeSpanVariation READ particleDurationVariation WRITE setParticleDurationVariation NOTIFY particleDurationVariationChanged) + Q_PROPERTY(int emitCap READ maxParticleCount WRITE setMaxParticleCount NOTIFY maxParticleCountChanged) + + Q_PROPERTY(qreal size READ particleSize WRITE setParticleSize NOTIFY particleSizeChanged) + Q_PROPERTY(qreal endSize READ particleEndSize WRITE setParticleEndSize NOTIFY particleEndSizeChanged) + Q_PROPERTY(qreal sizeVariation READ particleSizeVariation WRITE setParticleSizeVariation NOTIFY particleSizeVariationChanged) Q_PROPERTY(QSGStochasticDirection *speed READ speed WRITE setSpeed NOTIFY speedChanged) Q_PROPERTY(QSGStochasticDirection *acceleration READ acceleration WRITE setAcceleration NOTIFY accelerationChanged) -- 2.7.4