Name Description Size Coverage
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 -