@vib3code/sdk 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +118 -0
- package/DOCS/BLUEPRINT_EXECUTION_PLAN_2026-01-07.md +34 -0
- package/DOCS/CI_TESTING.md +38 -0
- package/DOCS/CLI_ONBOARDING.md +75 -0
- package/DOCS/CONTROL_REFERENCE.md +64 -0
- package/DOCS/DEV_TRACK_ANALYSIS.md +77 -0
- package/DOCS/DEV_TRACK_PLAN_2026-01-07.md +42 -0
- package/DOCS/DEV_TRACK_SESSION_2026-01-31.md +220 -0
- package/DOCS/ENV_SETUP.md +189 -0
- package/DOCS/EXPORT_FORMATS.md +417 -0
- package/DOCS/GPU_DISPOSAL_GUIDE.md +21 -0
- package/DOCS/LICENSING_TIERS.md +275 -0
- package/DOCS/MASTER_PLAN_2026-01-31.md +570 -0
- package/DOCS/OBS_SETUP_GUIDE.md +98 -0
- package/DOCS/PROJECT_SETUP.md +66 -0
- package/DOCS/RENDERER_LIFECYCLE.md +40 -0
- package/DOCS/REPO_MANIFEST.md +121 -0
- package/DOCS/SESSION_014_PLAN.md +195 -0
- package/DOCS/SESSION_LOG_2026-01-07.md +56 -0
- package/DOCS/STRATEGIC_BLUEPRINT_2026-01-07.md +72 -0
- package/DOCS/SYSTEM_AUDIT_2026-01-30.md +738 -0
- package/DOCS/SYSTEM_INVENTORY.md +520 -0
- package/DOCS/TELEMETRY_EXPORTS.md +34 -0
- package/DOCS/WEBGPU_STATUS.md +38 -0
- package/DOCS/XR_BENCHMARKS.md +608 -0
- package/LICENSE +21 -0
- package/README.md +426 -0
- package/docs/.nojekyll +0 -0
- package/docs/01-dissolution_of_euclidean_hegemony.html +346 -0
- package/docs/02-hyperspatial_ego_death.html +346 -0
- package/docs/03-post_cartesian_sublime.html +346 -0
- package/docs/04-crystalline_void_meditation.html +346 -0
- package/docs/05-quantum_decoherence_ballet.html +346 -0
- package/docs/06-dissolution_of_euclidean_hegemony.html +346 -0
- package/docs/07-hyperspatial_ego_death.html +346 -0
- package/docs/08-post_cartesian_sublime.html +346 -0
- package/docs/09-crystalline_void_meditation.html +346 -0
- package/docs/10-quantum_decoherence_ballet.html +346 -0
- package/docs/11-dissolution_of_euclidean_hegemony.html +346 -0
- package/docs/12-hyperspatial_ego_death.html +346 -0
- package/docs/13-post_cartesian_sublime.html +346 -0
- package/docs/index.html +794 -0
- package/docs/test-hub.html +441 -0
- package/docs/url-state.js +102 -0
- package/docs/vib3-exports/01-quantum-quantum-tetrahedron-lattice.html +489 -0
- package/docs/vib3-exports/02-quantum-quantum-hypersphere-matrix.html +489 -0
- package/docs/vib3-exports/03-quantum-quantum-hypertetra-fractal.html +489 -0
- package/docs/vib3-exports/04-faceted-faceted-crystal-structure.html +407 -0
- package/docs/vib3-exports/05-faceted-faceted-klein-bottle.html +407 -0
- package/docs/vib3-exports/06-faceted-faceted-hypertetra-torus.html +407 -0
- package/docs/vib3-exports/07-holographic-holographic-wave-field.html +457 -0
- package/docs/vib3-exports/08-holographic-holographic-hypersphere-sphere.html +457 -0
- package/docs/vib3-exports/09-holographic-holographic-hypertetra-crystal.html +457 -0
- package/docs/vib3-exports/index.html +238 -0
- package/docs/webgpu-live.html +702 -0
- package/package.json +367 -0
- package/src/advanced/AIPresetGenerator.js +777 -0
- package/src/advanced/MIDIController.js +703 -0
- package/src/advanced/OffscreenWorker.js +1051 -0
- package/src/advanced/WebGPUCompute.js +1051 -0
- package/src/advanced/WebXRRenderer.js +680 -0
- package/src/agent/cli/AgentCLI.js +615 -0
- package/src/agent/cli/index.js +14 -0
- package/src/agent/index.js +73 -0
- package/src/agent/mcp/MCPServer.js +950 -0
- package/src/agent/mcp/index.js +9 -0
- package/src/agent/mcp/tools.js +548 -0
- package/src/agent/telemetry/EventStream.js +669 -0
- package/src/agent/telemetry/Instrumentation.js +618 -0
- package/src/agent/telemetry/TelemetryExporters.js +427 -0
- package/src/agent/telemetry/TelemetryService.js +464 -0
- package/src/agent/telemetry/index.js +52 -0
- package/src/benchmarks/BenchmarkRunner.js +381 -0
- package/src/benchmarks/MetricsCollector.js +299 -0
- package/src/benchmarks/index.js +9 -0
- package/src/benchmarks/scenes.js +259 -0
- package/src/cli/index.js +675 -0
- package/src/config/ApiConfig.js +88 -0
- package/src/core/CanvasManager.js +217 -0
- package/src/core/ErrorReporter.js +117 -0
- package/src/core/ParameterMapper.js +333 -0
- package/src/core/Parameters.js +396 -0
- package/src/core/RendererContracts.js +200 -0
- package/src/core/UnifiedResourceManager.js +370 -0
- package/src/core/VIB3Engine.js +636 -0
- package/src/core/renderers/FacetedRendererAdapter.js +32 -0
- package/src/core/renderers/HolographicRendererAdapter.js +29 -0
- package/src/core/renderers/QuantumRendererAdapter.js +29 -0
- package/src/core/renderers/RendererLifecycleManager.js +63 -0
- package/src/creative/ColorPresetsSystem.js +980 -0
- package/src/creative/ParameterTimeline.js +1061 -0
- package/src/creative/PostProcessingPipeline.js +1113 -0
- package/src/creative/TransitionAnimator.js +683 -0
- package/src/export/CSSExporter.js +226 -0
- package/src/export/CardGeneratorBase.js +279 -0
- package/src/export/ExportManager.js +580 -0
- package/src/export/FacetedCardGenerator.js +279 -0
- package/src/export/HolographicCardGenerator.js +543 -0
- package/src/export/LottieExporter.js +552 -0
- package/src/export/QuantumCardGenerator.js +315 -0
- package/src/export/SVGExporter.js +519 -0
- package/src/export/ShaderExporter.js +903 -0
- package/src/export/TradingCardGenerator.js +3055 -0
- package/src/export/TradingCardManager.js +181 -0
- package/src/export/VIB3PackageExporter.js +559 -0
- package/src/export/index.js +14 -0
- package/src/export/systems/TradingCardSystemFaceted.js +494 -0
- package/src/export/systems/TradingCardSystemHolographic.js +452 -0
- package/src/export/systems/TradingCardSystemQuantum.js +411 -0
- package/src/faceted/FacetedSystem.js +963 -0
- package/src/features/CollectionManager.js +433 -0
- package/src/gallery/CollectionManager.js +240 -0
- package/src/gallery/GallerySystem.js +485 -0
- package/src/geometry/GeometryFactory.js +314 -0
- package/src/geometry/GeometryLibrary.js +72 -0
- package/src/geometry/buffers/BufferBuilder.js +338 -0
- package/src/geometry/buffers/index.js +18 -0
- package/src/geometry/generators/Crystal.js +420 -0
- package/src/geometry/generators/Fractal.js +298 -0
- package/src/geometry/generators/KleinBottle.js +197 -0
- package/src/geometry/generators/Sphere.js +192 -0
- package/src/geometry/generators/Tesseract.js +160 -0
- package/src/geometry/generators/Tetrahedron.js +225 -0
- package/src/geometry/generators/Torus.js +304 -0
- package/src/geometry/generators/Wave.js +341 -0
- package/src/geometry/index.js +142 -0
- package/src/geometry/warp/HypersphereCore.js +211 -0
- package/src/geometry/warp/HypertetraCore.js +386 -0
- package/src/geometry/warp/index.js +57 -0
- package/src/holograms/HolographicVisualizer.js +1073 -0
- package/src/holograms/RealHolographicSystem.js +966 -0
- package/src/holograms/variantRegistry.js +69 -0
- package/src/integrations/FigmaPlugin.js +854 -0
- package/src/integrations/OBSMode.js +754 -0
- package/src/integrations/ThreeJsPackage.js +660 -0
- package/src/integrations/TouchDesignerExport.js +552 -0
- package/src/integrations/frameworks/Vib3React.js +591 -0
- package/src/integrations/frameworks/Vib3Svelte.js +654 -0
- package/src/integrations/frameworks/Vib3Vue.js +628 -0
- package/src/llm/LLMParameterInterface.js +240 -0
- package/src/llm/LLMParameterUI.js +577 -0
- package/src/math/Mat4x4.js +708 -0
- package/src/math/Projection.js +341 -0
- package/src/math/Rotor4D.js +637 -0
- package/src/math/Vec4.js +476 -0
- package/src/math/constants.js +164 -0
- package/src/math/index.js +68 -0
- package/src/math/projections.js +54 -0
- package/src/math/rotations.js +196 -0
- package/src/quantum/QuantumEngine.js +906 -0
- package/src/quantum/QuantumVisualizer.js +1103 -0
- package/src/reactivity/ReactivityConfig.js +499 -0
- package/src/reactivity/ReactivityManager.js +586 -0
- package/src/reactivity/SpatialInputSystem.js +1783 -0
- package/src/reactivity/index.js +93 -0
- package/src/render/CommandBuffer.js +465 -0
- package/src/render/MultiCanvasBridge.js +340 -0
- package/src/render/RenderCommand.js +514 -0
- package/src/render/RenderResourceRegistry.js +523 -0
- package/src/render/RenderState.js +552 -0
- package/src/render/RenderTarget.js +512 -0
- package/src/render/ShaderLoader.js +253 -0
- package/src/render/ShaderProgram.js +599 -0
- package/src/render/UnifiedRenderBridge.js +496 -0
- package/src/render/backends/WebGLBackend.js +1108 -0
- package/src/render/backends/WebGPUBackend.js +1409 -0
- package/src/render/commands/CommandBufferExecutor.js +607 -0
- package/src/render/commands/RenderCommandBuffer.js +661 -0
- package/src/render/commands/index.js +17 -0
- package/src/render/index.js +367 -0
- package/src/scene/Disposable.js +498 -0
- package/src/scene/MemoryPool.js +618 -0
- package/src/scene/Node4D.js +697 -0
- package/src/scene/ResourceManager.js +599 -0
- package/src/scene/Scene4D.js +540 -0
- package/src/scene/index.js +98 -0
- package/src/schemas/error.schema.json +84 -0
- package/src/schemas/extension.schema.json +88 -0
- package/src/schemas/index.js +214 -0
- package/src/schemas/parameters.schema.json +142 -0
- package/src/schemas/tool-pack.schema.json +44 -0
- package/src/schemas/tool-response.schema.json +127 -0
- package/src/shaders/common/fullscreen.vert.glsl +5 -0
- package/src/shaders/common/fullscreen.vert.wgsl +17 -0
- package/src/shaders/common/geometry24.glsl +65 -0
- package/src/shaders/common/geometry24.wgsl +54 -0
- package/src/shaders/common/rotation4d.glsl +85 -0
- package/src/shaders/common/rotation4d.wgsl +86 -0
- package/src/shaders/common/uniforms.glsl +44 -0
- package/src/shaders/common/uniforms.wgsl +48 -0
- package/src/shaders/faceted/faceted.frag.glsl +129 -0
- package/src/shaders/faceted/faceted.frag.wgsl +164 -0
- package/src/shaders/holographic/holographic.frag.glsl +406 -0
- package/src/shaders/holographic/holographic.frag.wgsl +185 -0
- package/src/shaders/quantum/quantum.frag.glsl +513 -0
- package/src/shaders/quantum/quantum.frag.wgsl +361 -0
- package/src/testing/ParallelTestFramework.js +519 -0
- package/src/testing/__snapshots__/exportFormats.test.js.snap +24 -0
- package/src/testing/exportFormats.test.js +8 -0
- package/src/testing/projections.test.js +14 -0
- package/src/testing/rotations.test.js +37 -0
- package/src/ui/InteractivityMenu.js +516 -0
- package/src/ui/StatusManager.js +96 -0
- package/src/ui/adaptive/renderers/webgpu/BufferLayout.ts +252 -0
- package/src/ui/adaptive/renderers/webgpu/PolytopeInstanceBuffer.ts +144 -0
- package/src/ui/adaptive/renderers/webgpu/TripleBufferedUniform.ts +170 -0
- package/src/ui/adaptive/renderers/webgpu/WebGPURenderer.ts +735 -0
- package/src/ui/adaptive/renderers/webgpu/index.ts +112 -0
- package/src/variations/VariationManager.js +431 -0
- package/src/viewer/AudioReactivity.js +505 -0
- package/src/viewer/CardBending.js +481 -0
- package/src/viewer/GalleryUI.js +832 -0
- package/src/viewer/ReactivityManager.js +590 -0
- package/src/viewer/TradingCardExporter.js +600 -0
- package/src/viewer/ViewerPortal.js +374 -0
- package/src/viewer/index.js +12 -0
- package/src/wasm/WasmLoader.js +296 -0
- package/src/wasm/index.js +132 -0
- package/tools/agentic/mcpTools.js +88 -0
- package/tools/cli/agent-cli.js +92 -0
- package/tools/export/formats.js +24 -0
- package/tools/math/rotation-baseline.mjs +64 -0
- package/tools/shader-sync-verify.js +937 -0
- package/tools/telemetry/manifestPipeline.js +141 -0
- package/tools/telemetry/telemetryEvents.js +35 -0
- package/types/adaptive-sdk.d.ts +185 -0
- package/types/advanced/AIPresetGenerator.d.ts +81 -0
- package/types/advanced/MIDIController.d.ts +100 -0
- package/types/advanced/OffscreenWorker.d.ts +82 -0
- package/types/advanced/WebGPUCompute.d.ts +52 -0
- package/types/advanced/WebXRRenderer.d.ts +77 -0
- package/types/advanced/index.d.ts +46 -0
- package/types/core/ErrorReporter.d.ts +50 -0
- package/types/core/VIB3Engine.d.ts +204 -0
- package/types/creative/ColorPresetsSystem.d.ts +91 -0
- package/types/creative/ParameterTimeline.d.ts +74 -0
- package/types/creative/PostProcessingPipeline.d.ts +109 -0
- package/types/creative/TransitionAnimator.d.ts +71 -0
- package/types/creative/index.d.ts +35 -0
- package/types/integrations/FigmaPlugin.d.ts +46 -0
- package/types/integrations/OBSMode.d.ts +74 -0
- package/types/integrations/ThreeJsPackage.d.ts +62 -0
- package/types/integrations/TouchDesignerExport.d.ts +36 -0
- package/types/integrations/Vib3React.d.ts +74 -0
- package/types/integrations/Vib3Svelte.d.ts +63 -0
- package/types/integrations/Vib3Vue.d.ts +55 -0
- package/types/integrations/index.d.ts +52 -0
- package/types/reactivity/SpatialInputSystem.d.ts +173 -0
- package/types/reactivity/index.d.ts +394 -0
- package/types/render/CommandBuffer.d.ts +169 -0
- package/types/render/RenderCommand.d.ts +312 -0
- package/types/render/RenderState.d.ts +279 -0
- package/types/render/RenderTarget.d.ts +254 -0
- package/types/render/ShaderProgram.d.ts +277 -0
- package/types/render/UnifiedRenderBridge.d.ts +143 -0
- package/types/render/WebGLBackend.d.ts +168 -0
- package/types/render/WebGPUBackend.d.ts +186 -0
- package/types/render/index.d.ts +141 -0
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WebGPU Backend TypeScript Definitions
|
|
3
|
+
* VIB3+ SDK - WebGPU Rendering Backend
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/** WebGPU feature flag identifiers */
|
|
7
|
+
export declare const WebGPUFeatures: {
|
|
8
|
+
readonly TIMESTAMP_QUERY: 'timestamp-query';
|
|
9
|
+
readonly INDIRECT_FIRST_INSTANCE: 'indirect-first-instance';
|
|
10
|
+
readonly SHADER_F16: 'shader-f16';
|
|
11
|
+
readonly DEPTH_CLIP_CONTROL: 'depth-clip-control';
|
|
12
|
+
readonly DEPTH32_STENCIL8: 'depth32float-stencil8';
|
|
13
|
+
readonly TEXTURE_COMPRESSION_BC: 'texture-compression-bc';
|
|
14
|
+
readonly RG11B10_UFLOAT_RENDERABLE: 'rg11b10ufloat-renderable';
|
|
15
|
+
readonly BGRA8_UNORM_STORAGE: 'bgra8unorm-storage';
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
/** WGSL shader library for VIB3+ systems */
|
|
19
|
+
export declare const WGSLShaderLib: {
|
|
20
|
+
/** VIB3Uniforms struct definition in WGSL */
|
|
21
|
+
readonly uniformStruct: string;
|
|
22
|
+
/** 6D rotation functions in WGSL */
|
|
23
|
+
readonly rotation4D: string;
|
|
24
|
+
/** Fullscreen vertex shader (oversized triangle technique) */
|
|
25
|
+
readonly fullscreenVertex: string;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
/** WebGPU backend constructor parameters */
|
|
29
|
+
export interface WebGPUBackendParams {
|
|
30
|
+
canvas: HTMLCanvasElement;
|
|
31
|
+
device: GPUDevice;
|
|
32
|
+
context: GPUCanvasContext;
|
|
33
|
+
format: GPUTextureFormat;
|
|
34
|
+
adapter?: GPUAdapter;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/** WebGPU backend options */
|
|
38
|
+
export interface WebGPUBackendOptions {
|
|
39
|
+
debug?: boolean;
|
|
40
|
+
depth?: boolean;
|
|
41
|
+
features?: string[];
|
|
42
|
+
resourceRegistry?: any;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/** GPU info returned by backend */
|
|
46
|
+
export interface GPUInfo {
|
|
47
|
+
vendor: string;
|
|
48
|
+
architecture: string;
|
|
49
|
+
device: string;
|
|
50
|
+
description: string;
|
|
51
|
+
features: string[];
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/** Backend rendering statistics */
|
|
55
|
+
export interface WebGPUStats {
|
|
56
|
+
frames: number;
|
|
57
|
+
commandEncoders: number;
|
|
58
|
+
drawCalls: number;
|
|
59
|
+
triangles: number;
|
|
60
|
+
pipelineChanges: number;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/** Custom uniform buffer entry */
|
|
64
|
+
export interface CustomUniformEntry {
|
|
65
|
+
buffer: GPUBuffer;
|
|
66
|
+
bindGroup: GPUBindGroup;
|
|
67
|
+
layout: GPUBindGroupLayout;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/** Fullscreen quad render options */
|
|
71
|
+
export interface FullscreenRenderOptions {
|
|
72
|
+
pipeline?: string;
|
|
73
|
+
bindGroups?: GPUBindGroup[];
|
|
74
|
+
clearColor?: [number, number, number, number];
|
|
75
|
+
clear?: boolean;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/** Texture descriptor */
|
|
79
|
+
export interface TextureDescriptor {
|
|
80
|
+
size: [number, number] | [number, number, number];
|
|
81
|
+
format: GPUTextureFormat;
|
|
82
|
+
usage: number;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* WebGPU rendering backend for VIB3+ engine
|
|
87
|
+
*/
|
|
88
|
+
export declare class WebGPUBackend {
|
|
89
|
+
readonly canvas: HTMLCanvasElement;
|
|
90
|
+
readonly device: GPUDevice;
|
|
91
|
+
readonly context: GPUCanvasContext;
|
|
92
|
+
readonly format: GPUTextureFormat;
|
|
93
|
+
readonly adapter: GPUAdapter | null;
|
|
94
|
+
readonly debug: boolean;
|
|
95
|
+
|
|
96
|
+
constructor(params: WebGPUBackendParams, options?: WebGPUBackendOptions);
|
|
97
|
+
|
|
98
|
+
/** Check if a GPU feature is enabled */
|
|
99
|
+
hasFeature(feature: string): boolean;
|
|
100
|
+
|
|
101
|
+
/** Get GPU adapter info */
|
|
102
|
+
getGPUInfo(): GPUInfo;
|
|
103
|
+
|
|
104
|
+
/** Get rendering statistics */
|
|
105
|
+
getStats(): WebGPUStats;
|
|
106
|
+
|
|
107
|
+
/** Reset rendering statistics */
|
|
108
|
+
resetStats(): void;
|
|
109
|
+
|
|
110
|
+
/** Resize the rendering surface */
|
|
111
|
+
resize(width: number, height: number): void;
|
|
112
|
+
|
|
113
|
+
/** Compile a WGSL shader module */
|
|
114
|
+
compileShader(name: string, code: string): GPUShaderModule;
|
|
115
|
+
|
|
116
|
+
/** Create a custom uniform buffer with its own bind group */
|
|
117
|
+
createCustomUniformBuffer(
|
|
118
|
+
name: string,
|
|
119
|
+
size: number,
|
|
120
|
+
visibility?: number
|
|
121
|
+
): CustomUniformEntry;
|
|
122
|
+
|
|
123
|
+
/** Get a previously created custom uniform buffer */
|
|
124
|
+
getCustomUniformBuffer(name: string): CustomUniformEntry | undefined;
|
|
125
|
+
|
|
126
|
+
/** Update custom uniform buffer data */
|
|
127
|
+
updateCustomUniforms(name: string, data: Float32Array): void;
|
|
128
|
+
|
|
129
|
+
/** Create a fullscreen pipeline for procedural rendering */
|
|
130
|
+
createFullscreenPipeline(
|
|
131
|
+
name: string,
|
|
132
|
+
fragmentCode: string,
|
|
133
|
+
options?: { bindGroupLayouts?: GPUBindGroupLayout[] }
|
|
134
|
+
): GPURenderPipeline;
|
|
135
|
+
|
|
136
|
+
/** Create a named render pipeline */
|
|
137
|
+
createPipeline(name: string, descriptor: GPURenderPipelineDescriptor): GPURenderPipeline;
|
|
138
|
+
|
|
139
|
+
/** Render a fullscreen quad */
|
|
140
|
+
renderFullscreenQuad(options?: FullscreenRenderOptions): void;
|
|
141
|
+
|
|
142
|
+
/** Render using a named pipeline */
|
|
143
|
+
renderWithPipeline(options: {
|
|
144
|
+
pipeline: string;
|
|
145
|
+
bindGroups?: GPUBindGroup[];
|
|
146
|
+
vertexBuffers?: GPUBuffer[];
|
|
147
|
+
vertexCount?: number;
|
|
148
|
+
indexBuffer?: GPUBuffer;
|
|
149
|
+
indexCount?: number;
|
|
150
|
+
}): void;
|
|
151
|
+
|
|
152
|
+
/** Create a 2D texture */
|
|
153
|
+
createTexture(name: string, descriptor: TextureDescriptor): GPUTexture;
|
|
154
|
+
|
|
155
|
+
/** Create a sampler */
|
|
156
|
+
createSampler(name: string, descriptor?: GPUSamplerDescriptor): GPUSampler;
|
|
157
|
+
|
|
158
|
+
/** Update default uniform buffer */
|
|
159
|
+
updateUniforms(data: Float32Array): void;
|
|
160
|
+
|
|
161
|
+
/** Dispose all resources */
|
|
162
|
+
dispose(): void;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/** Check if WebGPU is available in the current environment */
|
|
166
|
+
export declare function isWebGPUSupported(): boolean;
|
|
167
|
+
|
|
168
|
+
/** Get available WebGPU features */
|
|
169
|
+
export declare function getWebGPUFeatures(): Promise<Set<string> | null>;
|
|
170
|
+
|
|
171
|
+
/** Create a WebGPU backend (async) */
|
|
172
|
+
export declare function createWebGPUBackend(
|
|
173
|
+
canvas: HTMLCanvasElement,
|
|
174
|
+
options?: {
|
|
175
|
+
powerPreference?: 'high-performance' | 'low-power';
|
|
176
|
+
requiredFeatures?: string[];
|
|
177
|
+
debug?: boolean;
|
|
178
|
+
depth?: boolean;
|
|
179
|
+
}
|
|
180
|
+
): Promise<WebGPUBackend | null>;
|
|
181
|
+
|
|
182
|
+
/** Create WebGPU backend with fallback info */
|
|
183
|
+
export declare function createWebGPUWithFallback(
|
|
184
|
+
canvas: HTMLCanvasElement,
|
|
185
|
+
options?: Parameters<typeof createWebGPUBackend>[1]
|
|
186
|
+
): Promise<{ backend: WebGPUBackend | null; type: 'webgpu' | null }>;
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Render Module TypeScript Definitions
|
|
3
|
+
* VIB3+ SDK - Complete Rendering Abstraction (WebGL + WebGPU)
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
// Re-export all render types
|
|
7
|
+
export * from './RenderState';
|
|
8
|
+
export * from './RenderCommand';
|
|
9
|
+
export * from './CommandBuffer';
|
|
10
|
+
export * from './RenderTarget';
|
|
11
|
+
export * from './ShaderProgram';
|
|
12
|
+
export * from './WebGLBackend';
|
|
13
|
+
export * from './WebGPUBackend';
|
|
14
|
+
export * from './UnifiedRenderBridge';
|
|
15
|
+
|
|
16
|
+
import { RenderState, BlendMode, CullFace } from './RenderState';
|
|
17
|
+
import { CommandBuffer, CommandBufferOptions } from './CommandBuffer';
|
|
18
|
+
import { RenderTarget, RenderTargetOptions } from './RenderTarget';
|
|
19
|
+
import { ShaderProgram, ShaderProgramOptions, ShaderLib } from './ShaderProgram';
|
|
20
|
+
import { WebGLBackend, WebGLBackendOptions } from './WebGLBackend';
|
|
21
|
+
import { WebGPUBackend } from './WebGPUBackend';
|
|
22
|
+
import { UnifiedRenderBridge, BackendType } from './UnifiedRenderBridge';
|
|
23
|
+
|
|
24
|
+
/** Render context options */
|
|
25
|
+
export interface RenderContextOptions extends WebGLBackendOptions {}
|
|
26
|
+
|
|
27
|
+
/** Complete render context */
|
|
28
|
+
export interface RenderContext {
|
|
29
|
+
backend: WebGLBackend;
|
|
30
|
+
canvas: HTMLCanvasElement;
|
|
31
|
+
gl: WebGL2RenderingContext;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Create a new command buffer
|
|
35
|
+
*/
|
|
36
|
+
createCommandBuffer(options?: CommandBufferOptions): CommandBuffer;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Create a new render target
|
|
40
|
+
*/
|
|
41
|
+
createRenderTarget(
|
|
42
|
+
width: number,
|
|
43
|
+
height: number,
|
|
44
|
+
options?: RenderTargetOptions
|
|
45
|
+
): RenderTarget;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Create a new shader program
|
|
49
|
+
*/
|
|
50
|
+
createShader(options: ShaderProgramOptions): ShaderProgram;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Dispose all resources
|
|
54
|
+
*/
|
|
55
|
+
dispose(): void;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Create a complete rendering context
|
|
60
|
+
* @returns Render context or null if WebGL 2.0 is not supported
|
|
61
|
+
*/
|
|
62
|
+
export declare function createRenderContext(
|
|
63
|
+
canvas: HTMLCanvasElement,
|
|
64
|
+
options?: RenderContextOptions
|
|
65
|
+
): RenderContext | null;
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Preset render states for common use cases
|
|
69
|
+
*/
|
|
70
|
+
export declare const RenderPresets: {
|
|
71
|
+
/** Default opaque rendering */
|
|
72
|
+
opaque(): RenderState;
|
|
73
|
+
|
|
74
|
+
/** Alpha-blended transparent rendering */
|
|
75
|
+
transparent(): RenderState;
|
|
76
|
+
|
|
77
|
+
/** Additive blending for effects */
|
|
78
|
+
additive(): RenderState;
|
|
79
|
+
|
|
80
|
+
/** Wireframe rendering */
|
|
81
|
+
wireframe(): RenderState;
|
|
82
|
+
|
|
83
|
+
/** 4D geometry with W-depth sorting */
|
|
84
|
+
geometry4D(): RenderState;
|
|
85
|
+
|
|
86
|
+
/** Transparent 4D with back-to-front sorting */
|
|
87
|
+
transparent4D(): RenderState;
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
/** Shader generation options */
|
|
91
|
+
export interface Shader4DOptions {
|
|
92
|
+
color?: boolean;
|
|
93
|
+
normal?: boolean;
|
|
94
|
+
lighting?: boolean;
|
|
95
|
+
wFog?: boolean;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Common shader snippets for 4D rendering
|
|
100
|
+
*/
|
|
101
|
+
export declare const Shader4D: {
|
|
102
|
+
/** All rotation functions for 6 planes */
|
|
103
|
+
readonly rotation: string;
|
|
104
|
+
|
|
105
|
+
/** Projection functions (perspective, stereographic, orthographic) */
|
|
106
|
+
readonly projection: string;
|
|
107
|
+
|
|
108
|
+
/** Basic 4D vertex shader template */
|
|
109
|
+
readonly basicVertex: string;
|
|
110
|
+
|
|
111
|
+
/** Basic fragment shader with W-fog */
|
|
112
|
+
readonly basicFragment: string;
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Generate complete vertex shader for 4D geometry
|
|
116
|
+
*/
|
|
117
|
+
generateVertexShader(options?: Shader4DOptions): string;
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Generate complete fragment shader for 4D geometry
|
|
121
|
+
*/
|
|
122
|
+
generateFragmentShader(options?: Shader4DOptions): string;
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
/** Async render context options (supports WebGPU bridge) */
|
|
126
|
+
export interface AsyncRenderContextOptions extends RenderContextOptions {
|
|
127
|
+
/** Prefer WebGPU backend via UnifiedRenderBridge */
|
|
128
|
+
preferWebGPU?: boolean;
|
|
129
|
+
/** Use bridge mode ('bridge' | 'webgl' | 'webgpu') */
|
|
130
|
+
backend?: 'bridge' | 'webgl' | 'webgpu';
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Create a rendering context asynchronously.
|
|
135
|
+
* Supports WebGPU via UnifiedRenderBridge when preferWebGPU or backend='bridge' is set.
|
|
136
|
+
* Falls back to WebGL context if WebGPU is unavailable.
|
|
137
|
+
*/
|
|
138
|
+
export declare function createRenderContextAsync(
|
|
139
|
+
canvas: HTMLCanvasElement,
|
|
140
|
+
options?: AsyncRenderContextOptions
|
|
141
|
+
): Promise<RenderContext | UnifiedRenderBridge | null>;
|