载入中...
搜索中...
未找到
TextureRecipeTarget.h
浏览该文件的文档.
1#pragma once
5#include <cstdint>
6#include <memory>
7#include <string>
8namespace eve::image { class ImageData; }
9namespace eve::procgen_editing {
10using namespace eve::editing;
14using editing::Result;
17 public virtual IEditableTarget,
20 public IPropertyProvider {
21public:
23 TextureRecipeTarget(std::string id, std::string recipe);
25 TargetId targetId() const override { return TargetId(id_); }
27 TargetDescriptor describe() const override;
29 void* queryCapability(const CapabilityId&) override;
31 Result<void> applyDomainOperation(const DomainOperation&) override;
33 std::unique_ptr<IDomainOperationTarget> cloneDomainState() const override;
35 Result<void> commitDomainState(std::unique_ptr<IDomainOperationTarget>) override;
37 eve::Result<eve::Revision> currentRevision(const SelectionSnapshot&) const override;
39 PropertySchema schema(const SelectionSnapshot&) const override;
41 PropertyReadResult read(const SelectionSnapshot&, const PropertyPath&) const override;
44 const EditorValue&, PropertySetMode) const override;
46 Result<DomainOperation> makeReset(const SelectionSnapshot&, const PropertyPath&) const override;
48 const std::string& recipe() const { return recipe_; }
50 const EditorValue::Object& values() const { return values_; }
52 std::vector<EditorDiagnostic> validate() const;
54 EditorValue snapshotValue() const;
56 Result<void> loadSnapshot(const EditorValue&);
57private:
59 bool matches(const SelectionSnapshot&) const;
61 Result<void> initializeDefaults();
63 EditorValue contentValue() const;
64 std::string id_, recipe_;
65 EditorValue::Object values_;
66};
71public:
79 const image::ImageData* image() const { return image_.get(); }
81 editing::Revision revision() const { return revision_; }
82private:
83 std::unique_ptr<image::ImageData> image_;
84 editing::Revision revision_=0;
85};
86} // namespace eve::procgen_editing
#define EVENGINE_API_ORCHESTRATION
Definition Export.h:111
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
Dirty region and revision shared by every editable document target.
Optional candidate/publish capability for atomic domain operations.
Editable-target capability that applies owning domain operations.
IEditableTarget public API.
UI-independent property access for an immutable selection snapshot.
Dotted property path (layout.size) compared and persisted as text.
Definition EditingIds.h:78
Deterministic owning value tree shared by authoring hosts.
std::map< std::string, Value > Object
Represents raw pixel data.
Definition ImageData.h:38
Generates a candidate image and publishes it only after complete success.
TextureRecipePreviewRuntime()
Texture recipe preview runtime.
const image::ImageData * image() const
Access the generated image.
~TextureRecipePreviewRuntime()
Texture recipe preview runtime.
Revisioned, schema-driven procedural texture recipe asset.
TargetId targetId() const override
Target id.
const std::string & recipe() const
Recipe.
const EditorValue::Object & values() const
Values.
std::uint64_t Revision
eve::Diagnostic Diagnostic
PropertySetMode
PropertySetMode public API.
eve::StatusCode Status
editing::Diagnostic EditorDiagnostic
StatusCode
Stable outcome category for an operation.
Definition Status.h:27
DomainOperation public API.
PropertyReadResult public API.
EVENGINE_API_PLATFORM public API.
SelectionSnapshot public API.
Stable discovery metadata exposed by every editable target.
TextureRecipePreviewArtifact public API.