载入中...
搜索中...
未找到
StylizeTarget.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
8
9#include <map>
10#include <memory>
11#include <string>
12#include <vector>
13
14namespace eve::graphics {
15class Graphics;
16class Texture;
17class Canvas;
18} // namespace eve::graphics
19namespace eve::stylize {
20class StyleInstance;
21class StyleRecipe;
22} // namespace eve::stylize
23
24namespace eve::stylize_editing {
25
28using editing::DomainOperation;
29using editing::EditRegion;
30using editing::IDomainOperationTarget;
31using editing::IDomainOperationTargetStaging;
32using editing::IEditableTarget;
33using editing::IPropertyProvider;
35using editing::PropertyDescriptor;
37using editing::PropertyPath;
38using editing::PropertyReadResult;
40using editing::PropertySchema;
44using editing::RuleId;
45using editing::SelectionSnapshot;
46using editing::TargetDescriptor;
48using editing::Result;
52
55 ObjectId id;
56 std::string style;
57 bool enabled = true;
58 int priority = 0;
59 std::map<std::string, double> overrides;
60};
61
64 public virtual IEditableTarget,
67 public IPropertyProvider {
68public:
70 explicit StylizeRecipeTarget(std::string id);
72 TargetId targetId() const override { return TargetId(id_); }
74 TargetDescriptor describe() const override;
77 void* queryCapability(const CapabilityId& capability) override;
79 Result<void> applyDomainOperation(const DomainOperation& operation) override;
81 std::unique_ptr<IDomainOperationTarget> cloneDomainState() const override;
83 Result<void> commitDomainState(std::unique_ptr<IDomainOperationTarget> candidate) override;
85 eve::Result<eve::Revision> currentRevision(const SelectionSnapshot& selection) const override;
87 PropertySchema schema(const SelectionSnapshot& selection) const override;
89 PropertyReadResult read(const SelectionSnapshot& selection, const PropertyPath& path) const override;
91 Result<DomainOperation> makeSet(const SelectionSnapshot& selection, const PropertyPath& path,
92 const EditorValue& value, PropertySetMode mode) const override;
94 Result<DomainOperation> makeReset(const SelectionSnapshot& selection,
95 const PropertyPath& path) const override;
97 Result<DomainOperation> makeCreate(const ObjectId& id, const std::string& style) const;
99 Result<DomainOperation> makeDelete(const ObjectId& id) const;
101 Result<DomainOperation> makeMove(const ObjectId& id, std::size_t index) const;
103 std::vector<StylizePassValue> passes() const;
105 std::vector<EditorDiagnostic> validate() const;
107 EditorValue snapshotValue() const;
109 Result<void> loadSnapshot(const EditorValue& snapshot);
110
111private:
113 bool matches(const SelectionSnapshot& selection) const;
115 EditorValue contentValue() const;
117 Result<DomainOperation> replacement(EditorValue payload, std::string property = {}) const;
118 std::string id_;
119 std::map<ObjectId, StylizePassValue> passes_;
120 std::vector<ObjectId> order_;
121};
122
125public:
131 Result<void> publish(const StylizeRecipeTarget& document, graphics::Graphics* graphics);
134 Revision expectedRevision) const;
136 Revision revision() const { return revision_; }
137
138private:
139 std::vector<std::unique_ptr<stylize::StyleInstance>> instances_;
140 std::unique_ptr<stylize::StyleRecipe> recipe_;
141 graphics::Graphics* graphics_ = nullptr;
142 Revision revision_ = 0;
143};
144
145} // namespace eve::stylize_editing
ActionParameterOperation operation
double value
Value::Object payload
#define EVENGINE_API_DOMAINS
Definition Export.h:110
std::string path
Definition PlayHost.cpp:110
uint32_t index
const UnitySourceAsset & source
A structured explanation of a failed, degraded, or noteworthy result.
Definition Diagnostic.h:94
Move-only operation result carrying either a value or Status.
Definition Result.h:155
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.
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
Compiled, owned StyleRecipe generation used for live and offscreen preview.
StylizeRecipeRuntime()
Stylize recipe runtime.
~StylizeRecipeRuntime()
Stylize recipe runtime.
Revision revision() const
Revision of the compiled generation, or zero before publication.
Serializable ordered style recipe with dynamic parameter Inspector.
TargetId targetId() const override
Target id.
eve::Severity DiagnosticSeverity
std::uint64_t Revision
StrongId< TargetIdTag > TargetId
Definition EditingIds.h:57
eve::Diagnostic Diagnostic
StrongId< ObjectIdTag > ObjectId
Definition EditingIds.h:65
PropertyType
PropertyType public API.
StrongId< RuleIdTag > RuleId
Definition EditingIds.h:60
PropertySetMode
PropertySetMode public API.
PropertyFlag
PropertyFlag public API.
eve::StatusCode Status
StrongId< CapabilityIdTag > CapabilityId
Definition EditingIds.h:61
eve::Result< T > Result
PropertyReadState
PropertyReadState public API.
卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局...
Definition Animation.h:25
StatusCode
Stable outcome category for an operation.
Definition Status.h:27
detail::StrongUint64< detail::RevisionTag > Revision
Monotonic content/state revision used for optimistic-concurrency checks.
Definition Revision.h:13
DomainOperation public API.
PropertyReadResult public API.
EVENGINE_API_PLATFORM public API.
SelectionSnapshot public API.
Stable discovery metadata exposed by every editable target.
Stable pass in an authored stylization recipe.
std::map< std::string, double > overrides