载入中...
搜索中...
未找到
ParticleOffscreen.h
浏览该文件的文档.
1#pragma once
2
5
6#include <functional>
7
9using namespace eve::particles_editing;
12using editing::Result;
16
18
21public:
23 virtual ~IParticleOffscreenPresenter() = default;
26 const ParticleGraphCompileResult& compiled,
27 const ParticleGraphPreviewResult& estimate,
28 graphics::Graphics* graphics,
29 graphics::Canvas* canvas) = 0;
30};
31
36 int width = 512;
37 int height = 512;
38 double seconds = 1.0;
39 double fixedStep = 1.0 / 60.0;
40 int particleBudget = 100000;
41};
42
45public:
46 using DrawCallback = std::function<Result<void>(const ParticleGraphCompileResult&,
51 : previews_(previews), draw_(std::move(draw)) {}
56 : previews_(previews), presenter_(presenter) {}
59private:
60 GraphicsOffscreenPreviewService* previews_ = nullptr;
61 DrawCallback draw_;
62 IParticleOffscreenPresenter* presenter_ = nullptr;
63};
64
67public:
72 : textures_(std::move(textures)) {}
74 Result<void> draw(const ParticleOffscreenPreviewRequest& request,
75 const ParticleGraphCompileResult& compiled,
76 const ParticleGraphPreviewResult& estimate,
77 graphics::Graphics* graphics,
78 graphics::Canvas* canvas) override;
79private:
80 TextureResolver textures_;
81};
82
83} // namespace eve::particles_graphics_editing
#define EVENGINE_API_ORCHESTRATION
Definition Export.h:111
const GltfImportRequest & request
MeshVfxBatchedDraw draw
Move-only operation result carrying either a value or Status.
Definition Result.h:155
UUID-backed identifier adapter for legacy textual boundaries.
Definition Identity.h:314
Deterministic owning value tree shared by authoring hosts.
Canvas public API.
Definition Canvas.h:17
Concrete Graphics/Canvas preview bridge with revision-safe artifact storage.
std::function< graphics::Texture *(const std::string &asset)> TextureResolver
Presentation boundary for an isolated, compiled particle preview.
virtual ~IParticleOffscreenPresenter()=default
Releases IParticleOffscreenPresenter resources.
virtual Result< void > draw(const ParticleOffscreenPreviewRequest &request, const ParticleGraphCompileResult &compiled, const ParticleGraphPreviewResult &estimate, graphics::Graphics *graphics, graphics::Canvas *canvas)=0
Simulate and draw only the requested graph into the active Canvas.
Real ParticleEmitter presenter with deterministic stepping and isolated drawing.
ParticleEmitterOffscreenPresenter(TextureResolver textures={})
Particle emitter offscreen presenter.
ParticleGraphRuntimeBuilder::TextureResolver TextureResolver
Compiles, budget-checks and rasterizes particle graph previews offscreen.
ParticleOffscreenPreviewService(GraphicsOffscreenPreviewService *previews, DrawCallback draw)
Particle offscreen preview service.
std::function< Result< void >(const ParticleGraphCompileResult &, const ParticleGraphPreviewResult &, graphics::Graphics *, graphics::Canvas *)> DrawCallback
ParticleOffscreenPreviewService(GraphicsOffscreenPreviewService *previews, IParticleOffscreenPresenter *presenter)
Particle offscreen preview service.
StrongId< StableIdTag > StableId
Definition EditingIds.h:64
StrongId< RuleIdTag > RuleId
Definition EditingIds.h:60
eve::StatusCode Status
StatusCode
Stable outcome category for an operation.
Definition Status.h:27
Immutable graph document value sent to a domain compiler.
In-memory artifact metadata returned after synchronous readback.
Immutable request for one isolated Canvas render and CPU readback.
Validated particle configuration compiled from a module graph.
Deterministic, revision-tagged particle preview estimate.