Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
4b17971
fix(asciify): re-initialize WebGL fallback engine when native html-in…
lulushuz Jul 26, 2026
9a5e6d6
fix(bend): re-initialize WebGL fallback engine when native html-in-ca…
lulushuz Jul 26, 2026
d3ac33b
fix(blaze): re-initialize WebGL fallback engine when native html-in-c…
lulushuz Jul 26, 2026
9c3e019
fix(bubble): re-initialize WebGL fallback engine when native html-in-…
lulushuz Jul 26, 2026
7b6cd7a
fix(cloth): re-initialize WebGL fallback engine when native html-in-c…
lulushuz Jul 26, 2026
26c52c1
fix(clouds): re-initialize WebGL fallback engine when native html-in-…
lulushuz Jul 26, 2026
7dff159
fix(droplets): re-initialize WebGL fallback engine when native html-i…
lulushuz Jul 26, 2026
39a79d1
fix(frost): re-initialize WebGL fallback engine when native html-in-c…
lulushuz Jul 26, 2026
1f693f1
fix(glass): re-initialize WebGL fallback engine when native html-in-c…
lulushuz Jul 26, 2026
e655d4d
fix(glitch): re-initialize WebGL fallback engine when native html-in-…
lulushuz Jul 26, 2026
3094fdb
fix(grid): re-initialize WebGL fallback engine when native html-in-ca…
lulushuz Jul 26, 2026
2aad33d
fix(hex-float): re-initialize WebGL fallback engine when native html-…
lulushuz Jul 26, 2026
0df656c
fix(laser): re-initialize WebGL fallback engine when native html-in-c…
lulushuz Jul 26, 2026
2312367
fix(magnify): re-initialize WebGL fallback engine when native html-in…
lulushuz Jul 26, 2026
45d0193
fix(particle-reveal): re-initialize WebGL fallback engine when native…
lulushuz Jul 26, 2026
86ba511
fix(particle-scroll): re-initialize WebGL fallback engine when native…
lulushuz Jul 26, 2026
7ffb8db
fix(peel): re-initialize WebGL fallback engine when native html-in-ca…
lulushuz Jul 26, 2026
9508d5f
fix(retro-dither): re-initialize WebGL fallback engine when native ht…
lulushuz Jul 26, 2026
2ebdf7d
fix(ripple): re-initialize WebGL fallback engine when native html-in-…
lulushuz Jul 26, 2026
60e2666
fix(shatter): re-initialize WebGL fallback engine when native html-in…
lulushuz Jul 26, 2026
157ad5d
fix(vhs): re-initialize WebGL fallback engine when native html-in-can…
lulushuz Jul 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 14 additions & 3 deletions src/lib/Asciify/Asciify.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,25 @@
onMount(() => {
native = supportsHtmlInCanvas();
let disposed = false;
tick().then(() => {
(async () => {
await tick();
if (disposed) return;
if (!sourceEl || !contentEl || !outputEl) return;
instance = createAsciify(
{ source: sourceEl, content: contentEl, output: outputEl },
options,
);
if (native && !instance) native = false;
});
if (native && !instance) {
native = false;
await tick();
if (disposed) return;
if (!sourceEl || !contentEl || !outputEl) return;
instance = createAsciify(
{ source: sourceEl, content: contentEl, output: outputEl },
options,
);
}
})();
return () => {
disposed = true;
instance?.destroy();
Expand Down
46 changes: 30 additions & 16 deletions src/lib/Asciify/Asciify.vue
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<script setup lang="ts">
import { onBeforeUnmount, onMounted, ref, watch } from "vue";
import { nextTick, onBeforeUnmount, onMounted, ref, watch } from "vue";

import {
createAsciify,
Expand All @@ -16,27 +16,41 @@ const outputEl = ref<HTMLCanvasElement | null>(null);
const native = ref(false);

let instance: AsciifyInstance | null = null;
let raf = 0;
let disposed = false;

onMounted(() => {
onMounted(async () => {
native.value = supportsHtmlInCanvas();
raf = requestAnimationFrame(() => {
if (sourceEl.value && contentEl.value && outputEl.value) {
instance = createAsciify(
{
source: sourceEl.value,
content: contentEl.value,
output: outputEl.value,
},
props,
);
if (native.value && !instance) native.value = false;
await nextTick();
if (disposed) return;
if (sourceEl.value && contentEl.value && outputEl.value) {
instance = createAsciify(
{
source: sourceEl.value,
content: contentEl.value,
output: outputEl.value,
},
props,
);
if (native.value && !instance) {
native.value = false;
await nextTick();
if (disposed) return;
if (sourceEl.value && contentEl.value && outputEl.value) {
instance = createAsciify(
{
source: sourceEl.value,
content: contentEl.value,
output: outputEl.value,
},
props,
);
}
}
});
}
});

onBeforeUnmount(() => {
cancelAnimationFrame(raf);
disposed = true;
instance?.destroy();
instance = null;
});
Expand Down
17 changes: 14 additions & 3 deletions src/lib/Bend/Bend.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,25 @@
onMount(() => {
native = supportsHtmlInCanvas();
let disposed = false;
tick().then(() => {
(async () => {
await tick();
if (disposed) return;
if (!sourceEl || !contentEl || !outputEl) return;
instance = createBend(
{ source: sourceEl, content: contentEl, output: outputEl },
options,
);
if (native && !instance) native = false;
});
if (native && !instance) {
native = false;
await tick();
if (disposed) return;
if (!sourceEl || !contentEl || !outputEl) return;
instance = createBend(
{ source: sourceEl, content: contentEl, output: outputEl },
options,
);
}
})();
return () => {
disposed = true;
instance?.destroy();
Expand Down
46 changes: 30 additions & 16 deletions src/lib/Bend/Bend.vue
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<script setup lang="ts">
import { onBeforeUnmount, onMounted, ref, watch } from "vue";
import { nextTick, onBeforeUnmount, onMounted, ref, watch } from "vue";

import {
createBend,
Expand All @@ -16,27 +16,41 @@ const outputEl = ref<HTMLCanvasElement | null>(null);
const native = ref(false);

let instance: BendInstance | null = null;
let raf = 0;
let disposed = false;

onMounted(() => {
onMounted(async () => {
native.value = supportsHtmlInCanvas();
raf = requestAnimationFrame(() => {
if (sourceEl.value && contentEl.value && outputEl.value) {
instance = createBend(
{
source: sourceEl.value,
content: contentEl.value,
output: outputEl.value,
},
props,
);
if (native.value && !instance) native.value = false;
await nextTick();
if (disposed) return;
if (sourceEl.value && contentEl.value && outputEl.value) {
instance = createBend(
{
source: sourceEl.value,
content: contentEl.value,
output: outputEl.value,
},
props,
);
if (native.value && !instance) {
native.value = false;
await nextTick();
if (disposed) return;
if (sourceEl.value && contentEl.value && outputEl.value) {
instance = createBend(
{
source: sourceEl.value,
content: contentEl.value,
output: outputEl.value,
},
props,
);
}
}
});
}
});

onBeforeUnmount(() => {
cancelAnimationFrame(raf);
disposed = true;
instance?.destroy();
instance = null;
});
Expand Down
17 changes: 14 additions & 3 deletions src/lib/Blaze/Blaze.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,25 @@
onMount(() => {
native = supportsHtmlInCanvas();
let disposed = false;
tick().then(() => {
(async () => {
await tick();
if (disposed) return;
if (!sourceEl || !contentEl || !outputEl) return;
instance = createBlaze(
{ source: sourceEl, content: contentEl, output: outputEl },
options,
);
if (native && !instance) native = false;
});
if (native && !instance) {
native = false;
await tick();
if (disposed) return;
if (!sourceEl || !contentEl || !outputEl) return;
instance = createBlaze(
{ source: sourceEl, content: contentEl, output: outputEl },
options,
);
}
})();
return () => {
disposed = true;
instance?.destroy();
Expand Down
46 changes: 30 additions & 16 deletions src/lib/Blaze/Blaze.vue
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<script setup lang="ts">
import { onBeforeUnmount, onMounted, ref, watch } from "vue";
import { nextTick, onBeforeUnmount, onMounted, ref, watch } from "vue";

import {
createBlaze,
Expand All @@ -16,27 +16,41 @@ const outputEl = ref<HTMLCanvasElement | null>(null);
const native = ref(false);

let instance: BlazeInstance | null = null;
let raf = 0;
let disposed = false;

onMounted(() => {
onMounted(async () => {
native.value = supportsHtmlInCanvas();
raf = requestAnimationFrame(() => {
if (sourceEl.value && contentEl.value && outputEl.value) {
instance = createBlaze(
{
source: sourceEl.value,
content: contentEl.value,
output: outputEl.value,
},
props,
);
if (native.value && !instance) native.value = false;
await nextTick();
if (disposed) return;
if (sourceEl.value && contentEl.value && outputEl.value) {
instance = createBlaze(
{
source: sourceEl.value,
content: contentEl.value,
output: outputEl.value,
},
props,
);
if (native.value && !instance) {
native.value = false;
await nextTick();
if (disposed) return;
if (sourceEl.value && contentEl.value && outputEl.value) {
instance = createBlaze(
{
source: sourceEl.value,
content: contentEl.value,
output: outputEl.value,
},
props,
);
}
}
});
}
});

onBeforeUnmount(() => {
cancelAnimationFrame(raf);
disposed = true;
instance?.destroy();
instance = null;
});
Expand Down
17 changes: 14 additions & 3 deletions src/lib/Bubble/Bubble.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,25 @@
onMount(() => {
native = supportsHtmlInCanvas();
let disposed = false;
tick().then(() => {
(async () => {
await tick();
if (disposed) return;
if (!sourceEl || !contentEl || !outputEl) return;
instance = createBubble(
{ source: sourceEl, content: contentEl, output: outputEl },
options,
);
if (native && !instance) native = false;
});
if (native && !instance) {
native = false;
await tick();
if (disposed) return;
if (!sourceEl || !contentEl || !outputEl) return;
instance = createBubble(
{ source: sourceEl, content: contentEl, output: outputEl },
options,
);
}
})();
return () => {
disposed = true;
instance?.destroy();
Expand Down
46 changes: 30 additions & 16 deletions src/lib/Bubble/Bubble.vue
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<script setup lang="ts">
import { onBeforeUnmount, onMounted, ref, watch } from "vue";
import { nextTick, onBeforeUnmount, onMounted, ref, watch } from "vue";

import {
createBubble,
Expand All @@ -16,27 +16,41 @@ const outputEl = ref<HTMLCanvasElement | null>(null);
const native = ref(false);

let instance: BubbleInstance | null = null;
let raf = 0;
let disposed = false;

onMounted(() => {
onMounted(async () => {
native.value = supportsHtmlInCanvas();
raf = requestAnimationFrame(() => {
if (sourceEl.value && contentEl.value && outputEl.value) {
instance = createBubble(
{
source: sourceEl.value,
content: contentEl.value,
output: outputEl.value,
},
props,
);
if (native.value && !instance) native.value = false;
await nextTick();
if (disposed) return;
if (sourceEl.value && contentEl.value && outputEl.value) {
instance = createBubble(
{
source: sourceEl.value,
content: contentEl.value,
output: outputEl.value,
},
props,
);
if (native.value && !instance) {
native.value = false;
await nextTick();
if (disposed) return;
if (sourceEl.value && contentEl.value && outputEl.value) {
instance = createBubble(
{
source: sourceEl.value,
content: contentEl.value,
output: outputEl.value,
},
props,
);
}
}
});
}
});

onBeforeUnmount(() => {
cancelAnimationFrame(raf);
disposed = true;
instance?.destroy();
instance = null;
});
Expand Down
Loading
Loading