载入中...
搜索中...
未找到
MaterialGraph.cpp
浏览该文件的文档.
10GraphConnectionDecision MaterialGraphDomain::canConnect(const GraphPinRecord& from, const GraphPinRecord& to) const {
33 static_cast<std::size_t>(std::count_if(graph.nodes.begin(), graph.nodes.end(), [](const GraphNodeRecord& node) {
41 eve::DiagnosticCode::Failed, RuleId("editor.material.compile-failed"), DiagnosticSeverity::Error,
52Result<TaskId> MaterialEditorService::compile(const DocumentId& document, const GraphDocumentData& graph,
62Result<TaskId> MaterialEditorService::compileAsync(const DocumentId& document, GraphDocumentData graph,
104 EditorStatus::NotFound, RuleId("editor.material.task-not-found"), "Material compile task does not exist");
111 if (snapshot.value().state == TaskState::Queued || snapshot.value().state == TaskState::Running)
128 const auto* statusValue = status == object->end() ? nullptr : status->second.getIf<std::int64_t>();
129 const auto* revisionValue = revision == object->end() ? nullptr : revision->second.getIf<std::int64_t>();
143Result<void> MaterialEditorService::publishPreview(const DocumentId& document, Revision currentRevision,
147 return eve::editing::failed<void>(EditorStatus::NotFound, RuleId("editor.material.task-not-found"),
151 return eve::editing::failed<void>(EditorStatus::Conflict, RuleId("editor.material.compile-pending"),
154 return eve::editing::failed<void>(EditorStatus::Failed, RuleId("editor.material.compile-result-unavailable"),
158 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.material.compile-not-successful"),
const std::vector< Diagnostic > & diagnostics() const noexcept
Inspect all diagnostics; this counts as checking the Result.
Definition Result.h:283
const Status & status() const noexcept
Inspect the structured operation status.
Definition Result.h:269
static Status success(StatusCode code=StatusCode::Ok)
Construct a successful status with an explicit non-error outcome.
Definition Status.h:81
Cooperative cancellation and progress API passed to worker code.
Definition EditingTaskService.h:34
Single-worker background queue shared by editor domains.
Definition EditingTaskService.h:62
Result< TaskId > submit(std::string name, Work work)
Queue background work and return its stable task identity.
Definition EditingTaskService.cpp:40
Result< TaskId > compile(const DocumentId &document, const GraphDocumentData &graph, const MaterialGraphDomain &domain)
Compile and cache a task result.
Definition MaterialGraph.cpp:52
Result< TaskId > compileAsync(const DocumentId &document, GraphDocumentData graph, const MaterialGraphDomain &domain, TaskService &tasks)
Queue a cancellable compile using an immutable graph snapshot.
Definition MaterialGraph.cpp:62
Minimal material domain with typed pin validation and deterministic compile artifacts.
Definition MaterialGraph.h:60
GraphConnectionDecision canConnect(const GraphPinRecord &from, const GraphPinRecord &to) const override
Can connect.
Definition MaterialGraph.cpp:10
MaterialCompileResult compile(const GraphDocumentData &graph) const
Compile a material graph without mutating preview state.
Definition MaterialGraph.cpp:22
Diagnostic ruleDiagnostic(eve::DiagnosticCode code, RuleId rule, DiagnosticSeverity severity, std::string message)
Build a common diagnostic carrying an open editing rule identity.
Definition EditingResult.h:25
@ InvalidArgument
@ Failed
detail::StrongUint64< detail::RevisionTag > Revision
Monotonic content/state revision used for optimistic-concurrency checks.
Definition Revision.h:13
Result of domain-specific connection validation.
Definition EditingGraph.h:50
std::vector< Diagnostic > diagnostics
Definition EditingGraph.h:52
Immutable graph document value sent to a domain compiler.
Definition EditingGraph.h:40
Generic graph node independent of its domain.
Definition EditingGraph.h:25
Material graph compilation value; artifact is published separately.
Definition MaterialGraph.h:52
std::string shaderArtifact
Definition MaterialGraph.h:55
std::vector< EditorDiagnostic > diagnostics
Definition MaterialGraph.h:56
Revision documentRevision
Definition MaterialGraph.h:54
EditorStatus status
Definition MaterialGraph.h:53