This commit is contained in:
parent
bdea14fc20
commit
fb2f6079cc
16 changed files with 508 additions and 9 deletions
36
interfaces/Catcrafts-Demo.cppm
Normal file
36
interfaces/Catcrafts-Demo.cppm
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
/*
|
||||
catcrafts.net
|
||||
Copyright (C) 2026 Catcrafts
|
||||
|
||||
The source code of this website is made available for viewing purposes only.
|
||||
No permission is granted to copy, modify, distribute, or create derivative works.
|
||||
*/
|
||||
|
||||
export module Catcrafts:Demo;
|
||||
import Crafter.Graphics;
|
||||
import std;
|
||||
using namespace Crafter;
|
||||
|
||||
export namespace Catcrafts {
|
||||
// DOM element id that the ray-traced WebGPU demo renders into. The
|
||||
// blog post embeds a <div> with this id; MountDemo() reparents the
|
||||
// Crafter.Graphics render canvas into it via WebGPU::SetCanvasMount.
|
||||
inline constexpr std::string_view kDemoMountId = "webgpu-demo";
|
||||
|
||||
// Build the ray-tracing pipeline + scene once and start the render
|
||||
// loop plumbing. Runs the window's StartInit()/FinishInit(), so call
|
||||
// it from main() right after the Window is constructed and before the
|
||||
// page chrome / routes are built. The canvas starts detached + hidden;
|
||||
// nothing is traced until MountDemo() is called.
|
||||
void SetupDemo(Window& window);
|
||||
|
||||
// Reparent the render canvas into #webgpu-demo and begin tracing. Call
|
||||
// only after the element exists in the DOM (i.e. right after the post's
|
||||
// innerHTML has been set). Idempotent.
|
||||
void MountDemo();
|
||||
|
||||
// Stop tracing and detach + hide the canvas, leaving a plain DOM page.
|
||||
// Call before any route re-render that would replace #webgpu-demo.
|
||||
// Safe to call when the demo is not mounted.
|
||||
void UnmountDemo();
|
||||
}
|
||||
Loading…
Reference in a new issue