@swf2es/render 0.0.0-stage → 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 +202 -0
- package/README.md +17 -2
- package/dist/commands.d.ts +67 -0
- package/dist/commands.d.ts.map +1 -0
- package/dist/commands.js +93 -0
- package/dist/commands.js.map +1 -0
- package/dist/filter-plan.d.ts +110 -0
- package/dist/filter-plan.d.ts.map +1 -0
- package/dist/filter-plan.js +480 -0
- package/dist/filter-plan.js.map +1 -0
- package/dist/filter-shaders.d.ts +63 -0
- package/dist/filter-shaders.d.ts.map +1 -0
- package/dist/filter-shaders.js +350 -0
- package/dist/filter-shaders.js.map +1 -0
- package/dist/filters.d.ts +107 -0
- package/dist/filters.d.ts.map +1 -0
- package/dist/filters.js +187 -0
- package/dist/filters.js.map +1 -0
- package/dist/geometry.d.ts +83 -0
- package/dist/geometry.d.ts.map +1 -0
- package/dist/geometry.js +93 -0
- package/dist/geometry.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/keeps.d.ts +17 -0
- package/dist/keeps.d.ts.map +1 -0
- package/dist/keeps.js +17 -0
- package/dist/keeps.js.map +1 -0
- package/dist/kernel-shaders.d.ts +74 -0
- package/dist/kernel-shaders.d.ts.map +1 -0
- package/dist/kernel-shaders.js +323 -0
- package/dist/kernel-shaders.js.map +1 -0
- package/dist/measure.d.ts +56 -0
- package/dist/measure.d.ts.map +1 -0
- package/dist/measure.js +287 -0
- package/dist/measure.js.map +1 -0
- package/dist/plan.d.ts +14 -0
- package/dist/plan.d.ts.map +1 -0
- package/dist/plan.js +247 -0
- package/dist/plan.js.map +1 -0
- package/dist/registry.d.ts +49 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +87 -0
- package/dist/registry.js.map +1 -0
- package/dist/rows.d.ts +39 -0
- package/dist/rows.d.ts.map +1 -0
- package/dist/rows.js +60 -0
- package/dist/rows.js.map +1 -0
- package/dist/scene.d.ts +179 -0
- package/dist/scene.d.ts.map +1 -0
- package/dist/scene.js +265 -0
- package/dist/scene.js.map +1 -0
- package/dist/shelves.d.ts +23 -0
- package/dist/shelves.d.ts.map +1 -0
- package/dist/shelves.js +63 -0
- package/dist/shelves.js.map +1 -0
- package/dist/textures.d.ts +72 -0
- package/dist/textures.d.ts.map +1 -0
- package/dist/textures.js +160 -0
- package/dist/textures.js.map +1 -0
- package/dist/webgl/atlas.d.ts +63 -0
- package/dist/webgl/atlas.d.ts.map +1 -0
- package/dist/webgl/atlas.js +328 -0
- package/dist/webgl/atlas.js.map +1 -0
- package/dist/webgl/backend.d.ts +141 -0
- package/dist/webgl/backend.d.ts.map +1 -0
- package/dist/webgl/backend.js +659 -0
- package/dist/webgl/backend.js.map +1 -0
- package/dist/webgl/composite.d.ts +101 -0
- package/dist/webgl/composite.d.ts.map +1 -0
- package/dist/webgl/composite.js +293 -0
- package/dist/webgl/composite.js.map +1 -0
- package/dist/webgl/draws.d.ts +213 -0
- package/dist/webgl/draws.d.ts.map +1 -0
- package/dist/webgl/draws.js +714 -0
- package/dist/webgl/draws.js.map +1 -0
- package/dist/webgl/filters.d.ts +107 -0
- package/dist/webgl/filters.d.ts.map +1 -0
- package/dist/webgl/filters.js +351 -0
- package/dist/webgl/filters.js.map +1 -0
- package/dist/webgl/gpu-textures.d.ts +44 -0
- package/dist/webgl/gpu-textures.d.ts.map +1 -0
- package/dist/webgl/gpu-textures.js +178 -0
- package/dist/webgl/gpu-textures.js.map +1 -0
- package/dist/webgl/holds.d.ts +97 -0
- package/dist/webgl/holds.d.ts.map +1 -0
- package/dist/webgl/holds.js +453 -0
- package/dist/webgl/holds.js.map +1 -0
- package/dist/webgl/index.d.ts +2 -0
- package/dist/webgl/index.d.ts.map +1 -0
- package/dist/webgl/index.js +4 -0
- package/dist/webgl/index.js.map +1 -0
- package/dist/webgl/kernels.d.ts +64 -0
- package/dist/webgl/kernels.d.ts.map +1 -0
- package/dist/webgl/kernels.js +160 -0
- package/dist/webgl/kernels.js.map +1 -0
- package/dist/webgl/pool.d.ts +71 -0
- package/dist/webgl/pool.d.ts.map +1 -0
- package/dist/webgl/pool.js +192 -0
- package/dist/webgl/pool.js.map +1 -0
- package/dist/webgl/programs.d.ts +130 -0
- package/dist/webgl/programs.d.ts.map +1 -0
- package/dist/webgl/programs.js +582 -0
- package/dist/webgl/programs.js.map +1 -0
- package/dist/webgl/stage.d.ts +67 -0
- package/dist/webgl/stage.d.ts.map +1 -0
- package/dist/webgl/stage.js +173 -0
- package/dist/webgl/stage.js.map +1 -0
- package/dist/webgl/targets.d.ts +172 -0
- package/dist/webgl/targets.d.ts.map +1 -0
- package/dist/webgl/targets.js +323 -0
- package/dist/webgl/targets.js.map +1 -0
- package/package.json +35 -3
- package/src/commands.ts +98 -0
- package/src/filter-plan.ts +755 -0
- package/src/filter-shaders.ts +360 -0
- package/src/filters.ts +220 -0
- package/src/geometry.ts +143 -0
- package/src/index.ts +87 -0
- package/src/keeps.ts +21 -0
- package/src/kernel-shaders.ts +375 -0
- package/src/measure.ts +400 -0
- package/src/plan.ts +331 -0
- package/src/registry.ts +105 -0
- package/src/rows.ts +93 -0
- package/src/scene.ts +297 -0
- package/src/shelves.ts +70 -0
- package/src/textures.ts +198 -0
- package/src/webgl/atlas.ts +370 -0
- package/src/webgl/backend.ts +973 -0
- package/src/webgl/composite.ts +372 -0
- package/src/webgl/draws.ts +902 -0
- package/src/webgl/filters.ts +502 -0
- package/src/webgl/gpu-textures.ts +253 -0
- package/src/webgl/holds.ts +624 -0
- package/src/webgl/index.ts +3 -0
- package/src/webgl/kernels.ts +205 -0
- package/src/webgl/pool.ts +245 -0
- package/src/webgl/programs.ts +620 -0
- package/src/webgl/stage.ts +214 -0
- package/src/webgl/targets.ts +464 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/webgl/backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { type GlState } from "@swf2es/context3d/device";
|
|
2
|
+
import { type Filters } from "../filters.js";
|
|
3
|
+
import type { KernelHost, KernelPrograms } from "./kernels.js";
|
|
4
|
+
import { type Open } from "./targets.js";
|
|
5
|
+
/**
|
|
6
|
+
* Whether blend mode `mode` reads what is below, which GL's blending does
|
|
7
|
+
* not compute, onto a target `opaque` throughout or not. Over an opaque
|
|
8
|
+
* one, multiply's src × (1 − da) term is none, and premultiplied it is
|
|
9
|
+
* s × d + d × (1 − sa), alpha as normal's: GL's blending (setModeBlend).
|
|
10
|
+
* An alpha mask's is d × sa (ALPHA_MASK).
|
|
11
|
+
*/
|
|
12
|
+
export declare function readsBelow(mode: number, opaque?: boolean): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* GL's blending set for `mode` where it computes it (readsBelow false),
|
|
15
|
+
* the fragment then its pixel alone (BLEND_FRONT's normal); else off, the
|
|
16
|
+
* fragment the blend itself.
|
|
17
|
+
*/
|
|
18
|
+
export declare function setModeBlend(gl: WebGL2RenderingContext, state: GlState, mode: number): void;
|
|
19
|
+
/** Where a compositor finds the frame's blend shaders and the textures they read. */
|
|
20
|
+
export interface CompositeHost extends KernelHost {
|
|
21
|
+
filters(): Filters | null;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Layers composited onto what they are drawn over, in Flash's blend modes:
|
|
25
|
+
* through GL's blending where it computes the blend, else by the composite
|
|
26
|
+
* program from a copy of what is below, or by a blend shader's program
|
|
27
|
+
* (KERNEL).
|
|
28
|
+
*/
|
|
29
|
+
export declare class Compositor {
|
|
30
|
+
private readonly host;
|
|
31
|
+
/** Blend shaders' programs, the backend's one cache of kernels'. */
|
|
32
|
+
private readonly kernels;
|
|
33
|
+
private readonly gl;
|
|
34
|
+
private readonly state;
|
|
35
|
+
/** The layers' composite program and where it takes its mode and row. */
|
|
36
|
+
private composite;
|
|
37
|
+
private modeLocation;
|
|
38
|
+
private compositeRowLocation;
|
|
39
|
+
private offsetLocation;
|
|
40
|
+
private flipLocation;
|
|
41
|
+
private backOffsetLocation;
|
|
42
|
+
private rectLocation;
|
|
43
|
+
/** A copy of what is below a layer whose mode reads it, the target's size. */
|
|
44
|
+
private back;
|
|
45
|
+
private backFramebuffer;
|
|
46
|
+
private backWidth;
|
|
47
|
+
private backHeight;
|
|
48
|
+
constructor(gl: WebGL2RenderingContext, state: GlState, host: CompositeHost,
|
|
49
|
+
/** Blend shaders' programs, the backend's one cache of kernels'. */
|
|
50
|
+
kernels: KernelPrograms);
|
|
51
|
+
/** The composite program made, and no copy yet, as the context comes or comes back. */
|
|
52
|
+
setUp(): void;
|
|
53
|
+
/**
|
|
54
|
+
* `open` composited onto `under`, bound, in blend mode `mode`, coloured by
|
|
55
|
+
* row `row` (or -1), over its rectangle alone: through GL's blending where
|
|
56
|
+
* it computes Flash's blend, else from a copy of what is below there, the
|
|
57
|
+
* result replacing it. Its rectangle is cut to `under`'s, as a filtered
|
|
58
|
+
* one may reach past the canvas; in `under`'s framebuffer its rows run
|
|
59
|
+
* up on the canvas and down in a layer.
|
|
60
|
+
*/
|
|
61
|
+
compositeLayer(open: Open, under: Open, given: number, row: number): void;
|
|
62
|
+
/** Where cover last found a rectangle on its target, and where copyBelow copied what is below it. */
|
|
63
|
+
readonly place: {
|
|
64
|
+
dx: number;
|
|
65
|
+
dy: number;
|
|
66
|
+
x0: number;
|
|
67
|
+
y0: number;
|
|
68
|
+
width: number;
|
|
69
|
+
height: number;
|
|
70
|
+
fx: number;
|
|
71
|
+
fy: number;
|
|
72
|
+
backX: number;
|
|
73
|
+
backY: number;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Where `rect` lies on `under`, into place: cut to `under`'s, as a
|
|
77
|
+
* filtered layer may reach past the canvas; in `under`'s framebuffer its
|
|
78
|
+
* rows run up on the canvas and down in a layer. Whether any of it does.
|
|
79
|
+
*/
|
|
80
|
+
cover(rect: {
|
|
81
|
+
x: number;
|
|
82
|
+
y: number;
|
|
83
|
+
width: number;
|
|
84
|
+
height: number;
|
|
85
|
+
}, under: Open): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* What is below the rectangle cover found copied, for a blend that reads
|
|
88
|
+
* it: bound to BACK_UNIT, where the copy has the rectangle's corner, less
|
|
89
|
+
* where the target has it, into place, and `under`'s framebuffer bound again.
|
|
90
|
+
*/
|
|
91
|
+
copyBelow(under: Open): boolean;
|
|
92
|
+
/**
|
|
93
|
+
* The program of the blend shader of chain `chain` of the frame's
|
|
94
|
+
* filters (KernelPrograms), in use; null for none, one that would not
|
|
95
|
+
* link, one of more images than a program binds, or one whose image is gone.
|
|
96
|
+
*/
|
|
97
|
+
private useKernel;
|
|
98
|
+
/** The program and the copy made on the context, deleted. */
|
|
99
|
+
destroy(): void;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=composite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composite.d.ts","sourceRoot":"","sources":["../../src/webgl/composite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAe,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAS,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,KAAK,EAAE,UAAU,EAAiB,cAAc,EAAE,MAAM,cAAc,CAAC;AAQ9E,OAAO,EAAyC,KAAK,IAAI,EAAE,MAAM,cAAc,CAAC;AAEhF;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,OAAO,CAShE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,sBAAsB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAqB3F;AAED,qFAAqF;AACrF,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,OAAO,IAAI,OAAO,GAAG,IAAI,CAAC;CAC3B;AAED;;;;;GAKG;AACH,qBAAa,UAAU;IAmBnB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,OAAO;IApB1B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAyB;IAC5C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAChC,yEAAyE;IACzE,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,YAAY,CAAqC;IACzD,OAAO,CAAC,oBAAoB,CAAqC;IACjE,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,YAAY,CAAqC;IACzD,OAAO,CAAC,kBAAkB,CAAqC;IAC/D,OAAO,CAAC,YAAY,CAAqC;IACzD,8EAA8E;IAC9E,OAAO,CAAC,IAAI,CAA6B;IACzC,OAAO,CAAC,eAAe,CAAiC;IACxD,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,UAAU,CAAK;IACvB,YACE,EAAE,EAAE,sBAAsB,EAC1B,KAAK,EAAE,OAAO,EACG,IAAI,EAAE,aAAa;IACpC,oEAAoE;IACnD,OAAO,EAAE,cAAc,EAIzC;IAED,uFAAuF;IACvF,KAAK,IAAI,IAAI,CAiBZ;IAED;;;;;;;OAOG;IACH,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAyDxE;IAED,qGAAqG;IACrG,QAAQ,CAAC,KAAK;QACZ,EAAE;QACF,EAAE;QACF,EAAE;QACF,EAAE;QACF,KAAK;QACL,MAAM;QACN,EAAE;QACF,EAAE;QACF,KAAK;QACL,KAAK;MACL;IAEF;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,EAAE,IAAI,GAAG,OAAO,CAmBzF;IAED;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO,CAkG9B;IAED;;;;OAIG;IACH,OAAO,CAAC,SAAS;IA0BjB,6DAA6D;IAC7D,OAAO,IAAI,IAAI,CAQd;CACF"}
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
import { linkProgram } from "@swf2es/context3d/device";
|
|
2
|
+
import { BLEND } from "../filters.js";
|
|
3
|
+
import { blendKernel, kernelImagesFit } from "../kernel-shaders.js";
|
|
4
|
+
import { ADD, ALPHA_MASK, KERNEL, LAYER, MULTIPLY, NORMAL, SCREEN } from "../scene.js";
|
|
5
|
+
import { BACK_UNIT, compositeFragment, compositeVertex, LAYER_COLOR, LAYER_UNIT, } from "./programs.js";
|
|
6
|
+
import { framebufferOf, LAYER_STEP } from "./targets.js";
|
|
7
|
+
/**
|
|
8
|
+
* Whether blend mode `mode` reads what is below, which GL's blending does
|
|
9
|
+
* not compute, onto a target `opaque` throughout or not. Over an opaque
|
|
10
|
+
* one, multiply's src × (1 − da) term is none, and premultiplied it is
|
|
11
|
+
* s × d + d × (1 − sa), alpha as normal's: GL's blending (setModeBlend).
|
|
12
|
+
* An alpha mask's is d × sa (ALPHA_MASK).
|
|
13
|
+
*/
|
|
14
|
+
export function readsBelow(mode, opaque = false) {
|
|
15
|
+
return !(mode === NORMAL ||
|
|
16
|
+
mode === ALPHA_MASK ||
|
|
17
|
+
mode === LAYER ||
|
|
18
|
+
mode === ADD ||
|
|
19
|
+
mode === SCREEN ||
|
|
20
|
+
(mode === MULTIPLY && opaque));
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* GL's blending set for `mode` where it computes it (readsBelow false),
|
|
24
|
+
* the fragment then its pixel alone (BLEND_FRONT's normal); else off, the
|
|
25
|
+
* fragment the blend itself.
|
|
26
|
+
*/
|
|
27
|
+
export function setModeBlend(gl, state, mode) {
|
|
28
|
+
switch (mode) {
|
|
29
|
+
case ADD:
|
|
30
|
+
state.setBlend(gl.ONE, gl.ONE);
|
|
31
|
+
break;
|
|
32
|
+
case SCREEN:
|
|
33
|
+
state.setBlend(gl.ONE, gl.ONE_MINUS_SRC_COLOR);
|
|
34
|
+
break;
|
|
35
|
+
case NORMAL:
|
|
36
|
+
case LAYER:
|
|
37
|
+
state.setBlend(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);
|
|
38
|
+
break;
|
|
39
|
+
case MULTIPLY:
|
|
40
|
+
state.setBlend(gl.DST_COLOR, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA);
|
|
41
|
+
break;
|
|
42
|
+
case ALPHA_MASK:
|
|
43
|
+
state.setBlend(gl.ZERO, gl.SRC_ALPHA);
|
|
44
|
+
break;
|
|
45
|
+
default:
|
|
46
|
+
state.setBlend(null);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Layers composited onto what they are drawn over, in Flash's blend modes:
|
|
51
|
+
* through GL's blending where it computes the blend, else by the composite
|
|
52
|
+
* program from a copy of what is below, or by a blend shader's program
|
|
53
|
+
* (KERNEL).
|
|
54
|
+
*/
|
|
55
|
+
export class Compositor {
|
|
56
|
+
host;
|
|
57
|
+
kernels;
|
|
58
|
+
gl;
|
|
59
|
+
state;
|
|
60
|
+
/** The layers' composite program and where it takes its mode and row. */
|
|
61
|
+
composite;
|
|
62
|
+
modeLocation = null;
|
|
63
|
+
compositeRowLocation = null;
|
|
64
|
+
offsetLocation = null;
|
|
65
|
+
flipLocation = null;
|
|
66
|
+
backOffsetLocation = null;
|
|
67
|
+
rectLocation = null;
|
|
68
|
+
/** A copy of what is below a layer whose mode reads it, the target's size. */
|
|
69
|
+
back = null;
|
|
70
|
+
backFramebuffer = null;
|
|
71
|
+
backWidth = 0;
|
|
72
|
+
backHeight = 0;
|
|
73
|
+
constructor(gl, state, host,
|
|
74
|
+
/** Blend shaders' programs, the backend's one cache of kernels'. */
|
|
75
|
+
kernels) {
|
|
76
|
+
this.host = host;
|
|
77
|
+
this.kernels = kernels;
|
|
78
|
+
this.gl = gl;
|
|
79
|
+
this.state = state;
|
|
80
|
+
}
|
|
81
|
+
/** The composite program made, and no copy yet, as the context comes or comes back. */
|
|
82
|
+
setUp() {
|
|
83
|
+
const gl = this.gl;
|
|
84
|
+
this.composite = linkProgram(gl, compositeVertex, compositeFragment);
|
|
85
|
+
this.state.useProgram(this.composite);
|
|
86
|
+
gl.uniform1i(gl.getUniformLocation(this.composite, "uLayer"), LAYER_UNIT);
|
|
87
|
+
gl.uniform1i(gl.getUniformLocation(this.composite, "uBack"), BACK_UNIT);
|
|
88
|
+
gl.uniform1i(gl.getUniformLocation(this.composite, "uRows"), 0);
|
|
89
|
+
this.modeLocation = gl.getUniformLocation(this.composite, "uMode");
|
|
90
|
+
this.compositeRowLocation = gl.getUniformLocation(this.composite, "uRow");
|
|
91
|
+
this.offsetLocation = gl.getUniformLocation(this.composite, "uOffset");
|
|
92
|
+
this.flipLocation = gl.getUniformLocation(this.composite, "uFlip");
|
|
93
|
+
this.backOffsetLocation = gl.getUniformLocation(this.composite, "uBackOffset");
|
|
94
|
+
this.rectLocation = gl.getUniformLocation(this.composite, "uRect");
|
|
95
|
+
this.back = null;
|
|
96
|
+
this.backFramebuffer = null;
|
|
97
|
+
this.backWidth = 0;
|
|
98
|
+
this.backHeight = 0;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* `open` composited onto `under`, bound, in blend mode `mode`, coloured by
|
|
102
|
+
* row `row` (or -1), over its rectangle alone: through GL's blending where
|
|
103
|
+
* it computes Flash's blend, else from a copy of what is below there, the
|
|
104
|
+
* result replacing it. Its rectangle is cut to `under`'s, as a filtered
|
|
105
|
+
* one may reach past the canvas; in `under`'s framebuffer its rows run
|
|
106
|
+
* up on the canvas and down in a layer.
|
|
107
|
+
*/
|
|
108
|
+
compositeLayer(open, under, given, row) {
|
|
109
|
+
const gl = this.gl;
|
|
110
|
+
// A blend shader that will not link, of too many images, or with an image gone, composites as
|
|
111
|
+
// normal.
|
|
112
|
+
const kernel = given >= KERNEL ? this.useKernel(given - KERNEL) : null;
|
|
113
|
+
const mode = given >= KERNEL && !kernel ? NORMAL : given;
|
|
114
|
+
const state = this.state;
|
|
115
|
+
const reads = readsBelow(mode, under.opaque);
|
|
116
|
+
if (!this.cover(open, under) || (reads && !this.copyBelow(under))) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
const { dx, dy, x0, y0, width, height, fx, fy, backX, backY } = this.place;
|
|
120
|
+
const flip = !under.layer;
|
|
121
|
+
state.bindTexture(LAYER_UNIT, open.layer.texture);
|
|
122
|
+
state.bindSampler(LAYER_UNIT, null);
|
|
123
|
+
state.bindSampler(BACK_UNIT, null);
|
|
124
|
+
state.bindVertexArray(null);
|
|
125
|
+
// Less its corner on its page, where it is a held layer's rectangle of one (HELD), and past
|
|
126
|
+
// the target's, where that is one.
|
|
127
|
+
const ox = (under.ox ?? 0) - (open.ox ?? 0);
|
|
128
|
+
const oy = (under.oy ?? 0) - (open.oy ?? 0);
|
|
129
|
+
const offsetY = flip ? under.height - 1 - dy - oy : dy + oy;
|
|
130
|
+
if (kernel) {
|
|
131
|
+
const filters = this.host.filters();
|
|
132
|
+
const entry = filters.chains[mode - KERNEL];
|
|
133
|
+
state.useProgram(kernel.program);
|
|
134
|
+
gl.uniform1i(kernel.at("uRow"), row);
|
|
135
|
+
gl.uniform2i(kernel.at("uOffset"), dx + ox, offsetY);
|
|
136
|
+
gl.uniform1i(kernel.at("uFlip"), flip ? 1 : 0);
|
|
137
|
+
gl.uniform2i(kernel.at("uBackOffset"), backX, backY);
|
|
138
|
+
gl.uniform1i(kernel.at("uWhole"), filters.values[filters.start[entry]]);
|
|
139
|
+
this.kernels.setUniforms(kernel, filters, entry, this.host);
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
state.useProgram(this.composite);
|
|
143
|
+
// Its pixel alone where GL's blending computes the mode (MULTIPLY over an opaque target).
|
|
144
|
+
gl.uniform1i(this.modeLocation, reads ? mode : NORMAL);
|
|
145
|
+
gl.uniform1i(this.compositeRowLocation, row);
|
|
146
|
+
gl.uniform2i(this.offsetLocation, dx + ox, offsetY);
|
|
147
|
+
gl.uniform1i(this.flipLocation, flip ? 1 : 0);
|
|
148
|
+
gl.uniform2i(this.backOffsetLocation, backX, backY);
|
|
149
|
+
}
|
|
150
|
+
setModeBlend(gl, state, reads ? -1 : mode);
|
|
151
|
+
// Over the rectangle alone, in the target's clip space; the scissor keeps it to whole pixels.
|
|
152
|
+
const tw = under.width;
|
|
153
|
+
const th = under.height;
|
|
154
|
+
gl.uniform4f(kernel ? kernel.at("uRect") : this.rectLocation, (2 * x0) / tw - 1, (2 * y0) / th - 1, (2 * (x0 + width)) / tw - 1, (2 * (y0 + height)) / th - 1);
|
|
155
|
+
state.scissor([fx, fy, width, height]);
|
|
156
|
+
gl.drawArrays(gl.TRIANGLES, 0, 6);
|
|
157
|
+
state.scissor(null);
|
|
158
|
+
}
|
|
159
|
+
/** Where cover last found a rectangle on its target, and where copyBelow copied what is below it. */
|
|
160
|
+
place = {
|
|
161
|
+
dx: 0,
|
|
162
|
+
dy: 0,
|
|
163
|
+
x0: 0,
|
|
164
|
+
y0: 0,
|
|
165
|
+
width: 0,
|
|
166
|
+
height: 0,
|
|
167
|
+
fx: 0,
|
|
168
|
+
fy: 0,
|
|
169
|
+
backX: 0,
|
|
170
|
+
backY: 0,
|
|
171
|
+
};
|
|
172
|
+
/**
|
|
173
|
+
* Where `rect` lies on `under`, into place: cut to `under`'s, as a
|
|
174
|
+
* filtered layer may reach past the canvas; in `under`'s framebuffer its
|
|
175
|
+
* rows run up on the canvas and down in a layer. Whether any of it does.
|
|
176
|
+
*/
|
|
177
|
+
cover(rect, under) {
|
|
178
|
+
const place = this.place;
|
|
179
|
+
const dx = rect.x - under.x;
|
|
180
|
+
const dy = rect.y - under.y;
|
|
181
|
+
const y = under.layer ? dy : under.height - dy - rect.height;
|
|
182
|
+
place.dx = dx;
|
|
183
|
+
place.dy = dy;
|
|
184
|
+
place.x0 = Math.max(0, dx);
|
|
185
|
+
place.y0 = Math.max(0, y);
|
|
186
|
+
place.width = Math.min(under.width, dx + rect.width) - place.x0;
|
|
187
|
+
place.height = Math.min(under.height, y + rect.height) - place.y0;
|
|
188
|
+
// The rectangle's corner in the target's framebuffer, where the target is a held layer's
|
|
189
|
+
// rectangle of a page (HOLD_PUSH).
|
|
190
|
+
place.fx = place.x0 + (under.ox ?? 0);
|
|
191
|
+
place.fy = place.y0 + (under.oy ?? 0);
|
|
192
|
+
// Where the copy of what is below has the rectangle's corner, less where the target has it.
|
|
193
|
+
place.backX = 0;
|
|
194
|
+
place.backY = 0;
|
|
195
|
+
return place.width > 0 && place.height > 0;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* What is below the rectangle cover found copied, for a blend that reads
|
|
199
|
+
* it: bound to BACK_UNIT, where the copy has the rectangle's corner, less
|
|
200
|
+
* where the target has it, into place, and `under`'s framebuffer bound again.
|
|
201
|
+
*/
|
|
202
|
+
copyBelow(under) {
|
|
203
|
+
const gl = this.gl;
|
|
204
|
+
const state = this.state;
|
|
205
|
+
const { fx, fy, width, height } = this.place;
|
|
206
|
+
// Out of a multisampled page, its rectangle resolved into the page's own texture first, which
|
|
207
|
+
// a blit may then copy anywhere: copied where it lies, the copy would stay as large as the
|
|
208
|
+
// page's far corner.
|
|
209
|
+
let from = framebufferOf(under);
|
|
210
|
+
const paged = under.msaa !== null && under.layer !== null && under.ox !== undefined;
|
|
211
|
+
if (paged) {
|
|
212
|
+
gl.bindFramebuffer(gl.READ_FRAMEBUFFER, from);
|
|
213
|
+
gl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, under.layer.framebuffer);
|
|
214
|
+
gl.blitFramebuffer(fx, fy, fx + width, fy + height, fx, fy, fx + width, fy + height, gl.COLOR_BUFFER_BIT, gl.NEAREST);
|
|
215
|
+
from = under.layer.framebuffer;
|
|
216
|
+
}
|
|
217
|
+
// Copied from its corner, or out of a multisampled target to where it lies, as a blit
|
|
218
|
+
// resolving must keep its rectangle: then as large as the rectangle's far corner.
|
|
219
|
+
const bx = under.msaa && !paged ? fx : 0;
|
|
220
|
+
const by = under.msaa && !paged ? fy : 0;
|
|
221
|
+
this.place.backX = fx - bx;
|
|
222
|
+
this.place.backY = fy - by;
|
|
223
|
+
const right = bx + width;
|
|
224
|
+
const top = by + height;
|
|
225
|
+
if (!this.back || this.backWidth < right || this.backHeight < top) {
|
|
226
|
+
if (this.back) {
|
|
227
|
+
state.dropTexture(this.back);
|
|
228
|
+
gl.deleteTexture(this.back);
|
|
229
|
+
gl.deleteFramebuffer(this.backFramebuffer);
|
|
230
|
+
this.backFramebuffer = null;
|
|
231
|
+
}
|
|
232
|
+
this.back = gl.createTexture();
|
|
233
|
+
this.backWidth = Math.max(this.backWidth, Math.ceil(right / LAYER_STEP) * LAYER_STEP);
|
|
234
|
+
this.backHeight = Math.max(this.backHeight, Math.ceil(top / LAYER_STEP) * LAYER_STEP);
|
|
235
|
+
state.bindTexture(BACK_UNIT, this.back);
|
|
236
|
+
state.activeTexture(BACK_UNIT);
|
|
237
|
+
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA8, this.backWidth, this.backHeight, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);
|
|
238
|
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
|
|
239
|
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
|
|
240
|
+
}
|
|
241
|
+
// Blitted, not copied: the canvas' colour may have no alpha, which copyTexSubImage2D into an
|
|
242
|
+
// RGBA texture refuses, where a blit fills it in.
|
|
243
|
+
// Out of a multisampled target the blit resolves the rectangle alone.
|
|
244
|
+
if (!this.backFramebuffer) {
|
|
245
|
+
this.backFramebuffer = gl.createFramebuffer();
|
|
246
|
+
gl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, this.backFramebuffer);
|
|
247
|
+
gl.framebufferTexture2D(gl.DRAW_FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, this.back, 0);
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
gl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, this.backFramebuffer);
|
|
251
|
+
}
|
|
252
|
+
gl.bindFramebuffer(gl.READ_FRAMEBUFFER, from);
|
|
253
|
+
gl.blitFramebuffer(fx, fy, fx + width, fy + height, bx, by, right, top, gl.COLOR_BUFFER_BIT, gl.NEAREST);
|
|
254
|
+
// Both bindings back as the state cache has them.
|
|
255
|
+
gl.bindFramebuffer(gl.FRAMEBUFFER, framebufferOf(under));
|
|
256
|
+
state.bindTexture(BACK_UNIT, this.back);
|
|
257
|
+
state.bindSampler(BACK_UNIT, null);
|
|
258
|
+
return true;
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* The program of the blend shader of chain `chain` of the frame's
|
|
262
|
+
* filters (KernelPrograms), in use; null for none, one that would not
|
|
263
|
+
* link, one of more images than a program binds, or one whose image is gone.
|
|
264
|
+
*/
|
|
265
|
+
useKernel(chain) {
|
|
266
|
+
const filters = this.host.filters();
|
|
267
|
+
if (!filters || chain >= filters.chainCount) {
|
|
268
|
+
return null;
|
|
269
|
+
}
|
|
270
|
+
const i = filters.chains[chain];
|
|
271
|
+
const source = filters.kernels[i];
|
|
272
|
+
const images = source && filters.kind[i] === BLEND ? this.kernels.readImages(filters, i, this.host) : null;
|
|
273
|
+
if (!source || !images || !kernelImagesFit(images)) {
|
|
274
|
+
return null;
|
|
275
|
+
}
|
|
276
|
+
return this.kernels.use(compositeVertex, blendKernel(source, images, LAYER_COLOR), (program) => {
|
|
277
|
+
const gl = this.gl;
|
|
278
|
+
gl.uniform1i(gl.getUniformLocation(program, "uLayer"), LAYER_UNIT);
|
|
279
|
+
gl.uniform1i(gl.getUniformLocation(program, "uBack"), BACK_UNIT);
|
|
280
|
+
gl.uniform1i(gl.getUniformLocation(program, "uRows"), 0);
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
/** The program and the copy made on the context, deleted. */
|
|
284
|
+
destroy() {
|
|
285
|
+
const gl = this.gl;
|
|
286
|
+
gl.deleteProgram(this.composite);
|
|
287
|
+
if (this.back) {
|
|
288
|
+
gl.deleteTexture(this.back);
|
|
289
|
+
gl.deleteFramebuffer(this.backFramebuffer);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
//# sourceMappingURL=composite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composite.js","sourceRoot":"","sources":["../../src/webgl/composite.ts"],"names":[],"mappings":"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"}
|