载入中...
搜索中...
未找到
ParticleOffscreen.cpp
浏览该文件的文档.
2
4
7 if (!previews_ || (!draw_ && !presenter_) || request.previewId.empty())
8 return eve::editing::failed<OffscreenPreviewArtifact>(EditorStatus::Rejected,
9 RuleId("editor.particles.offscreen-renderer"), "Particle preview requires identity, service and draw callback");
11 ParticleGraphCompileResult compiled = domain.compile(request.graph);
12 if (compiled.status != EditorStatus::Applied) {
14 eve::Status(compiled.status, compiled.diagnostics));
15 }
16 ParticleGraphPreviewResult estimate = domain.preview(request.graph, request.seconds,
17 request.fixedStep, request.particleBudget);
18 if (estimate.status != EditorStatus::Applied) {
20 eve::Status(estimate.status, estimate.diagnostics));
21 }
23 offscreen.previewId = request.previewId; offscreen.sourceRevision = request.graph.revision;
24 offscreen.width = request.width; offscreen.height = request.height;
25 return previews_->render(offscreen, [&](graphics::Graphics* graphics, graphics::Canvas* canvas) {
26 if (presenter_) return presenter_->draw(request, compiled, estimate, graphics, canvas);
27 return draw_(compiled, estimate, graphics, canvas);
28 });
29}
30
31} // namespace eve::particles_graphics_editing
const GltfImportRequest & request
Move-only operation result carrying either a value or Status.
Definition Result.h:155
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
Structured status and zero or more diagnostics for an operation.
Definition Status.h:68
Canvas public API.
Definition Canvas.h:17
Result< OffscreenPreviewArtifact > render(const OffscreenPreviewRequest &request, const DrawCallback &draw, int maximumDimension=4096, std::uint64_t maximumPixels=16777216)
Clear, draw and read back one isolated offscreen Canvas.
particles.emitter graph domain reflecting core emitter modules.
ParticleGraphPreviewResult preview(const GraphDocumentData &graph, double seconds, double fixedStep=1.0/60.0, int particleBudget=100000, int spawnBudgetPerFrame=0) const
Estimate a deterministic preview and enforce particle/frame budgets.
ParticleGraphCompileResult compile(const GraphDocumentData &graph) const
Compile one acyclic module chain into a runtime-neutral configuration object.
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.
Result< OffscreenPreviewArtifact > render(const ParticleOffscreenPreviewRequest &request) const
Renders .
Immutable request for one isolated Canvas render and CPU readback.
Validated particle configuration compiled from a module graph.
std::vector< EditorDiagnostic > diagnostics
Deterministic, revision-tagged particle preview estimate.
std::vector< EditorDiagnostic > diagnostics