@motion-core/motion-gpu 0.1.0
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/LICENSE +21 -0
- package/README.md +325 -0
- package/dist/FragCanvas.svelte +511 -0
- package/dist/FragCanvas.svelte.d.ts +26 -0
- package/dist/MotionGPUErrorOverlay.svelte +394 -0
- package/dist/MotionGPUErrorOverlay.svelte.d.ts +7 -0
- package/dist/Portal.svelte +46 -0
- package/dist/Portal.svelte.d.ts +8 -0
- package/dist/advanced-scheduler.d.ts +44 -0
- package/dist/advanced-scheduler.js +58 -0
- package/dist/advanced.d.ts +14 -0
- package/dist/advanced.js +9 -0
- package/dist/core/error-diagnostics.d.ts +40 -0
- package/dist/core/error-diagnostics.js +111 -0
- package/dist/core/error-report.d.ts +67 -0
- package/dist/core/error-report.js +190 -0
- package/dist/core/material-preprocess.d.ts +63 -0
- package/dist/core/material-preprocess.js +166 -0
- package/dist/core/material.d.ts +157 -0
- package/dist/core/material.js +358 -0
- package/dist/core/recompile-policy.d.ts +27 -0
- package/dist/core/recompile-policy.js +15 -0
- package/dist/core/render-graph.d.ts +55 -0
- package/dist/core/render-graph.js +73 -0
- package/dist/core/render-targets.d.ts +39 -0
- package/dist/core/render-targets.js +63 -0
- package/dist/core/renderer.d.ts +9 -0
- package/dist/core/renderer.js +1097 -0
- package/dist/core/shader.d.ts +42 -0
- package/dist/core/shader.js +196 -0
- package/dist/core/texture-loader.d.ts +129 -0
- package/dist/core/texture-loader.js +295 -0
- package/dist/core/textures.d.ts +114 -0
- package/dist/core/textures.js +136 -0
- package/dist/core/types.d.ts +523 -0
- package/dist/core/types.js +4 -0
- package/dist/core/uniforms.d.ts +48 -0
- package/dist/core/uniforms.js +222 -0
- package/dist/current-writable.d.ts +31 -0
- package/dist/current-writable.js +27 -0
- package/dist/frame-context.d.ts +287 -0
- package/dist/frame-context.js +731 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.js +11 -0
- package/dist/motiongpu-context.d.ts +77 -0
- package/dist/motiongpu-context.js +26 -0
- package/dist/passes/BlitPass.d.ts +32 -0
- package/dist/passes/BlitPass.js +158 -0
- package/dist/passes/CopyPass.d.ts +25 -0
- package/dist/passes/CopyPass.js +53 -0
- package/dist/passes/ShaderPass.d.ts +40 -0
- package/dist/passes/ShaderPass.js +182 -0
- package/dist/passes/index.d.ts +3 -0
- package/dist/passes/index.js +3 -0
- package/dist/use-motiongpu-user-context.d.ts +35 -0
- package/dist/use-motiongpu-user-context.js +74 -0
- package/dist/use-texture.d.ts +35 -0
- package/dist/use-texture.js +147 -0
- package/package.json +94 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { RenderTargetDefinitionMap } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Concrete render target configuration resolved for current canvas size.
|
|
4
|
+
*/
|
|
5
|
+
export interface ResolvedRenderTargetDefinition {
|
|
6
|
+
/**
|
|
7
|
+
* Render target key.
|
|
8
|
+
*/
|
|
9
|
+
key: string;
|
|
10
|
+
/**
|
|
11
|
+
* Resolved width in pixels.
|
|
12
|
+
*/
|
|
13
|
+
width: number;
|
|
14
|
+
/**
|
|
15
|
+
* Resolved height in pixels.
|
|
16
|
+
*/
|
|
17
|
+
height: number;
|
|
18
|
+
/**
|
|
19
|
+
* Resolved format.
|
|
20
|
+
*/
|
|
21
|
+
format: GPUTextureFormat;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Resolves all render target definitions for a specific canvas size.
|
|
25
|
+
*
|
|
26
|
+
* @param definitions - Declarative definitions.
|
|
27
|
+
* @param canvasWidth - Current canvas width in pixels.
|
|
28
|
+
* @param canvasHeight - Current canvas height in pixels.
|
|
29
|
+
* @param defaultFormat - Fallback texture format.
|
|
30
|
+
* @returns Sorted concrete render target definitions.
|
|
31
|
+
*/
|
|
32
|
+
export declare function resolveRenderTargetDefinitions(definitions: RenderTargetDefinitionMap | undefined, canvasWidth: number, canvasHeight: number, defaultFormat: GPUTextureFormat): ResolvedRenderTargetDefinition[];
|
|
33
|
+
/**
|
|
34
|
+
* Builds a deterministic signature used to detect render target topology changes.
|
|
35
|
+
*
|
|
36
|
+
* @param resolvedDefinitions - Concrete target definitions.
|
|
37
|
+
* @returns Stable signature string.
|
|
38
|
+
*/
|
|
39
|
+
export declare function buildRenderTargetSignature(resolvedDefinitions: ResolvedRenderTargetDefinition[]): string;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { assertUniformName } from './uniforms';
|
|
2
|
+
/**
|
|
3
|
+
* Asserts positive finite numeric input for render target options.
|
|
4
|
+
*/
|
|
5
|
+
function assertPositiveFinite(name, value) {
|
|
6
|
+
if (!Number.isFinite(value) || value <= 0) {
|
|
7
|
+
throw new Error(`${name} must be a finite number greater than 0`);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Resolves a render target dimension from explicit value or scaled canvas size.
|
|
12
|
+
*/
|
|
13
|
+
function resolveDimension(explicitValue, canvasDimension, scale) {
|
|
14
|
+
if (explicitValue !== undefined) {
|
|
15
|
+
assertPositiveFinite('RenderTarget dimension', explicitValue);
|
|
16
|
+
return Math.max(1, Math.floor(explicitValue));
|
|
17
|
+
}
|
|
18
|
+
return Math.max(1, Math.floor(canvasDimension * scale));
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Resolves all render target definitions for a specific canvas size.
|
|
22
|
+
*
|
|
23
|
+
* @param definitions - Declarative definitions.
|
|
24
|
+
* @param canvasWidth - Current canvas width in pixels.
|
|
25
|
+
* @param canvasHeight - Current canvas height in pixels.
|
|
26
|
+
* @param defaultFormat - Fallback texture format.
|
|
27
|
+
* @returns Sorted concrete render target definitions.
|
|
28
|
+
*/
|
|
29
|
+
export function resolveRenderTargetDefinitions(definitions, canvasWidth, canvasHeight, defaultFormat) {
|
|
30
|
+
if (!definitions) {
|
|
31
|
+
return [];
|
|
32
|
+
}
|
|
33
|
+
const keys = Object.keys(definitions).sort();
|
|
34
|
+
const resolved = [];
|
|
35
|
+
for (const key of keys) {
|
|
36
|
+
assertUniformName(key);
|
|
37
|
+
const definition = definitions[key];
|
|
38
|
+
const scale = definition?.scale ?? 1;
|
|
39
|
+
assertPositiveFinite('RenderTarget scale', scale);
|
|
40
|
+
const width = resolveDimension(definition?.width, canvasWidth, scale);
|
|
41
|
+
const height = resolveDimension(definition?.height, canvasHeight, scale);
|
|
42
|
+
resolved.push({
|
|
43
|
+
key,
|
|
44
|
+
width,
|
|
45
|
+
height,
|
|
46
|
+
format: definition?.format ?? defaultFormat
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
return resolved;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Builds a deterministic signature used to detect render target topology changes.
|
|
53
|
+
*
|
|
54
|
+
* @param resolvedDefinitions - Concrete target definitions.
|
|
55
|
+
* @returns Stable signature string.
|
|
56
|
+
*/
|
|
57
|
+
export function buildRenderTargetSignature(resolvedDefinitions) {
|
|
58
|
+
return resolvedDefinitions
|
|
59
|
+
.map((definition) => {
|
|
60
|
+
return `${definition.key}:${definition.format}:${definition.width}x${definition.height}`;
|
|
61
|
+
})
|
|
62
|
+
.join('|');
|
|
63
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Renderer, RendererOptions } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Creates the WebGPU renderer used by `FragCanvas`.
|
|
4
|
+
*
|
|
5
|
+
* @param options - Renderer creation options resolved from material/context state.
|
|
6
|
+
* @returns Renderer instance with `render` and `destroy`.
|
|
7
|
+
* @throws {Error} On WebGPU unavailability, shader compilation issues, or runtime setup failures.
|
|
8
|
+
*/
|
|
9
|
+
export declare function createRenderer(options: RendererOptions): Promise<Renderer>;
|