UNPKG

@motion-core/motion-gpu

Version:

Framework-agnostic WebGPU runtime for fullscreen WGSL shaders with explicit Svelte, React, and Vue adapter entrypoints.

64 lines 2.15 kB
import type { MaterialDefineValue, MaterialDefines, MaterialIncludes } from './material.js'; /** * Source location metadata for one generated fragment line. */ export interface MaterialSourceLocation { /** * Origin category for this generated line. */ kind: 'fragment' | 'include' | 'define'; /** * 1-based line in the origin source. */ line: number; /** * Include chunk identifier when `kind === "include"`. */ include?: string; /** * Define identifier when `kind === "define"`. */ define?: string; } /** * 1-based line map from generated fragment WGSL to user source locations. */ export type MaterialLineMap = Array<MaterialSourceLocation | null>; /** * Preprocess output used by material resolution and diagnostics mapping. */ export interface PreprocessedMaterialFragment { /** * Final fragment source after defines/include expansion. */ fragment: string; /** * 1-based generated-line source map. */ lineMap: MaterialLineMap; /** * Deterministic WGSL define block used to build the final fragment source. */ defineBlockSource: string; } /** * Validates and normalizes define entries. */ export declare function normalizeDefines<TDefineKey extends string>(defines: MaterialDefines<TDefineKey> | undefined): MaterialDefines<TDefineKey>; /** * Validates include map identifiers and source chunks. */ export declare function normalizeIncludes<TIncludeKey extends string>(includes: MaterialIncludes<TIncludeKey> | undefined): MaterialIncludes<TIncludeKey>; /** * Converts one define declaration to WGSL `const`. */ export declare function toDefineLine(key: string, value: MaterialDefineValue): string; /** * Preprocesses material fragment with deterministic define/include expansion and line mapping. */ export declare function preprocessMaterialFragment<TDefineKey extends string, TIncludeKey extends string>(input: { fragment: string; defines?: MaterialDefines<TDefineKey>; includes?: MaterialIncludes<TIncludeKey>; }): PreprocessedMaterialFragment; //# sourceMappingURL=material-preprocess.d.ts.map