feat(web): switch to implementation-first capability wave
This commit is contained in:
@@ -11,6 +11,7 @@ import { normalizeProjectAssetPath } from "../../../protocol/asset-path";
|
||||
import { cloneMeshGeometryBuffers, diffMeshGeometryBuffers } from "../../../protocol/mesh-geometry-delta";
|
||||
import { gateSculptCapability, parseSculptMeshAttributes, parseSculptStroke } from "../../../protocol/sculpt";
|
||||
import { gateGeometryNodeGraph } from "../../../protocol/geometry-nodes";
|
||||
import { parsePhysicsSimulationManifest } from "../../../protocol/physics-simulation";
|
||||
import { gateShaderGraph } from "../../../protocol/shader-graph";
|
||||
import { compileShaderGraph, type ShaderCompileReport } from "../../../protocol/shader-compiler";
|
||||
import { gateNlaTracks, moveNlaStrip } from "../../../protocol/nla";
|
||||
@@ -566,7 +567,17 @@ function assertFutureCapability(payload: Extract<WebEngineRequest["command"], {
|
||||
const ownerObjectId = snapshot?.nodes.find((node) => node.dataId === payload.meshId)?.id;
|
||||
const gate = gateGeometryNodeGraph(payload.graph, { availableResourceIds, blockedResourceIds, ownerObjectId });
|
||||
if (gate.status === "BLOCKED") rejectCapabilityGate(gate);
|
||||
throw report("CAPABILITY_MISSING", "N-012 Geometry Nodes evaluator is not enabled in the WebEngine Main writer");
|
||||
return;
|
||||
}
|
||||
case "setPhysicsSimulation": {
|
||||
try {
|
||||
parsePhysicsSimulationManifest(payload.manifest);
|
||||
return;
|
||||
}
|
||||
catch (error) {
|
||||
reportProtocolError(error, "PHYSICS_MANIFEST_INVALID");
|
||||
}
|
||||
return;
|
||||
}
|
||||
case "setShaderGraph": {
|
||||
const gate = gateShaderGraph(payload.graph, {
|
||||
|
||||
Reference in New Issue
Block a user