| CMakeLists.txt |
|
6244 |
- |
| particleresources |
|
|
- |
| qquickage.cpp |
!
\qmltype Age
\nativetype QQuickAgeAffector
\inqmlmodule QtQuick.Particles
\inherits ParticleAffector
\brief For altering particle ages.
\ingroup qtquick-particles
The Age affector allows you to alter where the particle is in its lifecycle. Common uses
are to expire particles prematurely, possibly giving them time to animate out.
The Age affector is also sometimes known as a 'Kill' affector, because with the default
parameters it will immediately expire all particles which it affects.
The Age affector only applies to particles which are still alive.
|
2921 |
- |
| qquickage_p.h |
|
1694 |
- |
| qquickangledirection.cpp |
!
\qmltype AngleDirection
\nativetype QQuickAngleDirection
\inqmlmodule QtQuick.Particles
\ingroup qtquick-particles
\inherits Direction
\brief For specifying a direction that varies in angle.
The AngledDirection element allows both the specification of a direction by angle and magnitude,
as well as varying the parameters by angle or magnitude.
|
2749 |
- |
| qquickangledirection_p.h |
|
2485 |
- |
| qquickcumulativedirection.cpp |
!
\qmltype CumulativeDirection
\nativetype QQuickCumulativeDirection
\inqmlmodule QtQuick.Particles
\inherits Direction
\brief For specifying a direction made of other directions.
\ingroup qtquick-particles
The CumulativeDirection element will act as a direction that sums the directions within it.
|
1171 |
- |
| qquickcumulativedirection_p.h |
|
1211 |
- |
| qquickcustomaffector.cpp |
!
\qmltype Affector
\nativetype QQuickCustomAffector
\inqmlmodule QtQuick.Particles
\brief Applies alterations to the attributes of logical particles at any
point in their lifetime.
\inherits ParticleAffector
\ingroup qtquick-particles
Custom Affector manipulates the properties of the particles directly in
JavaScript.
|
6432 |
- |
| qquickcustomaffector_p.h |
|
3323 |
- |
| qquickdirection.cpp |
!
\qmltype Direction
\nativetype QQuickDirection
\inqmlmodule QtQuick.Particles
\brief For specifying a vector space.
\ingroup qtquick-particles
|
602 |
- |
| qquickdirection_p.h |
|
1040 |
- |
| qquickellipseextruder.cpp |
!
\qmltype EllipseShape
\nativetype QQuickEllipseExtruder
\inqmlmodule QtQuick.Particles
\ingroup qtquick-particles
\inherits Shape
\brief Represents an ellipse to other particle system elements.
This shape can be used by Emitter subclasses and Affector subclasses to have
them act upon an ellipse shaped area.
|
1612 |
- |
| qquickellipseextruder_p.h |
|
1301 |
- |
| qquickfriction.cpp |
!
\qmltype Friction
\nativetype QQuickFrictionAffector
\inqmlmodule QtQuick.Particles
\ingroup qtquick-particles
\inherits ParticleAffector
\brief For applying friction proportional to the particle's current velocity.
|
2398 |
- |
| qquickfriction_p.h |
|
1641 |
- |
| qquickgravity.cpp |
!
\qmltype Gravity
\nativetype QQuickGravityAffector
\inqmlmodule QtQuick.Particles
\ingroup qtquick-particles
\inherits ParticleAffector
\brief For applying acceleration in an angle.
This element will accelerate all affected particles to a vector of
the specified magnitude in the specified angle. If the angle and acceleration do
not vary, it is more efficient to set the specified acceleration on the Emitter.
This element models the gravity of a massive object whose center of
gravity is far away (and thus the gravitational pull is effectively constant
across the scene). To model the gravity of an object near or inside the scene,
use PointAttractor.
|
2707 |
- |
| qquickgravity_p.h |
|
1513 |
- |
| qquickgroupgoal.cpp |
!
\qmltype GroupGoal
\nativetype QQuickGroupGoalAffector
\inqmlmodule QtQuick.Particles
\ingroup qtquick-particles
\inherits ParticleAffector
\brief For changing the state of a group of a particle.
|
2397 |
- |
| qquickgroupgoal_p.h |
|
1547 |
- |
| qquickimageparticle.cpp |
|
73295 |
- |
| qquickimageparticle_p.h |
|
12942 |
- |
| qquickitemparticle.cpp |
!
\qmltype ItemParticle
\inqmlmodule QtQuick.Particles
\inherits ParticlePainter
\brief For specifying a delegate to paint particles.
\ingroup qtquick-particles
|
11759 |
- |
| qquickitemparticle_p.h |
|
3595 |
- |
| qquicklineextruder.cpp |
!
\qmltype LineShape
\nativetype QQuickLineExtruder
\inqmlmodule QtQuick.Particles
\inherits ParticleExtruder
\brief Represents a line for affectors and emitters.
\ingroup qtquick-particles
|
1403 |
- |
| qquicklineextruder_p.h |
|
1305 |
- |
| qquickmaskextruder.cpp |
!
\qmltype MaskShape
\nativetype QQuickMaskExtruder
\inqmlmodule QtQuick.Particles
\inherits Shape
\brief For representing an image as a shape to affectors and emitters.
\ingroup qtquick-particles
|
3658 |
- |
| qquickmaskextruder_p.h |
|
1595 |
- |
| qquickparticleaffector.cpp |
!
\qmltype ParticleAffector
//! \nativetype QQuickParticleAffector
\inqmlmodule QtQuick.Particles
\brief Applies alterations to the attributes of logical particles at any
point in their lifetime.
\ingroup qtquick-particles
The base ParticleAffector does not alter any attributes, but can be used to emit a signal
when a particle meets certain conditions.
If an affector has a defined size, then it will only affect particles within its size and
position on screen.
Affectors have different performance characteristics to the other particle system elements. In
particular, they have some simplifications to try to maintain a simulation at real-time or faster.
When running a system with Affectors, irregular frame timings that grow too large ( > one second per
frame) will cause the Affectors to try and cut corners with a faster but less accurate simulation.
If the system has multiple affectors the order in which they are applied is not guaranteed, and when
simulating larger time shifts they will simulate the whole shift each, which can lead to different
results compared to smaller time shifts.
Accurate simulation for large numbers of particles (hundreds) with multiple affectors may be
possible on some hardware, but on less capable hardware you should expect small irregularties in the
simulation as simulates with worse granularity.
|
9931 |
- |
| qquickparticleaffector_p.h |
|
4571 |
- |
| qquickparticleemitter.cpp |
!
\qmltype Emitter
//! \nativetype QQuickParticleEmitter
\inqmlmodule QtQuick.Particles
\brief Emits logical particles.
\ingroup qtquick-particles
This element emits logical particles into the ParticleSystem, with the
given starting attributes.
Note that logical particles are not
automatically rendered, you will need to have one or more
ParticlePainter elements visualizing them.
Note that the given starting attributes can be modified at any point
in the particle's lifetime by any Affector element in the same
ParticleSystem. This includes attributes like lifespan.
|
16165 |
- |
| qquickparticleemitter_p.h |
|
9458 |
- |
| qquickparticleextruder.cpp |
!
\qmltype ParticleExtruder
\nativetype QQuickParticleExtruder
\inqmlmodule QtQuick.Particles
\brief For specifying an area for affectors and emitters.
\ingroup qtquick-particles
The base class is just a rectangle.
|
1002 |
- |
| qquickparticleextruder_p.h |
|
1115 |
- |
| qquickparticlegroup.cpp |
!
\qmltype ParticleGroup
\inqmlmodule QtQuick.Particles
\brief For setting attributes on a logical particle group.
\ingroup qtquick-particles
This element allows you to set timed transitions on particle groups.
You can also use this element to group particle system elements related to the logical
particle group. Emitters, Affectors and Painters set as direct children of a ParticleGroup
will automatically apply to that logical particle group. TrailEmitters will automatically follow
the group.
If a ParticleGroup element is not defined for a group, the group will function normally as if
none of the transition properties were set.
|
4110 |
- |
| qquickparticlegroup_p.h |
|
1882 |
- |
| qquickparticlepainter.cpp |
!
\qmltype ParticlePainter
\nativetype QQuickParticlePainter
\inqmlmodule QtQuick.Particles
\inherits Item
\brief For specifying how to paint particles.
\ingroup qtquick-particles
The default implementation paints nothing. See the subclasses if you want to
paint something visible.
|
5487 |
- |
| qquickparticlepainter_p.h |
Reset resets all your internal data structures. But anything attached to a particle should
be in attached data. So reset + reloads should have no visible effect.
###Hunt down all cases where we do a complete reset for convenience and be more targeted
|
3454 |
- |
| qquickparticlesystem.cpp |
\internal ParticleSystem internals documentation
Affectors, Painters, Emitters and Groups all register themselves on construction as a callback
from their setSystem (or componentComplete if they have a system from a parent).
Particle data is stored by group, They have a group index (used by the particle system almost
everywhere) and a global index (used by the Stochastic state engine powering stochastic group
transitions). Each group has a recycling list/heap that stores the particle data.
The recycling list/heap is a heap of particle data sorted by when they're expected to die. If
they die prematurely then they are marked as reusable (and will probably still be alive when
they exit the heap). If they have their life extended, then they aren't dead when expected.
If this happens, they go back in the heap with the new estimate. If they have died on schedule,
then the indexes are marked as reusable. If no indexes are reusable when new particles are
requested, then the list is extended. This relatively complex datastructure is because memory
allocation and deallocation on this scale proved to be a significant performance cost. In order
to reuse the indexes validly (even when particles can have their life extended or cut short
dynamically, or particle counts grow) this seemed to be the most efficient option for keeping
track of which indices could be reused.
When a new particle is emitted, the emitter gets a new datum from the group (through the
system), and sets properties on it. Then it's passed back to the group briefly so that it can
now guess when the particle will die. Then the painters get a change to initialize properties
as well, since particle data includes shared data from painters as well as logical particle
data.
Every animation advance, the simulation advances by running all emitters for the elapsed
duration, then running all affectors, then telling all particle painters to update changed
particles. The ParticlePainter superclass stores these changes, and they are implemented
when the painter is called to paint in the render thread.
Particle group changes move the particle from one group to another by killing the old particle
and then creating a new one with the same data in the new group.
Note that currently groups only grow. Given that data is stored in vectors, it is non-trivial
to pluck out the unused indexes when the count goes down. Given the dynamic nature of the
system, it is difficult to tell if those unused data instances will be used again. Still,
some form of garbage collection is on the long term plan.
|
31085 |
- |
| qquickparticlesystem_p.h |
|
17892 |
- |
| qquickpointattractor.cpp |
!
\qmltype Attractor
\nativetype QQuickAttractorAffector
\inqmlmodule QtQuick.Particles
\ingroup qtquick-particles
\inherits ParticleAffector
\brief Attracts particles towards a specific point.
Like other affectors, Attractor has the standard properties x, y, width,
and height that represent the affected area. The size and position of the
Attractor item determine the affected particles.
The size of the attracting point is always 0x0, and its location is
specified by \l pointX and \l pointY properties.
|
3762 |
- |
| qquickpointattractor_p.h |
|
3146 |
- |
| qquickpointdirection.cpp |
!
\qmltype PointDirection
\nativetype QQuickPointDirection
\inqmlmodule QtQuick.Particles
\ingroup qtquick-particles
\inherits Direction
\brief For specifying a direction that varies in x and y components.
The PointDirection element allows both the specification of a direction by x and y components,
as well as varying the parameters by x or y component.
|
1416 |
- |
| qquickpointdirection_p.h |
|
2218 |
- |
| qquickrectangleextruder.cpp |
!
\qmltype RectangleShape
\nativetype QQuickRectangleExtruder
\inqmlmodule QtQuick.Particles
\brief For specifying an area for affectors and emitter.
\ingroup qtquick-particles
Just a rectangle.
|
1760 |
- |
| qquickrectangleextruder_p.h |
|
1279 |
- |
| qquickspritegoal.cpp |
!
\qmltype SpriteGoal
\nativetype QQuickSpriteGoalAffector
\inqmlmodule QtQuick.Particles
\ingroup qtquick-images-sprites
\inherits ParticleAffector
\brief For changing the state of a sprite particle.
|
3725 |
- |
| qquickspritegoal_p.h |
|
2277 |
- |
| qquicktargetdirection.cpp |
!
\qmltype TargetDirection
\nativetype QQuickTargetDirection
\inqmlmodule QtQuick.Particles
\ingroup qtquick-particles
\inherits Direction
\brief For specifying a direction towards the target point.
|
3347 |
- |
| qquicktargetdirection_p.h |
|
4041 |
- |
| qquicktrailemitter.cpp |
!
\qmltype TrailEmitter
\nativetype QQuickTrailEmitter
\inqmlmodule QtQuick.Particles
\inherits Emitter
\brief Emits logical particles from other logical particles.
\ingroup qtquick-particles
This element emits logical particles into the ParticleSystem, with the
starting positions based on those of other logical particles.
|
10156 |
- |
| qquicktrailemitter_p.h |
|
3846 |
- |
| qquickturbulence.cpp |
!
\qmltype Turbulence
\nativetype QQuickTurbulenceAffector
\inqmlmodule QtQuick.Particles
\ingroup qtquick-particles
\inherits ParticleAffector
\brief Provides fluid-like forces from a noise image.
The Turbulence Element scales the noise source over the area it affects,
and uses the curl of that source to generate force vectors.
Turbulence requires a fixed size. Unlike other affectors, a 0x0 Turbulence element
will affect no particles.
The source should be relatively smooth black and white noise, such as perlin noise.
|
5639 |
- |
| qquickturbulence_p.h |
|
2102 |
- |
| qquickv4particledata.cpp |
!
\qmltype Particle
\inqmlmodule QtQuick.Particles
\brief Represents particles manipulated by emitters and affectors.
\ingroup qtquick-particles
Particle elements are always managed internally by the ParticleSystem and cannot be created in QML.
However, sometimes they are exposed via signals so as to allow arbitrary changes to the particle state
|
7550 |
- |
| qquickv4particledata_p.h |
|
4349 |
- |
| qquickwander.cpp |
!
\qmltype Wander
\nativetype QQuickWanderAffector
\inqmlmodule QtQuick.Particles
\ingroup qtquick-particles
\inherits ParticleAffector
\brief For applying random particle trajectory.
|
4493 |
- |
| qquickwander_p.h |
|
2855 |
- |
| qtquickparticlesglobal_p.h |
|
582 |
- |
| shaders_ng |
|
|
- |