Add Chromium-only Blender WebEngine parity work

This commit is contained in:
mes123456
2026-08-12 04:47:48 -04:00
commit 9fd26010f6
18225 changed files with 11622124 additions and 0 deletions

17
web/protocol/non-mesh.ts Normal file
View File

@@ -0,0 +1,17 @@
import { blockedGate, capabilityIssue, readyGate, type CapabilityGateResult } from "./capability-gates";
import type { NonMeshDataIR } from "./scene-ir";
const previewableTypes = new Set<NonMeshDataIR["type"]>(["CURVE", "SURFACE", "FONT", "METABALL", "POINT_CLOUD", "CURVES", "HAIR"]);
export function gateNonMeshData(data: NonMeshDataIR): CapabilityGateResult {
const hasSourceGeometry = data.geometryStatus === "available" || data.geometryStatus === "binary";
if ((hasSourceGeometry || (data.evaluatedGeometry?.length ?? 0) > 0) && previewableTypes.has(data.type)) {
const representation = (data.evaluatedGeometry?.length ?? 0) > 0 ? "EVALUATED" : data.geometryStatus === "binary" ? "BINARY" : "PREVIEW";
return readyGate("N-015", `NON_MESH_${data.type}_${representation}`);
}
const code = data.errorCode ?? (data.type === "VOLUME" ? "NON_MESH_RESOURCE_MISSING" : "NON_MESH_DATA_UNSUPPORTED");
const message = data.geometryStatus === "blocked"
? `${data.type} data is blocked: ${code}`
: `${data.type} data is available only as a summary; editable/evaluated preview is not supported`;
return blockedGate("N-015", `NON_MESH_${data.type}`, [capabilityIssue(code, message, `nonMeshData.${data.id}`)]);
}