UNPKG

svader

Version:

Create GPU-rendered Svelte components

95 lines (94 loc) 3.36 kB
export default WebGlShader; /** * The commonly used parameter values that the component can pass to the shader. * * - **resolution**: A `vec2` of the canvas width and height in physical device pixels. * * - **offset**: A `vec2` to be added to the `gl_FragCoord.xy` of the fragment shader, * to compensate for cases where the size of the canvas is capped by hardware limitations. * * - **scale**: A `float` of the current scale factor, i.e. zoom level. * * - **time**: A `float` of the current time in seconds. * NOTE: When the `"time"` parameter is passed to the shader, it will rerender every frame. * If the user agent has reduced motion enabled, the time parameter will always be equal to 0.0. */ export type BuiltinValue = "resolution" | "offset" | "scale" | "time"; export type BuiltinParameter = { name: string; value: BuiltinValue; }; export type NonBuiltinParameter = { name: string; } & ({ type: "float" | "int" | "uint"; value: number; } | { type: "vec2" | "ivec2" | "uvec2"; value: readonly [number, number]; } | { type: "vec3" | "ivec3" | "uvec3"; value: readonly [number, number, number]; } | { type: "vec4" | "ivec4" | "uvec4"; value: readonly [number, number, number, number]; } | { type: "vec4" | "ivec4" | "uvec4"; value: readonly [number, number, number, number]; } | { type: "mat2"; value: readonly [number, number, number, number]; } | { type: "mat3"; value: readonly [number, number, number, number, number, number, number, number, number]; } | { type: "mat4"; value: readonly [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number]; }); export type Parameter = BuiltinParameter | NonBuiltinParameter; type WebGlShader = SvelteComponent<$$__sveltets_2_PropsWithChildren<{ code: string | Promise<string>; width?: string | undefined; height?: string | undefined; forceAnimation?: boolean | undefined; parameters?: readonly Parameter[] | undefined; }, { default: {}; }>, { [evt: string]: CustomEvent<any>; }, { default: {}; }> & { $$bindings?: string | undefined; }; declare const WebGlShader: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{ code: string | Promise<string>; width?: string | undefined; height?: string | undefined; forceAnimation?: boolean | undefined; parameters?: readonly Parameter[] | undefined; }, { default: {}; }>, { [evt: string]: CustomEvent<any>; }, { default: {}; }, {}, string>; type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends { default: any; } ? Props extends Record<string, never> ? any : { children?: any; } : {}); interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> { new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & { $$bindings?: Bindings; } & Exports; (internal: unknown, props: Props & { $$events?: Events; $$slots?: Slots; }): Exports & { $set?: any; $on?: any; }; z_$$bindings?: Bindings; }