@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,279 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RenderState TypeScript Definitions
|
|
3
|
+
* VIB3+ SDK - Render Abstraction Layer
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/** Blend modes for color mixing */
|
|
7
|
+
export const enum BlendMode {
|
|
8
|
+
NONE = 'none',
|
|
9
|
+
ALPHA = 'alpha',
|
|
10
|
+
ADDITIVE = 'additive',
|
|
11
|
+
MULTIPLY = 'multiply',
|
|
12
|
+
SCREEN = 'screen',
|
|
13
|
+
PREMULTIPLIED = 'premultiplied'
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/** Depth comparison functions */
|
|
17
|
+
export const enum DepthFunc {
|
|
18
|
+
NEVER = 'never',
|
|
19
|
+
LESS = 'less',
|
|
20
|
+
EQUAL = 'equal',
|
|
21
|
+
LEQUAL = 'lequal',
|
|
22
|
+
GREATER = 'greater',
|
|
23
|
+
NOTEQUAL = 'notequal',
|
|
24
|
+
GEQUAL = 'gequal',
|
|
25
|
+
ALWAYS = 'always'
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/** Face culling modes */
|
|
29
|
+
export const enum CullFace {
|
|
30
|
+
NONE = 'none',
|
|
31
|
+
FRONT = 'front',
|
|
32
|
+
BACK = 'back',
|
|
33
|
+
FRONT_AND_BACK = 'front_and_back'
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/** Polygon fill modes */
|
|
37
|
+
export const enum PolygonMode {
|
|
38
|
+
FILL = 'fill',
|
|
39
|
+
LINE = 'line',
|
|
40
|
+
POINT = 'point'
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/** Stencil operations */
|
|
44
|
+
export const enum StencilOp {
|
|
45
|
+
KEEP = 'keep',
|
|
46
|
+
ZERO = 'zero',
|
|
47
|
+
REPLACE = 'replace',
|
|
48
|
+
INCR = 'incr',
|
|
49
|
+
INCR_WRAP = 'incr_wrap',
|
|
50
|
+
DECR = 'decr',
|
|
51
|
+
DECR_WRAP = 'decr_wrap',
|
|
52
|
+
INVERT = 'invert'
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/** Blend factor names */
|
|
56
|
+
export type BlendFactor =
|
|
57
|
+
| 'zero'
|
|
58
|
+
| 'one'
|
|
59
|
+
| 'src_color'
|
|
60
|
+
| 'one_minus_src_color'
|
|
61
|
+
| 'dst_color'
|
|
62
|
+
| 'one_minus_dst_color'
|
|
63
|
+
| 'src_alpha'
|
|
64
|
+
| 'one_minus_src_alpha'
|
|
65
|
+
| 'dst_alpha'
|
|
66
|
+
| 'one_minus_dst_alpha'
|
|
67
|
+
| 'constant_color'
|
|
68
|
+
| 'one_minus_constant_color'
|
|
69
|
+
| 'constant_alpha'
|
|
70
|
+
| 'one_minus_constant_alpha'
|
|
71
|
+
| 'src_alpha_saturate';
|
|
72
|
+
|
|
73
|
+
/** RGBA color tuple */
|
|
74
|
+
export type Color4 = [number, number, number, number];
|
|
75
|
+
|
|
76
|
+
/** Boolean mask for color channels */
|
|
77
|
+
export type ColorMask = [boolean, boolean, boolean, boolean];
|
|
78
|
+
|
|
79
|
+
/** Scissor/viewport rectangle */
|
|
80
|
+
export type Rect = [number, number, number, number];
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Blend state configuration
|
|
84
|
+
*/
|
|
85
|
+
export declare class BlendState {
|
|
86
|
+
enabled: boolean;
|
|
87
|
+
mode: BlendMode;
|
|
88
|
+
srcRGB: BlendFactor;
|
|
89
|
+
dstRGB: BlendFactor;
|
|
90
|
+
srcAlpha: BlendFactor;
|
|
91
|
+
dstAlpha: BlendFactor;
|
|
92
|
+
color: Color4;
|
|
93
|
+
|
|
94
|
+
constructor();
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Set blend mode preset
|
|
98
|
+
*/
|
|
99
|
+
setMode(mode: BlendMode): void;
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Set custom blend factors
|
|
103
|
+
*/
|
|
104
|
+
setCustom(
|
|
105
|
+
srcRGB: BlendFactor,
|
|
106
|
+
dstRGB: BlendFactor,
|
|
107
|
+
srcAlpha?: BlendFactor,
|
|
108
|
+
dstAlpha?: BlendFactor
|
|
109
|
+
): void;
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Clone this state
|
|
113
|
+
*/
|
|
114
|
+
clone(): BlendState;
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Check equality with another state
|
|
118
|
+
*/
|
|
119
|
+
equals(other: BlendState): boolean;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Depth test state configuration
|
|
124
|
+
*/
|
|
125
|
+
export declare class DepthState {
|
|
126
|
+
testEnabled: boolean;
|
|
127
|
+
writeEnabled: boolean;
|
|
128
|
+
func: DepthFunc;
|
|
129
|
+
near: number;
|
|
130
|
+
far: number;
|
|
131
|
+
|
|
132
|
+
constructor();
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Clone this state
|
|
136
|
+
*/
|
|
137
|
+
clone(): DepthState;
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Check equality with another state
|
|
141
|
+
*/
|
|
142
|
+
equals(other: DepthState): boolean;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Stencil test state configuration
|
|
147
|
+
*/
|
|
148
|
+
export declare class StencilState {
|
|
149
|
+
enabled: boolean;
|
|
150
|
+
func: string;
|
|
151
|
+
ref: number;
|
|
152
|
+
mask: number;
|
|
153
|
+
failOp: StencilOp;
|
|
154
|
+
depthFailOp: StencilOp;
|
|
155
|
+
passOp: StencilOp;
|
|
156
|
+
|
|
157
|
+
constructor();
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Clone this state
|
|
161
|
+
*/
|
|
162
|
+
clone(): StencilState;
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* Check equality with another state
|
|
166
|
+
*/
|
|
167
|
+
equals(other: StencilState): boolean;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Rasterizer state configuration
|
|
172
|
+
*/
|
|
173
|
+
export declare class RasterizerState {
|
|
174
|
+
cullFace: CullFace;
|
|
175
|
+
frontFaceCCW: boolean;
|
|
176
|
+
polygonMode: PolygonMode;
|
|
177
|
+
scissorEnabled: boolean;
|
|
178
|
+
scissorRect: Rect;
|
|
179
|
+
lineWidth: number;
|
|
180
|
+
depthBiasEnabled: boolean;
|
|
181
|
+
depthBiasFactor: number;
|
|
182
|
+
depthBiasUnits: number;
|
|
183
|
+
|
|
184
|
+
constructor();
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Clone this state
|
|
188
|
+
*/
|
|
189
|
+
clone(): RasterizerState;
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Check equality with another state
|
|
193
|
+
*/
|
|
194
|
+
equals(other: RasterizerState): boolean;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Viewport configuration
|
|
199
|
+
*/
|
|
200
|
+
export declare class Viewport {
|
|
201
|
+
x: number;
|
|
202
|
+
y: number;
|
|
203
|
+
width: number;
|
|
204
|
+
height: number;
|
|
205
|
+
|
|
206
|
+
constructor(x?: number, y?: number, width?: number, height?: number);
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Get aspect ratio (width / height)
|
|
210
|
+
*/
|
|
211
|
+
readonly aspectRatio: number;
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Clone this viewport
|
|
215
|
+
*/
|
|
216
|
+
clone(): Viewport;
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* Check equality with another viewport
|
|
220
|
+
*/
|
|
221
|
+
equals(other: Viewport): boolean;
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Set all values at once
|
|
225
|
+
*/
|
|
226
|
+
set(x: number, y: number, width: number, height: number): void;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* Complete render state configuration
|
|
231
|
+
*/
|
|
232
|
+
export declare class RenderState {
|
|
233
|
+
blend: BlendState;
|
|
234
|
+
depth: DepthState;
|
|
235
|
+
stencil: StencilState;
|
|
236
|
+
rasterizer: RasterizerState;
|
|
237
|
+
viewport: Viewport;
|
|
238
|
+
colorMask: ColorMask;
|
|
239
|
+
clearColor: Color4;
|
|
240
|
+
clearDepth: number;
|
|
241
|
+
clearStencil: number;
|
|
242
|
+
|
|
243
|
+
constructor();
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* Create opaque render state preset
|
|
247
|
+
*/
|
|
248
|
+
static opaque(): RenderState;
|
|
249
|
+
|
|
250
|
+
/**
|
|
251
|
+
* Create transparent render state preset
|
|
252
|
+
*/
|
|
253
|
+
static transparent(): RenderState;
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Create additive blend render state preset
|
|
257
|
+
*/
|
|
258
|
+
static additive(): RenderState;
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* Create wireframe render state preset
|
|
262
|
+
*/
|
|
263
|
+
static wireframe(): RenderState;
|
|
264
|
+
|
|
265
|
+
/**
|
|
266
|
+
* Clone this state
|
|
267
|
+
*/
|
|
268
|
+
clone(): RenderState;
|
|
269
|
+
|
|
270
|
+
/**
|
|
271
|
+
* Get state difference
|
|
272
|
+
*/
|
|
273
|
+
diff(other: RenderState): Partial<RenderState>;
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* Get sort key for state-based batching
|
|
277
|
+
*/
|
|
278
|
+
getSortKey(): number;
|
|
279
|
+
}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RenderTarget TypeScript Definitions
|
|
3
|
+
* VIB3+ SDK - Framebuffer Abstraction
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/** Texture format identifiers */
|
|
7
|
+
export const enum TextureFormat {
|
|
8
|
+
// Color formats
|
|
9
|
+
RGBA8 = 'rgba8',
|
|
10
|
+
RGBA16F = 'rgba16f',
|
|
11
|
+
RGBA32F = 'rgba32f',
|
|
12
|
+
RGB8 = 'rgb8',
|
|
13
|
+
RG8 = 'rg8',
|
|
14
|
+
R8 = 'r8',
|
|
15
|
+
// Depth formats
|
|
16
|
+
DEPTH16 = 'depth16',
|
|
17
|
+
DEPTH24 = 'depth24',
|
|
18
|
+
DEPTH32F = 'depth32f',
|
|
19
|
+
// Depth-stencil formats
|
|
20
|
+
DEPTH24_STENCIL8 = 'depth24_stencil8',
|
|
21
|
+
DEPTH32F_STENCIL8 = 'depth32f_stencil8'
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/** Attachment type identifiers */
|
|
25
|
+
export const enum AttachmentType {
|
|
26
|
+
COLOR = 'color',
|
|
27
|
+
DEPTH = 'depth',
|
|
28
|
+
STENCIL = 'stencil',
|
|
29
|
+
DEPTH_STENCIL = 'depth_stencil'
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/** Texture filter modes */
|
|
33
|
+
export const enum FilterMode {
|
|
34
|
+
NEAREST = 'nearest',
|
|
35
|
+
LINEAR = 'linear',
|
|
36
|
+
NEAREST_MIPMAP_NEAREST = 'nearest_mipmap_nearest',
|
|
37
|
+
LINEAR_MIPMAP_NEAREST = 'linear_mipmap_nearest',
|
|
38
|
+
NEAREST_MIPMAP_LINEAR = 'nearest_mipmap_linear',
|
|
39
|
+
LINEAR_MIPMAP_LINEAR = 'linear_mipmap_linear'
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/** Texture wrap modes */
|
|
43
|
+
export const enum WrapMode {
|
|
44
|
+
REPEAT = 'repeat',
|
|
45
|
+
CLAMP_TO_EDGE = 'clamp_to_edge',
|
|
46
|
+
MIRRORED_REPEAT = 'mirrored_repeat'
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/** Attachment descriptor options */
|
|
50
|
+
export interface AttachmentOptions {
|
|
51
|
+
type?: AttachmentType;
|
|
52
|
+
format?: TextureFormat;
|
|
53
|
+
index?: number;
|
|
54
|
+
useTexture?: boolean;
|
|
55
|
+
minFilter?: FilterMode;
|
|
56
|
+
magFilter?: FilterMode;
|
|
57
|
+
wrapS?: WrapMode;
|
|
58
|
+
wrapT?: WrapMode;
|
|
59
|
+
generateMipmaps?: boolean;
|
|
60
|
+
samples?: number;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Framebuffer attachment descriptor
|
|
65
|
+
*/
|
|
66
|
+
export declare class AttachmentDescriptor {
|
|
67
|
+
type: AttachmentType;
|
|
68
|
+
format: TextureFormat;
|
|
69
|
+
index: number;
|
|
70
|
+
useTexture: boolean;
|
|
71
|
+
minFilter: FilterMode;
|
|
72
|
+
magFilter: FilterMode;
|
|
73
|
+
wrapS: WrapMode;
|
|
74
|
+
wrapT: WrapMode;
|
|
75
|
+
generateMipmaps: boolean;
|
|
76
|
+
samples: number;
|
|
77
|
+
|
|
78
|
+
constructor(options?: AttachmentOptions);
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Create color attachment descriptor
|
|
82
|
+
*/
|
|
83
|
+
static color(options?: Partial<AttachmentOptions>): AttachmentDescriptor;
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Create depth attachment descriptor
|
|
87
|
+
*/
|
|
88
|
+
static depth(options?: Partial<AttachmentOptions>): AttachmentDescriptor;
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Create depth-stencil attachment descriptor
|
|
92
|
+
*/
|
|
93
|
+
static depthStencil(options?: Partial<AttachmentOptions>): AttachmentDescriptor;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Check if this is a depth format
|
|
97
|
+
*/
|
|
98
|
+
isDepthFormat(): boolean;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/** Render target options */
|
|
102
|
+
export interface RenderTargetOptions {
|
|
103
|
+
colorAttachments?: AttachmentDescriptor[];
|
|
104
|
+
depthAttachment?: AttachmentDescriptor | null;
|
|
105
|
+
label?: string;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/** Simple render target options */
|
|
109
|
+
export interface SimpleRenderTargetOptions {
|
|
110
|
+
format?: TextureFormat;
|
|
111
|
+
depth?: boolean;
|
|
112
|
+
samples?: number;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Framebuffer / render target abstraction
|
|
117
|
+
*/
|
|
118
|
+
export declare class RenderTarget {
|
|
119
|
+
readonly id: number;
|
|
120
|
+
width: number;
|
|
121
|
+
height: number;
|
|
122
|
+
colorAttachments: AttachmentDescriptor[];
|
|
123
|
+
depthAttachment: AttachmentDescriptor | null;
|
|
124
|
+
label: string;
|
|
125
|
+
|
|
126
|
+
constructor(width: number, height: number, options?: RenderTargetOptions);
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Get aspect ratio
|
|
130
|
+
*/
|
|
131
|
+
readonly aspectRatio: number;
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Check if target has depth attachment
|
|
135
|
+
*/
|
|
136
|
+
readonly hasDepth: boolean;
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Get number of color attachments
|
|
140
|
+
*/
|
|
141
|
+
readonly colorAttachmentCount: number;
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Resize the render target
|
|
145
|
+
*/
|
|
146
|
+
resize(width: number, height: number): void;
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Get the native handle
|
|
150
|
+
*/
|
|
151
|
+
getHandle(): any;
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Set the native handle
|
|
155
|
+
*/
|
|
156
|
+
setHandle(handle: any): void;
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Get color texture at index
|
|
160
|
+
*/
|
|
161
|
+
getColorTexture(index?: number): any;
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Get depth texture
|
|
165
|
+
*/
|
|
166
|
+
getDepthTexture(): any;
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Dispose resources
|
|
170
|
+
*/
|
|
171
|
+
dispose(): void;
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Create simple render target
|
|
175
|
+
*/
|
|
176
|
+
static create(
|
|
177
|
+
width: number,
|
|
178
|
+
height: number,
|
|
179
|
+
options?: SimpleRenderTargetOptions
|
|
180
|
+
): RenderTarget;
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Create HDR render target
|
|
184
|
+
*/
|
|
185
|
+
static createHDR(
|
|
186
|
+
width: number,
|
|
187
|
+
height: number,
|
|
188
|
+
options?: SimpleRenderTargetOptions
|
|
189
|
+
): RenderTarget;
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Create G-buffer for deferred rendering
|
|
193
|
+
*/
|
|
194
|
+
static createGBuffer(width: number, height: number): RenderTarget;
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Create shadow map
|
|
198
|
+
*/
|
|
199
|
+
static createShadowMap(size: number, format?: TextureFormat): RenderTarget;
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Create MSAA render target
|
|
203
|
+
*/
|
|
204
|
+
static createMSAA(
|
|
205
|
+
width: number,
|
|
206
|
+
height: number,
|
|
207
|
+
samples?: number,
|
|
208
|
+
format?: TextureFormat
|
|
209
|
+
): RenderTarget;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
/** Render target pool statistics */
|
|
213
|
+
export interface RenderTargetPoolStats {
|
|
214
|
+
pooled: number;
|
|
215
|
+
inUse: number;
|
|
216
|
+
poolCount: number;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Pool for reusing render targets
|
|
221
|
+
*/
|
|
222
|
+
export declare class RenderTargetPool {
|
|
223
|
+
constructor();
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Acquire a render target from the pool
|
|
227
|
+
*/
|
|
228
|
+
acquire(
|
|
229
|
+
width: number,
|
|
230
|
+
height: number,
|
|
231
|
+
format?: TextureFormat,
|
|
232
|
+
hasDepth?: boolean
|
|
233
|
+
): RenderTarget;
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* Release a render target back to the pool
|
|
237
|
+
*/
|
|
238
|
+
release(target: RenderTarget): void;
|
|
239
|
+
|
|
240
|
+
/**
|
|
241
|
+
* Clear and dispose all pooled targets
|
|
242
|
+
*/
|
|
243
|
+
clear(): void;
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* Get pool statistics
|
|
247
|
+
*/
|
|
248
|
+
getStats(): RenderTargetPoolStats;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* Global render target pool instance
|
|
253
|
+
*/
|
|
254
|
+
export declare const renderTargetPool: RenderTargetPool;
|