Web worker draft
This commit is contained in:
parent
722605131a
commit
7560c6cb4c
@ -21,6 +21,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fortawesome/free-brands-svg-icons": "^6.5.1",
|
"@fortawesome/free-brands-svg-icons": "^6.5.1",
|
||||||
"@fortawesome/free-solid-svg-icons": "^6.5.1",
|
"@fortawesome/free-solid-svg-icons": "^6.5.1",
|
||||||
|
"@solid-primitives/workers": "^0.2.6",
|
||||||
"@solidjs/router": "^0.10.9",
|
"@solidjs/router": "^0.10.9",
|
||||||
"flowbite": "^2.2.1",
|
"flowbite": "^2.2.1",
|
||||||
"solid-fa": "^0.2.0",
|
"solid-fa": "^0.2.0",
|
||||||
|
@ -11,6 +11,9 @@ dependencies:
|
|||||||
'@fortawesome/free-solid-svg-icons':
|
'@fortawesome/free-solid-svg-icons':
|
||||||
specifier: ^6.5.1
|
specifier: ^6.5.1
|
||||||
version: 6.5.1
|
version: 6.5.1
|
||||||
|
'@solid-primitives/workers':
|
||||||
|
specifier: ^0.2.6
|
||||||
|
version: 0.2.6(solid-js@1.8.11)
|
||||||
'@solidjs/router':
|
'@solidjs/router':
|
||||||
specifier: ^0.10.9
|
specifier: ^0.10.9
|
||||||
version: 0.10.9(solid-js@1.8.11)
|
version: 0.10.9(solid-js@1.8.11)
|
||||||
@ -875,6 +878,14 @@ packages:
|
|||||||
solid-js: 1.8.11
|
solid-js: 1.8.11
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/@solid-primitives/workers@0.2.6(solid-js@1.8.11):
|
||||||
|
resolution: {integrity: sha512-GvEvxzfNcFbjunvpSlZtMATmrLIbWUnviaUQ+GwrN4NA4UTogYcVCTQmJZrPhPVTs5MJ6QEapPZzWrPLrSanWg==}
|
||||||
|
peerDependencies:
|
||||||
|
solid-js: ^1.6.12
|
||||||
|
dependencies:
|
||||||
|
solid-js: 1.8.11
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@solidjs/router@0.10.9(solid-js@1.8.11):
|
/@solidjs/router@0.10.9(solid-js@1.8.11):
|
||||||
resolution: {integrity: sha512-TmipgAI2cU7A94fBO1MOEx7j9OYoKtddoOonSFb2221w5I1xxdjLk9W4CZDdyOVdO5z80f70KGJvNq83WFX/Qg==}
|
resolution: {integrity: sha512-TmipgAI2cU7A94fBO1MOEx7j9OYoKtddoOonSFb2221w5I1xxdjLk9W4CZDdyOVdO5z80f70KGJvNq83WFX/Qg==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
18
palette-switcher-v2/src/lib/ditherer.ts
Normal file
18
palette-switcher-v2/src/lib/ditherer.ts
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
import { createSignal } from "solid-js";
|
||||||
|
import { createSignaledWorker } from "@solid-primitives/workers";
|
||||||
|
import { Job } from "./job";
|
||||||
|
|
||||||
|
const [job, setJob] = createSignal<Job>();
|
||||||
|
const [image, setImage] = createSignal<string>();
|
||||||
|
|
||||||
|
const [start, stop] = createSignaledWorker({
|
||||||
|
input: job,
|
||||||
|
output: setImage,
|
||||||
|
func: function process(job: Job) {
|
||||||
|
console.log(job);
|
||||||
|
return "OK ?";
|
||||||
|
},
|
||||||
|
concurrency: 10,
|
||||||
|
});
|
||||||
|
|
||||||
|
export { setJob, image };
|
21
palette-switcher-v2/src/lib/job.ts
Normal file
21
palette-switcher-v2/src/lib/job.ts
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
type Color = string;
|
||||||
|
|
||||||
|
interface BaseJob {
|
||||||
|
kind: string;
|
||||||
|
image: ArrayBuffer;
|
||||||
|
palette: Color[];
|
||||||
|
}
|
||||||
|
|
||||||
|
interface FloydSteinberg extends BaseJob {
|
||||||
|
kind: "FLOYD_STEINBERG";
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Bayer extends BaseJob {
|
||||||
|
kind: "BAYER";
|
||||||
|
}
|
||||||
|
|
||||||
|
interface PixelMapper extends BaseJob {
|
||||||
|
kind: "PIXEL_MAPPER";
|
||||||
|
}
|
||||||
|
|
||||||
|
export type Job = FloydSteinberg | Bayer | PixelMapper;
|
@ -1,8 +1,23 @@
|
|||||||
import { Component } from "solid-js";
|
import { Component } from "solid-js";
|
||||||
|
import { setJob, image } from "../lib/ditherer";
|
||||||
|
import { Job } from "../lib/job";
|
||||||
|
|
||||||
const Switcher: Component = () =>
|
const Switcher: Component = () => {
|
||||||
|
const handler = () => {
|
||||||
|
const job: Job = {
|
||||||
|
kind: "FLOYD_STEINBERG",
|
||||||
|
image: new ArrayBuffer(1),
|
||||||
|
palette: ["FFFFFF"],
|
||||||
|
};
|
||||||
|
|
||||||
|
setJob(job);
|
||||||
|
};
|
||||||
|
return (
|
||||||
<div class="mx-auto max-w-7xl py-6 sm:px-6 lg:px-8">
|
<div class="mx-auto max-w-7xl py-6 sm:px-6 lg:px-8">
|
||||||
CONTENT
|
{image()}
|
||||||
|
<button onClick={() => handler()}>Click Me</button>
|
||||||
</div>
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
export default Switcher;
|
export default Switcher;
|
Loading…
Reference in New Issue
Block a user