@swf2es/player 0.1.0 → 0.1.1
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/package.json +7 -7
- package/dist/audio.d.ts +0 -22
- package/dist/audio.d.ts.map +0 -1
- package/dist/audio.js +0 -106
- package/dist/audio.js.map +0 -1
- package/dist/bitmap-filters.d.ts +0 -29
- package/dist/bitmap-filters.d.ts.map +0 -1
- package/dist/bitmap-filters.js +0 -906
- package/dist/bitmap-filters.js.map +0 -1
- package/dist/bitmap-ops.d.ts +0 -113
- package/dist/bitmap-ops.d.ts.map +0 -1
- package/dist/bitmap-ops.js +0 -725
- package/dist/bitmap-ops.js.map +0 -1
- package/dist/bitmap.d.ts +0 -98
- package/dist/bitmap.d.ts.map +0 -1
- package/dist/bitmap.js +0 -314
- package/dist/bitmap.js.map +0 -1
- package/dist/bounds.d.ts +0 -26
- package/dist/bounds.d.ts.map +0 -1
- package/dist/bounds.js +0 -300
- package/dist/bounds.js.map +0 -1
- package/dist/color.d.ts +0 -7
- package/dist/color.d.ts.map +0 -1
- package/dist/color.js +0 -42
- package/dist/color.js.map +0 -1
- package/dist/display.d.ts +0 -425
- package/dist/display.d.ts.map +0 -1
- package/dist/display.js +0 -1274
- package/dist/display.js.map +0 -1
- package/dist/drawing.d.ts +0 -52
- package/dist/drawing.d.ts.map +0 -1
- package/dist/drawing.js +0 -204
- package/dist/drawing.js.map +0 -1
- package/dist/filters.d.ts +0 -54
- package/dist/filters.d.ts.map +0 -1
- package/dist/filters.js +0 -155
- package/dist/filters.js.map +0 -1
- package/dist/fonts.d.ts +0 -23
- package/dist/fonts.d.ts.map +0 -1
- package/dist/fonts.js +0 -91
- package/dist/fonts.js.map +0 -1
- package/dist/geometry.d.ts +0 -21
- package/dist/geometry.d.ts.map +0 -1
- package/dist/geometry.js +0 -76
- package/dist/geometry.js.map +0 -1
- package/dist/gradients.d.ts +0 -29
- package/dist/gradients.d.ts.map +0 -1
- package/dist/gradients.js +0 -116
- package/dist/gradients.js.map +0 -1
- package/dist/images.d.ts +0 -22
- package/dist/images.d.ts.map +0 -1
- package/dist/images.js +0 -147
- package/dist/images.js.map +0 -1
- package/dist/input.d.ts +0 -79
- package/dist/input.d.ts.map +0 -1
- package/dist/input.js +0 -366
- package/dist/input.js.map +0 -1
- package/dist/keyboard.d.ts +0 -97
- package/dist/keyboard.d.ts.map +0 -1
- package/dist/keyboard.js +0 -583
- package/dist/keyboard.js.map +0 -1
- package/dist/morph.d.ts +0 -17
- package/dist/morph.d.ts.map +0 -1
- package/dist/morph.js +0 -218
- package/dist/morph.js.map +0 -1
- package/dist/pixi-blend.d.ts +0 -7
- package/dist/pixi-blend.d.ts.map +0 -1
- package/dist/pixi-blend.js +0 -253
- package/dist/pixi-blend.js.map +0 -1
- package/dist/pixi-color.d.ts +0 -54
- package/dist/pixi-color.d.ts.map +0 -1
- package/dist/pixi-color.js +0 -336
- package/dist/pixi-color.js.map +0 -1
- package/dist/pixi-filters.d.ts +0 -40
- package/dist/pixi-filters.d.ts.map +0 -1
- package/dist/pixi-filters.js +0 -953
- package/dist/pixi-filters.js.map +0 -1
- package/dist/pixi-resolve.d.ts +0 -4
- package/dist/pixi-resolve.d.ts.map +0 -1
- package/dist/pixi-resolve.js +0 -76
- package/dist/pixi-resolve.js.map +0 -1
- package/dist/pixi.d.ts +0 -219
- package/dist/pixi.d.ts.map +0 -1
- package/dist/pixi.js +0 -2169
- package/dist/pixi.js.map +0 -1
- package/dist/playerglobal/flash/filters/filters.d.ts +0 -26
- package/dist/playerglobal/flash/filters/filters.d.ts.map +0 -1
- package/dist/playerglobal/flash/filters/filters.js +0 -287
- package/dist/playerglobal/flash/filters/filters.js.map +0 -1
- package/dist/playerglobal/flash/system/FSCommand.d.ts +0 -4
- package/dist/playerglobal/flash/system/FSCommand.d.ts.map +0 -1
- package/dist/playerglobal/flash/system/FSCommand.js +0 -18
- package/dist/playerglobal/flash/system/FSCommand.js.map +0 -1
- package/dist/playerglobal/natives.d.ts +0 -10
- package/dist/playerglobal/natives.d.ts.map +0 -1
- package/dist/playerglobal/natives.js +0 -53
- package/dist/playerglobal/natives.js.map +0 -1
- package/dist/png.d.ts +0 -4
- package/dist/png.d.ts.map +0 -1
- package/dist/png.js +0 -140
- package/dist/png.js.map +0 -1
- package/dist/render/art.d.ts +0 -148
- package/dist/render/art.d.ts.map +0 -1
- package/dist/render/art.js +0 -575
- package/dist/render/art.js.map +0 -1
- package/dist/render/batchers.d.ts +0 -23
- package/dist/render/batchers.d.ts.map +0 -1
- package/dist/render/batchers.js +0 -52
- package/dist/render/batchers.js.map +0 -1
- package/dist/render/bitmaps.d.ts +0 -117
- package/dist/render/bitmaps.d.ts.map +0 -1
- package/dist/render/bitmaps.js +0 -422
- package/dist/render/bitmaps.js.map +0 -1
- package/dist/render/blend.d.ts +0 -37
- package/dist/render/blend.d.ts.map +0 -1
- package/dist/render/blend.js +0 -195
- package/dist/render/blend.js.map +0 -1
- package/dist/render/color.d.ts +0 -111
- package/dist/render/color.d.ts.map +0 -1
- package/dist/render/color.js +0 -533
- package/dist/render/color.js.map +0 -1
- package/dist/render/compositing.d.ts +0 -77
- package/dist/render/compositing.d.ts.map +0 -1
- package/dist/render/compositing.js +0 -188
- package/dist/render/compositing.js.map +0 -1
- package/dist/render/filters.d.ts +0 -98
- package/dist/render/filters.d.ts.map +0 -1
- package/dist/render/filters.js +0 -1326
- package/dist/render/filters.js.map +0 -1
- package/dist/render/hooks.d.ts +0 -4
- package/dist/render/hooks.d.ts.map +0 -1
- package/dist/render/hooks.js +0 -48
- package/dist/render/hooks.js.map +0 -1
- package/dist/render/node.d.ts +0 -139
- package/dist/render/node.d.ts.map +0 -1
- package/dist/render/node.js +0 -59
- package/dist/render/node.js.map +0 -1
- package/dist/render/patches.d.ts +0 -54
- package/dist/render/patches.d.ts.map +0 -1
- package/dist/render/patches.js +0 -154
- package/dist/render/patches.js.map +0 -1
- package/dist/render/planes.d.ts +0 -74
- package/dist/render/planes.d.ts.map +0 -1
- package/dist/render/planes.js +0 -267
- package/dist/render/planes.js.map +0 -1
- package/dist/render/pointer.d.ts +0 -5
- package/dist/render/pointer.d.ts.map +0 -1
- package/dist/render/pointer.js +0 -279
- package/dist/render/pointer.js.map +0 -1
- package/dist/render/pools.d.ts +0 -122
- package/dist/render/pools.d.ts.map +0 -1
- package/dist/render/pools.js +0 -238
- package/dist/render/pools.js.map +0 -1
- package/dist/render/resolve.d.ts +0 -4
- package/dist/render/resolve.d.ts.map +0 -1
- package/dist/render/resolve.js +0 -76
- package/dist/render/resolve.js.map +0 -1
- package/dist/render/saffron.d.ts +0 -135
- package/dist/render/saffron.d.ts.map +0 -1
- package/dist/render/saffron.js +0 -725
- package/dist/render/saffron.js.map +0 -1
- package/dist/render/settle.d.ts +0 -60
- package/dist/render/settle.d.ts.map +0 -1
- package/dist/render/settle.js +0 -128
- package/dist/render/settle.js.map +0 -1
- package/dist/render/shared.d.ts +0 -25
- package/dist/render/shared.d.ts.map +0 -1
- package/dist/render/shared.js +0 -33
- package/dist/render/shared.js.map +0 -1
- package/dist/render/snapshot.d.ts +0 -21
- package/dist/render/snapshot.d.ts.map +0 -1
- package/dist/render/snapshot.js +0 -91
- package/dist/render/snapshot.js.map +0 -1
- package/dist/render/spares.d.ts +0 -56
- package/dist/render/spares.d.ts.map +0 -1
- package/dist/render/spares.js +0 -160
- package/dist/render/spares.js.map +0 -1
- package/dist/render/strokes.d.ts +0 -107
- package/dist/render/strokes.d.ts.map +0 -1
- package/dist/render/strokes.js +0 -448
- package/dist/render/strokes.js.map +0 -1
- package/dist/render/table.d.ts +0 -213
- package/dist/render/table.d.ts.map +0 -1
- package/dist/render/table.js +0 -795
- package/dist/render/table.js.map +0 -1
- package/dist/render/tessellate.d.ts +0 -89
- package/dist/render/tessellate.d.ts.map +0 -1
- package/dist/render/tessellate.js +0 -386
- package/dist/render/tessellate.js.map +0 -1
- package/dist/render/text.d.ts +0 -40
- package/dist/render/text.d.ts.map +0 -1
- package/dist/render/text.js +0 -309
- package/dist/render/text.js.map +0 -1
- package/dist/render/three.d.ts +0 -83
- package/dist/render/three.d.ts.map +0 -1
- package/dist/render/three.js +0 -511
- package/dist/render/three.js.map +0 -1
- package/dist/render/triangles.d.ts +0 -28
- package/dist/render/triangles.d.ts.map +0 -1
- package/dist/render/triangles.js +0 -189
- package/dist/render/triangles.js.map +0 -1
- package/dist/render/view.d.ts +0 -238
- package/dist/render/view.d.ts.map +0 -1
- package/dist/render/view.js +0 -1173
- package/dist/render/view.js.map +0 -1
- package/dist/render/worker/bitmaps.d.ts +0 -43
- package/dist/render/worker/bitmaps.d.ts.map +0 -1
- package/dist/render/worker/bitmaps.js +0 -151
- package/dist/render/worker/bitmaps.js.map +0 -1
- package/dist/render/worker/drawing.d.ts +0 -21
- package/dist/render/worker/drawing.d.ts.map +0 -1
- package/dist/render/worker/drawing.js +0 -356
- package/dist/render/worker/drawing.js.map +0 -1
- package/dist/render/worker/filters.d.ts +0 -7
- package/dist/render/worker/filters.d.ts.map +0 -1
- package/dist/render/worker/filters.js +0 -125
- package/dist/render/worker/filters.js.map +0 -1
- package/dist/render/worker/frames.d.ts +0 -32
- package/dist/render/worker/frames.d.ts.map +0 -1
- package/dist/render/worker/frames.js +0 -124
- package/dist/render/worker/frames.js.map +0 -1
- package/dist/render/worker/host.d.ts +0 -60
- package/dist/render/worker/host.d.ts.map +0 -1
- package/dist/render/worker/host.js +0 -297
- package/dist/render/worker/host.js.map +0 -1
- package/dist/render/worker/libraries.d.ts +0 -36
- package/dist/render/worker/libraries.d.ts.map +0 -1
- package/dist/render/worker/libraries.js +0 -153
- package/dist/render/worker/libraries.js.map +0 -1
- package/dist/render/worker/presentation.d.ts +0 -18
- package/dist/render/worker/presentation.d.ts.map +0 -1
- package/dist/render/worker/presentation.js +0 -47
- package/dist/render/worker/presentation.js.map +0 -1
- package/dist/render/worker/renderer.d.ts +0 -4
- package/dist/render/worker/renderer.d.ts.map +0 -1
- package/dist/render/worker/renderer.js +0 -21
- package/dist/render/worker/renderer.js.map +0 -1
- package/dist/render/worker/scene.d.ts +0 -32
- package/dist/render/worker/scene.d.ts.map +0 -1
- package/dist/render/worker/scene.js +0 -611
- package/dist/render/worker/scene.js.map +0 -1
- package/dist/render/worker/text.d.ts +0 -47
- package/dist/render/worker/text.d.ts.map +0 -1
- package/dist/render/worker/text.js +0 -261
- package/dist/render/worker/text.js.map +0 -1
- package/dist/render/worker/thread.d.ts +0 -23
- package/dist/render/worker/thread.d.ts.map +0 -1
- package/dist/render/worker/thread.js +0 -107
- package/dist/render/worker/thread.js.map +0 -1
- package/dist/render/worker/values.d.ts +0 -18
- package/dist/render/worker/values.d.ts.map +0 -1
- package/dist/render/worker/values.js +0 -64
- package/dist/render/worker/values.js.map +0 -1
- package/dist/sha256.d.ts +0 -5
- package/dist/sha256.d.ts.map +0 -1
- package/dist/sha256.js +0 -96
- package/dist/sha256.js.map +0 -1
- package/dist/shapes.d.ts +0 -71
- package/dist/shapes.d.ts.map +0 -1
- package/dist/shapes.js +0 -340
- package/dist/shapes.js.map +0 -1
- package/dist/static-text.d.ts +0 -33
- package/dist/static-text.d.ts.map +0 -1
- package/dist/static-text.js +0 -105
- package/dist/static-text.js.map +0 -1
- package/dist/text-layout.d.ts +0 -66
- package/dist/text-layout.d.ts.map +0 -1
- package/dist/text-layout.js +0 -315
- package/dist/text-layout.js.map +0 -1
- package/dist/text.d.ts +0 -67
- package/dist/text.d.ts.map +0 -1
- package/dist/text.js +0 -383
- package/dist/text.js.map +0 -1
- package/dist/timeline.d.ts +0 -150
- package/dist/timeline.d.ts.map +0 -1
- package/dist/timeline.js +0 -266
- package/dist/timeline.js.map +0 -1
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
// How the view composites each object with what is behind it (render/view.ts):
|
|
2
|
-
// by the GPU's own blending where it blends as Flash does, through a layer
|
|
3
|
-
// of its own kept while it stands, or by a blend filter (render/blend.ts),
|
|
4
|
-
// and whether the stage below may be less than opaque, which decides it.
|
|
5
|
-
import { RendererType } from "pixi.js";
|
|
6
|
-
import { blendFilters } from "./blend.js";
|
|
7
|
-
import { FilterChain } from "./filters.js";
|
|
8
|
-
/** The view's blending of the objects it syncs. */
|
|
9
|
-
export class Compositing {
|
|
10
|
-
renderer;
|
|
11
|
-
planes;
|
|
12
|
-
units;
|
|
13
|
-
/** Whether the renderer was found to lack the back buffer that filter-backed blends read. */
|
|
14
|
-
backBufferChecked = false;
|
|
15
|
-
/** The nodes on the list blended with erase or alpha outside any layer (checkStageClear). */
|
|
16
|
-
clearing = new Set();
|
|
17
|
-
/** The nodes on the list blended outside any layer in a mode the GPU blends as Flash only over opaque pixels. */
|
|
18
|
-
overOpaque = new Set();
|
|
19
|
-
/** Whether the stage's pixels may be less than opaque below a blend (checkStageClear). */
|
|
20
|
-
stageClear = true;
|
|
21
|
-
constructor(renderer, planes,
|
|
22
|
-
/** The view, whose filter units a layer's chain is made at. */
|
|
23
|
-
units) {
|
|
24
|
-
this.renderer = renderer;
|
|
25
|
-
this.planes = planes;
|
|
26
|
-
this.units = units;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* A node synced on the list: noted where it may leave the stage's pixels
|
|
30
|
-
* less than opaque or blends only over opaque ones, and blended. `refilled`
|
|
31
|
-
* is whether its filters were made again, which a direct blend sets again.
|
|
32
|
-
*/
|
|
33
|
-
sync(node, isolated, refilled) {
|
|
34
|
-
// What may leave the stage's pixels less than opaque, and what blends only over opaque ones.
|
|
35
|
-
if (!isolated && (node.blend === "erase" || node.blend === "alpha")) {
|
|
36
|
-
this.clearing.add(node);
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
this.clearing.delete(node);
|
|
40
|
-
}
|
|
41
|
-
if (!isolated && (node.blend === "multiply" || node.blend === "subtract")) {
|
|
42
|
-
this.overOpaque.add(node);
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
this.overOpaque.delete(node);
|
|
46
|
-
}
|
|
47
|
-
const layered = this.layer(node, isolated);
|
|
48
|
-
this.blendDirectly(node, isolated ? null : this.directBlend(node), refilled || layered);
|
|
49
|
-
}
|
|
50
|
-
/** A node off the list, which no longer clears the stage or blends over it. */
|
|
51
|
-
forget(node) {
|
|
52
|
-
this.clearing.delete(node);
|
|
53
|
-
this.overOpaque.delete(node);
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* A filter-backed blend reads Pixi's back buffer, which WebGL has only
|
|
57
|
-
* with `useBackBuffer: true`; without it that blend draws as normal.
|
|
58
|
-
*/
|
|
59
|
-
checkBackBuffer() {
|
|
60
|
-
if (this.backBufferChecked) {
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
this.backBufferChecked = true;
|
|
64
|
-
const gl = this.renderer;
|
|
65
|
-
if (gl.backBuffer && !gl.backBuffer.useBackBuffer) {
|
|
66
|
-
console.warn("swf2es: a blend mode draws as normal: make the Pixi renderer with useBackBuffer: true");
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Give a blend the GPU draws a layer of its own, kept while nothing in it changes: an empty
|
|
71
|
-
* chain, through which the object is drawn once into a texture and the texture blended by the
|
|
72
|
-
* GPU over what is behind (directBlend), and then only the texture while it stands, as a filtered
|
|
73
|
-
* object's output is. Without one, a blend filter drew the object into a layer of its own and
|
|
74
|
-
* copied what is behind it on every frame. Only a blend the GPU draws as Flash does, of an
|
|
75
|
-
* object of more than one draw (a single fill
|
|
76
|
-
* blends as it is drawn), with no filters of its own, outside any layer; the chain goes again
|
|
77
|
-
* once that no longer holds. Multiply and subtract are the GPU's only over an opaque stage
|
|
78
|
-
* (directBlend), which their layer is blended by while it is; else by a blend filter after its
|
|
79
|
-
* chain. Whether the object's chain was made or dropped: a new one is
|
|
80
|
-
* stale, so draws the object afresh.
|
|
81
|
-
*/
|
|
82
|
-
layer(node, isolated) {
|
|
83
|
-
const chain = node.filters[0];
|
|
84
|
-
const empty = chain instanceof FilterChain && chain.filters.length === 0;
|
|
85
|
-
const wanted = !isolated &&
|
|
86
|
-
node.singleDraw !== 1 &&
|
|
87
|
-
(chain === undefined || empty) &&
|
|
88
|
-
this.gpuBlends(node.blend);
|
|
89
|
-
if (wanted === empty) {
|
|
90
|
-
return false;
|
|
91
|
-
}
|
|
92
|
-
if (empty) {
|
|
93
|
-
chain.destroy();
|
|
94
|
-
node.filters = [];
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
node.filters = [new FilterChain([], node.container, true, this.units.filterUnits)];
|
|
98
|
-
}
|
|
99
|
-
return true;
|
|
100
|
-
}
|
|
101
|
-
/** Whether the GPU blends `mode` as Flash does here, as directBlend has it for a layer. */
|
|
102
|
-
gpuBlends(mode) {
|
|
103
|
-
const webgl = this.renderer.type === RendererType.WEBGL;
|
|
104
|
-
switch (mode) {
|
|
105
|
-
case "screen":
|
|
106
|
-
return true;
|
|
107
|
-
case "add":
|
|
108
|
-
return webgl;
|
|
109
|
-
case "multiply":
|
|
110
|
-
return !this.stageClear;
|
|
111
|
-
case "subtract":
|
|
112
|
-
return webgl && !this.stageClear;
|
|
113
|
-
default:
|
|
114
|
-
return false;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
/** Blend `node` in `direct` by the GPU's own blending, or by its blend filter for null. */
|
|
118
|
-
blendDirectly(node, direct, refilled) {
|
|
119
|
-
// A retired layer must be detached even if the direct blend stays null.
|
|
120
|
-
if (direct === node.directBlend && !refilled) {
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
// A fill blends as it is drawn; a filtered object as its chain's result is drawn.
|
|
124
|
-
const container = node.container;
|
|
125
|
-
const chain = node.filters[0];
|
|
126
|
-
container.blendMode = direct && !chain ? direct : "inherit";
|
|
127
|
-
if (chain instanceof FilterChain) {
|
|
128
|
-
chain.blendOver(direct ?? "normal");
|
|
129
|
-
}
|
|
130
|
-
const blending = direct ? null : blendFilters(node.blend);
|
|
131
|
-
container.filters =
|
|
132
|
-
node.filters.length > 0 || blending ? [...node.filters, ...(blending ?? [])] : null;
|
|
133
|
-
node.directBlend = direct;
|
|
134
|
-
if (node.plane) {
|
|
135
|
-
this.planes.blendQuad(node, node.plane);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Whether the stage's pixels may be less than opaque as what is below a
|
|
140
|
-
* blend: a clear background, or an erase or alpha blend outside any layer
|
|
141
|
-
* on the list, which clears what it covers on the stage as adl does.
|
|
142
|
-
* Where that changes, the multiply and subtract blends drawn over it
|
|
143
|
-
* choose again, before what is drawn this frame.
|
|
144
|
-
*/
|
|
145
|
-
checkStageClear() {
|
|
146
|
-
// A stand-in renderer may have no background: it is drawn on nothing.
|
|
147
|
-
const clear = (this.renderer.background?.alpha ?? 1) < 1 || this.clearing.size > 0;
|
|
148
|
-
if (clear === this.stageClear) {
|
|
149
|
-
return;
|
|
150
|
-
}
|
|
151
|
-
this.stageClear = clear;
|
|
152
|
-
for (const node of this.overOpaque) {
|
|
153
|
-
this.blendDirectly(node, this.directBlend(node), false);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* The mode `node` is blended in by the GPU's own blending, where that is
|
|
158
|
-
* what Flash draws, else null for a blend filter (render/blend.ts). Flash
|
|
159
|
-
* blends the object as one layer, so it must be drawn at once: as a
|
|
160
|
-
* single fill, or as its filters' result. Flash's add and screen are the
|
|
161
|
-
* GPU's over any backdrop, its subtract and multiply over an opaque one,
|
|
162
|
-
* to 8-bit rounding (the `blend-formulas` case): over a clear pixel GPU
|
|
163
|
-
* multiply drops the object's own colour, which Flash keeps, and
|
|
164
|
-
* subtract its alpha. An isolated layer's ground may be clear where the
|
|
165
|
-
* stage's is not, so none is used in one. Its lighten, darken and
|
|
166
|
-
* difference blend the straight colours, which the GPU's min and max of
|
|
167
|
-
* premultiplied ones are only where opaque.
|
|
168
|
-
*/
|
|
169
|
-
directBlend(node) {
|
|
170
|
-
if (node.singleDraw !== 1 && !(node.filters[0] instanceof FilterChain)) {
|
|
171
|
-
return null;
|
|
172
|
-
}
|
|
173
|
-
// WebGPU's add leaves an opaque target less than opaque, and it has no subtract.
|
|
174
|
-
switch (node.blend) {
|
|
175
|
-
case "screen":
|
|
176
|
-
return "screen";
|
|
177
|
-
case "multiply":
|
|
178
|
-
return this.stageClear ? null : "multiply";
|
|
179
|
-
case "add":
|
|
180
|
-
return this.renderer.type === RendererType.WEBGL ? "add" : null;
|
|
181
|
-
case "subtract":
|
|
182
|
-
return this.renderer.type === RendererType.WEBGL && !this.stageClear ? "subtract" : null;
|
|
183
|
-
default:
|
|
184
|
-
return null;
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
//# sourceMappingURL=compositing.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compositing.js","sourceRoot":"","sources":["../../src/render/compositing.ts"],"names":[],"mappings":"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"}
|
package/dist/render/filters.d.ts
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import type { ColorTransform } from "@swf2es/format";
|
|
2
|
-
import { type BLEND_MODES, type Bounds, type Container, Filter, type FilterData, type FilterSystem, type RenderSurface, type Texture } from "pixi.js";
|
|
3
|
-
import type { Filter as FilterRecord } from "../display/filters.js";
|
|
4
|
-
import type { AreaKeeper, PaddingFitter } from "./blend.js";
|
|
5
|
-
/** Premultiplied ARGB as the RGBA bytes a texture holds, still premultiplied. */
|
|
6
|
-
export declare function rgbaOf(pixels: Uint32Array): Uint8Array;
|
|
7
|
-
/** The texture of a displacement map's map, as its renderer holds it; null for none. */
|
|
8
|
-
export type MapTexture = (map: object) => Texture | null;
|
|
9
|
-
/**
|
|
10
|
-
* Whether two lists of filter records hold the same values, which draw the
|
|
11
|
-
* same: a timeline's tween writes its filters again on each frame, and a
|
|
12
|
-
* script may set them from their own. A map is the same only as the same
|
|
13
|
-
* object, so that a displacement's map taken anew is drawn anew.
|
|
14
|
-
*/
|
|
15
|
-
export declare function sameFilterRecords(a: readonly FilterRecord[], b: readonly FilterRecord[]): boolean;
|
|
16
|
-
/** The Pixi filters a display object's filter records draw as: those swf2es draws yet, in their order. */
|
|
17
|
-
export declare function displayFilters(records: readonly FilterRecord[], mapTexture?: MapTexture): Filter[];
|
|
18
|
-
export declare class FilterChain extends Filter implements AreaKeeper, PaddingFitter {
|
|
19
|
-
readonly filters: Filter[];
|
|
20
|
-
private readonly owner;
|
|
21
|
-
private readonly keeps;
|
|
22
|
-
/** The input last run on, and the output kept of it, if any. */
|
|
23
|
-
private ran;
|
|
24
|
-
/** The input to be compared with it, which then becomes it. */
|
|
25
|
-
private next;
|
|
26
|
-
/**
|
|
27
|
-
* The area its object was last measured at on the stage, and the
|
|
28
|
-
* object's transform on the stage then; null till measured again.
|
|
29
|
-
*/
|
|
30
|
-
private area;
|
|
31
|
-
/** What `area` points to when it is set, filled again at each measure. */
|
|
32
|
-
private readonly measured;
|
|
33
|
-
private kept;
|
|
34
|
-
private stale;
|
|
35
|
-
/** Runs in a row its object changed for. */
|
|
36
|
-
private changing;
|
|
37
|
-
private drawnAt;
|
|
38
|
-
constructor(filters: Filter[], owner: Container, keeps?: boolean, units?: number);
|
|
39
|
-
/** What it was run on changed: run it again, and measure it again. */
|
|
40
|
-
changed(): void;
|
|
41
|
-
/**
|
|
42
|
-
* The area kept, moved as the object moved: while nothing in the object
|
|
43
|
-
* changed (`changed`) and its transform on the stage only moved, all it
|
|
44
|
-
* draws moved alike, and so did its bounds.
|
|
45
|
-
*/
|
|
46
|
-
keptArea(container: Container, bounds: Bounds): boolean;
|
|
47
|
-
keepArea(container: Container, bounds: Bounds): void;
|
|
48
|
-
/** The target's units to a pixel of the stage its filters are drawn at. */
|
|
49
|
-
get units(): number;
|
|
50
|
-
/** Its filters drawn at `units` of the target to a pixel of the stage from now on. */
|
|
51
|
-
rescale(units: number): void;
|
|
52
|
-
/** Each filter's padding as its reach asks, before fitPadding cuts it to what can be drawn. */
|
|
53
|
-
private wanted;
|
|
54
|
-
/**
|
|
55
|
-
* The filters' padding as their reach asks, where the texture the object
|
|
56
|
-
* is filtered in, its area within the screen and twice the padding at
|
|
57
|
-
* the target's resolution, fits the renderer's largest; past that, cut
|
|
58
|
-
* alike from the furthest reaching down to what fits, as a shadow cast
|
|
59
|
-
* 1e9 away, or Infinity, asks. What is cut lies past the screen, but for
|
|
60
|
-
* an object off it whose shadow is not.
|
|
61
|
-
*/
|
|
62
|
-
fitPadding(bounds: Bounds, system: FilterSystem): void;
|
|
63
|
-
/**
|
|
64
|
-
* Its result blended over what is below in `mode`, by the GPU's own
|
|
65
|
-
* blending as its last pass draws it, where that is Flash's blend
|
|
66
|
-
* (render/compositing.ts): no copy of what is below, nor a blend filter after it.
|
|
67
|
-
*/
|
|
68
|
-
blendOver(mode: BLEND_MODES): void;
|
|
69
|
-
/** Whether its output is drawn coloured (recolor), which takes a pass of its own. */
|
|
70
|
-
private colored;
|
|
71
|
-
/**
|
|
72
|
-
* Its output drawn in `color`, its object's colour transform from the stage down (or from the
|
|
73
|
-
* filtered object it is in), as Flash colours a filtered object's bitmap: the glow and the
|
|
74
|
-
* shadow too, and not what they are run on. What it kept stands.
|
|
75
|
-
*/
|
|
76
|
-
recolor(color: ColorTransform | null): void;
|
|
77
|
-
/** The output kept let go of, as its object leaves the display list. */
|
|
78
|
-
forget(): void;
|
|
79
|
-
/**
|
|
80
|
-
* Its kept output, while it would draw it again: before its object is drawn into an input,
|
|
81
|
-
* which is then not drawn at all, nor the filters run. The input `apply` would compare is the
|
|
82
|
-
* one the system sizes from the bounds it measured.
|
|
83
|
-
*/
|
|
84
|
-
reusedOutput(_system: FilterSystem, data: FilterData): Texture | null;
|
|
85
|
-
apply(system: FilterSystem, input: Texture, output: RenderSurface, clear: boolean): void;
|
|
86
|
-
/**
|
|
87
|
-
* Run into `output`; blended over it or coloured, into a texture of the
|
|
88
|
-
* pool first, which its own pass then blends and colours: the filters'
|
|
89
|
-
* last passes draw as each of them blends, not as the chain does.
|
|
90
|
-
*/
|
|
91
|
-
private runOver;
|
|
92
|
-
/** The filters in turn, as Pixi runs a chain, through a texture of the pool between them. */
|
|
93
|
-
private run;
|
|
94
|
-
private release;
|
|
95
|
-
/** Its filters too, and the output it kept. */
|
|
96
|
-
destroy(): void;
|
|
97
|
-
}
|
|
98
|
-
//# sourceMappingURL=filters.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../src/render/filters.ts"],"names":[],"mappings":"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"}
|