fra.ktu.red-component 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 +44 -0
- package/README.md +1 -0
- package/dist/components/red_viewer.d.ts +5 -0
- package/dist/components/red_viewer.d.ts.map +1 -0
- package/dist/components/red_viewer.js +86 -0
- package/dist/components/red_viewer.js.map +1 -0
- package/dist/ffmpeg/ffmpeg-core.js +21 -0
- package/dist/ffmpeg/ffmpeg-core.wasm +0 -0
- package/dist/helpers/assets.d.ts +8 -0
- package/dist/helpers/assets.d.ts.map +1 -0
- package/dist/helpers/assets.js +63 -0
- package/dist/helpers/assets.js.map +1 -0
- package/dist/helpers/export.d.ts +8 -0
- package/dist/helpers/export.d.ts.map +1 -0
- package/dist/helpers/export.js +58 -0
- package/dist/helpers/export.js.map +1 -0
- package/dist/helpers/ffmpeg-core.js +21 -0
- package/dist/helpers/ffmpeg-core.wasm +0 -0
- package/dist/helpers/ids.d.ts +2 -0
- package/dist/helpers/ids.d.ts.map +1 -0
- package/dist/helpers/ids.js +11 -0
- package/dist/helpers/ids.js.map +1 -0
- package/dist/helpers/layers.d.ts +8 -0
- package/dist/helpers/layers.d.ts.map +1 -0
- package/dist/helpers/layers.js +32 -0
- package/dist/helpers/layers.js.map +1 -0
- package/dist/helpers/signals.d.ts +13 -0
- package/dist/helpers/signals.d.ts.map +1 -0
- package/dist/helpers/signals.js +61 -0
- package/dist/helpers/signals.js.map +1 -0
- package/dist/helpers/sparkle.d.ts +4 -0
- package/dist/helpers/sparkle.d.ts.map +1 -0
- package/dist/helpers/sparkle.js +4742 -0
- package/dist/helpers/sparkle.js.map +1 -0
- package/dist/index.d.ts +57 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +31 -0
- package/dist/index.js.map +1 -0
- package/dist/ktu/ui/core/data_store.d.ts +12 -0
- package/dist/ktu/ui/core/data_store.d.ts.map +1 -0
- package/dist/ktu/ui/core/data_store.js +71 -0
- package/dist/ktu/ui/core/data_store.js.map +1 -0
- package/dist/ktu/ui/core/event_dispatcher.d.ts +11 -0
- package/dist/ktu/ui/core/event_dispatcher.d.ts.map +1 -0
- package/dist/ktu/ui/core/event_dispatcher.js +37 -0
- package/dist/ktu/ui/core/event_dispatcher.js.map +1 -0
- package/dist/ktu/ui/core/ktu_component.d.ts +22 -0
- package/dist/ktu/ui/core/ktu_component.d.ts.map +1 -0
- package/dist/ktu/ui/core/ktu_component.js +74 -0
- package/dist/ktu/ui/core/ktu_component.js.map +1 -0
- package/dist/ktu/ui/core/translation_manager.d.ts +12 -0
- package/dist/ktu/ui/core/translation_manager.d.ts.map +1 -0
- package/dist/ktu/ui/core/translation_manager.js +34 -0
- package/dist/ktu/ui/core/translation_manager.js.map +1 -0
- package/dist/layers/base_layer.d.ts +18 -0
- package/dist/layers/base_layer.d.ts.map +1 -0
- package/dist/layers/base_layer.js +68 -0
- package/dist/layers/base_layer.js.map +1 -0
- package/dist/layers/display/background_layer.d.ts +15 -0
- package/dist/layers/display/background_layer.d.ts.map +1 -0
- package/dist/layers/display/background_layer.js +40 -0
- package/dist/layers/display/background_layer.js.map +1 -0
- package/dist/layers/display/display_layer.d.ts +24 -0
- package/dist/layers/display/display_layer.d.ts.map +1 -0
- package/dist/layers/display/display_layer.js +131 -0
- package/dist/layers/display/display_layer.js.map +1 -0
- package/dist/layers/display/video_layer.d.ts +36 -0
- package/dist/layers/display/video_layer.d.ts.map +1 -0
- package/dist/layers/display/video_layer.js +296 -0
- package/dist/layers/display/video_layer.js.map +1 -0
- package/dist/layers/ilayer.d.ts +21 -0
- package/dist/layers/ilayer.d.ts.map +1 -0
- package/dist/layers/ilayer.js +2 -0
- package/dist/layers/ilayer.js.map +1 -0
- package/dist/layers/shaders/anaglyph/anaglyph_shader.d.ts +16 -0
- package/dist/layers/shaders/anaglyph/anaglyph_shader.d.ts.map +1 -0
- package/dist/layers/shaders/anaglyph/anaglyph_shader.frag +36 -0
- package/dist/layers/shaders/anaglyph/anaglyph_shader.js +28 -0
- package/dist/layers/shaders/anaglyph/anaglyph_shader.js.map +1 -0
- package/dist/layers/shaders/blur/blur_shader.d.ts +17 -0
- package/dist/layers/shaders/blur/blur_shader.d.ts.map +1 -0
- package/dist/layers/shaders/blur/blur_shader.frag +47 -0
- package/dist/layers/shaders/blur/blur_shader.js +36 -0
- package/dist/layers/shaders/blur/blur_shader.js.map +1 -0
- package/dist/layers/shaders/bnw/bnw_shader.d.ts +11 -0
- package/dist/layers/shaders/bnw/bnw_shader.d.ts.map +1 -0
- package/dist/layers/shaders/bnw/bnw_shader.frag +13 -0
- package/dist/layers/shaders/bnw/bnw_shader.js +21 -0
- package/dist/layers/shaders/bnw/bnw_shader.js.map +1 -0
- package/dist/layers/shaders/chroma/chroma_shader.d.ts +18 -0
- package/dist/layers/shaders/chroma/chroma_shader.d.ts.map +1 -0
- package/dist/layers/shaders/chroma/chroma_shader.frag +32 -0
- package/dist/layers/shaders/chroma/chroma_shader.js +45 -0
- package/dist/layers/shaders/chroma/chroma_shader.js.map +1 -0
- package/dist/layers/shaders/crosses/crosses_shader.d.ts +20 -0
- package/dist/layers/shaders/crosses/crosses_shader.d.ts.map +1 -0
- package/dist/layers/shaders/crosses/crosses_shader.frag +78 -0
- package/dist/layers/shaders/crosses/crosses_shader.js +51 -0
- package/dist/layers/shaders/crosses/crosses_shader.js.map +1 -0
- package/dist/layers/shaders/defaultFilter.vert +27 -0
- package/dist/layers/shaders/hlines/hlines_shader.d.ts +17 -0
- package/dist/layers/shaders/hlines/hlines_shader.d.ts.map +1 -0
- package/dist/layers/shaders/hlines/hlines_shader.frag +43 -0
- package/dist/layers/shaders/hlines/hlines_shader.js +31 -0
- package/dist/layers/shaders/hlines/hlines_shader.js.map +1 -0
- package/dist/layers/shaders/hnoise/hnoise_shader.d.ts +19 -0
- package/dist/layers/shaders/hnoise/hnoise_shader.d.ts.map +1 -0
- package/dist/layers/shaders/hnoise/hnoise_shader.frag +68 -0
- package/dist/layers/shaders/hnoise/hnoise_shader.js +40 -0
- package/dist/layers/shaders/hnoise/hnoise_shader.js.map +1 -0
- package/dist/layers/shaders/hsb_blur/hsb_blur_shader.d.ts +19 -0
- package/dist/layers/shaders/hsb_blur/hsb_blur_shader.d.ts.map +1 -0
- package/dist/layers/shaders/hsb_blur/hsb_blur_shader.frag +73 -0
- package/dist/layers/shaders/hsb_blur/hsb_blur_shader.js +50 -0
- package/dist/layers/shaders/hsb_blur/hsb_blur_shader.js.map +1 -0
- package/dist/layers/shaders/light_split/light_split_shader.d.ts +20 -0
- package/dist/layers/shaders/light_split/light_split_shader.d.ts.map +1 -0
- package/dist/layers/shaders/light_split/light_split_shader.frag +54 -0
- package/dist/layers/shaders/light_split/light_split_shader.js +40 -0
- package/dist/layers/shaders/light_split/light_split_shader.js.map +1 -0
- package/dist/layers/shaders/montecarlo/montecarlo_shader.d.ts +17 -0
- package/dist/layers/shaders/montecarlo/montecarlo_shader.d.ts.map +1 -0
- package/dist/layers/shaders/montecarlo/montecarlo_shader.frag +31 -0
- package/dist/layers/shaders/montecarlo/montecarlo_shader.js +31 -0
- package/dist/layers/shaders/montecarlo/montecarlo_shader.js.map +1 -0
- package/dist/layers/shaders/negative/negative_shader.d.ts +11 -0
- package/dist/layers/shaders/negative/negative_shader.d.ts.map +1 -0
- package/dist/layers/shaders/negative/negative_shader.frag +13 -0
- package/dist/layers/shaders/negative/negative_shader.js +21 -0
- package/dist/layers/shaders/negative/negative_shader.js.map +1 -0
- package/dist/layers/shaders/pixelate/pixelate_shader.d.ts +16 -0
- package/dist/layers/shaders/pixelate/pixelate_shader.d.ts.map +1 -0
- package/dist/layers/shaders/pixelate/pixelate_shader.frag +50 -0
- package/dist/layers/shaders/pixelate/pixelate_shader.js +28 -0
- package/dist/layers/shaders/pixelate/pixelate_shader.js.map +1 -0
- package/dist/layers/shaders/posterize/posterize_shader.d.ts +16 -0
- package/dist/layers/shaders/posterize/posterize_shader.d.ts.map +1 -0
- package/dist/layers/shaders/posterize/posterize_shader.frag +24 -0
- package/dist/layers/shaders/posterize/posterize_shader.js +28 -0
- package/dist/layers/shaders/posterize/posterize_shader.js.map +1 -0
- package/dist/layers/shaders/recolour/recolour_shader.d.ts +22 -0
- package/dist/layers/shaders/recolour/recolour_shader.d.ts.map +1 -0
- package/dist/layers/shaders/recolour/recolour_shader.frag +68 -0
- package/dist/layers/shaders/recolour/recolour_shader.js +83 -0
- package/dist/layers/shaders/recolour/recolour_shader.js.map +1 -0
- package/dist/layers/shaders/scramble/scramble_shader.d.ts +16 -0
- package/dist/layers/shaders/scramble/scramble_shader.d.ts.map +1 -0
- package/dist/layers/shaders/scramble/scramble_shader.frag +45 -0
- package/dist/layers/shaders/scramble/scramble_shader.js +28 -0
- package/dist/layers/shaders/scramble/scramble_shader.js.map +1 -0
- package/dist/layers/shaders/shader_layer.d.ts +36 -0
- package/dist/layers/shaders/shader_layer.d.ts.map +1 -0
- package/dist/layers/shaders/shader_layer.js +100 -0
- package/dist/layers/shaders/shader_layer.js.map +1 -0
- package/dist/layers/shaders/vlines/vlines_shader.d.ts +17 -0
- package/dist/layers/shaders/vlines/vlines_shader.d.ts.map +1 -0
- package/dist/layers/shaders/vlines/vlines_shader.frag +43 -0
- package/dist/layers/shaders/vlines/vlines_shader.js +31 -0
- package/dist/layers/shaders/vlines/vlines_shader.js.map +1 -0
- package/dist/managers/export_manager.d.ts +2 -0
- package/dist/managers/export_manager.d.ts.map +1 -0
- package/dist/managers/export_manager.js +51 -0
- package/dist/managers/export_manager.js.map +1 -0
- package/dist/managers/layer_manager.d.ts +2 -0
- package/dist/managers/layer_manager.d.ts.map +1 -0
- package/dist/managers/layer_manager.js +62 -0
- package/dist/managers/layer_manager.js.map +1 -0
- package/dist/managers/modulator_manager.d.ts +2 -0
- package/dist/managers/modulator_manager.d.ts.map +1 -0
- package/dist/managers/modulator_manager.js +54 -0
- package/dist/managers/modulator_manager.js.map +1 -0
- package/dist/managers/shader_manager.d.ts +2 -0
- package/dist/managers/shader_manager.d.ts.map +1 -0
- package/dist/managers/shader_manager.js +106 -0
- package/dist/managers/shader_manager.js.map +1 -0
- package/dist/modulators/base_modulator.d.ts +20 -0
- package/dist/modulators/base_modulator.d.ts.map +1 -0
- package/dist/modulators/base_modulator.js +109 -0
- package/dist/modulators/base_modulator.js.map +1 -0
- package/dist/modulators/compressor_modulator.d.ts +17 -0
- package/dist/modulators/compressor_modulator.d.ts.map +1 -0
- package/dist/modulators/compressor_modulator.js +34 -0
- package/dist/modulators/compressor_modulator.js.map +1 -0
- package/dist/modulators/imodulator.d.ts +22 -0
- package/dist/modulators/imodulator.d.ts.map +1 -0
- package/dist/modulators/imodulator.js +2 -0
- package/dist/modulators/imodulator.js.map +1 -0
- package/dist/modulators/lfo_modulator.d.ts +13 -0
- package/dist/modulators/lfo_modulator.d.ts.map +1 -0
- package/dist/modulators/lfo_modulator.js +53 -0
- package/dist/modulators/lfo_modulator.js.map +1 -0
- package/dist/modulators/random_modulator.d.ts +12 -0
- package/dist/modulators/random_modulator.d.ts.map +1 -0
- package/dist/modulators/random_modulator.js +22 -0
- package/dist/modulators/random_modulator.js.map +1 -0
- package/dist/modulators/ring_modulator.d.ts +15 -0
- package/dist/modulators/ring_modulator.d.ts.map +1 -0
- package/dist/modulators/ring_modulator.js +39 -0
- package/dist/modulators/ring_modulator.js.map +1 -0
- package/dist/types/red_scene_state.d.ts +16 -0
- package/dist/types/red_scene_state.d.ts.map +1 -0
- package/dist/types/red_scene_state.js +2 -0
- package/dist/types/red_scene_state.js.map +1 -0
- package/dist/util.d.ts +2 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js +2 -0
- package/dist/util.js.map +1 -0
- package/package.json +39 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { UniformData } from "pixi.js";
|
|
2
|
+
import { ShaderLayer, type ShaderLayerState } from "../shader_layer.js";
|
|
3
|
+
export type PixelateShaderState = ShaderLayerState & {
|
|
4
|
+
pixelSize: number;
|
|
5
|
+
};
|
|
6
|
+
export declare class PixelateShader extends ShaderLayer {
|
|
7
|
+
_state: PixelateShaderState;
|
|
8
|
+
fragment: string;
|
|
9
|
+
static getDefaultState(sceneStateId: string): PixelateShaderState;
|
|
10
|
+
constructor(sceneStateId: string, state: PixelateShaderState, owner: string);
|
|
11
|
+
setupUniformValues(): {
|
|
12
|
+
[key: string]: UniformData;
|
|
13
|
+
};
|
|
14
|
+
updateUniforms(): void;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=pixelate_shader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pixelate_shader.d.ts","sourceRoot":"","sources":["../../../../src/layers/shaders/pixelate/pixelate_shader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGxE,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG;IACnD,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,qBAAa,cAAe,SAAQ,WAAW;IACrC,MAAM,EAAE,mBAAmB,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAY;IAE5B,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,mBAAmB;gBASrD,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM;IAK3E,kBAAkB,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE;IAMpD,cAAc,IAAI,IAAI;CAIvB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
precision highp float;
|
|
2
|
+
in vec2 vTextureCoord;
|
|
3
|
+
|
|
4
|
+
uniform sampler2D uTexture;
|
|
5
|
+
uniform vec4 uInputSize;
|
|
6
|
+
|
|
7
|
+
uniform float uPixelSize;
|
|
8
|
+
|
|
9
|
+
uniform vec4 uDryWet;
|
|
10
|
+
|
|
11
|
+
float PHI = 1.61803398874989484820459; // Φ = Golden Ratio
|
|
12
|
+
|
|
13
|
+
float gold_noise(vec2 xy, float seed){
|
|
14
|
+
return fract(tan(distance(xy*PHI, xy)*seed)*xy.x);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
vec2 mapCoord( vec2 coord )
|
|
18
|
+
{
|
|
19
|
+
coord *= uInputSize.xy;
|
|
20
|
+
coord += uInputSize.zw;
|
|
21
|
+
|
|
22
|
+
return coord;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
vec2 unmapCoord( vec2 coord )
|
|
26
|
+
{
|
|
27
|
+
coord -= uInputSize.zw;
|
|
28
|
+
coord /= uInputSize.xy;
|
|
29
|
+
|
|
30
|
+
return coord;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
vec2 pixelate(vec2 coord, float uPixelSize)
|
|
34
|
+
{
|
|
35
|
+
return (floor( coord / vec2(uPixelSize,uPixelSize) ) * vec2(uPixelSize,uPixelSize)) + (uPixelSize / 2.0);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
void main(){
|
|
39
|
+
vec4 oTex = texture(uTexture, vTextureCoord);
|
|
40
|
+
|
|
41
|
+
vec2 pixelCoord = mapCoord(vTextureCoord);
|
|
42
|
+
vec2 newCoord = pixelate(pixelCoord, uPixelSize);
|
|
43
|
+
|
|
44
|
+
vec2 coord = vTextureCoord;
|
|
45
|
+
coord = unmapCoord(newCoord);
|
|
46
|
+
|
|
47
|
+
vec4 tex = texture(uTexture, coord);
|
|
48
|
+
|
|
49
|
+
gl_FragColor = (1.0-uDryWet)*oTex +uDryWet * tex;
|
|
50
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { getCount } from "../../../helpers/ids.js";
|
|
2
|
+
import { ShaderLayer } from "../shader_layer.js";
|
|
3
|
+
import fragment from "./pixelate_shader.frag?raw";
|
|
4
|
+
export class PixelateShader extends ShaderLayer {
|
|
5
|
+
fragment = fragment;
|
|
6
|
+
static getDefaultState(sceneStateId) {
|
|
7
|
+
return {
|
|
8
|
+
...ShaderLayer.getDefaultState(sceneStateId),
|
|
9
|
+
type: "pixelate",
|
|
10
|
+
name: "pixelate_" + getCount(sceneStateId),
|
|
11
|
+
pixelSize: 10,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
constructor(sceneStateId, state, owner) {
|
|
15
|
+
super(sceneStateId, state, owner);
|
|
16
|
+
console.trace();
|
|
17
|
+
}
|
|
18
|
+
setupUniformValues() {
|
|
19
|
+
return {
|
|
20
|
+
uPixelSize: { value: this.getFieldValue("pixelSize"), type: "f32" },
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
updateUniforms() {
|
|
24
|
+
super.updateUniforms();
|
|
25
|
+
this.uniforms.uniforms.uPixelSize = this.getFieldValue("pixelSize");
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=pixelate_shader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pixelate_shader.js","sourceRoot":"","sources":["../../../../src/layers/shaders/pixelate/pixelate_shader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAyB,MAAM,oBAAoB,CAAC;AACxE,OAAO,QAAQ,MAAM,4BAA4B,CAAC;AAMlD,MAAM,OAAO,cAAe,SAAQ,WAAW;IAE7C,QAAQ,GAAW,QAAQ,CAAC;IAE5B,MAAM,CAAC,eAAe,CAAC,YAAoB;QACzC,OAAO;YACL,GAAG,WAAW,CAAC,eAAe,CAAC,YAAY,CAAC;YAC5C,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,WAAW,GAAG,QAAQ,CAAC,YAAY,CAAC;YAC1C,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAED,YAAY,YAAoB,EAAE,KAA0B,EAAE,KAAa;QACzE,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;IAED,kBAAkB;QAChB,OAAO;YACL,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;SACpE,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IACtE,CAAC;CACF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { UniformData } from "pixi.js";
|
|
2
|
+
import { ShaderLayer, type ShaderLayerState } from "../shader_layer.js";
|
|
3
|
+
export type PosterizeShaderState = ShaderLayerState & {
|
|
4
|
+
levels: number;
|
|
5
|
+
};
|
|
6
|
+
export declare class PosterizeShader extends ShaderLayer {
|
|
7
|
+
_state: PosterizeShaderState;
|
|
8
|
+
fragment: string;
|
|
9
|
+
static getDefaultState(sceneStateId: string): PosterizeShaderState;
|
|
10
|
+
constructor(sceneStateId: string, state: PosterizeShaderState, owner: string);
|
|
11
|
+
setupUniformValues(): {
|
|
12
|
+
[key: string]: UniformData;
|
|
13
|
+
};
|
|
14
|
+
updateUniforms(): void;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=posterize_shader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"posterize_shader.d.ts","sourceRoot":"","sources":["../../../../src/layers/shaders/posterize/posterize_shader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGxE,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG;IACpD,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,qBAAa,eAAgB,SAAQ,WAAW;IACtC,MAAM,EAAE,oBAAoB,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAY;IAE5B,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,oBAAoB;gBAUhE,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,MAAM;IAMf,kBAAkB,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE;IAMpD,cAAc,IAAI,IAAI;CAIvB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
in vec2 vTextureCoord;
|
|
2
|
+
|
|
3
|
+
uniform sampler2D uTexture;
|
|
4
|
+
uniform float uLevels;
|
|
5
|
+
uniform vec4 uDryWet;
|
|
6
|
+
|
|
7
|
+
float roundValue(float x) {
|
|
8
|
+
return x - floor(x) > 0.5 ? ceil(x) : floor(x);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
void main() {
|
|
12
|
+
vec4 oTex = texture(uTexture, vTextureCoord);
|
|
13
|
+
|
|
14
|
+
// Avoid division by zero and preserve a minimum of 2 discrete levels.
|
|
15
|
+
float levels = max(uLevels, 2.0);
|
|
16
|
+
float scale = levels - 1.0;
|
|
17
|
+
|
|
18
|
+
vec4 tex = oTex;
|
|
19
|
+
tex.r = roundValue(tex.r * scale) / scale;
|
|
20
|
+
tex.g = roundValue(tex.g * scale) / scale;
|
|
21
|
+
tex.b = roundValue(tex.b * scale) / scale;
|
|
22
|
+
|
|
23
|
+
gl_FragColor = (1.0 - uDryWet) * oTex + uDryWet * tex;
|
|
24
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { getCount } from "../../../helpers/ids.js";
|
|
2
|
+
import { ShaderLayer } from "../shader_layer.js";
|
|
3
|
+
import fragment from "./posterize_shader.frag?raw";
|
|
4
|
+
export class PosterizeShader extends ShaderLayer {
|
|
5
|
+
fragment = fragment;
|
|
6
|
+
static getDefaultState(sceneStateId) {
|
|
7
|
+
return {
|
|
8
|
+
...ShaderLayer.getDefaultState(sceneStateId),
|
|
9
|
+
type: "posterize",
|
|
10
|
+
name: "posterize_" + getCount(sceneStateId),
|
|
11
|
+
levels: 3,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
constructor(sceneStateId, state, owner) {
|
|
15
|
+
super(sceneStateId, state, owner);
|
|
16
|
+
console.trace();
|
|
17
|
+
}
|
|
18
|
+
setupUniformValues() {
|
|
19
|
+
return {
|
|
20
|
+
uLevels: { value: this.getFieldValue("levels"), type: "f32" },
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
updateUniforms() {
|
|
24
|
+
super.updateUniforms();
|
|
25
|
+
this.uniforms.uniforms.uLevels = this.getFieldValue("levels");
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=posterize_shader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"posterize_shader.js","sourceRoot":"","sources":["../../../../src/layers/shaders/posterize/posterize_shader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAyB,MAAM,oBAAoB,CAAC;AACxE,OAAO,QAAQ,MAAM,6BAA6B,CAAC;AAMnD,MAAM,OAAO,eAAgB,SAAQ,WAAW;IAE9C,QAAQ,GAAW,QAAQ,CAAC;IAE5B,MAAM,CAAC,eAAe,CAAC,YAAoB;QACzC,OAAO;YACL,GAAG,WAAW,CAAC,eAAe,CAAC,YAAY,CAAC;YAC5C,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;YAC3C,MAAM,EAAE,CAAC;SACV,CAAC;IACJ,CAAC;IAED,YACE,YAAoB,EACpB,KAA2B,EAC3B,KAAa;QAEb,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;IAED,kBAAkB;QAChB,OAAO;YACL,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;SAC9D,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChE,CAAC;CACF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type UniformData } from "pixi.js";
|
|
2
|
+
import { ShaderLayer, type ShaderLayerState } from "../shader_layer.js";
|
|
3
|
+
export type RecolourShaderState = ShaderLayerState & {
|
|
4
|
+
fromColor: string;
|
|
5
|
+
toColor: string;
|
|
6
|
+
threshold: number;
|
|
7
|
+
not: boolean;
|
|
8
|
+
onlyHue: boolean;
|
|
9
|
+
onlySaturation: boolean;
|
|
10
|
+
onlyLightness: boolean;
|
|
11
|
+
};
|
|
12
|
+
export declare class RecolourShader extends ShaderLayer {
|
|
13
|
+
_state: RecolourShaderState;
|
|
14
|
+
fragment: string;
|
|
15
|
+
static getDefaultState(sceneStateId: string): RecolourShaderState;
|
|
16
|
+
constructor(sceneStateId: string, state: RecolourShaderState, owner: string);
|
|
17
|
+
setupUniformValues(): {
|
|
18
|
+
[key: string]: UniformData;
|
|
19
|
+
};
|
|
20
|
+
updateUniforms(): void;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=recolour_shader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recolour_shader.d.ts","sourceRoot":"","sources":["../../../../src/layers/shaders/recolour/recolour_shader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAIxE,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,qBAAa,cAAe,SAAQ,WAAW;IACrC,MAAM,EAAE,mBAAmB,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAY;IAE5B,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,mBAAmB;gBAerD,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM;IAK3E,kBAAkB,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE;IAgCpD,cAAc,IAAI,IAAI;CA8BvB"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
in vec2 vTextureCoord;
|
|
2
|
+
|
|
3
|
+
uniform sampler2D uTexture;
|
|
4
|
+
uniform vec4 uFromColor;
|
|
5
|
+
uniform vec4 uToColor;
|
|
6
|
+
|
|
7
|
+
uniform float uThreshold;
|
|
8
|
+
uniform int uNot;
|
|
9
|
+
uniform int uOnlyHue;
|
|
10
|
+
uniform int uOnlySaturation;
|
|
11
|
+
uniform int uOnlyLightness;
|
|
12
|
+
uniform vec4 uDryWet;
|
|
13
|
+
|
|
14
|
+
vec3 rgb2hsv(vec3 c)
|
|
15
|
+
{
|
|
16
|
+
vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
|
|
17
|
+
vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
|
|
18
|
+
vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
|
|
19
|
+
|
|
20
|
+
float d = q.x - min(q.w, q.y);
|
|
21
|
+
float e = 1.0e-10;
|
|
22
|
+
return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
vec3 hsv2rgb(vec3 c)
|
|
26
|
+
{
|
|
27
|
+
vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
|
|
28
|
+
vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
|
|
29
|
+
return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
void main(){
|
|
33
|
+
vec4 oTex = texture2D(uTexture, vTextureCoord);
|
|
34
|
+
|
|
35
|
+
vec4 tex = vec4(oTex.r, oTex.g, oTex.b, oTex.a);
|
|
36
|
+
|
|
37
|
+
vec4 color = vec4(uToColor.r, uToColor.g, uToColor.b, oTex.a);
|
|
38
|
+
|
|
39
|
+
if(uOnlyHue == 1 || uOnlySaturation == 1 || uOnlyLightness == 1){
|
|
40
|
+
vec3 hsvFrom = rgb2hsv(oTex.rgb);
|
|
41
|
+
vec3 hsvTo = rgb2hsv(vec3(uToColor.rgb));
|
|
42
|
+
|
|
43
|
+
vec3 hsv = hsvFrom;
|
|
44
|
+
if(uOnlyHue == 1){
|
|
45
|
+
hsv.x = hsvTo.x;
|
|
46
|
+
}
|
|
47
|
+
if(uOnlySaturation == 1){
|
|
48
|
+
hsv.y = hsvTo.y;
|
|
49
|
+
}
|
|
50
|
+
if(uOnlyLightness == 1){
|
|
51
|
+
hsv.z = hsvTo.z;
|
|
52
|
+
}
|
|
53
|
+
vec3 rgb = hsv2rgb(vec3(hsv.x, hsv.y, hsv.z));
|
|
54
|
+
color = vec4(rgb.r,rgb.g,rgb.b,oTex.a);
|
|
55
|
+
}
|
|
56
|
+
if(oTex.r >= uFromColor.r - uThreshold && oTex.r <= uFromColor.r + uThreshold &&
|
|
57
|
+
oTex.g >= uFromColor.g - uThreshold && oTex.g <= uFromColor.g + uThreshold &&
|
|
58
|
+
oTex.b >= uFromColor.b - uThreshold && oTex.b <= uFromColor.b + uThreshold){
|
|
59
|
+
if(uNot == 0){
|
|
60
|
+
tex = color;
|
|
61
|
+
}
|
|
62
|
+
}else if(uNot == 1){
|
|
63
|
+
tex = color;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
//DRY/WET
|
|
67
|
+
gl_FragColor = ((1.0-uDryWet)*oTex) + (uDryWet * tex);
|
|
68
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { Color } from "pixi.js";
|
|
2
|
+
import { getCount } from "../../../helpers/ids.js";
|
|
3
|
+
import { ShaderLayer } from "../shader_layer.js";
|
|
4
|
+
import fragment from "./recolour_shader.frag?raw";
|
|
5
|
+
import { getFunColor } from "../../../helpers/sparkle.js";
|
|
6
|
+
export class RecolourShader extends ShaderLayer {
|
|
7
|
+
fragment = fragment;
|
|
8
|
+
static getDefaultState(sceneStateId) {
|
|
9
|
+
return {
|
|
10
|
+
...ShaderLayer.getDefaultState(sceneStateId),
|
|
11
|
+
type: "recolour",
|
|
12
|
+
name: "recolour_" + getCount(sceneStateId),
|
|
13
|
+
fromColor: "#000000",
|
|
14
|
+
toColor: getFunColor(),
|
|
15
|
+
threshold: 0.1,
|
|
16
|
+
not: false,
|
|
17
|
+
onlyHue: false,
|
|
18
|
+
onlySaturation: false,
|
|
19
|
+
onlyLightness: false,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
constructor(sceneStateId, state, owner) {
|
|
23
|
+
super(sceneStateId, state, owner);
|
|
24
|
+
console.trace();
|
|
25
|
+
}
|
|
26
|
+
setupUniformValues() {
|
|
27
|
+
const fromColor = new Color(this.getFieldValue("fromColor"));
|
|
28
|
+
const toColor = new Color(this.getFieldValue("toColor"));
|
|
29
|
+
return {
|
|
30
|
+
uFromColor: {
|
|
31
|
+
value: [
|
|
32
|
+
fromColor.red,
|
|
33
|
+
fromColor.green,
|
|
34
|
+
fromColor.blue,
|
|
35
|
+
fromColor.alpha,
|
|
36
|
+
],
|
|
37
|
+
type: "vec4<f32>",
|
|
38
|
+
},
|
|
39
|
+
uToColor: {
|
|
40
|
+
value: [toColor.red, toColor.green, toColor.blue, toColor.alpha],
|
|
41
|
+
type: "vec4<f32>",
|
|
42
|
+
},
|
|
43
|
+
uThreshold: { value: this.getFieldValue("threshold"), type: "f32" },
|
|
44
|
+
uNot: { value: this.getFieldBoolean("not") ? 1 : 0, type: "i32" },
|
|
45
|
+
uOnlyHue: { value: this.getFieldBoolean("onlyHue") ? 1 : 0, type: "i32" },
|
|
46
|
+
uOnlySaturation: {
|
|
47
|
+
value: this.getFieldBoolean("onlySaturation") ? 1 : 0,
|
|
48
|
+
type: "i32",
|
|
49
|
+
},
|
|
50
|
+
uOnlyLightness: {
|
|
51
|
+
value: this.getFieldBoolean("onlyLightness") ? 1 : 0,
|
|
52
|
+
type: "i32",
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
updateUniforms() {
|
|
57
|
+
super.updateUniforms();
|
|
58
|
+
const fromColor = new Color(this.getFieldValue("fromColor"));
|
|
59
|
+
const toColor = new Color(this.getFieldValue("toColor"));
|
|
60
|
+
this.uniforms.uniforms.uFromColor = [
|
|
61
|
+
fromColor.red,
|
|
62
|
+
fromColor.green,
|
|
63
|
+
fromColor.blue,
|
|
64
|
+
fromColor.alpha,
|
|
65
|
+
];
|
|
66
|
+
this.uniforms.uniforms.uToColor = [
|
|
67
|
+
toColor.red,
|
|
68
|
+
toColor.green,
|
|
69
|
+
toColor.blue,
|
|
70
|
+
toColor.alpha,
|
|
71
|
+
];
|
|
72
|
+
this.uniforms.uniforms.uThreshold = this.getFieldValue("threshold");
|
|
73
|
+
this.uniforms.uniforms.uNot = this.getFieldBoolean("not") ? 1 : 0;
|
|
74
|
+
this.uniforms.uniforms.uOnlyHue = this.getFieldBoolean("onlyHue") ? 1 : 0;
|
|
75
|
+
this.uniforms.uniforms.uOnlySaturation = this.getFieldBoolean("onlySaturation")
|
|
76
|
+
? 1
|
|
77
|
+
: 0;
|
|
78
|
+
this.uniforms.uniforms.uOnlyLightness = this.getFieldBoolean("onlyLightness")
|
|
79
|
+
? 1
|
|
80
|
+
: 0;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=recolour_shader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recolour_shader.js","sourceRoot":"","sources":["../../../../src/layers/shaders/recolour/recolour_shader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { UniformData } from "pixi.js";
|
|
2
|
+
import { ShaderLayer, type ShaderLayerState } from "../shader_layer.js";
|
|
3
|
+
export type ScrambleShaderState = ShaderLayerState & {
|
|
4
|
+
range: number;
|
|
5
|
+
};
|
|
6
|
+
export declare class ScrambleShader extends ShaderLayer {
|
|
7
|
+
_state: ScrambleShaderState;
|
|
8
|
+
fragment: string;
|
|
9
|
+
static getDefaultState(sceneStateId: string): ScrambleShaderState;
|
|
10
|
+
constructor(sceneStateId: string, state: ScrambleShaderState, owner: string);
|
|
11
|
+
setupUniformValues(): {
|
|
12
|
+
[key: string]: UniformData;
|
|
13
|
+
};
|
|
14
|
+
updateUniforms(): void;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=scramble_shader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scramble_shader.d.ts","sourceRoot":"","sources":["../../../../src/layers/shaders/scramble/scramble_shader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGxE,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG;IACnD,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,qBAAa,cAAe,SAAQ,WAAW;IACrC,MAAM,EAAE,mBAAmB,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAY;IAE5B,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,mBAAmB;gBASrD,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM;IAK3E,kBAAkB,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE;IAMpD,cAAc,IAAI,IAAI;CAIvB"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
precision highp float;
|
|
2
|
+
in vec2 vTextureCoord;
|
|
3
|
+
|
|
4
|
+
uniform sampler2D uTexture;
|
|
5
|
+
uniform vec4 uInputSize;
|
|
6
|
+
|
|
7
|
+
uniform float uRange;
|
|
8
|
+
uniform float uTime;
|
|
9
|
+
uniform vec4 uDryWet;
|
|
10
|
+
|
|
11
|
+
float PHI = 1.61803398874989484820459; // Φ = Golden Ratio
|
|
12
|
+
|
|
13
|
+
float gold_noise(vec2 xy, float seed){
|
|
14
|
+
return fract(tan(distance(xy*PHI, xy)*seed)*xy.x);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
vec2 mapCoord( vec2 coord )
|
|
18
|
+
{
|
|
19
|
+
coord *= uInputSize.xy;
|
|
20
|
+
coord += uInputSize.zw;
|
|
21
|
+
|
|
22
|
+
return coord;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
vec2 unmapCoord( vec2 coord )
|
|
26
|
+
{
|
|
27
|
+
coord -= uInputSize.zw;
|
|
28
|
+
coord /= uInputSize.xy;
|
|
29
|
+
|
|
30
|
+
return coord;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
void main(){
|
|
34
|
+
vec4 oTex = texture(uTexture, vTextureCoord);
|
|
35
|
+
vec2 pixelCoord = mapCoord(vTextureCoord);
|
|
36
|
+
vec2 newCoords = pixelCoord + vec2((
|
|
37
|
+
gold_noise(vTextureCoord * vec2(1920,1080), uTime)*uRange-
|
|
38
|
+
uRange / 2.0),(
|
|
39
|
+
gold_noise(vTextureCoord * vec2(1920,1080), uTime+0.1)*uRange-
|
|
40
|
+
uRange / 2.0));
|
|
41
|
+
vec4 tex = texture2D(uTexture, unmapCoord(newCoords));
|
|
42
|
+
|
|
43
|
+
//DRY/WET
|
|
44
|
+
gl_FragColor = (1.0-uDryWet)*oTex +uDryWet * tex;
|
|
45
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { getCount } from "../../../helpers/ids.js";
|
|
2
|
+
import { ShaderLayer } from "../shader_layer.js";
|
|
3
|
+
import fragment from "./scramble_shader.frag?raw";
|
|
4
|
+
export class ScrambleShader extends ShaderLayer {
|
|
5
|
+
fragment = fragment;
|
|
6
|
+
static getDefaultState(sceneStateId) {
|
|
7
|
+
return {
|
|
8
|
+
...ShaderLayer.getDefaultState(sceneStateId),
|
|
9
|
+
type: "scramble",
|
|
10
|
+
name: "scramble_" + getCount(sceneStateId),
|
|
11
|
+
range: 10,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
constructor(sceneStateId, state, owner) {
|
|
15
|
+
super(sceneStateId, state, owner);
|
|
16
|
+
console.trace();
|
|
17
|
+
}
|
|
18
|
+
setupUniformValues() {
|
|
19
|
+
return {
|
|
20
|
+
uRange: { value: this.getFieldValue("range"), type: "f32" },
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
updateUniforms() {
|
|
24
|
+
super.updateUniforms();
|
|
25
|
+
this.uniforms.uniforms.uRange = this.getFieldValue("range");
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=scramble_shader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scramble_shader.js","sourceRoot":"","sources":["../../../../src/layers/shaders/scramble/scramble_shader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAyB,MAAM,oBAAoB,CAAC;AACxE,OAAO,QAAQ,MAAM,4BAA4B,CAAC;AAMlD,MAAM,OAAO,cAAe,SAAQ,WAAW;IAE7C,QAAQ,GAAW,QAAQ,CAAC;IAE5B,MAAM,CAAC,eAAe,CAAC,YAAoB;QACzC,OAAO;YACL,GAAG,WAAW,CAAC,eAAe,CAAC,YAAY,CAAC;YAC5C,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,WAAW,GAAG,QAAQ,CAAC,YAAY,CAAC;YAC1C,KAAK,EAAE,EAAE;SACV,CAAC;IACJ,CAAC;IAED,YAAY,YAAoB,EAAE,KAA0B,EAAE,KAAa;QACzE,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;IAED,kBAAkB;QAChB,OAAO;YACL,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;SAC5D,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC;CACF"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Filter, TextureSource, UniformGroup, type UniformData } from "pixi.js";
|
|
2
|
+
import { BaseLayer } from "../base_layer.js";
|
|
3
|
+
import type { LayerState } from "../ilayer.js";
|
|
4
|
+
export type ShaderLayerState = LayerState & {
|
|
5
|
+
redDryWet: number;
|
|
6
|
+
greenDryWet: number;
|
|
7
|
+
blueDryWet: number;
|
|
8
|
+
alphaDryWet: number;
|
|
9
|
+
};
|
|
10
|
+
export declare abstract class ShaderLayer extends BaseLayer {
|
|
11
|
+
_state: ShaderLayerState;
|
|
12
|
+
shader: Filter;
|
|
13
|
+
abstract fragment: string;
|
|
14
|
+
uniforms: UniformGroup;
|
|
15
|
+
static getDefaultState(sceneStateId: string): ShaderLayerState;
|
|
16
|
+
constructor(sceneStateId: string, state: LayerState, owner: string);
|
|
17
|
+
onStateChange(): void;
|
|
18
|
+
onSignalChange(): void;
|
|
19
|
+
bind(): void;
|
|
20
|
+
buildShader(): void;
|
|
21
|
+
defaultUniforms(): {
|
|
22
|
+
[key: string]: UniformData;
|
|
23
|
+
};
|
|
24
|
+
updateUniforms(): void;
|
|
25
|
+
abstract setupUniformValues(): {
|
|
26
|
+
[key: string]: UniformData;
|
|
27
|
+
};
|
|
28
|
+
getVertex(): string;
|
|
29
|
+
getExtraTextures(): {
|
|
30
|
+
[key: string]: TextureSource;
|
|
31
|
+
};
|
|
32
|
+
tick(time: any, loop: boolean): void;
|
|
33
|
+
reTime(): void;
|
|
34
|
+
unbind(): void;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=shader_layer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shader_layer.d.ts","sourceRoot":"","sources":["../../../src/layers/shaders/shader_layer.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EAIN,aAAa,EACb,YAAY,EACZ,KAAK,WAAW,EACjB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK/C,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,8BAAsB,WAAY,SAAQ,SAAS;IACzC,MAAM,EAAE,gBAAgB,CAAC;IACjC,MAAM,EAAG,MAAM,CAAC;IAChB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAG,YAAY,CAAC;IAExB,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,gBAAgB;gBAYlD,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM;IAIlE,aAAa,IAAI,IAAI;IAIrB,cAAc,IAAI,IAAI;IAItB,IAAI,IAAI,IAAI;IAIZ,WAAW;IAeX,eAAe,IAAI;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC;KAC5B;IAuBD,cAAc;IAcd,QAAQ,CAAC,kBAAkB,IAAI;QAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC;KAC5B;IAED,SAAS,IAAI,MAAM;IAInB,gBAAgB,IAAI;QAClB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC;KAC9B;IAID,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IAapC,MAAM;IAIN,MAAM,IAAI,IAAI;CAOf"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { Application, Filter, Graphics, Point, Sprite, TextureSource, UniformGroup, } from "pixi.js";
|
|
2
|
+
import { BaseLayer } from "../base_layer.js";
|
|
3
|
+
import { DataStore } from "../../index.js";
|
|
4
|
+
import vertex from "./defaultFilter.vert?raw";
|
|
5
|
+
import { getSignal } from "../../helpers/signals.js";
|
|
6
|
+
export class ShaderLayer extends BaseLayer {
|
|
7
|
+
shader;
|
|
8
|
+
uniforms;
|
|
9
|
+
static getDefaultState(sceneStateId) {
|
|
10
|
+
return {
|
|
11
|
+
...BaseLayer.getDefaultState(sceneStateId),
|
|
12
|
+
type: "pixelate",
|
|
13
|
+
name: "shader",
|
|
14
|
+
redDryWet: 1,
|
|
15
|
+
greenDryWet: 1,
|
|
16
|
+
blueDryWet: 1,
|
|
17
|
+
alphaDryWet: 1,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
constructor(sceneStateId, state, owner) {
|
|
21
|
+
super(sceneStateId, state, owner);
|
|
22
|
+
}
|
|
23
|
+
onStateChange() {
|
|
24
|
+
this.updateUniforms();
|
|
25
|
+
}
|
|
26
|
+
onSignalChange() {
|
|
27
|
+
this.updateUniforms();
|
|
28
|
+
}
|
|
29
|
+
bind() {
|
|
30
|
+
this.buildShader();
|
|
31
|
+
}
|
|
32
|
+
buildShader() {
|
|
33
|
+
this.uniforms = new UniformGroup({
|
|
34
|
+
...this.defaultUniforms(),
|
|
35
|
+
...this.setupUniformValues(),
|
|
36
|
+
});
|
|
37
|
+
const uniforms = this.uniforms;
|
|
38
|
+
this.shader = Filter.from({
|
|
39
|
+
gl: {
|
|
40
|
+
vertex: this.getVertex(),
|
|
41
|
+
fragment: this.fragment,
|
|
42
|
+
},
|
|
43
|
+
resources: { uniforms, ...this.getExtraTextures() },
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
defaultUniforms() {
|
|
47
|
+
return {
|
|
48
|
+
uDryWet: {
|
|
49
|
+
value: [
|
|
50
|
+
this._state.visible ? this.getFieldValue("redDryWet") : 0,
|
|
51
|
+
this._state.visible ? this.getFieldValue("greenDryWet") : 0,
|
|
52
|
+
this._state.visible ? this.getFieldValue("blueDryWet") : 0,
|
|
53
|
+
this._state.visible ? this.getFieldValue("alphaDryWet") : 0,
|
|
54
|
+
1,
|
|
55
|
+
],
|
|
56
|
+
type: "vec4<f32>",
|
|
57
|
+
},
|
|
58
|
+
uSize: {
|
|
59
|
+
value: new Point(DataStore.getInstance().getStore(this.sceneStateId + ".width"), DataStore.getInstance().getStore(this.sceneStateId + ".height")),
|
|
60
|
+
type: "vec2<f32>",
|
|
61
|
+
},
|
|
62
|
+
uTime: { value: Math.random(), type: "f32" },
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
updateUniforms() {
|
|
66
|
+
this.uniforms.uniforms.uDryWet = [
|
|
67
|
+
this._state.visible ? this.getFieldValue("redDryWet") : 0,
|
|
68
|
+
this._state.visible ? this.getFieldValue("greenDryWet") : 0,
|
|
69
|
+
this._state.visible ? this.getFieldValue("blueDryWet") : 0,
|
|
70
|
+
this._state.visible ? this.getFieldValue("alphaDryWet") : 0,
|
|
71
|
+
1,
|
|
72
|
+
];
|
|
73
|
+
this.uniforms.uniforms.uSize = new Point(DataStore.getInstance().getStore(this.sceneStateId + ".width"), DataStore.getInstance().getStore(this.sceneStateId + ".height"));
|
|
74
|
+
}
|
|
75
|
+
getVertex() {
|
|
76
|
+
return vertex;
|
|
77
|
+
}
|
|
78
|
+
getExtraTextures() {
|
|
79
|
+
return {};
|
|
80
|
+
}
|
|
81
|
+
tick(time, loop) {
|
|
82
|
+
super.tick(time, loop);
|
|
83
|
+
if (this._state.signaledFields["refresh"]) {
|
|
84
|
+
const signal = getSignal(this.sceneStateId, this._state.signaledFields["refresh"]);
|
|
85
|
+
if (signal?.changed && signal.getValue() === 1) {
|
|
86
|
+
this.reTime();
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
reTime() {
|
|
91
|
+
this.uniforms.uniforms.uTime = Math.random();
|
|
92
|
+
}
|
|
93
|
+
unbind() {
|
|
94
|
+
super.unbind();
|
|
95
|
+
this.shader.destroy();
|
|
96
|
+
this.shader = undefined;
|
|
97
|
+
this.uniforms = undefined;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=shader_layer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shader_layer.js","sourceRoot":"","sources":["../../../src/layers/shaders/shader_layer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { UniformData } from "pixi.js";
|
|
2
|
+
import { ShaderLayer, type ShaderLayerState } from "../shader_layer.js";
|
|
3
|
+
export type VLinesShaderState = ShaderLayerState & {
|
|
4
|
+
distance: number;
|
|
5
|
+
thickness: number;
|
|
6
|
+
};
|
|
7
|
+
export declare class VLinesShader extends ShaderLayer {
|
|
8
|
+
_state: VLinesShaderState;
|
|
9
|
+
fragment: string;
|
|
10
|
+
static getDefaultState(sceneStateId: string): VLinesShaderState;
|
|
11
|
+
constructor(sceneStateId: string, state: VLinesShaderState, owner: string);
|
|
12
|
+
setupUniformValues(): {
|
|
13
|
+
[key: string]: UniformData;
|
|
14
|
+
};
|
|
15
|
+
updateUniforms(): void;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=vlines_shader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vlines_shader.d.ts","sourceRoot":"","sources":["../../../../src/layers/shaders/vlines/vlines_shader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGxE,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,qBAAa,YAAa,SAAQ,WAAW;IACnC,MAAM,EAAE,iBAAiB,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAY;IAE5B,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,iBAAiB;gBAUnD,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM;IAKzE,kBAAkB,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE;IAOpD,cAAc,IAAI,IAAI;CAKvB"}
|