/** * Dot Screen - * Simulates a black and white halftone rendering of the image by multiplying * pixel values with a rotated 2D sine wave pattern. */ export type DotScreenProps = { /** The x, y coordinate of the pattern origin. */ center?: [number, number]; /** The rotation of the pattern in radians. */ angle?: number; /** The diameter of a dot in pixels. */ size?: number; }; export type DotScreenUniforms = DotScreenProps; /** * Dot Screen - * Simulates a black and white halftone rendering of the image by multiplying * pixel values with a rotated 2D sine wave pattern. */ export declare const dotScreen: { readonly name: "dotScreen"; readonly source: "struct dotScreenUniforms {\n center: vec2f,\n angle: f32,\n size: f32,\n};\n\n@group(0) @binding(auto) var dotScreen: dotScreenUniforms;\n\nfn pattern(texSize: vec2f, texCoord: vec2f) -> f32 {\n let scale = 3.1415 / dotScreen.size;\n let s = sin(dotScreen.angle);\n let c = cos(dotScreen.angle);\n let tex = texCoord * texSize - dotScreen.center * texSize;\n let point = vec2f(\n c * tex.x - s * tex.y,\n s * tex.x + c * tex.y\n ) * scale;\n return (sin(point.x) * sin(point.y)) * 4.0;\n}\n\nfn dotScreen_filterColor_ext(color: vec4f, texSize: vec2f, texCoord: vec2f) -> vec4f {\n let average = (color.r + color.g + color.b) / 3.0;\n return vec4f(vec3f(average * 10.0 - 5.0 + pattern(texSize, texCoord)), color.a);\n}\n"; readonly fs: "layout(std140) uniform dotScreenUniforms {\n vec2 center;\n float angle;\n float size;\n} dotScreen;\n\nfloat pattern(vec2 texSize, vec2 texCoord) {\n float scale = 3.1415 / dotScreen.size;\n\n float s = sin(dotScreen.angle), c = cos(dotScreen.angle);\n vec2 tex = texCoord * texSize - dotScreen.center * texSize;\n vec2 point = vec2(\n c * tex.x - s * tex.y,\n s * tex.x + c * tex.y\n ) * scale;\n return (sin(point.x) * sin(point.y)) * 4.0;\n}\n\nvec4 dotScreen_filterColor_ext(vec4 color, vec2 texSize, vec2 texCoord) {\n float average = (color.r + color.g + color.b) / 3.0;\n return vec4(vec3(average * 10.0 - 5.0 + pattern(texSize, texCoord)), color.a);\n}\n"; readonly props: DotScreenProps; readonly uniforms: DotScreenUniforms; readonly uniformTypes: { readonly center: "vec2"; readonly angle: "f32"; readonly size: "f32"; }; readonly propTypes: { readonly center: { readonly value: readonly [0.5, 0.5]; }; readonly angle: { readonly value: 1.1; readonly softMin: 0; readonly softMax: number; }; readonly size: { readonly value: 3; readonly min: 1; readonly softMin: 3; readonly softMax: 20; }; }; readonly passes: [{ readonly filter: true; }]; }; //# sourceMappingURL=dotscreen.d.ts.map