载入中...
搜索中...
未找到
ParticleEmitterPool.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4#include "common/Result.h"
5
6#include <cstddef>
7#include <vector>
8
9namespace eve::particles {
10
11class ParticleEmitter;
12
25public:
30
33
38 [[nodiscard]] Result<ParticleEmitter*> acquire(int minBuffer = 64);
39
44 [[nodiscard]] Result<void> recycle(ParticleEmitter* emitter);
45
47 void clear();
48
50 [[nodiscard]] std::size_t idleCount() const { return idle_.size(); }
51
52private:
53 std::vector<ParticleEmitter*> idle_;
54};
55
56} // namespace eve::particles
#define EVENGINE_API_DOMAINS
Definition Export.h:110
Move-only, checked operation results for the common layer.
std::unique_ptr< TrailEmitter > emitter
Move-only operation result carrying either a value or Status.
Definition Result.h:155
Soft pool of idle emitters for short-lived gameplay VFX.
ParticleEmitterPool & operator=(const ParticleEmitterPool &)=delete
ParticleEmitterPool()=default
Particle emitter pool.
ParticleEmitterPool(const ParticleEmitterPool &)=delete
std::size_t idleCount() const
Number of idle emitters currently retained.
ECS emitter entity. Script configures components; ParticleSimSystem / ParticleRenderSystem drive per-...