载入中...
搜索中...
未找到
Particles.cpp
浏览该文件的文档.
45ParticleEmitter* Particles::newEmitter(int bufferSize) { return ParticleEmitter::createEmitter(bufferSize); }
129int Particles::getMaxSimulatedEmitters() const { return particleBudgetConfig().maxSimulatedEmitters; }
137int Particles::getLastSimulatedEmitters() const { return particleFrameStats().emittersSimulated; }
146int Particles::getLastGpuResidentEmitters() const { return particleFrameStats().gpuResidentEmitters; }
147int Particles::getLastGpuResidentParticles() const { return particleFrameStats().gpuResidentParticles; }
148int Particles::getLastRenderedParticles() const { return particleFrameStats().renderedParticles; }
149float Particles::getLastSimulationMs() const { return static_cast<float>(particleFrameStats().simulationMs); }
150float Particles::getLastRenderMs() const { return static_cast<float>(particleFrameStats().renderMs); }
176 "Emitter", std::function<ParticleEmitter*()>([]() -> ParticleEmitter* { return nullptr; }), true);
178 "PcgMaterialSelector", std::function<PcgMaterialSelector*()>([]() { return new PcgMaterialSelector(); }), true);
179 selector.addFunc("add", [vm = table.getHandle()](PcgMaterialSelector* self, graphics::Texture* texture) {
185 "selectAndApply", [vm = table.getHandle()](PcgMaterialSelector* self, ParticleEmitter* emitter, int seed) {
186 return eve::script::projectResult(vm, self->selectAndApply(emitter, static_cast<std::uint32_t>(seed)),
195 table.addFunc("applyUnderwaterSurfaceVfx", [vm = table.getHandle()](ParticleEmitter* surfaceVfx, bool active) {
198 table.addFunc("applyGroundParticleCulling", [vm = table.getHandle()](ParticleEmitter* emitter, int playerTag,
210 "ParticleEffect", std::function<ParticleEffect*()>([]() -> ParticleEffect* { return nullptr; }), true);
247 "ParticleEmitterPool", std::function<ParticleEmitterPool*()>([]() { return new ParticleEmitterPool(); }), true);
265 pool.addFunc("idleCount", [](ParticleEmitterPool* self) { return self ? static_cast<int>(self->idleCount()) : 0; });
#define EV_PROFILE_MODULE(module, name)
Profile the enclosing scope, tagged with a module for grouping.
Definition Profile.h:140
The single Squirrel projection for common Result, Status and Value.
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
static Status success(StatusCode code=StatusCode::Ok)
Construct a successful status with an explicit non-error outcome.
Definition Status.h:81
Definition Graphics.h:125
static Document parse(const std::string &text, std::string *error=nullptr)
Parse.
Definition Json.cpp:581
Runtime instance of a versioned, multi-emitter particle effect asset.
Definition ParticleEffect.h:68
bool hasFloatParameter(const std::string &name) const
Return true when the asset declares the parameter.
Definition ParticleEffect.cpp:700
std::string getSourcePath() const
Return the source file path, or empty text for an in-memory asset.
Definition ParticleEffect.h:102
ParticleEmitter * getEmitter(int index) const
Return an emitter layer by index, or null.
Definition ParticleEffect.cpp:375
float getTimelineSeconds() const
Return the current effect-local timeline clock in seconds.
Definition ParticleEffect.h:117
void setPosition(float x, float y)
Set the group transform origin in world space.
Definition ParticleEffect.cpp:625
void reset()
Reset every emitter timeline, clear particles, and rewind cues.
Definition ParticleEffect.cpp:674
static ParticleEffect * fromFile(const std::string &path, std::string *error=nullptr)
Read, parse, and instantiate an effect asset.
Definition ParticleEffect.cpp:329
void setVisible(bool visible)
Set visibility for every emitter layer.
Definition ParticleEffect.cpp:646
static Result< void > advanceRegisteredTimelines(const SimulationStep &step)
Advance registered timelines from an injected scheduler step.
Definition ParticleEffect.cpp:525
ParticleEmitter * getEmitterByName(const std::string &name) const
Return an emitter layer by name, or null.
Definition ParticleEffect.cpp:380
bool isTimelinePlaying() const
Return true while the effect timeline is advancing.
Definition ParticleEffect.h:119
void setLayer(int layer)
Offset all emitter render layers while preserving asset-local ordering.
Definition ParticleEffect.cpp:641
static ParticleEffect * fromText(const std::string &json, const std::string &sourcePath, std::string *error=nullptr)
Parse and instantiate an effect asset from JSON text.
Definition ParticleEffect.cpp:313
void start()
Start every enabled emitter and the effect timeline clock.
Definition ParticleEffect.cpp:651
void setFloatParameter(const std::string &name, float value)
Set one gameplay parameter on every layer that declares or binds it.
Definition ParticleEffect.cpp:689
int getEmitterCount() const
Return the number of named emitter layers.
Definition ParticleEffect.cpp:368
float getFloatParameter(const std::string &name) const
Return an effect parameter value, or zero when unknown.
Definition ParticleEffect.cpp:695
std::string getEmitterName(int index) const
Return a stable layer name by index, or empty text.
Definition ParticleEffect.cpp:370
static void tickRegisteredTimelines(float dt)
Advance every effect that auto-registered a playing timeline.
Definition ParticleEffect.cpp:518
void setRotation(float radians)
Rotate local offsets and emitter directions in radians.
Definition ParticleEffect.cpp:631
bool emit(const std::string &emitterName, int count)
Emit a manual burst from one named layer.
Definition ParticleEffect.cpp:682
void updateTimeline(float dt)
Legacy seconds facade for timeline cues; consumes Result internally.
Definition ParticleEffect.cpp:506
ECS emitter entity. Script configures components; ParticleSimSystem / ParticleRenderSystem drive per-...
Definition ParticleEmitter.h:71
bool getAutoReload()
Definition ParticleEmitter.cpp:1245
void setPrewarm(float seconds)
Definition ParticleEmitter.cpp:857
void applyPreset(const std::string &name)
Named preset: "spark" / "smoke" / "fire". Unknown → no-op.
Definition ParticleEmitter.cpp:1166
std::string getSortMode()
Return the configured transparent ordering policy.
Definition ParticleEmitter.cpp:1024
void addSizeCurvePoint(float t, float v)
Definition ParticleEmitter.cpp:1135
void setMaxDeltaTime(float seconds)
Definition ParticleEmitter.cpp:1043
void setGpuSimulation(bool enable)
Definition ParticleEmitter.cpp:899
void setDistortionStrength(float strengthPixels)
Set the maximum scene-color refraction offset in screen pixels.
Definition ParticleEmitter.cpp:1032
void clearVelocityCurve()
Definition ParticleEmitter.cpp:877
void setFlipbook(int hframes, int vframes, float framesPerSecond=0.f, float randomStart=0.f)
Definition ParticleEmitter.cpp:1119
void addColorStop(float t, float r, float g, float b, float a)
Definition ParticleEmitter.cpp:1129
void setSkinBoneFilter(int skeletonBoneIndex, float minWeight=0.f)
Definition ParticleEmitter.cpp:1384
float getParticleHeight()
Definition ParticleEmitter.cpp:826
void setLimitVelocity(float maxSpeed)
Definition ParticleEmitter.cpp:873
void setWorldCollision(bool enabled)
Definition ParticleEmitter.cpp:980
graphics::Texture * getNormalTexture()
Return the configured particle normal map.
Definition ParticleEmitter.cpp:1155
void setRandomSeed(int seed)
Select a deterministic seed and disable automatic seeding.
Definition ParticlePlayback.cpp:90
void addVelocityCurvePoint(float t, float v)
Definition ParticleEmitter.cpp:879
void setFloatParameter(const std::string &name, float value)
Set a named gameplay/VFX float parameter without rebuilding the emitter.
Definition ParticleEmitter.cpp:931
void attachToSkeleton2D(eve::ik::Skeleton2D *skeleton, int boneId)
Definition ParticleEmitter.cpp:1303
void moveTo(float x, float y)
Definition ParticleEmitter.cpp:748
void attachToSkeleton3D(eve::ik::Skeleton3D *skeleton, int boneId)
Definition ParticleEmitter.cpp:1314
std::string getMotionVectorPolicy()
Return the normalized motion-vector policy.
Definition ParticleEmitter.cpp:991
float getFloatParameter(const std::string &name, float fallback=0.f)
Return a named float parameter, or fallback when absent.
Definition ParticleEmitter.cpp:935
void setSpread(float radians)
Definition ParticleEmitter.cpp:774
void clearSizeCurve()
Definition ParticleEmitter.cpp:1133
void setSpin(float minSpin, float maxSpin)
Definition ParticleEmitter.cpp:838
float getEmissionAreaY()
Definition ParticleEmitter.cpp:817
void setLayer(int layer)
Definition ParticleEmitter.cpp:1160
float getPrewarmSeconds()
Definition ParticleEmitter.cpp:861
void setCullingMode(const std::string &mode)
Set offscreen simulation policy: automatic, pause, or always.
Definition ParticleScalability.cpp:14
void setTexture(graphics::Texture *texture)
Definition ParticleEmitter.cpp:1151
bool isGpuFeatureSetSupported()
Return whether the configured feature set can use resident GPU simulation.
Definition ParticleEmitter.cpp:918
std::string getSimulationBackend()
Return "gpu" for active resident simulation, otherwise "cpu".
Definition ParticleEmitter.cpp:920
bool hasSkinSource()
Definition ParticleEmitter.cpp:1416
void bindFloatParameter(const std::string &name, const std::string &target, float scale=1.f, float offset=0.f)
Bind a parameter to emission, speed, size, or playback scaling.
Definition ParticleEmitter.cpp:946
float getDistortionStrength()
Return the configured scene-color refraction offset in screen pixels.
Definition ParticleEmitter.cpp:1036
void setEmitterLifetime(float seconds)
Definition ParticleEmitter.cpp:768
void setPosition(float x, float y)
Definition ParticleEmitter.cpp:743
int getBufferSize()
Definition ParticlePlayback.cpp:189
void setRenderMode(const std::string &mode, float stretchFactor=1.f)
Definition ParticleEmitter.cpp:1002
void attachToSpineBone(animation::SpineSkeleton *spine, int boneIndex)
Definition ParticleEmitter.cpp:1285
void setNormalTexture(graphics::Texture *texture)
Set an optional tangent-space normal map for lit particles.
Definition ParticleEmitter.cpp:1154
void setVisible(bool visible)
Definition ParticleEmitter.cpp:1163
static ParticleEmitter * createEmitter(int bufferSize=1000)
Definition ParticleEmitter.cpp:712
void setPlaybackSpeed(float speed)
Scale simulation time; zero freezes playback.
Definition ParticlePlayback.cpp:77
void setMaterialMode(const std::string &mode)
Select particle shading: "unlit", "lit", or scene-color "distortion".
Definition ParticleEmitter.cpp:1026
void setSkinBoneFilterByName(animation::AnimSkeleton *skeleton, const std::string &boneName, float minWeight=0.f)
Definition ParticleEmitter.cpp:1391
float getEmissionRate()
Definition ParticleEmitter.cpp:757
bool loadConfig(const std::string &path)
Definition ParticleEmitter.cpp:1238
bool getGpuSimulation()
Definition ParticleEmitter.cpp:914
void setCollisionBounds(bool enabled, float minX, float minY, float maxX, float maxY)
Definition ParticleEmitter.cpp:970
std::string getAttachKind()
"none" | "anim" | "spine" | "ik2d" | "ik3d"
Definition ParticleEmitter.cpp:1355
std::string getBlendMode()
Definition ParticleEmitter.cpp:1103
bool isSoftParticlesActive()
True when soft particles have both a resident renderer and scene depth.
Definition ParticleEmitter.cpp:1232
void setSkinPlane(const std::string &plane)
Definition ParticleEmitter.cpp:1400
void setSizes(float startScale, float endScale)
Definition ParticleEmitter.cpp:828
void setRenderAxis(float degrees)
Set the fixed screen-space orientation used by render mode "axis".
Definition ParticleEmitter.cpp:1018
float getParticleLifetimeMin()
Definition ParticleEmitter.cpp:765
void setRadialAcceleration(float minA, float maxA)
Definition ParticleEmitter.cpp:793
float getParticleWidth()
Definition ParticleEmitter.cpp:825
bool isGpuSimulationActive()
Return true after this emitter has migrated to a resident GPU backend.
Definition ParticleEmitter.cpp:916
void setSpeed(float minSpeed, float maxSpeed)
Definition ParticleEmitter.cpp:779
void setBlendMode(const std::string &mode)
Definition ParticleEmitter.cpp:1090
void setMaxSpawnPerFrame(int count)
Cap automatic spawns per frame; zero is unlimited.
Definition ParticleScalability.cpp:26
void setDamping(float perSecond)
Definition ParticleEmitter.cpp:869
void addForceField(float x, float y, float radius, float strength, float falloff=1.f)
Definition ParticleEmitter.cpp:1059
void setSkinScale(float scale)
Definition ParticleEmitter.cpp:1404
void setCanvas(graphics::Canvas *canvas)
Definition ParticleEmitter.cpp:1157
int getAttachBone()
Definition ParticleEmitter.cpp:1353
void attachToBone(animation::AnimPose *pose, int boneIndex)
Definition ParticleEmitter.cpp:1262
void setOverflowMode(const std::string &mode)
Definition ParticleEmitter.cpp:1038
int getMaxSpawnPerFrame()
Return the automatic per-frame spawn cap.
Definition ParticleScalability.cpp:30
void setStartRotation(float minDeg, float maxDeg)
Definition ParticleEmitter.cpp:844
void setCamera(graphics::Camera2D *camera)
Definition ParticleEmitter.cpp:1158
float getResolvedParameterScale(const std::string &target)
Return the resolved non-negative multiplier for a supported target.
Definition ParticleEmitter.cpp:955
void setLinearAcceleration(float xmin, float ymin, float xmax, float ymax)
Definition ParticleEmitter.cpp:785
void emitFromSkin(int count)
Burst-emit count particles from the current skinned surface.
Definition ParticleEmitter.cpp:1418
std::string getGpuFallbackReason()
Explain CPU fallback; empty means GPU active, "pending_activation" means eligible.
Definition ParticleEmitter.cpp:922
void syncAttach()
Sync Config.x/y (and direction) from the attached bone. Also called by ParticleSimSystem.
Definition ParticleEmitter.cpp:1371
void setTangentialAcceleration(float minA, float maxA)
Definition ParticleEmitter.cpp:799
void setEmissionRate(float rate)
Definition ParticleEmitter.cpp:753
bool hasFloatParameter(const std::string &name)
Return whether a named float parameter exists.
Definition ParticleEmitter.cpp:940
bool applyConfig(const std::string &json)
Definition ParticleEmitter.cpp:1221
float getEmissionAreaX()
Definition ParticleEmitter.cpp:816
bool getLooping()
Return whether the finite emitter timeline repeats.
Definition ParticlePlayback.cpp:75
void setSkinSource(animation::AnimSkin *skin, animation::AnimPose *pose)
Definition ParticleEmitter.cpp:1375
void addRotationCurvePoint(float t, float v)
Definition ParticleEmitter.cpp:1139
void setSoftParticles(bool enabled, float particleDepth=0.5f, float fadeDistance=0.05f)
Fade resident particles where they intersect sampled scene depth.
Definition ParticleEmitter.cpp:1225
void setPriority(int priority)
Set budget order; higher values are processed first.
Definition ParticleScalability.cpp:5
std::string getConfigReloadObservation() const
Return the explicit config reload observation state.
Definition ParticleEmitter.cpp:1248
void setCollision(const std::string &mode, float radius=0.f, float restitution=0.6f, float lifetimeLoss=0.f)
Definition ParticleEmitter.cpp:959
void clearRotationCurve()
Definition ParticleEmitter.cpp:1137
void setMinimumQuality(int quality)
Set the minimum runtime quality tier in [0,3].
Definition ParticleScalability.cpp:8
float getEmitterLifetime()
Definition ParticleEmitter.cpp:769
void addSubEmitter(ParticleEmitter *target, const std::string &trigger, float inheritVelocity=0.f)
Definition ParticleEmitter.cpp:1047
void setColorEnd(float r, float g, float b, float a=1.f)
Definition ParticleEmitter.cpp:1147
std::string getMaterialMode()
Return the normalized particle shading mode.
Definition ParticleEmitter.cpp:1030
void clearSubEmitters()
Definition ParticleEmitter.cpp:1057
void setEmissionArea(const std::string &type, float x, float y)
Definition ParticleEmitter.cpp:805
void setColorStart(float r, float g, float b, float a=1.f)
Definition ParticleEmitter.cpp:1143
bool getAutoRandomSeed()
Return whether start() generates a new random seed.
Definition ParticlePlayback.cpp:102
void setNoise(float strength, float frequency=1.f, float speed=1.f)
Definition ParticleEmitter.cpp:892
void setSortMode(const std::string &mode)
Select stable per-emitter transparent ordering.
Definition ParticleEmitter.cpp:1020
void attachToSpineBoneByName(animation::SpineSkeleton *spine, const std::string &boneName)
Definition ParticleEmitter.cpp:1296
void setAutoRandomSeed(bool enabled)
Generate a new random seed whenever start() is called.
Definition ParticlePlayback.cpp:101
void clearColorGradient()
Definition ParticleEmitter.cpp:1127
float getEmissionRateOverDistance()
Return particles emitted per world unit travelled.
Definition ParticlePlayback.cpp:72
float getParticleLifetimeMax()
Definition ParticleEmitter.cpp:766
void setFollowBoneRotation(bool enable)
Definition ParticleEmitter.cpp:1343
void setShader(graphics::Shader *shader)
Definition ParticleEmitter.cpp:1073
void setMotionVectorPolicy(const std::string &policy)
Set motion-vector policy: none, velocity, or spawn_delta.
Definition ParticleEmitter.cpp:986
void setEmissionRateOverDistance(float rate)
Set particles emitted per world unit travelled; zero disables it.
Definition ParticlePlayback.cpp:68
void setDirection(float radians)
Definition ParticleEmitter.cpp:771
void setAutoReload(bool enable)
Definition ParticleEmitter.cpp:1244
void setFixedTimeStep(float seconds, int maxSubSteps=8)
Configure fixed stepping and the per-frame catch-up limit; zero seconds disables it.
Definition ParticlePlayback.cpp:81
void clearFloatParameterBindings()
Remove all parameter-to-runtime bindings.
Definition ParticleEmitter.cpp:953
std::string getConfigPath()
Definition ParticleEmitter.cpp:1246
void setSizeVariation(float variation)
Definition ParticleEmitter.cpp:833
int getMinimumQuality()
Return the minimum runtime quality tier.
Definition ParticleScalability.cpp:12
void setLooping(bool looping)
Enable or disable repeating a finite emitter timeline.
Definition ParticlePlayback.cpp:74
void attachToBoneByName(animation::AnimPose *pose, animation::AnimSkeleton *skeleton, const std::string &boneName)
Definition ParticleEmitter.cpp:1273
void clearSkinSource()
Definition ParticleEmitter.cpp:1406
std::string getEmissionAreaType()
Definition ParticleEmitter.cpp:815
float getFixedTimeStep()
Return the fixed step in seconds, or zero for variable stepping.
Definition ParticlePlayback.cpp:88
void setCullDistance(float distance)
Set camera distance cutoff in world units; zero disables it.
Definition ParticleScalability.cpp:20
void setSimulationSpace(const std::string &space)
Definition ParticleEmitter.cpp:888
void setAttachOffset(float x, float y, float z)
Definition ParticleEmitter.cpp:1325
void setLights(bool enabled, float radius=120.f, float intensity=1.f, float r=1.f, float g=1.f, float b=1.f, int maxLights=4)
Definition ParticleEmitter.cpp:1076
bool isMotionVectorActive()
True when a graphics path is actually writing motion vectors.
Definition ParticleEmitter.cpp:996
void setRibbon(float width=1.f, float minSegmentLength=1.f)
Configure connected ribbon rendering and switch to ribbon mode.
Definition ParticleEmitter.cpp:1011
float getSizeVariation()
Definition ParticleEmitter.cpp:836
void setParticleLifetime(float minLife, float maxLife)
Definition ParticleEmitter.cpp:759
void clearForceFields()
Definition ParticleEmitter.cpp:1071
void addBurst(float time, int count)
Definition ParticleEmitter.cpp:850
void setAttachPlane(const std::string &plane)
Definition ParticleEmitter.cpp:1333
graphics::Shader * getShader()
Definition ParticleEmitter.cpp:1074
std::string getCullingMode()
Return the offscreen simulation policy.
Definition ParticleScalability.cpp:18
void setInheritVelocity(float fraction)
Definition ParticleEmitter.cpp:883
bool getLightsEnabled()
Definition ParticleEmitter.cpp:1088
void setAttachScale(float scale)
Definition ParticleEmitter.cpp:1338
void setGravity(float x, float y)
Definition ParticleEmitter.cpp:863
void setParticleSize(float width, float height)
Definition ParticleEmitter.cpp:819
static eve::Result< void > advance(const eve::SimulationStep &step)
Advances emitters using one scheduler-owned deterministic step.
Definition ParticleSystem.cpp:497
static void update(float dt)
Legacy seconds facade; conversion and Result consumption are explicit.
Definition ParticleSystem.cpp:501
Particles module — factory + script binding. Per-frame: scheduler step → config reload → ParticleSimS...
Definition Particles.h:28
void setQualityLevel(int quality)
Select the runtime VFX quality tier in [0,3].
Definition Particles.cpp:131
eve::Result< void > advance(const eve::SimulationStep &step)
Advance simulation from an injected scheduler step.
Definition Particles.cpp:88
int getLastGpuResidentEmitters() const
Return emitters using the resident GPU backend after the last update.
Definition Particles.cpp:146
ParticleEmitter * newEmitter(int bufferSize=1000)
Creates a emitter. @ownership Caller deletes unless documented otherwise.
Definition Particles.cpp:45
float getLastRenderMs() const
Return particle render-build and submission wall time in milliseconds.
Definition Particles.cpp:150
ParticleEffect * newEffectFromFile(const std::string &path)
Create a versioned multi-emitter effect asset from a JSON file.
Definition Particles.cpp:75
void setBudget(int maxParticles, int maxSimulatedEmitters)
Set global soft particle and simulated-emitter budgets; zero is unlimited.
Definition Particles.cpp:121
int getLastParticleCount() const
Return live particles after the last update.
Definition Particles.cpp:143
ParticleEmitter * newEmitterFromFile(const std::string &path)
Create emitter from JSON config file (reads optional "buffer").
Definition Particles.cpp:47
int getLastDroppedSpawns() const
Return automatic spawns dropped by budget during the last update.
Definition Particles.cpp:145
int getLastRenderedParticles() const
Return particles submitted during the last render.
Definition Particles.cpp:148
std::string getLastEffectError() const
Return the latest effect asset parse or load error.
Definition Particles.h:45
int getLastBudgetSkippedEmitters() const
Return emitters skipped by quality or capacity budgets.
Definition Particles.cpp:139
float getLastSimulationMs() const
Return CPU simulation wall time in milliseconds.
Definition Particles.cpp:149
int getLastSpawnedParticles() const
Return particles spawned during the last update.
Definition Particles.cpp:144
void update(float dt)
Legacy seconds facade; invalid conversion/step is explicitly consumed.
Definition Particles.cpp:80
int getLastCulledEmitters() const
Return emitters skipped by culling during the last update.
Definition Particles.cpp:138
int getMaxSimulatedEmitters() const
Return the per-frame simulated-emitter cap, or zero when unlimited.
Definition Particles.cpp:129
int getMaxParticles() const
Return the global live-particle soft cap, or zero when unlimited.
Definition Particles.cpp:127
int getLastGpuResidentParticles() const
Return the CPU lifetime estimate for resident GPU particles.
Definition Particles.cpp:147
ParticleEffect * newEffectFromText(const std::string &json)
Create a versioned multi-emitter effect from JSON text.
Definition Particles.cpp:70
int getLastSimulatedEmitters() const
Return emitters simulated during the last update.
Definition Particles.cpp:137
int count() const
Return candidate count including reserved index zero.
Definition PcgMaterialSelector.h:18
Definition ParticleGraph.h:53
ParticleBudgetConfig & particleBudgetConfig()
Mutable process-wide scalability configuration.
Definition ParticleRuntime.cpp:10
bool loadConfigFile(ParticleEmitter *emitter, const std::string &path, std::string *error)
Read path via Filesystem, apply, and bind Resource.path + modtime for hot reload. Returns false if fi...
Definition ParticleConfig.cpp:475
Result< void > applyGroundParticleCulling(ParticleEmitter *emitter, int playerTag, int visitorTag, bool entered, bool exited)
Apply one Pcg GroundParticlesCulling trigger event to a caller-owned emitter.
Definition GroundParticleCulling.cpp:7
const ParticleFrameStats & particleFrameStats()
Statistics for the most recently processed particle frame.
Definition ParticleRuntime.cpp:11
Result< void > applyUnderwaterParticles(ParticleEmitter *ambience, ParticleEmitter *transition, bool active, bool transitionFx, bool entered, bool exited)
Apply Pcg underwater ambience and transition visibility to particle emitters.
Definition UnderwaterParticles.cpp:7
void registerParticlesCapabilities()
Registers particles capabilities.
Definition ParticlesCapabilities.cpp:469
Result< void > applyUnderwaterSurfaceVfx(ParticleEmitter *surfaceVfx, bool active)
Apply Pcg's inverse underwater state to one surface weather or VFX emitter.
Definition UnderwaterParticles.cpp:29
Result< int > shiftWorldSpaceParticles(ParticleEmitter *emitter, float shiftX, float shiftY)
Shift live world-space particles after a floating-origin rebase.
Definition FloatingPointFixParticles.cpp:9
void unregisterParticlesAttackVfxExecutor()
Unregisters particles attack vfx executor.
Definition ParticlesAttackVfx.cpp:169
ssq::Table projectResult(HSQUIRRELVM vm, Result< void > &&result)
Consume and project a void native Result using the common schema.
Definition SquirrelBinding.cpp:470
@ Applied
int maxSimulatedEmitters
Maximum emitters simulated per frame; zero is unlimited.
Definition ParticleRuntime.h:16
int maxParticles
Soft cap for live particles across all emitters; zero is unlimited.
Definition ParticleRuntime.h:14
int renderedParticles
Definition ParticleRuntime.h:38
int emittersSimulated
Definition ParticleRuntime.h:27
int gpuResidentParticles
Definition ParticleRuntime.h:37
int gpuResidentEmitters
Definition ParticleRuntime.h:36
int particlesSpawned
Definition ParticleRuntime.h:33