@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.
Files changed (143) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +17 -2
  3. package/dist/commands.d.ts +67 -0
  4. package/dist/commands.d.ts.map +1 -0
  5. package/dist/commands.js +93 -0
  6. package/dist/commands.js.map +1 -0
  7. package/dist/filter-plan.d.ts +110 -0
  8. package/dist/filter-plan.d.ts.map +1 -0
  9. package/dist/filter-plan.js +480 -0
  10. package/dist/filter-plan.js.map +1 -0
  11. package/dist/filter-shaders.d.ts +63 -0
  12. package/dist/filter-shaders.d.ts.map +1 -0
  13. package/dist/filter-shaders.js +350 -0
  14. package/dist/filter-shaders.js.map +1 -0
  15. package/dist/filters.d.ts +107 -0
  16. package/dist/filters.d.ts.map +1 -0
  17. package/dist/filters.js +187 -0
  18. package/dist/filters.js.map +1 -0
  19. package/dist/geometry.d.ts +83 -0
  20. package/dist/geometry.d.ts.map +1 -0
  21. package/dist/geometry.js +93 -0
  22. package/dist/geometry.js.map +1 -0
  23. package/dist/index.d.ts +11 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +13 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/keeps.d.ts +17 -0
  28. package/dist/keeps.d.ts.map +1 -0
  29. package/dist/keeps.js +17 -0
  30. package/dist/keeps.js.map +1 -0
  31. package/dist/kernel-shaders.d.ts +74 -0
  32. package/dist/kernel-shaders.d.ts.map +1 -0
  33. package/dist/kernel-shaders.js +323 -0
  34. package/dist/kernel-shaders.js.map +1 -0
  35. package/dist/measure.d.ts +56 -0
  36. package/dist/measure.d.ts.map +1 -0
  37. package/dist/measure.js +287 -0
  38. package/dist/measure.js.map +1 -0
  39. package/dist/plan.d.ts +14 -0
  40. package/dist/plan.d.ts.map +1 -0
  41. package/dist/plan.js +247 -0
  42. package/dist/plan.js.map +1 -0
  43. package/dist/registry.d.ts +49 -0
  44. package/dist/registry.d.ts.map +1 -0
  45. package/dist/registry.js +87 -0
  46. package/dist/registry.js.map +1 -0
  47. package/dist/rows.d.ts +39 -0
  48. package/dist/rows.d.ts.map +1 -0
  49. package/dist/rows.js +60 -0
  50. package/dist/rows.js.map +1 -0
  51. package/dist/scene.d.ts +179 -0
  52. package/dist/scene.d.ts.map +1 -0
  53. package/dist/scene.js +265 -0
  54. package/dist/scene.js.map +1 -0
  55. package/dist/shelves.d.ts +23 -0
  56. package/dist/shelves.d.ts.map +1 -0
  57. package/dist/shelves.js +63 -0
  58. package/dist/shelves.js.map +1 -0
  59. package/dist/textures.d.ts +72 -0
  60. package/dist/textures.d.ts.map +1 -0
  61. package/dist/textures.js +160 -0
  62. package/dist/textures.js.map +1 -0
  63. package/dist/webgl/atlas.d.ts +63 -0
  64. package/dist/webgl/atlas.d.ts.map +1 -0
  65. package/dist/webgl/atlas.js +328 -0
  66. package/dist/webgl/atlas.js.map +1 -0
  67. package/dist/webgl/backend.d.ts +141 -0
  68. package/dist/webgl/backend.d.ts.map +1 -0
  69. package/dist/webgl/backend.js +659 -0
  70. package/dist/webgl/backend.js.map +1 -0
  71. package/dist/webgl/composite.d.ts +101 -0
  72. package/dist/webgl/composite.d.ts.map +1 -0
  73. package/dist/webgl/composite.js +293 -0
  74. package/dist/webgl/composite.js.map +1 -0
  75. package/dist/webgl/draws.d.ts +213 -0
  76. package/dist/webgl/draws.d.ts.map +1 -0
  77. package/dist/webgl/draws.js +714 -0
  78. package/dist/webgl/draws.js.map +1 -0
  79. package/dist/webgl/filters.d.ts +107 -0
  80. package/dist/webgl/filters.d.ts.map +1 -0
  81. package/dist/webgl/filters.js +351 -0
  82. package/dist/webgl/filters.js.map +1 -0
  83. package/dist/webgl/gpu-textures.d.ts +44 -0
  84. package/dist/webgl/gpu-textures.d.ts.map +1 -0
  85. package/dist/webgl/gpu-textures.js +178 -0
  86. package/dist/webgl/gpu-textures.js.map +1 -0
  87. package/dist/webgl/holds.d.ts +97 -0
  88. package/dist/webgl/holds.d.ts.map +1 -0
  89. package/dist/webgl/holds.js +453 -0
  90. package/dist/webgl/holds.js.map +1 -0
  91. package/dist/webgl/index.d.ts +2 -0
  92. package/dist/webgl/index.d.ts.map +1 -0
  93. package/dist/webgl/index.js +4 -0
  94. package/dist/webgl/index.js.map +1 -0
  95. package/dist/webgl/kernels.d.ts +64 -0
  96. package/dist/webgl/kernels.d.ts.map +1 -0
  97. package/dist/webgl/kernels.js +160 -0
  98. package/dist/webgl/kernels.js.map +1 -0
  99. package/dist/webgl/pool.d.ts +71 -0
  100. package/dist/webgl/pool.d.ts.map +1 -0
  101. package/dist/webgl/pool.js +192 -0
  102. package/dist/webgl/pool.js.map +1 -0
  103. package/dist/webgl/programs.d.ts +130 -0
  104. package/dist/webgl/programs.d.ts.map +1 -0
  105. package/dist/webgl/programs.js +582 -0
  106. package/dist/webgl/programs.js.map +1 -0
  107. package/dist/webgl/stage.d.ts +67 -0
  108. package/dist/webgl/stage.d.ts.map +1 -0
  109. package/dist/webgl/stage.js +173 -0
  110. package/dist/webgl/stage.js.map +1 -0
  111. package/dist/webgl/targets.d.ts +172 -0
  112. package/dist/webgl/targets.d.ts.map +1 -0
  113. package/dist/webgl/targets.js +323 -0
  114. package/dist/webgl/targets.js.map +1 -0
  115. package/package.json +35 -3
  116. package/src/commands.ts +98 -0
  117. package/src/filter-plan.ts +755 -0
  118. package/src/filter-shaders.ts +360 -0
  119. package/src/filters.ts +220 -0
  120. package/src/geometry.ts +143 -0
  121. package/src/index.ts +87 -0
  122. package/src/keeps.ts +21 -0
  123. package/src/kernel-shaders.ts +375 -0
  124. package/src/measure.ts +400 -0
  125. package/src/plan.ts +331 -0
  126. package/src/registry.ts +105 -0
  127. package/src/rows.ts +93 -0
  128. package/src/scene.ts +297 -0
  129. package/src/shelves.ts +70 -0
  130. package/src/textures.ts +198 -0
  131. package/src/webgl/atlas.ts +370 -0
  132. package/src/webgl/backend.ts +973 -0
  133. package/src/webgl/composite.ts +372 -0
  134. package/src/webgl/draws.ts +902 -0
  135. package/src/webgl/filters.ts +502 -0
  136. package/src/webgl/gpu-textures.ts +253 -0
  137. package/src/webgl/holds.ts +624 -0
  138. package/src/webgl/index.ts +3 -0
  139. package/src/webgl/kernels.ts +205 -0
  140. package/src/webgl/pool.ts +245 -0
  141. package/src/webgl/programs.ts +620 -0
  142. package/src/webgl/stage.ts +214 -0
  143. package/src/webgl/targets.ts +464 -0
@@ -0,0 +1,213 @@
1
+ import { type GlState } from "@swf2es/context3d/device";
2
+ import { type Commands } from "../commands.js";
3
+ import { type Filters } from "../filters.js";
4
+ import { type SceneList } from "../scene.js";
5
+ import type { GeometryAtlas } from "./atlas.js";
6
+ import type { GpuTextures } from "./gpu-textures.js";
7
+ import type { KernelHost, KernelPrograms } from "./kernels.js";
8
+ import { type Open, type Target, type TargetPool } from "./targets.js";
9
+ /**
10
+ * The masks pushed on a target drawn into: what is drawn passes where its
11
+ * stencil holds `depth` of them. Its eight bits hold STENCIL_MOST: those
12
+ * pushed past that are left out, `past` of them, and their pops with them.
13
+ */
14
+ export interface Masks {
15
+ depth: number;
16
+ past: number;
17
+ }
18
+ /**
19
+ * The draws of a scene list's entries into the target bound: fills in runs,
20
+ * one multi-draw of the atlas's index ranges a run where WEBGL_multi_draw
21
+ * is, meshes and advanced text's glyphs each by a program of its own, and
22
+ * the masks' coverage into the stencil; and the view of the target drawn
23
+ * into, which each program is told.
24
+ */
25
+ export declare class Draws {
26
+ /** Where shader fills find the frame's filters, whose chains their draws name (SHADED). */
27
+ private readonly host;
28
+ /** Shader fills' programs, the backend's one cache of kernels'. */
29
+ private readonly kernels;
30
+ private readonly gl;
31
+ private readonly state;
32
+ private readonly atlas;
33
+ private readonly gpu;
34
+ private readonly pool;
35
+ /** The fill program, and where it takes its row, view and Flash's pixels a stage pixel. */
36
+ program: WebGLProgram;
37
+ private rowLocation;
38
+ private viewLocation;
39
+ private fillUnitLocation;
40
+ /**
41
+ * The fill program that blends a fill straight onto what is below it
42
+ * (drawBlended), a draw a call, and where it takes what the fill program
43
+ * does and the blend's mode, its layer's row and where the copy of what
44
+ * is below lies.
45
+ */
46
+ private blendProgram;
47
+ private blendRowLocation;
48
+ private blendViewLocation;
49
+ private blendUnitLocation;
50
+ private blendModeLocation;
51
+ private blendLayerRowLocation;
52
+ private blendBackLocation;
53
+ /** WEBGL_multi_draw, which draws a run of fills alike a call (drawEntries), where there is. */
54
+ private multi;
55
+ /** Avoid the dynamically indexed uniform table used in the Intel GPU hang reproducer. */
56
+ private runTable;
57
+ private runBaseLocation;
58
+ private runTableHeight;
59
+ private runTableMost;
60
+ private tableRows;
61
+ private tableCounts;
62
+ private tableOffsets;
63
+ private runs;
64
+ private commandStarts;
65
+ private prepared;
66
+ /** A run's draws: their index counts, their offsets in bytes, and their rows (FILL_SLOT). */
67
+ private readonly runCounts;
68
+ private readonly runOffsets;
69
+ private readonly runRows;
70
+ /** Draws gathered by gatherRun, and the fill units they sample, a bit each. */
71
+ private runCount;
72
+ private runUnits;
73
+ /**
74
+ * The texture and sampling each fill unit was last given (runSlot), -1 for
75
+ * none, and the unit to take next when every one holds a texture.
76
+ */
77
+ private readonly unitIds;
78
+ private readonly unitSampling;
79
+ private unitNext;
80
+ /** The meshes' program (MESH), and where it takes its row, view, fragments' place and mode. */
81
+ private mesh;
82
+ private meshRowLocation;
83
+ private meshViewLocation;
84
+ private meshFragLocation;
85
+ private meshModeLocation;
86
+ /**
87
+ * The view the target drawn into gives the fill program, and where its
88
+ * fragments lie from the stage's origin (meshFragment's uFrag): told the
89
+ * mesh program as it next draws a mesh, once they change (meshStale).
90
+ */
91
+ private readonly view;
92
+ private readonly frag;
93
+ private meshStale;
94
+ /** The row and mode (REPEAT, SMOOTH) the mesh program was told last, -1 for none. */
95
+ private meshRow;
96
+ private meshMode;
97
+ /**
98
+ * Advanced text's program (GeometryData.glyphs), where it takes its row, view, Flash's
99
+ * pixels a stage pixel, mode and table; its vertices are in an atlas of their own.
100
+ */
101
+ private glyphProgram;
102
+ private glyphRowLocation;
103
+ private glyphViewLocation;
104
+ private glyphUnitLocation;
105
+ private glyphModeLocation;
106
+ private glyphTableLocation;
107
+ private glyphStale;
108
+ /** Flash's pixels a stage pixel: the target's pixels a stage pixel over those a pixel of Flash's. */
109
+ private unit;
110
+ /**
111
+ * The row a fill drawn alone (without WEBGL_multi_draw) last told the fill
112
+ * program, so that it is not told again; -1 for none (forgetRow).
113
+ */
114
+ private lastRow;
115
+ /** Each shader fill's fragment shader by its entry in the frame's filters, for the generation it is of. */
116
+ private readonly fillShaders;
117
+ /** A shader fill's program as it is linked: its rows' unit. */
118
+ private readonly prepareFill;
119
+ private fillFilters;
120
+ private fillGeneration;
121
+ constructor(gl: WebGL2RenderingContext, state: GlState, atlas: GeometryAtlas, gpu: GpuTextures, pool: TargetPool,
122
+ /** Where shader fills find the frame's filters, whose chains their draws name (SHADED). */
123
+ host: KernelHost & {
124
+ filters(): Filters | null;
125
+ },
126
+ /** Shader fills' programs, the backend's one cache of kernels'. */
127
+ kernels: KernelPrograms);
128
+ /** The fill, mesh and glyph programs made, as the context comes or comes back. */
129
+ setUp(textureMost: number): void;
130
+ /** Upload before any draws, so that updating a run cannot stall earlier draws reading it. */
131
+ prepare(commands: Commands, scene: SceneList): void;
132
+ private sizeRunTable;
133
+ /**
134
+ * Draw into `open` from here on: its framebuffer bound, its viewport its
135
+ * rectangle's size, and the stage placed on it as on the canvas, its
136
+ * rectangle's corner the origin, its rows running up on the canvas and
137
+ * down in a layer. The fill program takes the view.
138
+ */
139
+ drawInto(open: Open, target: Target): void;
140
+ /** The row the fill program was told forgotten, so that the next fill tells it again. */
141
+ forgetRow(): void;
142
+ /** The fill program, its vertex array and rows bound, as runs and masks draw with them. */
143
+ useFill(): void;
144
+ /** Entries `first` up to `end` drawn as fills, where the masks pushed pass. */
145
+ drawRun(scene: SceneList, first: number, end: number, command: number): void;
146
+ /**
147
+ * Whether entry `i` is a flat fill (GeometryData.flat), a bitmap's quad or
148
+ * one fill of a shape, of no mesh, shader fill or text, whose texture, if
149
+ * it samples one, is there. Drawn straight onto what is below in a blend
150
+ * mode, it is as its layer would be composited, as no part of it is over
151
+ * another.
152
+ */
153
+ blendable(scene: SceneList, i: number): boolean;
154
+ /**
155
+ * Entry `i`, blendable, drawn onto the target bound in blend mode `mode`,
156
+ * coloured by its layer's row `layerRow` (or -1), where the masks pushed
157
+ * pass: GL's blending computing add, screen and, where it does not
158
+ * `reads` below, multiply, the program the rest from the copy of what is
159
+ * below (Compositor.copyBelow), whose texel at a fragment is (`backX`,
160
+ * `backY`) short of it.
161
+ */
162
+ drawBlended(scene: SceneList, i: number, mode: number, reads: boolean, layerRow: number, backX: number, backY: number): void;
163
+ /**
164
+ * Entries `first` up to `end`, a mask, pushed onto `masks` (STENCIL_PUSH)
165
+ * or popped off them (STENCIL_POP), left out past STENCIL_MOST: its
166
+ * coverage, once a pixel however its fills overlap, counted up into the
167
+ * stencil where the masks pushed before it pass, and back down where it
168
+ * and they did.
169
+ */
170
+ drawMask(scene: SceneList, first: number, end: number, push: boolean, masks: Masks, command: number): void;
171
+ /** What is drawn from here on kept to where `masks` pass, by the stencil. */
172
+ maskBy(masks: Masks): void;
173
+ /** The draws at `scene`'s entries from `first` up to `end`; for the stencil alone, untextured. */
174
+ drawEntries(scene: SceneList, first: number, end: number, stencil: boolean, command: number): void;
175
+ /**
176
+ * The fills from entry `i` on that one call draws, as many as fit its
177
+ * textures (FILL_TEXTURES, each with its sampling) and, without
178
+ * WEBGL_multi_draw, one: their runCounts, runOffsets and runRows (FILL_SLOT),
179
+ * and the units their textures take in runUnits. The last entry gathered,
180
+ * past those whose texture is gone, which draw nothing.
181
+ */
182
+ private gatherRun;
183
+ /**
184
+ * The slot (FILL_SLOT) of the unit texture `id` is sampled from so in the
185
+ * run: the one it was left on, else one the run has not taken, an empty
186
+ * one first, so that a texture stays where it is from run to run; 0 when
187
+ * the run has taken all.
188
+ */
189
+ private runSlot;
190
+ /**
191
+ * Entry `i`, advanced text's glyph quads (GeometryData.glyphs), drawn by the glyph
192
+ * program from its atlas, which is told the view as it changed, and its
193
+ * text's mode and table; the glyph program left in use.
194
+ */
195
+ private drawGlyphs;
196
+ /**
197
+ * Entry `i`, a mesh (MESH), drawn by the mesh program, which is told the
198
+ * view as it changed, and its row and mode as they change; whether it
199
+ * was drawn, the mesh program left in use.
200
+ */
201
+ private drawMesh;
202
+ /**
203
+ * Entry `i`, a shader fill (SHADED), drawn by its kernel's program, after
204
+ * the mesh's vertex shader, told the view, its row and its kernel's
205
+ * uniforms; whether it was drawn, its program left in use.
206
+ */
207
+ private drawShaded;
208
+ /** The fragment shader of the shader fill at entry `i` of `filters`, made once a frame; null for none. */
209
+ private fillShader;
210
+ /** The programs and draw table made on the context, deleted. */
211
+ destroy(): void;
212
+ }
213
+ //# sourceMappingURL=draws.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draws.d.ts","sourceRoot":"","sources":["../../src/webgl/draws.ts"],"names":[],"mappings":"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"}