added optional web component UI control
This commit is contained in:
@@ -66,12 +66,14 @@ int main()
|
||||
|
||||
const std::filesystem::path root = MakeTestRoot();
|
||||
WriteFile(root / "solid-color" / "shader.slang", "float4 shadeVideo(float2 uv) { return float4(uv, 0.0, 1.0); }\n");
|
||||
WriteFile(root / "solid-color" / "ui" / "controls.js", "customElements.define('solid-color-controls', class extends HTMLElement {});\n");
|
||||
WriteFile(root / "solid-color" / "shader.json", R"({
|
||||
"id": "solid-color",
|
||||
"name": "Solid Color",
|
||||
"description": "A single color shader.",
|
||||
"category": "Generator",
|
||||
"entryPoint": "shadeVideo",
|
||||
"ui": { "type": "webComponent", "entry": "ui/controls.js", "tag": "solid-color-controls" },
|
||||
"parameters": [
|
||||
{
|
||||
"id": "color",
|
||||
@@ -120,6 +122,7 @@ int main()
|
||||
const std::string json = RenderCadenceCompositor::RuntimeStateToJson(stateInput);
|
||||
|
||||
ExpectContains(json, "\"shaders\":[{\"id\":\"solid-color\"", "state JSON should include supported shaders");
|
||||
ExpectContains(json, "\"ui\":{\"type\":\"webComponent\",\"entry\":\"ui/controls.js\",\"tag\":\"solid-color-controls\",\"assetUrl\":\"/shader-assets/solid-color/ui/controls.js\"}", "state JSON should expose shader custom UI metadata");
|
||||
ExpectContains(json, "\"layerCount\":1", "state JSON should expose the display layer count");
|
||||
ExpectContains(json, "\"layers\":[{\"id\":\"runtime-layer-1\"", "state JSON should expose the active display layer");
|
||||
ExpectContains(json, "\"parameters\":[{\"id\":\"color\"", "state JSON should expose active shader parameters");
|
||||
|
||||
Reference in New Issue
Block a user