shaders 2.2.42 → 2.2.44
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/dist/core/WebcamTexture-D4Uv7Plz.js +168 -0
- package/dist/core/index.d.ts +0 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +8 -168
- package/dist/core/registry.d.ts +10 -0
- package/dist/core/registry.d.ts.map +1 -0
- package/dist/core/registry.js +166 -0
- package/dist/core/shaderRegistry.d.ts.map +1 -1
- package/dist/core/shaders/WebcamTexture/index.d.ts +21 -0
- package/dist/core/shaders/WebcamTexture/index.d.ts.map +1 -0
- package/dist/core/shaders/WebcamTexture/index.js +2 -0
- package/dist/core/shaders/ZoomBlur/index.js +1 -1
- package/dist/react/AngularBlur.js +144 -0
- package/dist/react/Ascii.js +144 -0
- package/dist/react/Beam.js +144 -0
- package/dist/react/Blob.js +144 -0
- package/dist/react/Blur.js +144 -0
- package/dist/react/BrightnessContrast.js +144 -0
- package/dist/react/Bulge.js +144 -0
- package/dist/react/CRTScreen.js +144 -0
- package/dist/react/ChannelBlur.js +144 -0
- package/dist/react/Checkerboard.js +144 -0
- package/dist/react/ChromaFlow.js +144 -0
- package/dist/react/ChromaticAberration.js +144 -0
- package/dist/react/Circle.js +144 -0
- package/dist/react/CursorTrail.js +144 -0
- package/dist/react/DiffuseBlur.js +144 -0
- package/dist/react/Dither.js +144 -0
- package/dist/react/DotGrid.js +144 -0
- package/dist/react/Duotone.js +144 -0
- package/dist/react/FilmGrain.js +144 -0
- package/dist/react/FloatingParticles.js +144 -0
- package/dist/react/GlassTiles.js +144 -0
- package/dist/react/Glow.js +144 -0
- package/dist/react/Godrays.js +144 -0
- package/dist/react/Grayscale.js +144 -0
- package/dist/react/Grid.js +144 -0
- package/dist/react/GridDistortion.js +144 -0
- package/dist/react/Group.js +144 -0
- package/dist/react/Halftone.js +144 -0
- package/dist/react/HueShift.js +144 -0
- package/dist/react/ImageTexture.js +144 -0
- package/dist/react/Invert.js +144 -0
- package/dist/react/LinearBlur.js +144 -0
- package/dist/react/LinearGradient.js +144 -0
- package/dist/react/Liquify.js +144 -0
- package/dist/react/Perspective.js +144 -0
- package/dist/react/Pixelate.js +144 -0
- package/dist/react/PolarCoordinates.js +144 -0
- package/dist/react/Posterize.js +144 -0
- package/dist/react/ProgressiveBlur.js +144 -0
- package/dist/react/RadialGradient.js +144 -0
- package/dist/react/RectangularCoordinates.js +144 -0
- package/dist/react/Ripples.js +144 -0
- package/dist/react/Saturation.js +144 -0
- package/dist/react/Shader.js +166 -0
- package/dist/react/Sharpness.js +144 -0
- package/dist/react/Shatter.js +144 -0
- package/dist/react/SimplexNoise.js +144 -0
- package/dist/react/SineWave.js +144 -0
- package/dist/react/SolidColor.js +144 -0
- package/dist/react/Spherize.js +144 -0
- package/dist/react/Spiral.js +144 -0
- package/dist/react/Strands.js +144 -0
- package/dist/react/Stretch.js +144 -0
- package/dist/react/Stripes.js +144 -0
- package/dist/react/Swirl.js +144 -0
- package/dist/react/TiltShift.js +144 -0
- package/dist/react/Tint.js +144 -0
- package/dist/react/Tritone.js +144 -0
- package/dist/react/Twirl.js +144 -0
- package/dist/react/Vibrance.js +144 -0
- package/dist/react/WaveDistortion.js +144 -0
- package/dist/react/WebcamTexture.js +144 -0
- package/dist/react/ZoomBlur.js +144 -0
- package/dist/react/components/WebcamTexture.d.ts +31 -0
- package/dist/react/components/WebcamTexture.d.ts.map +1 -0
- package/dist/react/index.d.ts +1 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +65 -8646
- package/dist/react/utils/generatePresetCode.d.ts.map +1 -1
- package/dist/react/utils/generatePresetCode.js +392 -1
- package/dist/registry.js +91 -0
- package/dist/solid/components/AngularBlur.js +148 -0
- package/dist/solid/components/Ascii.js +148 -0
- package/dist/solid/components/Beam.js +148 -0
- package/dist/solid/components/Blob.js +148 -0
- package/dist/solid/components/Blur.js +148 -0
- package/dist/solid/components/BrightnessContrast.js +148 -0
- package/dist/solid/components/Bulge.js +148 -0
- package/dist/solid/components/CRTScreen.js +148 -0
- package/dist/solid/components/ChannelBlur.js +148 -0
- package/dist/solid/components/Checkerboard.js +148 -0
- package/dist/solid/components/ChromaFlow.js +148 -0
- package/dist/solid/components/ChromaticAberration.js +148 -0
- package/dist/solid/components/Circle.js +148 -0
- package/dist/solid/components/CursorTrail.js +148 -0
- package/dist/solid/components/DiffuseBlur.js +148 -0
- package/dist/solid/components/Dither.js +148 -0
- package/dist/solid/components/DotGrid.js +148 -0
- package/dist/solid/components/Duotone.js +148 -0
- package/dist/solid/components/FilmGrain.js +148 -0
- package/dist/solid/components/FloatingParticles.js +148 -0
- package/dist/solid/components/GlassTiles.js +148 -0
- package/dist/solid/components/Glow.js +148 -0
- package/dist/solid/components/Godrays.js +148 -0
- package/dist/solid/components/Grayscale.js +148 -0
- package/dist/solid/components/Grid.js +148 -0
- package/dist/solid/components/GridDistortion.js +148 -0
- package/dist/solid/components/Group.js +148 -0
- package/dist/solid/components/Halftone.js +148 -0
- package/dist/solid/components/HueShift.js +148 -0
- package/dist/solid/components/ImageTexture.js +148 -0
- package/dist/solid/components/Invert.js +148 -0
- package/dist/solid/components/LinearBlur.js +148 -0
- package/dist/solid/components/LinearGradient.js +148 -0
- package/dist/solid/components/Liquify.js +148 -0
- package/dist/solid/components/Perspective.js +148 -0
- package/dist/solid/components/Pixelate.js +148 -0
- package/dist/solid/components/PolarCoordinates.js +148 -0
- package/dist/solid/components/Posterize.js +148 -0
- package/dist/solid/components/ProgressiveBlur.js +148 -0
- package/dist/solid/components/RadialGradient.js +148 -0
- package/dist/solid/components/RectangularCoordinates.js +148 -0
- package/dist/solid/components/Ripples.js +148 -0
- package/dist/solid/components/Saturation.js +148 -0
- package/dist/solid/components/Sharpness.js +148 -0
- package/dist/solid/components/Shatter.js +148 -0
- package/dist/solid/components/SimplexNoise.js +148 -0
- package/dist/solid/components/SineWave.js +148 -0
- package/dist/solid/components/SolidColor.js +148 -0
- package/dist/solid/components/Spherize.js +148 -0
- package/dist/solid/components/Spiral.js +148 -0
- package/dist/solid/components/Strands.js +148 -0
- package/dist/solid/components/Stretch.js +148 -0
- package/dist/solid/components/Stripes.js +148 -0
- package/dist/solid/components/Swirl.js +148 -0
- package/dist/solid/components/TiltShift.js +148 -0
- package/dist/solid/components/Tint.js +148 -0
- package/dist/solid/components/Tritone.js +148 -0
- package/dist/solid/components/Twirl.js +148 -0
- package/dist/solid/components/Vibrance.js +148 -0
- package/dist/solid/components/WaveDistortion.js +148 -0
- package/dist/solid/components/WebcamTexture.d.ts +28 -0
- package/dist/solid/components/WebcamTexture.d.ts.map +1 -0
- package/dist/solid/components/WebcamTexture.js +148 -0
- package/dist/solid/components/ZoomBlur.js +148 -0
- package/dist/solid/engine/Shader.js +189 -0
- package/dist/solid/index.d.ts +1 -0
- package/dist/solid/index.d.ts.map +1 -1
- package/dist/solid/index.js +126 -8847
- package/dist/solid/utils/generatePresetCode.d.ts.map +1 -1
- package/dist/solid/utils/generatePresetCode.js +66 -414
- package/dist/svelte/components/WebcamTexture.svelte.d.ts +19 -0
- package/dist/svelte/generatePresetCode-CtXcoyI0.js +393 -0
- package/dist/svelte/index.d.ts +1 -0
- package/dist/svelte/index.js +115 -4
- package/dist/svelte/utils/generatePresetCode.js +1 -1
- package/dist/vue/AngularBlur.js +3 -0
- package/dist/vue/AngularBlur.vue_vue_type_script_setup_true_lang.js +125 -0
- package/dist/vue/Ascii.js +3 -0
- package/dist/vue/Ascii.vue_vue_type_script_setup_true_lang.js +127 -0
- package/dist/vue/Beam.js +3 -0
- package/dist/vue/Beam.vue_vue_type_script_setup_true_lang.js +132 -0
- package/dist/vue/Blob.js +3 -0
- package/dist/vue/Blob.vue_vue_type_script_setup_true_lang.js +137 -0
- package/dist/vue/Blur.js +3 -0
- package/dist/vue/Blur.vue_vue_type_script_setup_true_lang.js +124 -0
- package/dist/vue/BrightnessContrast.js +3 -0
- package/dist/vue/BrightnessContrast.vue_vue_type_script_setup_true_lang.js +125 -0
- package/dist/vue/Bulge.js +3 -0
- package/dist/vue/Bulge.vue_vue_type_script_setup_true_lang.js +128 -0
- package/dist/vue/CRTScreen.js +3 -0
- package/dist/vue/CRTScreen.vue_vue_type_script_setup_true_lang.js +129 -0
- package/dist/vue/ChannelBlur.js +3 -0
- package/dist/vue/ChannelBlur.vue_vue_type_script_setup_true_lang.js +126 -0
- package/dist/vue/Checkerboard.js +3 -0
- package/dist/vue/Checkerboard.vue_vue_type_script_setup_true_lang.js +128 -0
- package/dist/vue/ChromaFlow.js +3 -0
- package/dist/vue/ChromaFlow.vue_vue_type_script_setup_true_lang.js +131 -0
- package/dist/vue/ChromaticAberration.js +3 -0
- package/dist/vue/ChromaticAberration.vue_vue_type_script_setup_true_lang.js +128 -0
- package/dist/vue/Circle.js +3 -0
- package/dist/vue/Circle.vue_vue_type_script_setup_true_lang.js +127 -0
- package/dist/vue/CursorTrail.js +3 -0
- package/dist/vue/CursorTrail.vue_vue_type_script_setup_true_lang.js +129 -0
- package/dist/vue/DiffuseBlur.js +3 -0
- package/dist/vue/DiffuseBlur.vue_vue_type_script_setup_true_lang.js +125 -0
- package/dist/vue/Dither.js +3 -0
- package/dist/vue/Dither.vue_vue_type_script_setup_true_lang.js +127 -0
- package/dist/vue/DotGrid.js +3 -0
- package/dist/vue/DotGrid.vue_vue_type_script_setup_true_lang.js +127 -0
- package/dist/vue/Duotone.js +3 -0
- package/dist/vue/Duotone.vue_vue_type_script_setup_true_lang.js +127 -0
- package/dist/vue/FilmGrain.js +3 -0
- package/dist/vue/FilmGrain.vue_vue_type_script_setup_true_lang.js +124 -0
- package/dist/vue/FloatingParticles.js +3 -0
- package/dist/vue/FloatingParticles.vue_vue_type_script_setup_true_lang.js +134 -0
- package/dist/vue/GlassTiles.js +3 -0
- package/dist/vue/GlassTiles.vue_vue_type_script_setup_true_lang.js +127 -0
- package/dist/vue/Glow.js +3 -0
- package/dist/vue/Glow.vue_vue_type_script_setup_true_lang.js +126 -0
- package/dist/vue/Godrays.js +3 -0
- package/dist/vue/Godrays.vue_vue_type_script_setup_true_lang.js +130 -0
- package/dist/vue/Grayscale.js +3 -0
- package/dist/vue/Grayscale.vue_vue_type_script_setup_true_lang.js +123 -0
- package/dist/vue/Grid.js +3 -0
- package/dist/vue/Grid.vue_vue_type_script_setup_true_lang.js +126 -0
- package/dist/vue/GridDistortion.js +3 -0
- package/dist/vue/GridDistortion.vue_vue_type_script_setup_true_lang.js +129 -0
- package/dist/vue/Group.js +3 -0
- package/dist/vue/Group.vue_vue_type_script_setup_true_lang.js +123 -0
- package/dist/vue/Halftone.js +3 -0
- package/dist/vue/Halftone.vue_vue_type_script_setup_true_lang.js +126 -0
- package/dist/vue/HueShift.js +3 -0
- package/dist/vue/HueShift.vue_vue_type_script_setup_true_lang.js +124 -0
- package/dist/vue/ImageTexture.js +3 -0
- package/dist/vue/ImageTexture.vue_vue_type_script_setup_true_lang.js +125 -0
- package/dist/vue/Invert.js +3 -0
- package/dist/vue/Invert.vue_vue_type_script_setup_true_lang.js +123 -0
- package/dist/vue/LinearBlur.js +3 -0
- package/dist/vue/LinearBlur.vue_vue_type_script_setup_true_lang.js +125 -0
- package/dist/vue/LinearGradient.js +3 -0
- package/dist/vue/LinearGradient.vue_vue_type_script_setup_true_lang.js +130 -0
- package/dist/vue/Liquify.js +3 -0
- package/dist/vue/Liquify.vue_vue_type_script_setup_true_lang.js +128 -0
- package/dist/vue/Perspective.js +3 -0
- package/dist/vue/Perspective.vue_vue_type_script_setup_true_lang.js +130 -0
- package/dist/vue/Pixelate.js +3 -0
- package/dist/vue/Pixelate.vue_vue_type_script_setup_true_lang.js +124 -0
- package/dist/vue/PolarCoordinates.js +3 -0
- package/dist/vue/PolarCoordinates.vue_vue_type_script_setup_true_lang.js +128 -0
- package/dist/vue/Posterize.js +3 -0
- package/dist/vue/Posterize.vue_vue_type_script_setup_true_lang.js +124 -0
- package/dist/vue/ProgressiveBlur.js +3 -0
- package/dist/vue/ProgressiveBlur.vue_vue_type_script_setup_true_lang.js +127 -0
- package/dist/vue/RadialGradient.js +3 -0
- package/dist/vue/RadialGradient.vue_vue_type_script_setup_true_lang.js +128 -0
- package/dist/vue/RectangularCoordinates.js +3 -0
- package/dist/vue/RectangularCoordinates.vue_vue_type_script_setup_true_lang.js +127 -0
- package/dist/vue/Ripples.js +3 -0
- package/dist/vue/Ripples.vue_vue_type_script_setup_true_lang.js +131 -0
- package/dist/vue/Saturation.js +3 -0
- package/dist/vue/Saturation.vue_vue_type_script_setup_true_lang.js +124 -0
- package/dist/vue/Shader.js +3 -0
- package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +153 -0
- package/dist/vue/Sharpness.js +3 -0
- package/dist/vue/Sharpness.vue_vue_type_script_setup_true_lang.js +124 -0
- package/dist/vue/Shatter.js +3 -0
- package/dist/vue/Shatter.vue_vue_type_script_setup_true_lang.js +132 -0
- package/dist/vue/SimplexNoise.js +3 -0
- package/dist/vue/SimplexNoise.vue_vue_type_script_setup_true_lang.js +130 -0
- package/dist/vue/SineWave.js +3 -0
- package/dist/vue/SineWave.vue_vue_type_script_setup_true_lang.js +131 -0
- package/dist/vue/SolidColor.js +3 -0
- package/dist/vue/SolidColor.vue_vue_type_script_setup_true_lang.js +124 -0
- package/dist/vue/Spherize.js +3 -0
- package/dist/vue/Spherize.vue_vue_type_script_setup_true_lang.js +130 -0
- package/dist/vue/Spiral.js +3 -0
- package/dist/vue/Spiral.vue_vue_type_script_setup_true_lang.js +132 -0
- package/dist/vue/Strands.js +3 -0
- package/dist/vue/Strands.vue_vue_type_script_setup_true_lang.js +132 -0
- package/dist/vue/Stretch.js +3 -0
- package/dist/vue/Stretch.vue_vue_type_script_setup_true_lang.js +128 -0
- package/dist/vue/Stripes.js +3 -0
- package/dist/vue/Stripes.vue_vue_type_script_setup_true_lang.js +132 -0
- package/dist/vue/Swirl.js +3 -0
- package/dist/vue/Swirl.vue_vue_type_script_setup_true_lang.js +129 -0
- package/dist/vue/TiltShift.js +3 -0
- package/dist/vue/TiltShift.vue_vue_type_script_setup_true_lang.js +128 -0
- package/dist/vue/Tint.js +3 -0
- package/dist/vue/Tint.vue_vue_type_script_setup_true_lang.js +126 -0
- package/dist/vue/Tritone.js +3 -0
- package/dist/vue/Tritone.vue_vue_type_script_setup_true_lang.js +128 -0
- package/dist/vue/Twirl.js +3 -0
- package/dist/vue/Twirl.vue_vue_type_script_setup_true_lang.js +126 -0
- package/dist/vue/Vibrance.js +3 -0
- package/dist/vue/Vibrance.vue_vue_type_script_setup_true_lang.js +124 -0
- package/dist/vue/WaveDistortion.js +3 -0
- package/dist/vue/WaveDistortion.vue_vue_type_script_setup_true_lang.js +129 -0
- package/dist/vue/WebcamTexture.js +3 -0
- package/dist/vue/WebcamTexture.vue_vue_type_script_setup_true_lang.js +125 -0
- package/dist/vue/ZoomBlur.js +3 -0
- package/dist/vue/ZoomBlur.vue_vue_type_script_setup_true_lang.js +125 -0
- package/dist/vue/components/WebcamTexture.vue.d.ts +57 -0
- package/dist/vue/components/WebcamTexture.vue.d.ts.map +1 -0
- package/dist/vue/index.d.ts +1 -0
- package/dist/vue/index.d.ts.map +1 -1
- package/dist/vue/index.js +65 -7749
- package/dist/vue/utils/generatePresetCode.d.ts.map +1 -1
- package/dist/vue/utils/generatePresetCode.js +391 -1
- package/package.json +9 -1
- package/dist/react/generatePresetCode-BrkW1bEe.js +0 -741
- package/dist/svelte/generatePresetCode-bx7z5wvC.js +0 -741
- package/dist/vue/generatePresetCode-_7ZzqQPH.js +0 -740
- /package/dist/core/{ZoomBlur-CTrw7HxX.js → ZoomBlur-CIkkDBIo.js} +0 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { computed, defineComponent, effectScope, inject, mergeDefaults, onBeforeUnmount, provide, renderSlot, toValue, watch } from "vue";
|
|
2
|
+
import { createUniformsMap } from "../core/index.js";
|
|
3
|
+
import { componentDefinition } from "../core/shaders/PolarCoordinates/index.js";
|
|
4
|
+
var PolarCoordinates_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
5
|
+
__name: "PolarCoordinates",
|
|
6
|
+
props: /* @__PURE__ */ mergeDefaults({
|
|
7
|
+
blendMode: {},
|
|
8
|
+
opacity: {},
|
|
9
|
+
visible: { type: Boolean },
|
|
10
|
+
id: {},
|
|
11
|
+
maskSource: {},
|
|
12
|
+
maskType: {},
|
|
13
|
+
renderOrder: {},
|
|
14
|
+
transform: {},
|
|
15
|
+
center: {},
|
|
16
|
+
wrap: {},
|
|
17
|
+
radius: {},
|
|
18
|
+
intensity: {},
|
|
19
|
+
edges: {}
|
|
20
|
+
}, {
|
|
21
|
+
blendMode: "normal",
|
|
22
|
+
renderOrder: 0,
|
|
23
|
+
visible: true,
|
|
24
|
+
...Object.entries(componentDefinition.props).reduce((acc, [key, config]) => {
|
|
25
|
+
acc[key] = config.default;
|
|
26
|
+
return acc;
|
|
27
|
+
}, {})
|
|
28
|
+
}),
|
|
29
|
+
setup(__props) {
|
|
30
|
+
const props = __props;
|
|
31
|
+
const instanceId = props.id || `${componentDefinition.name.toLowerCase()}_${Math.random().toString(36).substring(7)}`;
|
|
32
|
+
provide("ombreParentId", instanceId);
|
|
33
|
+
const DEFAULT_TRANSFORM = {
|
|
34
|
+
offsetX: 0,
|
|
35
|
+
offsetY: 0,
|
|
36
|
+
rotation: 0,
|
|
37
|
+
scale: 1,
|
|
38
|
+
anchorX: .5,
|
|
39
|
+
anchorY: .5,
|
|
40
|
+
edges: "transparent"
|
|
41
|
+
};
|
|
42
|
+
const effectiveTransform = computed(() => ({
|
|
43
|
+
...DEFAULT_TRANSFORM,
|
|
44
|
+
...props.transform
|
|
45
|
+
}));
|
|
46
|
+
const uniforms = createUniformsMap(componentDefinition, computed(() => {
|
|
47
|
+
let baseProps = { ...Object.entries(componentDefinition.props).reduce((acc, [key, config]) => {
|
|
48
|
+
acc[key] = config.default;
|
|
49
|
+
return acc;
|
|
50
|
+
}, {}) };
|
|
51
|
+
for (const key in props) if (key !== "blendMode" && key !== "opacity" && key !== "visible" && key !== "id" && key !== "maskSource" && key !== "maskType" && key !== "renderOrder" && key !== "transform" && props[key] !== Object.entries(componentDefinition.props).reduce((acc, [key$1, config]) => {
|
|
52
|
+
acc[key$1] = config.default;
|
|
53
|
+
return acc;
|
|
54
|
+
}, {})[key]) baseProps[key] = toValue(props[key]);
|
|
55
|
+
return baseProps;
|
|
56
|
+
}).value, instanceId);
|
|
57
|
+
const parentId = inject("ombreParentId");
|
|
58
|
+
if (parentId === void 0) throw new Error("Shader components must be used inside an <Shader> component or another shader component");
|
|
59
|
+
const parentRegister = inject("ombreNodeRegister");
|
|
60
|
+
if (parentRegister === void 0) throw new Error("Shader components must be used inside an <Shader> component or another shader component");
|
|
61
|
+
const parentUniformUpdate = inject("ombreUniformUpdate");
|
|
62
|
+
if (parentUniformUpdate === void 0) throw new Error("Shader components require ombreUniformUpdate from parent");
|
|
63
|
+
const parentMetadataUpdate = inject("ombreMetadataUpdate");
|
|
64
|
+
if (parentMetadataUpdate === void 0) throw new Error("Shader components require ombreMetadataUpdate from parent");
|
|
65
|
+
const rendererResetSignal = inject("ombreRendererResetSignal");
|
|
66
|
+
const registerWithRenderer = () => {
|
|
67
|
+
parentRegister(instanceId, componentDefinition.fragmentNode, parentId, {
|
|
68
|
+
blendMode: props.blendMode,
|
|
69
|
+
opacity: props.opacity,
|
|
70
|
+
visible: props.visible === false ? false : true,
|
|
71
|
+
id: props.id,
|
|
72
|
+
mask: props.maskSource ? {
|
|
73
|
+
source: props.maskSource,
|
|
74
|
+
type: props.maskType || "alpha"
|
|
75
|
+
} : void 0,
|
|
76
|
+
renderOrder: props.renderOrder,
|
|
77
|
+
transform: effectiveTransform.value
|
|
78
|
+
}, uniforms, componentDefinition);
|
|
79
|
+
};
|
|
80
|
+
const setupUniformWatchers = () => {
|
|
81
|
+
const scope = effectScope();
|
|
82
|
+
scope.run(() => {
|
|
83
|
+
Object.entries(uniforms).forEach(([propName, { uniform, transform }]) => {
|
|
84
|
+
watch(() => props[propName], (newValue) => {
|
|
85
|
+
if (uniform && uniform.value !== void 0) parentUniformUpdate(instanceId, propName, newValue);
|
|
86
|
+
}, { deep: true });
|
|
87
|
+
});
|
|
88
|
+
watch(() => [
|
|
89
|
+
props.blendMode,
|
|
90
|
+
props.opacity,
|
|
91
|
+
props.visible,
|
|
92
|
+
props.id,
|
|
93
|
+
props.maskSource,
|
|
94
|
+
props.maskType,
|
|
95
|
+
props.renderOrder,
|
|
96
|
+
props.transform
|
|
97
|
+
], ([blendMode, opacity, visible]) => {
|
|
98
|
+
parentMetadataUpdate(instanceId, {
|
|
99
|
+
blendMode,
|
|
100
|
+
opacity,
|
|
101
|
+
visible: visible === false ? false : true,
|
|
102
|
+
id: props.id,
|
|
103
|
+
mask: props.maskSource ? {
|
|
104
|
+
source: props.maskSource,
|
|
105
|
+
type: props.maskType || "alpha"
|
|
106
|
+
} : void 0,
|
|
107
|
+
renderOrder: props.renderOrder,
|
|
108
|
+
transform: effectiveTransform.value
|
|
109
|
+
});
|
|
110
|
+
}, { deep: true });
|
|
111
|
+
if (rendererResetSignal) watch(() => rendererResetSignal.value, (newValue) => {
|
|
112
|
+
if (newValue > 0) registerWithRenderer();
|
|
113
|
+
}, { immediate: true });
|
|
114
|
+
});
|
|
115
|
+
onBeforeUnmount(() => {
|
|
116
|
+
scope.stop();
|
|
117
|
+
});
|
|
118
|
+
};
|
|
119
|
+
setupUniformWatchers();
|
|
120
|
+
onBeforeUnmount(() => {
|
|
121
|
+
parentRegister(instanceId, null, null, null, null, null);
|
|
122
|
+
});
|
|
123
|
+
return (_ctx, _cache) => {
|
|
124
|
+
return renderSlot(_ctx.$slots, "default");
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
export { PolarCoordinates_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { computed, defineComponent, effectScope, inject, mergeDefaults, onBeforeUnmount, provide, renderSlot, toValue, watch } from "vue";
|
|
2
|
+
import { createUniformsMap } from "../core/index.js";
|
|
3
|
+
import { componentDefinition } from "../core/shaders/Posterize/index.js";
|
|
4
|
+
var Posterize_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
5
|
+
__name: "Posterize",
|
|
6
|
+
props: /* @__PURE__ */ mergeDefaults({
|
|
7
|
+
blendMode: {},
|
|
8
|
+
opacity: {},
|
|
9
|
+
visible: { type: Boolean },
|
|
10
|
+
id: {},
|
|
11
|
+
maskSource: {},
|
|
12
|
+
maskType: {},
|
|
13
|
+
renderOrder: {},
|
|
14
|
+
transform: {},
|
|
15
|
+
intensity: {}
|
|
16
|
+
}, {
|
|
17
|
+
blendMode: "normal",
|
|
18
|
+
renderOrder: 0,
|
|
19
|
+
visible: true,
|
|
20
|
+
...Object.entries(componentDefinition.props).reduce((acc, [key, config]) => {
|
|
21
|
+
acc[key] = config.default;
|
|
22
|
+
return acc;
|
|
23
|
+
}, {})
|
|
24
|
+
}),
|
|
25
|
+
setup(__props) {
|
|
26
|
+
const props = __props;
|
|
27
|
+
const instanceId = props.id || `${componentDefinition.name.toLowerCase()}_${Math.random().toString(36).substring(7)}`;
|
|
28
|
+
provide("ombreParentId", instanceId);
|
|
29
|
+
const DEFAULT_TRANSFORM = {
|
|
30
|
+
offsetX: 0,
|
|
31
|
+
offsetY: 0,
|
|
32
|
+
rotation: 0,
|
|
33
|
+
scale: 1,
|
|
34
|
+
anchorX: .5,
|
|
35
|
+
anchorY: .5,
|
|
36
|
+
edges: "transparent"
|
|
37
|
+
};
|
|
38
|
+
const effectiveTransform = computed(() => ({
|
|
39
|
+
...DEFAULT_TRANSFORM,
|
|
40
|
+
...props.transform
|
|
41
|
+
}));
|
|
42
|
+
const uniforms = createUniformsMap(componentDefinition, computed(() => {
|
|
43
|
+
let baseProps = { ...Object.entries(componentDefinition.props).reduce((acc, [key, config]) => {
|
|
44
|
+
acc[key] = config.default;
|
|
45
|
+
return acc;
|
|
46
|
+
}, {}) };
|
|
47
|
+
for (const key in props) if (key !== "blendMode" && key !== "opacity" && key !== "visible" && key !== "id" && key !== "maskSource" && key !== "maskType" && key !== "renderOrder" && key !== "transform" && props[key] !== Object.entries(componentDefinition.props).reduce((acc, [key$1, config]) => {
|
|
48
|
+
acc[key$1] = config.default;
|
|
49
|
+
return acc;
|
|
50
|
+
}, {})[key]) baseProps[key] = toValue(props[key]);
|
|
51
|
+
return baseProps;
|
|
52
|
+
}).value, instanceId);
|
|
53
|
+
const parentId = inject("ombreParentId");
|
|
54
|
+
if (parentId === void 0) throw new Error("Shader components must be used inside an <Shader> component or another shader component");
|
|
55
|
+
const parentRegister = inject("ombreNodeRegister");
|
|
56
|
+
if (parentRegister === void 0) throw new Error("Shader components must be used inside an <Shader> component or another shader component");
|
|
57
|
+
const parentUniformUpdate = inject("ombreUniformUpdate");
|
|
58
|
+
if (parentUniformUpdate === void 0) throw new Error("Shader components require ombreUniformUpdate from parent");
|
|
59
|
+
const parentMetadataUpdate = inject("ombreMetadataUpdate");
|
|
60
|
+
if (parentMetadataUpdate === void 0) throw new Error("Shader components require ombreMetadataUpdate from parent");
|
|
61
|
+
const rendererResetSignal = inject("ombreRendererResetSignal");
|
|
62
|
+
const registerWithRenderer = () => {
|
|
63
|
+
parentRegister(instanceId, componentDefinition.fragmentNode, parentId, {
|
|
64
|
+
blendMode: props.blendMode,
|
|
65
|
+
opacity: props.opacity,
|
|
66
|
+
visible: props.visible === false ? false : true,
|
|
67
|
+
id: props.id,
|
|
68
|
+
mask: props.maskSource ? {
|
|
69
|
+
source: props.maskSource,
|
|
70
|
+
type: props.maskType || "alpha"
|
|
71
|
+
} : void 0,
|
|
72
|
+
renderOrder: props.renderOrder,
|
|
73
|
+
transform: effectiveTransform.value
|
|
74
|
+
}, uniforms, componentDefinition);
|
|
75
|
+
};
|
|
76
|
+
const setupUniformWatchers = () => {
|
|
77
|
+
const scope = effectScope();
|
|
78
|
+
scope.run(() => {
|
|
79
|
+
Object.entries(uniforms).forEach(([propName, { uniform, transform }]) => {
|
|
80
|
+
watch(() => props[propName], (newValue) => {
|
|
81
|
+
if (uniform && uniform.value !== void 0) parentUniformUpdate(instanceId, propName, newValue);
|
|
82
|
+
}, { deep: true });
|
|
83
|
+
});
|
|
84
|
+
watch(() => [
|
|
85
|
+
props.blendMode,
|
|
86
|
+
props.opacity,
|
|
87
|
+
props.visible,
|
|
88
|
+
props.id,
|
|
89
|
+
props.maskSource,
|
|
90
|
+
props.maskType,
|
|
91
|
+
props.renderOrder,
|
|
92
|
+
props.transform
|
|
93
|
+
], ([blendMode, opacity, visible]) => {
|
|
94
|
+
parentMetadataUpdate(instanceId, {
|
|
95
|
+
blendMode,
|
|
96
|
+
opacity,
|
|
97
|
+
visible: visible === false ? false : true,
|
|
98
|
+
id: props.id,
|
|
99
|
+
mask: props.maskSource ? {
|
|
100
|
+
source: props.maskSource,
|
|
101
|
+
type: props.maskType || "alpha"
|
|
102
|
+
} : void 0,
|
|
103
|
+
renderOrder: props.renderOrder,
|
|
104
|
+
transform: effectiveTransform.value
|
|
105
|
+
});
|
|
106
|
+
}, { deep: true });
|
|
107
|
+
if (rendererResetSignal) watch(() => rendererResetSignal.value, (newValue) => {
|
|
108
|
+
if (newValue > 0) registerWithRenderer();
|
|
109
|
+
}, { immediate: true });
|
|
110
|
+
});
|
|
111
|
+
onBeforeUnmount(() => {
|
|
112
|
+
scope.stop();
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
setupUniformWatchers();
|
|
116
|
+
onBeforeUnmount(() => {
|
|
117
|
+
parentRegister(instanceId, null, null, null, null, null);
|
|
118
|
+
});
|
|
119
|
+
return (_ctx, _cache) => {
|
|
120
|
+
return renderSlot(_ctx.$slots, "default");
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
export { Posterize_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { computed, defineComponent, effectScope, inject, mergeDefaults, onBeforeUnmount, provide, renderSlot, toValue, watch } from "vue";
|
|
2
|
+
import { createUniformsMap } from "../core/index.js";
|
|
3
|
+
import { componentDefinition } from "../core/shaders/ProgressiveBlur/index.js";
|
|
4
|
+
var ProgressiveBlur_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
5
|
+
__name: "ProgressiveBlur",
|
|
6
|
+
props: /* @__PURE__ */ mergeDefaults({
|
|
7
|
+
blendMode: {},
|
|
8
|
+
opacity: {},
|
|
9
|
+
visible: { type: Boolean },
|
|
10
|
+
id: {},
|
|
11
|
+
maskSource: {},
|
|
12
|
+
maskType: {},
|
|
13
|
+
renderOrder: {},
|
|
14
|
+
transform: {},
|
|
15
|
+
intensity: {},
|
|
16
|
+
angle: {},
|
|
17
|
+
center: {},
|
|
18
|
+
falloff: {}
|
|
19
|
+
}, {
|
|
20
|
+
blendMode: "normal",
|
|
21
|
+
renderOrder: 0,
|
|
22
|
+
visible: true,
|
|
23
|
+
...Object.entries(componentDefinition.props).reduce((acc, [key, config]) => {
|
|
24
|
+
acc[key] = config.default;
|
|
25
|
+
return acc;
|
|
26
|
+
}, {})
|
|
27
|
+
}),
|
|
28
|
+
setup(__props) {
|
|
29
|
+
const props = __props;
|
|
30
|
+
const instanceId = props.id || `${componentDefinition.name.toLowerCase()}_${Math.random().toString(36).substring(7)}`;
|
|
31
|
+
provide("ombreParentId", instanceId);
|
|
32
|
+
const DEFAULT_TRANSFORM = {
|
|
33
|
+
offsetX: 0,
|
|
34
|
+
offsetY: 0,
|
|
35
|
+
rotation: 0,
|
|
36
|
+
scale: 1,
|
|
37
|
+
anchorX: .5,
|
|
38
|
+
anchorY: .5,
|
|
39
|
+
edges: "transparent"
|
|
40
|
+
};
|
|
41
|
+
const effectiveTransform = computed(() => ({
|
|
42
|
+
...DEFAULT_TRANSFORM,
|
|
43
|
+
...props.transform
|
|
44
|
+
}));
|
|
45
|
+
const uniforms = createUniformsMap(componentDefinition, computed(() => {
|
|
46
|
+
let baseProps = { ...Object.entries(componentDefinition.props).reduce((acc, [key, config]) => {
|
|
47
|
+
acc[key] = config.default;
|
|
48
|
+
return acc;
|
|
49
|
+
}, {}) };
|
|
50
|
+
for (const key in props) if (key !== "blendMode" && key !== "opacity" && key !== "visible" && key !== "id" && key !== "maskSource" && key !== "maskType" && key !== "renderOrder" && key !== "transform" && props[key] !== Object.entries(componentDefinition.props).reduce((acc, [key$1, config]) => {
|
|
51
|
+
acc[key$1] = config.default;
|
|
52
|
+
return acc;
|
|
53
|
+
}, {})[key]) baseProps[key] = toValue(props[key]);
|
|
54
|
+
return baseProps;
|
|
55
|
+
}).value, instanceId);
|
|
56
|
+
const parentId = inject("ombreParentId");
|
|
57
|
+
if (parentId === void 0) throw new Error("Shader components must be used inside an <Shader> component or another shader component");
|
|
58
|
+
const parentRegister = inject("ombreNodeRegister");
|
|
59
|
+
if (parentRegister === void 0) throw new Error("Shader components must be used inside an <Shader> component or another shader component");
|
|
60
|
+
const parentUniformUpdate = inject("ombreUniformUpdate");
|
|
61
|
+
if (parentUniformUpdate === void 0) throw new Error("Shader components require ombreUniformUpdate from parent");
|
|
62
|
+
const parentMetadataUpdate = inject("ombreMetadataUpdate");
|
|
63
|
+
if (parentMetadataUpdate === void 0) throw new Error("Shader components require ombreMetadataUpdate from parent");
|
|
64
|
+
const rendererResetSignal = inject("ombreRendererResetSignal");
|
|
65
|
+
const registerWithRenderer = () => {
|
|
66
|
+
parentRegister(instanceId, componentDefinition.fragmentNode, parentId, {
|
|
67
|
+
blendMode: props.blendMode,
|
|
68
|
+
opacity: props.opacity,
|
|
69
|
+
visible: props.visible === false ? false : true,
|
|
70
|
+
id: props.id,
|
|
71
|
+
mask: props.maskSource ? {
|
|
72
|
+
source: props.maskSource,
|
|
73
|
+
type: props.maskType || "alpha"
|
|
74
|
+
} : void 0,
|
|
75
|
+
renderOrder: props.renderOrder,
|
|
76
|
+
transform: effectiveTransform.value
|
|
77
|
+
}, uniforms, componentDefinition);
|
|
78
|
+
};
|
|
79
|
+
const setupUniformWatchers = () => {
|
|
80
|
+
const scope = effectScope();
|
|
81
|
+
scope.run(() => {
|
|
82
|
+
Object.entries(uniforms).forEach(([propName, { uniform, transform }]) => {
|
|
83
|
+
watch(() => props[propName], (newValue) => {
|
|
84
|
+
if (uniform && uniform.value !== void 0) parentUniformUpdate(instanceId, propName, newValue);
|
|
85
|
+
}, { deep: true });
|
|
86
|
+
});
|
|
87
|
+
watch(() => [
|
|
88
|
+
props.blendMode,
|
|
89
|
+
props.opacity,
|
|
90
|
+
props.visible,
|
|
91
|
+
props.id,
|
|
92
|
+
props.maskSource,
|
|
93
|
+
props.maskType,
|
|
94
|
+
props.renderOrder,
|
|
95
|
+
props.transform
|
|
96
|
+
], ([blendMode, opacity, visible]) => {
|
|
97
|
+
parentMetadataUpdate(instanceId, {
|
|
98
|
+
blendMode,
|
|
99
|
+
opacity,
|
|
100
|
+
visible: visible === false ? false : true,
|
|
101
|
+
id: props.id,
|
|
102
|
+
mask: props.maskSource ? {
|
|
103
|
+
source: props.maskSource,
|
|
104
|
+
type: props.maskType || "alpha"
|
|
105
|
+
} : void 0,
|
|
106
|
+
renderOrder: props.renderOrder,
|
|
107
|
+
transform: effectiveTransform.value
|
|
108
|
+
});
|
|
109
|
+
}, { deep: true });
|
|
110
|
+
if (rendererResetSignal) watch(() => rendererResetSignal.value, (newValue) => {
|
|
111
|
+
if (newValue > 0) registerWithRenderer();
|
|
112
|
+
}, { immediate: true });
|
|
113
|
+
});
|
|
114
|
+
onBeforeUnmount(() => {
|
|
115
|
+
scope.stop();
|
|
116
|
+
});
|
|
117
|
+
};
|
|
118
|
+
setupUniformWatchers();
|
|
119
|
+
onBeforeUnmount(() => {
|
|
120
|
+
parentRegister(instanceId, null, null, null, null, null);
|
|
121
|
+
});
|
|
122
|
+
return (_ctx, _cache) => {
|
|
123
|
+
return renderSlot(_ctx.$slots, "default");
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
export { ProgressiveBlur_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { computed, defineComponent, effectScope, inject, mergeDefaults, onBeforeUnmount, provide, renderSlot, toValue, watch } from "vue";
|
|
2
|
+
import { createUniformsMap } from "../core/index.js";
|
|
3
|
+
import { componentDefinition } from "../core/shaders/RadialGradient/index.js";
|
|
4
|
+
var RadialGradient_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
5
|
+
__name: "RadialGradient",
|
|
6
|
+
props: /* @__PURE__ */ mergeDefaults({
|
|
7
|
+
blendMode: {},
|
|
8
|
+
opacity: {},
|
|
9
|
+
visible: { type: Boolean },
|
|
10
|
+
id: {},
|
|
11
|
+
maskSource: {},
|
|
12
|
+
maskType: {},
|
|
13
|
+
renderOrder: {},
|
|
14
|
+
transform: {},
|
|
15
|
+
colorA: {},
|
|
16
|
+
colorB: {},
|
|
17
|
+
center: {},
|
|
18
|
+
radius: {},
|
|
19
|
+
colorSpace: {}
|
|
20
|
+
}, {
|
|
21
|
+
blendMode: "normal",
|
|
22
|
+
renderOrder: 0,
|
|
23
|
+
visible: true,
|
|
24
|
+
...Object.entries(componentDefinition.props).reduce((acc, [key, config]) => {
|
|
25
|
+
acc[key] = config.default;
|
|
26
|
+
return acc;
|
|
27
|
+
}, {})
|
|
28
|
+
}),
|
|
29
|
+
setup(__props) {
|
|
30
|
+
const props = __props;
|
|
31
|
+
const instanceId = props.id || `${componentDefinition.name.toLowerCase()}_${Math.random().toString(36).substring(7)}`;
|
|
32
|
+
provide("ombreParentId", instanceId);
|
|
33
|
+
const DEFAULT_TRANSFORM = {
|
|
34
|
+
offsetX: 0,
|
|
35
|
+
offsetY: 0,
|
|
36
|
+
rotation: 0,
|
|
37
|
+
scale: 1,
|
|
38
|
+
anchorX: .5,
|
|
39
|
+
anchorY: .5,
|
|
40
|
+
edges: "transparent"
|
|
41
|
+
};
|
|
42
|
+
const effectiveTransform = computed(() => ({
|
|
43
|
+
...DEFAULT_TRANSFORM,
|
|
44
|
+
...props.transform
|
|
45
|
+
}));
|
|
46
|
+
const uniforms = createUniformsMap(componentDefinition, computed(() => {
|
|
47
|
+
let baseProps = { ...Object.entries(componentDefinition.props).reduce((acc, [key, config]) => {
|
|
48
|
+
acc[key] = config.default;
|
|
49
|
+
return acc;
|
|
50
|
+
}, {}) };
|
|
51
|
+
for (const key in props) if (key !== "blendMode" && key !== "opacity" && key !== "visible" && key !== "id" && key !== "maskSource" && key !== "maskType" && key !== "renderOrder" && key !== "transform" && props[key] !== Object.entries(componentDefinition.props).reduce((acc, [key$1, config]) => {
|
|
52
|
+
acc[key$1] = config.default;
|
|
53
|
+
return acc;
|
|
54
|
+
}, {})[key]) baseProps[key] = toValue(props[key]);
|
|
55
|
+
return baseProps;
|
|
56
|
+
}).value, instanceId);
|
|
57
|
+
const parentId = inject("ombreParentId");
|
|
58
|
+
if (parentId === void 0) throw new Error("Shader components must be used inside an <Shader> component or another shader component");
|
|
59
|
+
const parentRegister = inject("ombreNodeRegister");
|
|
60
|
+
if (parentRegister === void 0) throw new Error("Shader components must be used inside an <Shader> component or another shader component");
|
|
61
|
+
const parentUniformUpdate = inject("ombreUniformUpdate");
|
|
62
|
+
if (parentUniformUpdate === void 0) throw new Error("Shader components require ombreUniformUpdate from parent");
|
|
63
|
+
const parentMetadataUpdate = inject("ombreMetadataUpdate");
|
|
64
|
+
if (parentMetadataUpdate === void 0) throw new Error("Shader components require ombreMetadataUpdate from parent");
|
|
65
|
+
const rendererResetSignal = inject("ombreRendererResetSignal");
|
|
66
|
+
const registerWithRenderer = () => {
|
|
67
|
+
parentRegister(instanceId, componentDefinition.fragmentNode, parentId, {
|
|
68
|
+
blendMode: props.blendMode,
|
|
69
|
+
opacity: props.opacity,
|
|
70
|
+
visible: props.visible === false ? false : true,
|
|
71
|
+
id: props.id,
|
|
72
|
+
mask: props.maskSource ? {
|
|
73
|
+
source: props.maskSource,
|
|
74
|
+
type: props.maskType || "alpha"
|
|
75
|
+
} : void 0,
|
|
76
|
+
renderOrder: props.renderOrder,
|
|
77
|
+
transform: effectiveTransform.value
|
|
78
|
+
}, uniforms, componentDefinition);
|
|
79
|
+
};
|
|
80
|
+
const setupUniformWatchers = () => {
|
|
81
|
+
const scope = effectScope();
|
|
82
|
+
scope.run(() => {
|
|
83
|
+
Object.entries(uniforms).forEach(([propName, { uniform, transform }]) => {
|
|
84
|
+
watch(() => props[propName], (newValue) => {
|
|
85
|
+
if (uniform && uniform.value !== void 0) parentUniformUpdate(instanceId, propName, newValue);
|
|
86
|
+
}, { deep: true });
|
|
87
|
+
});
|
|
88
|
+
watch(() => [
|
|
89
|
+
props.blendMode,
|
|
90
|
+
props.opacity,
|
|
91
|
+
props.visible,
|
|
92
|
+
props.id,
|
|
93
|
+
props.maskSource,
|
|
94
|
+
props.maskType,
|
|
95
|
+
props.renderOrder,
|
|
96
|
+
props.transform
|
|
97
|
+
], ([blendMode, opacity, visible]) => {
|
|
98
|
+
parentMetadataUpdate(instanceId, {
|
|
99
|
+
blendMode,
|
|
100
|
+
opacity,
|
|
101
|
+
visible: visible === false ? false : true,
|
|
102
|
+
id: props.id,
|
|
103
|
+
mask: props.maskSource ? {
|
|
104
|
+
source: props.maskSource,
|
|
105
|
+
type: props.maskType || "alpha"
|
|
106
|
+
} : void 0,
|
|
107
|
+
renderOrder: props.renderOrder,
|
|
108
|
+
transform: effectiveTransform.value
|
|
109
|
+
});
|
|
110
|
+
}, { deep: true });
|
|
111
|
+
if (rendererResetSignal) watch(() => rendererResetSignal.value, (newValue) => {
|
|
112
|
+
if (newValue > 0) registerWithRenderer();
|
|
113
|
+
}, { immediate: true });
|
|
114
|
+
});
|
|
115
|
+
onBeforeUnmount(() => {
|
|
116
|
+
scope.stop();
|
|
117
|
+
});
|
|
118
|
+
};
|
|
119
|
+
setupUniformWatchers();
|
|
120
|
+
onBeforeUnmount(() => {
|
|
121
|
+
parentRegister(instanceId, null, null, null, null, null);
|
|
122
|
+
});
|
|
123
|
+
return (_ctx, _cache) => {
|
|
124
|
+
return renderSlot(_ctx.$slots, "default");
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
export { RadialGradient_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import RectangularCoordinates_vue_vue_type_script_setup_true_lang_default from "./RectangularCoordinates.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
var RectangularCoordinates_default = RectangularCoordinates_vue_vue_type_script_setup_true_lang_default;
|
|
3
|
+
export { RectangularCoordinates_default as default };
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { computed, defineComponent, effectScope, inject, mergeDefaults, onBeforeUnmount, provide, renderSlot, toValue, watch } from "vue";
|
|
2
|
+
import { createUniformsMap } from "../core/index.js";
|
|
3
|
+
import { componentDefinition } from "../core/shaders/RectangularCoordinates/index.js";
|
|
4
|
+
var RectangularCoordinates_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
5
|
+
__name: "RectangularCoordinates",
|
|
6
|
+
props: /* @__PURE__ */ mergeDefaults({
|
|
7
|
+
blendMode: {},
|
|
8
|
+
opacity: {},
|
|
9
|
+
visible: { type: Boolean },
|
|
10
|
+
id: {},
|
|
11
|
+
maskSource: {},
|
|
12
|
+
maskType: {},
|
|
13
|
+
renderOrder: {},
|
|
14
|
+
transform: {},
|
|
15
|
+
center: {},
|
|
16
|
+
scale: {},
|
|
17
|
+
intensity: {},
|
|
18
|
+
edges: {}
|
|
19
|
+
}, {
|
|
20
|
+
blendMode: "normal",
|
|
21
|
+
renderOrder: 0,
|
|
22
|
+
visible: true,
|
|
23
|
+
...Object.entries(componentDefinition.props).reduce((acc, [key, config]) => {
|
|
24
|
+
acc[key] = config.default;
|
|
25
|
+
return acc;
|
|
26
|
+
}, {})
|
|
27
|
+
}),
|
|
28
|
+
setup(__props) {
|
|
29
|
+
const props = __props;
|
|
30
|
+
const instanceId = props.id || `${componentDefinition.name.toLowerCase()}_${Math.random().toString(36).substring(7)}`;
|
|
31
|
+
provide("ombreParentId", instanceId);
|
|
32
|
+
const DEFAULT_TRANSFORM = {
|
|
33
|
+
offsetX: 0,
|
|
34
|
+
offsetY: 0,
|
|
35
|
+
rotation: 0,
|
|
36
|
+
scale: 1,
|
|
37
|
+
anchorX: .5,
|
|
38
|
+
anchorY: .5,
|
|
39
|
+
edges: "transparent"
|
|
40
|
+
};
|
|
41
|
+
const effectiveTransform = computed(() => ({
|
|
42
|
+
...DEFAULT_TRANSFORM,
|
|
43
|
+
...props.transform
|
|
44
|
+
}));
|
|
45
|
+
const uniforms = createUniformsMap(componentDefinition, computed(() => {
|
|
46
|
+
let baseProps = { ...Object.entries(componentDefinition.props).reduce((acc, [key, config]) => {
|
|
47
|
+
acc[key] = config.default;
|
|
48
|
+
return acc;
|
|
49
|
+
}, {}) };
|
|
50
|
+
for (const key in props) if (key !== "blendMode" && key !== "opacity" && key !== "visible" && key !== "id" && key !== "maskSource" && key !== "maskType" && key !== "renderOrder" && key !== "transform" && props[key] !== Object.entries(componentDefinition.props).reduce((acc, [key$1, config]) => {
|
|
51
|
+
acc[key$1] = config.default;
|
|
52
|
+
return acc;
|
|
53
|
+
}, {})[key]) baseProps[key] = toValue(props[key]);
|
|
54
|
+
return baseProps;
|
|
55
|
+
}).value, instanceId);
|
|
56
|
+
const parentId = inject("ombreParentId");
|
|
57
|
+
if (parentId === void 0) throw new Error("Shader components must be used inside an <Shader> component or another shader component");
|
|
58
|
+
const parentRegister = inject("ombreNodeRegister");
|
|
59
|
+
if (parentRegister === void 0) throw new Error("Shader components must be used inside an <Shader> component or another shader component");
|
|
60
|
+
const parentUniformUpdate = inject("ombreUniformUpdate");
|
|
61
|
+
if (parentUniformUpdate === void 0) throw new Error("Shader components require ombreUniformUpdate from parent");
|
|
62
|
+
const parentMetadataUpdate = inject("ombreMetadataUpdate");
|
|
63
|
+
if (parentMetadataUpdate === void 0) throw new Error("Shader components require ombreMetadataUpdate from parent");
|
|
64
|
+
const rendererResetSignal = inject("ombreRendererResetSignal");
|
|
65
|
+
const registerWithRenderer = () => {
|
|
66
|
+
parentRegister(instanceId, componentDefinition.fragmentNode, parentId, {
|
|
67
|
+
blendMode: props.blendMode,
|
|
68
|
+
opacity: props.opacity,
|
|
69
|
+
visible: props.visible === false ? false : true,
|
|
70
|
+
id: props.id,
|
|
71
|
+
mask: props.maskSource ? {
|
|
72
|
+
source: props.maskSource,
|
|
73
|
+
type: props.maskType || "alpha"
|
|
74
|
+
} : void 0,
|
|
75
|
+
renderOrder: props.renderOrder,
|
|
76
|
+
transform: effectiveTransform.value
|
|
77
|
+
}, uniforms, componentDefinition);
|
|
78
|
+
};
|
|
79
|
+
const setupUniformWatchers = () => {
|
|
80
|
+
const scope = effectScope();
|
|
81
|
+
scope.run(() => {
|
|
82
|
+
Object.entries(uniforms).forEach(([propName, { uniform, transform }]) => {
|
|
83
|
+
watch(() => props[propName], (newValue) => {
|
|
84
|
+
if (uniform && uniform.value !== void 0) parentUniformUpdate(instanceId, propName, newValue);
|
|
85
|
+
}, { deep: true });
|
|
86
|
+
});
|
|
87
|
+
watch(() => [
|
|
88
|
+
props.blendMode,
|
|
89
|
+
props.opacity,
|
|
90
|
+
props.visible,
|
|
91
|
+
props.id,
|
|
92
|
+
props.maskSource,
|
|
93
|
+
props.maskType,
|
|
94
|
+
props.renderOrder,
|
|
95
|
+
props.transform
|
|
96
|
+
], ([blendMode, opacity, visible]) => {
|
|
97
|
+
parentMetadataUpdate(instanceId, {
|
|
98
|
+
blendMode,
|
|
99
|
+
opacity,
|
|
100
|
+
visible: visible === false ? false : true,
|
|
101
|
+
id: props.id,
|
|
102
|
+
mask: props.maskSource ? {
|
|
103
|
+
source: props.maskSource,
|
|
104
|
+
type: props.maskType || "alpha"
|
|
105
|
+
} : void 0,
|
|
106
|
+
renderOrder: props.renderOrder,
|
|
107
|
+
transform: effectiveTransform.value
|
|
108
|
+
});
|
|
109
|
+
}, { deep: true });
|
|
110
|
+
if (rendererResetSignal) watch(() => rendererResetSignal.value, (newValue) => {
|
|
111
|
+
if (newValue > 0) registerWithRenderer();
|
|
112
|
+
}, { immediate: true });
|
|
113
|
+
});
|
|
114
|
+
onBeforeUnmount(() => {
|
|
115
|
+
scope.stop();
|
|
116
|
+
});
|
|
117
|
+
};
|
|
118
|
+
setupUniformWatchers();
|
|
119
|
+
onBeforeUnmount(() => {
|
|
120
|
+
parentRegister(instanceId, null, null, null, null, null);
|
|
121
|
+
});
|
|
122
|
+
return (_ctx, _cache) => {
|
|
123
|
+
return renderSlot(_ctx.$slots, "default");
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
export { RectangularCoordinates_vue_vue_type_script_setup_true_lang_default as default };
|