载入中...
搜索中...
未找到
EditorStylizeOffscreen.cpp
浏览该文件的文档.
2
3#include <utility>
4
5namespace eve::editor {
6
9 const StableId& previewId, int width, int height) const {
10 if (!previews_ || !graphics_ || !source || previewId.empty())
11 return eve::editing::failed<OffscreenPreviewArtifact>(
12 EditorStatus::Rejected, RuleId("editor.stylize.offscreen"),
13 "Stylize preview requires Canvas, Graphics, source and identity");
14 StylizeRecipeRuntime candidate;
15 auto published = candidate.publish(document, graphics_);
16 if (!published.ok())
17 return Result<OffscreenPreviewArtifact>::failure(published.status());
19 request.previewId = previewId;
20 request.sourceRevision = document.revision();
21 request.width = width;
22 request.height = height;
23 return previews_->render(request, [&](graphics::Graphics* graphics, graphics::Canvas* canvas) {
24 return candidate.apply(graphics, source, canvas, document.revision());
25 });
26}
27
28} // namespace eve::editor
const GltfImportRequest & request
std::uint32_t height
std::uint32_t width
const UnitySourceAsset & source
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
UUID-backed identifier adapter for legacy textual boundaries.
Definition Identity.h:314
bool empty() const noexcept
True when no compatibility spelling has been assigned.
Definition Identity.h:374
std::uint64_t revision() const override
Return the current revision.
Result< OffscreenPreviewArtifact > render(const StylizeRecipeTarget &document, graphics::Texture *source, const StableId &previewId, int width, int height) const
Renders .
Canvas public API.
Definition Canvas.h:17
GPU texture created via Graphics::newTexture. Owns GPU resources through an opaque backend handle.
Definition Texture.h:18
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.
Compiled, owned StyleRecipe generation used for live and offscreen preview.
Result< void > apply(graphics::Graphics *graphics, graphics::Texture *source, graphics::Canvas *destination, Revision expectedRevision) const
Apply the active post recipe into an explicit destination Canvas.
Result< void > publish(const StylizeRecipeTarget &document, graphics::Graphics *graphics)
Compile a complete candidate before replacing the active generation.
Serializable ordered style recipe with dynamic parameter Inspector.
eve::editing::RuleId RuleId
Definition EditorIds.h:32
Immutable request for one isolated Canvas render and CPU readback.