Add FxNode render graph playground
Add persistent render graph loadouts, grouped node authoring, code-appending apply behavior, explicit playground lighting, and resilient worker startup. Amp-Thread-ID: https://ampcode.com/threads/T-01a033d4-0e44-708e-af0e-6166283416ff Co-authored-by: Heaust Azure <heaust.azure@gmail.com>
This commit is contained in:
Vendored
+27
-15
@@ -69,6 +69,7 @@ declare module "@yawn/handles" {
|
||||
|
||||
export interface SceneOptions {
|
||||
arenaBytes?: number;
|
||||
clearColor?: ArrayLike<number>;
|
||||
debug?: boolean;
|
||||
fps?: number;
|
||||
hdr?: boolean;
|
||||
@@ -78,6 +79,7 @@ declare module "@yawn/handles" {
|
||||
readonly core: YawnCore;
|
||||
readonly ready: Promise<this>;
|
||||
readonly hdr: boolean;
|
||||
readonly clearColor: readonly [number, number, number, number];
|
||||
array(name: string): SharedRows;
|
||||
ensureRows(
|
||||
name: string,
|
||||
@@ -88,6 +90,9 @@ declare module "@yawn/handles" {
|
||||
reserve(additional: { nodes?: number; materials?: number }): Promise<void>;
|
||||
batchWrites<T>(operation: () => T): T;
|
||||
batchGraphUpdates<T>(operation: () => T | Promise<T>): Promise<T>;
|
||||
compileRenderGraph(serialized: string): Promise<string>;
|
||||
setLoadout(id: string): Promise<void>;
|
||||
getRenderGraph(): Promise<object>;
|
||||
dispose(): void;
|
||||
}
|
||||
|
||||
@@ -140,12 +145,7 @@ declare module "@yawn/handles" {
|
||||
}
|
||||
|
||||
export type VertexKind =
|
||||
| "positions"
|
||||
| "normals"
|
||||
| "tangents"
|
||||
| "uvs"
|
||||
| "colors"
|
||||
| "indices";
|
||||
"positions" | "normals" | "tangents" | "uvs" | "colors" | "indices";
|
||||
export interface MeshOptions extends NodeOptions {
|
||||
geometryId?: number;
|
||||
material?: PBRMaterial;
|
||||
@@ -167,8 +167,10 @@ declare module "@yawn/handles" {
|
||||
): Promise<this>;
|
||||
}
|
||||
|
||||
export interface CubeOptions
|
||||
extends Omit<MeshOptions, "geometryId" | "vertexData"> {
|
||||
export interface CubeOptions extends Omit<
|
||||
MeshOptions,
|
||||
"geometryId" | "vertexData"
|
||||
> {
|
||||
size?: number;
|
||||
width?: number;
|
||||
height?: number;
|
||||
@@ -177,16 +179,20 @@ declare module "@yawn/handles" {
|
||||
export class Cube extends Mesh {
|
||||
constructor(scene: Scene, options?: CubeOptions);
|
||||
}
|
||||
export interface IcosphereOptions
|
||||
extends Omit<MeshOptions, "geometryId" | "vertexData"> {
|
||||
export interface IcosphereOptions extends Omit<
|
||||
MeshOptions,
|
||||
"geometryId" | "vertexData"
|
||||
> {
|
||||
radius?: number;
|
||||
subdivisions?: number;
|
||||
}
|
||||
export class Icosphere extends Mesh {
|
||||
constructor(scene: Scene, options?: IcosphereOptions);
|
||||
}
|
||||
export interface PlaneOptions
|
||||
extends Omit<MeshOptions, "geometryId" | "vertexData"> {
|
||||
export interface PlaneOptions extends Omit<
|
||||
MeshOptions,
|
||||
"geometryId" | "vertexData"
|
||||
> {
|
||||
size?: number;
|
||||
width?: number;
|
||||
depth?: number;
|
||||
@@ -194,8 +200,10 @@ declare module "@yawn/handles" {
|
||||
export class Plane extends Mesh {
|
||||
constructor(scene: Scene, options?: PlaneOptions);
|
||||
}
|
||||
export interface SphereOptions
|
||||
extends Omit<MeshOptions, "geometryId" | "vertexData"> {
|
||||
export interface SphereOptions extends Omit<
|
||||
MeshOptions,
|
||||
"geometryId" | "vertexData"
|
||||
> {
|
||||
radius?: number;
|
||||
segments?: number;
|
||||
rings?: number;
|
||||
@@ -267,9 +275,13 @@ declare module "@yawn/handles" {
|
||||
intensity?: number;
|
||||
}
|
||||
export class PointLight extends Node {
|
||||
constructor(scene: Scene, options?: LightOptions & { range?: number });
|
||||
constructor(
|
||||
scene: Scene,
|
||||
options?: LightOptions & { range?: number; radius?: number },
|
||||
);
|
||||
intensity: number;
|
||||
range: number;
|
||||
radius: number;
|
||||
}
|
||||
export class AmbientLight extends Node {
|
||||
constructor(scene: Scene, options?: LightOptions);
|
||||
|
||||
Reference in New Issue
Block a user