@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.
Files changed (258) hide show
  1. package/CHANGELOG.md +118 -0
  2. package/DOCS/BLUEPRINT_EXECUTION_PLAN_2026-01-07.md +34 -0
  3. package/DOCS/CI_TESTING.md +38 -0
  4. package/DOCS/CLI_ONBOARDING.md +75 -0
  5. package/DOCS/CONTROL_REFERENCE.md +64 -0
  6. package/DOCS/DEV_TRACK_ANALYSIS.md +77 -0
  7. package/DOCS/DEV_TRACK_PLAN_2026-01-07.md +42 -0
  8. package/DOCS/DEV_TRACK_SESSION_2026-01-31.md +220 -0
  9. package/DOCS/ENV_SETUP.md +189 -0
  10. package/DOCS/EXPORT_FORMATS.md +417 -0
  11. package/DOCS/GPU_DISPOSAL_GUIDE.md +21 -0
  12. package/DOCS/LICENSING_TIERS.md +275 -0
  13. package/DOCS/MASTER_PLAN_2026-01-31.md +570 -0
  14. package/DOCS/OBS_SETUP_GUIDE.md +98 -0
  15. package/DOCS/PROJECT_SETUP.md +66 -0
  16. package/DOCS/RENDERER_LIFECYCLE.md +40 -0
  17. package/DOCS/REPO_MANIFEST.md +121 -0
  18. package/DOCS/SESSION_014_PLAN.md +195 -0
  19. package/DOCS/SESSION_LOG_2026-01-07.md +56 -0
  20. package/DOCS/STRATEGIC_BLUEPRINT_2026-01-07.md +72 -0
  21. package/DOCS/SYSTEM_AUDIT_2026-01-30.md +738 -0
  22. package/DOCS/SYSTEM_INVENTORY.md +520 -0
  23. package/DOCS/TELEMETRY_EXPORTS.md +34 -0
  24. package/DOCS/WEBGPU_STATUS.md +38 -0
  25. package/DOCS/XR_BENCHMARKS.md +608 -0
  26. package/LICENSE +21 -0
  27. package/README.md +426 -0
  28. package/docs/.nojekyll +0 -0
  29. package/docs/01-dissolution_of_euclidean_hegemony.html +346 -0
  30. package/docs/02-hyperspatial_ego_death.html +346 -0
  31. package/docs/03-post_cartesian_sublime.html +346 -0
  32. package/docs/04-crystalline_void_meditation.html +346 -0
  33. package/docs/05-quantum_decoherence_ballet.html +346 -0
  34. package/docs/06-dissolution_of_euclidean_hegemony.html +346 -0
  35. package/docs/07-hyperspatial_ego_death.html +346 -0
  36. package/docs/08-post_cartesian_sublime.html +346 -0
  37. package/docs/09-crystalline_void_meditation.html +346 -0
  38. package/docs/10-quantum_decoherence_ballet.html +346 -0
  39. package/docs/11-dissolution_of_euclidean_hegemony.html +346 -0
  40. package/docs/12-hyperspatial_ego_death.html +346 -0
  41. package/docs/13-post_cartesian_sublime.html +346 -0
  42. package/docs/index.html +794 -0
  43. package/docs/test-hub.html +441 -0
  44. package/docs/url-state.js +102 -0
  45. package/docs/vib3-exports/01-quantum-quantum-tetrahedron-lattice.html +489 -0
  46. package/docs/vib3-exports/02-quantum-quantum-hypersphere-matrix.html +489 -0
  47. package/docs/vib3-exports/03-quantum-quantum-hypertetra-fractal.html +489 -0
  48. package/docs/vib3-exports/04-faceted-faceted-crystal-structure.html +407 -0
  49. package/docs/vib3-exports/05-faceted-faceted-klein-bottle.html +407 -0
  50. package/docs/vib3-exports/06-faceted-faceted-hypertetra-torus.html +407 -0
  51. package/docs/vib3-exports/07-holographic-holographic-wave-field.html +457 -0
  52. package/docs/vib3-exports/08-holographic-holographic-hypersphere-sphere.html +457 -0
  53. package/docs/vib3-exports/09-holographic-holographic-hypertetra-crystal.html +457 -0
  54. package/docs/vib3-exports/index.html +238 -0
  55. package/docs/webgpu-live.html +702 -0
  56. package/package.json +367 -0
  57. package/src/advanced/AIPresetGenerator.js +777 -0
  58. package/src/advanced/MIDIController.js +703 -0
  59. package/src/advanced/OffscreenWorker.js +1051 -0
  60. package/src/advanced/WebGPUCompute.js +1051 -0
  61. package/src/advanced/WebXRRenderer.js +680 -0
  62. package/src/agent/cli/AgentCLI.js +615 -0
  63. package/src/agent/cli/index.js +14 -0
  64. package/src/agent/index.js +73 -0
  65. package/src/agent/mcp/MCPServer.js +950 -0
  66. package/src/agent/mcp/index.js +9 -0
  67. package/src/agent/mcp/tools.js +548 -0
  68. package/src/agent/telemetry/EventStream.js +669 -0
  69. package/src/agent/telemetry/Instrumentation.js +618 -0
  70. package/src/agent/telemetry/TelemetryExporters.js +427 -0
  71. package/src/agent/telemetry/TelemetryService.js +464 -0
  72. package/src/agent/telemetry/index.js +52 -0
  73. package/src/benchmarks/BenchmarkRunner.js +381 -0
  74. package/src/benchmarks/MetricsCollector.js +299 -0
  75. package/src/benchmarks/index.js +9 -0
  76. package/src/benchmarks/scenes.js +259 -0
  77. package/src/cli/index.js +675 -0
  78. package/src/config/ApiConfig.js +88 -0
  79. package/src/core/CanvasManager.js +217 -0
  80. package/src/core/ErrorReporter.js +117 -0
  81. package/src/core/ParameterMapper.js +333 -0
  82. package/src/core/Parameters.js +396 -0
  83. package/src/core/RendererContracts.js +200 -0
  84. package/src/core/UnifiedResourceManager.js +370 -0
  85. package/src/core/VIB3Engine.js +636 -0
  86. package/src/core/renderers/FacetedRendererAdapter.js +32 -0
  87. package/src/core/renderers/HolographicRendererAdapter.js +29 -0
  88. package/src/core/renderers/QuantumRendererAdapter.js +29 -0
  89. package/src/core/renderers/RendererLifecycleManager.js +63 -0
  90. package/src/creative/ColorPresetsSystem.js +980 -0
  91. package/src/creative/ParameterTimeline.js +1061 -0
  92. package/src/creative/PostProcessingPipeline.js +1113 -0
  93. package/src/creative/TransitionAnimator.js +683 -0
  94. package/src/export/CSSExporter.js +226 -0
  95. package/src/export/CardGeneratorBase.js +279 -0
  96. package/src/export/ExportManager.js +580 -0
  97. package/src/export/FacetedCardGenerator.js +279 -0
  98. package/src/export/HolographicCardGenerator.js +543 -0
  99. package/src/export/LottieExporter.js +552 -0
  100. package/src/export/QuantumCardGenerator.js +315 -0
  101. package/src/export/SVGExporter.js +519 -0
  102. package/src/export/ShaderExporter.js +903 -0
  103. package/src/export/TradingCardGenerator.js +3055 -0
  104. package/src/export/TradingCardManager.js +181 -0
  105. package/src/export/VIB3PackageExporter.js +559 -0
  106. package/src/export/index.js +14 -0
  107. package/src/export/systems/TradingCardSystemFaceted.js +494 -0
  108. package/src/export/systems/TradingCardSystemHolographic.js +452 -0
  109. package/src/export/systems/TradingCardSystemQuantum.js +411 -0
  110. package/src/faceted/FacetedSystem.js +963 -0
  111. package/src/features/CollectionManager.js +433 -0
  112. package/src/gallery/CollectionManager.js +240 -0
  113. package/src/gallery/GallerySystem.js +485 -0
  114. package/src/geometry/GeometryFactory.js +314 -0
  115. package/src/geometry/GeometryLibrary.js +72 -0
  116. package/src/geometry/buffers/BufferBuilder.js +338 -0
  117. package/src/geometry/buffers/index.js +18 -0
  118. package/src/geometry/generators/Crystal.js +420 -0
  119. package/src/geometry/generators/Fractal.js +298 -0
  120. package/src/geometry/generators/KleinBottle.js +197 -0
  121. package/src/geometry/generators/Sphere.js +192 -0
  122. package/src/geometry/generators/Tesseract.js +160 -0
  123. package/src/geometry/generators/Tetrahedron.js +225 -0
  124. package/src/geometry/generators/Torus.js +304 -0
  125. package/src/geometry/generators/Wave.js +341 -0
  126. package/src/geometry/index.js +142 -0
  127. package/src/geometry/warp/HypersphereCore.js +211 -0
  128. package/src/geometry/warp/HypertetraCore.js +386 -0
  129. package/src/geometry/warp/index.js +57 -0
  130. package/src/holograms/HolographicVisualizer.js +1073 -0
  131. package/src/holograms/RealHolographicSystem.js +966 -0
  132. package/src/holograms/variantRegistry.js +69 -0
  133. package/src/integrations/FigmaPlugin.js +854 -0
  134. package/src/integrations/OBSMode.js +754 -0
  135. package/src/integrations/ThreeJsPackage.js +660 -0
  136. package/src/integrations/TouchDesignerExport.js +552 -0
  137. package/src/integrations/frameworks/Vib3React.js +591 -0
  138. package/src/integrations/frameworks/Vib3Svelte.js +654 -0
  139. package/src/integrations/frameworks/Vib3Vue.js +628 -0
  140. package/src/llm/LLMParameterInterface.js +240 -0
  141. package/src/llm/LLMParameterUI.js +577 -0
  142. package/src/math/Mat4x4.js +708 -0
  143. package/src/math/Projection.js +341 -0
  144. package/src/math/Rotor4D.js +637 -0
  145. package/src/math/Vec4.js +476 -0
  146. package/src/math/constants.js +164 -0
  147. package/src/math/index.js +68 -0
  148. package/src/math/projections.js +54 -0
  149. package/src/math/rotations.js +196 -0
  150. package/src/quantum/QuantumEngine.js +906 -0
  151. package/src/quantum/QuantumVisualizer.js +1103 -0
  152. package/src/reactivity/ReactivityConfig.js +499 -0
  153. package/src/reactivity/ReactivityManager.js +586 -0
  154. package/src/reactivity/SpatialInputSystem.js +1783 -0
  155. package/src/reactivity/index.js +93 -0
  156. package/src/render/CommandBuffer.js +465 -0
  157. package/src/render/MultiCanvasBridge.js +340 -0
  158. package/src/render/RenderCommand.js +514 -0
  159. package/src/render/RenderResourceRegistry.js +523 -0
  160. package/src/render/RenderState.js +552 -0
  161. package/src/render/RenderTarget.js +512 -0
  162. package/src/render/ShaderLoader.js +253 -0
  163. package/src/render/ShaderProgram.js +599 -0
  164. package/src/render/UnifiedRenderBridge.js +496 -0
  165. package/src/render/backends/WebGLBackend.js +1108 -0
  166. package/src/render/backends/WebGPUBackend.js +1409 -0
  167. package/src/render/commands/CommandBufferExecutor.js +607 -0
  168. package/src/render/commands/RenderCommandBuffer.js +661 -0
  169. package/src/render/commands/index.js +17 -0
  170. package/src/render/index.js +367 -0
  171. package/src/scene/Disposable.js +498 -0
  172. package/src/scene/MemoryPool.js +618 -0
  173. package/src/scene/Node4D.js +697 -0
  174. package/src/scene/ResourceManager.js +599 -0
  175. package/src/scene/Scene4D.js +540 -0
  176. package/src/scene/index.js +98 -0
  177. package/src/schemas/error.schema.json +84 -0
  178. package/src/schemas/extension.schema.json +88 -0
  179. package/src/schemas/index.js +214 -0
  180. package/src/schemas/parameters.schema.json +142 -0
  181. package/src/schemas/tool-pack.schema.json +44 -0
  182. package/src/schemas/tool-response.schema.json +127 -0
  183. package/src/shaders/common/fullscreen.vert.glsl +5 -0
  184. package/src/shaders/common/fullscreen.vert.wgsl +17 -0
  185. package/src/shaders/common/geometry24.glsl +65 -0
  186. package/src/shaders/common/geometry24.wgsl +54 -0
  187. package/src/shaders/common/rotation4d.glsl +85 -0
  188. package/src/shaders/common/rotation4d.wgsl +86 -0
  189. package/src/shaders/common/uniforms.glsl +44 -0
  190. package/src/shaders/common/uniforms.wgsl +48 -0
  191. package/src/shaders/faceted/faceted.frag.glsl +129 -0
  192. package/src/shaders/faceted/faceted.frag.wgsl +164 -0
  193. package/src/shaders/holographic/holographic.frag.glsl +406 -0
  194. package/src/shaders/holographic/holographic.frag.wgsl +185 -0
  195. package/src/shaders/quantum/quantum.frag.glsl +513 -0
  196. package/src/shaders/quantum/quantum.frag.wgsl +361 -0
  197. package/src/testing/ParallelTestFramework.js +519 -0
  198. package/src/testing/__snapshots__/exportFormats.test.js.snap +24 -0
  199. package/src/testing/exportFormats.test.js +8 -0
  200. package/src/testing/projections.test.js +14 -0
  201. package/src/testing/rotations.test.js +37 -0
  202. package/src/ui/InteractivityMenu.js +516 -0
  203. package/src/ui/StatusManager.js +96 -0
  204. package/src/ui/adaptive/renderers/webgpu/BufferLayout.ts +252 -0
  205. package/src/ui/adaptive/renderers/webgpu/PolytopeInstanceBuffer.ts +144 -0
  206. package/src/ui/adaptive/renderers/webgpu/TripleBufferedUniform.ts +170 -0
  207. package/src/ui/adaptive/renderers/webgpu/WebGPURenderer.ts +735 -0
  208. package/src/ui/adaptive/renderers/webgpu/index.ts +112 -0
  209. package/src/variations/VariationManager.js +431 -0
  210. package/src/viewer/AudioReactivity.js +505 -0
  211. package/src/viewer/CardBending.js +481 -0
  212. package/src/viewer/GalleryUI.js +832 -0
  213. package/src/viewer/ReactivityManager.js +590 -0
  214. package/src/viewer/TradingCardExporter.js +600 -0
  215. package/src/viewer/ViewerPortal.js +374 -0
  216. package/src/viewer/index.js +12 -0
  217. package/src/wasm/WasmLoader.js +296 -0
  218. package/src/wasm/index.js +132 -0
  219. package/tools/agentic/mcpTools.js +88 -0
  220. package/tools/cli/agent-cli.js +92 -0
  221. package/tools/export/formats.js +24 -0
  222. package/tools/math/rotation-baseline.mjs +64 -0
  223. package/tools/shader-sync-verify.js +937 -0
  224. package/tools/telemetry/manifestPipeline.js +141 -0
  225. package/tools/telemetry/telemetryEvents.js +35 -0
  226. package/types/adaptive-sdk.d.ts +185 -0
  227. package/types/advanced/AIPresetGenerator.d.ts +81 -0
  228. package/types/advanced/MIDIController.d.ts +100 -0
  229. package/types/advanced/OffscreenWorker.d.ts +82 -0
  230. package/types/advanced/WebGPUCompute.d.ts +52 -0
  231. package/types/advanced/WebXRRenderer.d.ts +77 -0
  232. package/types/advanced/index.d.ts +46 -0
  233. package/types/core/ErrorReporter.d.ts +50 -0
  234. package/types/core/VIB3Engine.d.ts +204 -0
  235. package/types/creative/ColorPresetsSystem.d.ts +91 -0
  236. package/types/creative/ParameterTimeline.d.ts +74 -0
  237. package/types/creative/PostProcessingPipeline.d.ts +109 -0
  238. package/types/creative/TransitionAnimator.d.ts +71 -0
  239. package/types/creative/index.d.ts +35 -0
  240. package/types/integrations/FigmaPlugin.d.ts +46 -0
  241. package/types/integrations/OBSMode.d.ts +74 -0
  242. package/types/integrations/ThreeJsPackage.d.ts +62 -0
  243. package/types/integrations/TouchDesignerExport.d.ts +36 -0
  244. package/types/integrations/Vib3React.d.ts +74 -0
  245. package/types/integrations/Vib3Svelte.d.ts +63 -0
  246. package/types/integrations/Vib3Vue.d.ts +55 -0
  247. package/types/integrations/index.d.ts +52 -0
  248. package/types/reactivity/SpatialInputSystem.d.ts +173 -0
  249. package/types/reactivity/index.d.ts +394 -0
  250. package/types/render/CommandBuffer.d.ts +169 -0
  251. package/types/render/RenderCommand.d.ts +312 -0
  252. package/types/render/RenderState.d.ts +279 -0
  253. package/types/render/RenderTarget.d.ts +254 -0
  254. package/types/render/ShaderProgram.d.ts +277 -0
  255. package/types/render/UnifiedRenderBridge.d.ts +143 -0
  256. package/types/render/WebGLBackend.d.ts +168 -0
  257. package/types/render/WebGPUBackend.d.ts +186 -0
  258. 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;