shaderpad 1.0.0-beta.79 → 1.0.0-beta.81
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/CHANGELOG.md +642 -0
- package/README.md +14 -14
- package/dist/chunk-BUZPU5IY.mjs +7 -0
- package/dist/chunk-BUZPU5IY.mjs.map +1 -0
- package/dist/chunk-FCURYXR7.mjs +10 -0
- package/dist/chunk-FCURYXR7.mjs.map +1 -0
- package/dist/dev/{chunk-QYD24S7K.mjs → chunk-OHG35H62.mjs} +150 -147
- package/dist/dev/chunk-OHG35H62.mjs.map +1 -0
- package/dist/dev/{chunk-ZVPQU2RM.mjs → chunk-W5VOJOKO.mjs} +13 -9
- package/dist/dev/chunk-W5VOJOKO.mjs.map +1 -0
- package/dist/dev/index.js +149 -146
- package/dist/dev/index.js.map +1 -1
- package/dist/dev/index.mjs +1 -1
- package/dist/dev/plugins/face.js +14 -11
- package/dist/dev/plugins/face.js.map +1 -1
- package/dist/dev/plugins/face.mjs +5 -4
- package/dist/dev/plugins/face.mjs.map +1 -1
- package/dist/dev/plugins/hands.js +14 -11
- package/dist/dev/plugins/hands.js.map +1 -1
- package/dist/dev/plugins/hands.mjs +5 -4
- package/dist/dev/plugins/hands.mjs.map +1 -1
- package/dist/dev/plugins/mediapipe-common.js +13 -8
- package/dist/dev/plugins/mediapipe-common.js.map +1 -1
- package/dist/dev/plugins/mediapipe-common.mjs +3 -1
- package/dist/dev/plugins/pose.js +163 -157
- package/dist/dev/plugins/pose.js.map +1 -1
- package/dist/dev/plugins/pose.mjs +6 -5
- package/dist/dev/plugins/pose.mjs.map +1 -1
- package/dist/dev/plugins/segmenter.js +163 -157
- package/dist/dev/plugins/segmenter.js.map +1 -1
- package/dist/dev/plugins/segmenter.mjs +6 -5
- package/dist/dev/plugins/segmenter.mjs.map +1 -1
- package/dist/dev/react.js +179 -160
- package/dist/dev/react.js.map +1 -1
- package/dist/dev/react.mjs +31 -15
- package/dist/dev/react.mjs.map +1 -1
- package/dist/dev/web-component.js +164 -155
- package/dist/dev/web-component.js.map +1 -1
- package/dist/dev/web-component.mjs +16 -10
- package/dist/dev/web-component.mjs.map +1 -1
- package/dist/index.d.mts +33 -31
- package/dist/index.d.ts +33 -31
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/plugins/face.d.mts +1 -0
- package/dist/plugins/face.d.ts +1 -0
- package/dist/plugins/face.js +34 -34
- package/dist/plugins/face.js.map +1 -1
- package/dist/plugins/face.mjs +33 -33
- package/dist/plugins/face.mjs.map +1 -1
- package/dist/plugins/hands.d.mts +1 -0
- package/dist/plugins/hands.d.ts +1 -0
- package/dist/plugins/hands.js +13 -13
- package/dist/plugins/hands.js.map +1 -1
- package/dist/plugins/hands.mjs +5 -5
- package/dist/plugins/hands.mjs.map +1 -1
- package/dist/plugins/mediapipe-common.d.mts +3 -2
- package/dist/plugins/mediapipe-common.d.ts +3 -2
- package/dist/plugins/mediapipe-common.js +5 -5
- package/dist/plugins/mediapipe-common.js.map +1 -1
- package/dist/plugins/mediapipe-common.mjs +1 -1
- package/dist/plugins/pose.d.mts +1 -0
- package/dist/plugins/pose.d.ts +1 -0
- package/dist/plugins/pose.js +34 -34
- package/dist/plugins/pose.js.map +1 -1
- package/dist/plugins/pose.mjs +12 -12
- package/dist/plugins/pose.mjs.map +1 -1
- package/dist/plugins/segmenter.d.mts +1 -0
- package/dist/plugins/segmenter.d.ts +1 -0
- package/dist/plugins/segmenter.js +13 -13
- package/dist/plugins/segmenter.js.map +1 -1
- package/dist/plugins/segmenter.mjs +5 -5
- package/dist/plugins/segmenter.mjs.map +1 -1
- package/dist/react.d.mts +2 -2
- package/dist/react.d.ts +2 -2
- package/dist/react.js +3 -3
- package/dist/react.js.map +1 -1
- package/dist/react.mjs +1 -1
- package/dist/react.mjs.map +1 -1
- package/dist/web-component.d.mts +5 -4
- package/dist/web-component.d.ts +5 -4
- package/dist/web-component.js +4 -4
- package/dist/web-component.js.map +1 -1
- package/dist/web-component.mjs +2 -2
- package/dist/web-component.mjs.map +1 -1
- package/package.json +3 -2
- package/dist/chunk-PZ4UVAHU.mjs +0 -10
- package/dist/chunk-PZ4UVAHU.mjs.map +0 -1
- package/dist/chunk-RWGXFWIP.mjs +0 -7
- package/dist/chunk-RWGXFWIP.mjs.map +0 -1
- package/dist/dev/chunk-QYD24S7K.mjs.map +0 -1
- package/dist/dev/chunk-ZVPQU2RM.mjs.map +0 -1
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,642 @@
|
|
|
1
|
+
# shaderpad
|
|
2
|
+
|
|
3
|
+
## 1.0.0-beta.81
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Improve timing / lifecycle behavior
|
|
8
|
+
|
|
9
|
+
Pause `u_time` on `pause()`, so that `step()` and `play()` resume from the same timestamp after a pause.
|
|
10
|
+
|
|
11
|
+
Also renamed:
|
|
12
|
+
- `resetFrame()` => `rewind()`
|
|
13
|
+
- `beforeDraw` => `preDraw`
|
|
14
|
+
- `afterDraw` => `postDraw`
|
|
15
|
+
- `beforeStep` => `preStep`
|
|
16
|
+
- `afterStep` => `postStep`
|
|
17
|
+
|
|
18
|
+
## 1.0.0-beta.80
|
|
19
|
+
|
|
20
|
+
### Minor Changes
|
|
21
|
+
|
|
22
|
+
- Add configurable `wasmBaseUrl` option for MediaPipe plugins
|
|
23
|
+
|
|
24
|
+
## 1.0.0-beta.79
|
|
25
|
+
|
|
26
|
+
### Patch Changes
|
|
27
|
+
|
|
28
|
+
- Add package READMEs
|
|
29
|
+
|
|
30
|
+
## 1.0.0-beta.78
|
|
31
|
+
|
|
32
|
+
### Minor Changes
|
|
33
|
+
|
|
34
|
+
- Add `<shader-pad>` web component
|
|
35
|
+
|
|
36
|
+
## 1.0.0-beta.77
|
|
37
|
+
|
|
38
|
+
### Minor Changes
|
|
39
|
+
|
|
40
|
+
- Add default export to shaderpad/react
|
|
41
|
+
|
|
42
|
+
## 1.0.0-beta.76
|
|
43
|
+
|
|
44
|
+
### Minor Changes
|
|
45
|
+
|
|
46
|
+
- Add `shaderpad/react` export
|
|
47
|
+
|
|
48
|
+
## 1.0.0-beta.75
|
|
49
|
+
|
|
50
|
+
### Minor Changes
|
|
51
|
+
|
|
52
|
+
- Improve face plugin performance and simplify templates
|
|
53
|
+
|
|
54
|
+
## 1.0.0-beta.74
|
|
55
|
+
|
|
56
|
+
### Minor Changes
|
|
57
|
+
|
|
58
|
+
- API improvements for public release
|
|
59
|
+
|
|
60
|
+
## 1.0.0-beta.73
|
|
61
|
+
|
|
62
|
+
### Minor Changes
|
|
63
|
+
|
|
64
|
+
- Expand `create-shaderpad` starters and support modular GLSL includes
|
|
65
|
+
|
|
66
|
+
## 1.0.0-beta.72
|
|
67
|
+
|
|
68
|
+
### Minor Changes
|
|
69
|
+
|
|
70
|
+
- Simplify history writes and shared MediaPipe plugins
|
|
71
|
+
|
|
72
|
+
## 1.0.0-beta.71
|
|
73
|
+
|
|
74
|
+
### Minor Changes
|
|
75
|
+
|
|
76
|
+
- Publish development build
|
|
77
|
+
|
|
78
|
+
## 1.0.0-beta.70
|
|
79
|
+
|
|
80
|
+
### Minor Changes
|
|
81
|
+
|
|
82
|
+
- Update error shortlinks and enable texture historyWriteIndex
|
|
83
|
+
|
|
84
|
+
## 1.0.0-beta.69
|
|
85
|
+
|
|
86
|
+
### Minor Changes
|
|
87
|
+
|
|
88
|
+
- Improve runtime error handling
|
|
89
|
+
|
|
90
|
+
## 1.0.0-beta.68
|
|
91
|
+
|
|
92
|
+
### Minor Changes
|
|
93
|
+
|
|
94
|
+
- Autosize: replace `ignorePixelRatio` with `scale`
|
|
95
|
+
|
|
96
|
+
## 1.0.0-beta.67
|
|
97
|
+
|
|
98
|
+
### Patch Changes
|
|
99
|
+
|
|
100
|
+
- Fix eyebrow fill region
|
|
101
|
+
|
|
102
|
+
## 1.0.0-beta.66
|
|
103
|
+
|
|
104
|
+
### Minor Changes
|
|
105
|
+
|
|
106
|
+
- Improve eye/mouth geometry
|
|
107
|
+
- Reduces triangle count in face mesh by filling eyes/mouth
|
|
108
|
+
- Improves eye and inner-mouth masks by triangulating between contour curves instead of fan-filling across the opening
|
|
109
|
+
|
|
110
|
+
In practice, you’ll notice a better inner mouth shape with a
|
|
111
|
+
closed-mouth smile.
|
|
112
|
+
|
|
113
|
+
## 1.0.0-beta.65
|
|
114
|
+
|
|
115
|
+
### Patch Changes
|
|
116
|
+
|
|
117
|
+
- Fill eyes/mouth in face tessellation
|
|
118
|
+
|
|
119
|
+
## 1.0.0-beta.64
|
|
120
|
+
|
|
121
|
+
### Patch Changes
|
|
122
|
+
|
|
123
|
+
- Refactor face mask rendering to use overlap-safe scratch composition
|
|
124
|
+
|
|
125
|
+
## 1.0.0-beta.63
|
|
126
|
+
|
|
127
|
+
### Minor Changes
|
|
128
|
+
|
|
129
|
+
- Rename "outer mouth" to "mouth"
|
|
130
|
+
|
|
131
|
+
## 1.0.0-beta.62
|
|
132
|
+
|
|
133
|
+
### Minor Changes
|
|
134
|
+
|
|
135
|
+
- Misc fixes and improvements
|
|
136
|
+
|
|
137
|
+
## 1.0.0-beta.61
|
|
138
|
+
|
|
139
|
+
### Patch Changes
|
|
140
|
+
|
|
141
|
+
- Fix UNPACK_ALIGNMENT for non-RGBA formats
|
|
142
|
+
|
|
143
|
+
## 1.0.0-beta.60
|
|
144
|
+
|
|
145
|
+
### Patch Changes
|
|
146
|
+
|
|
147
|
+
- Release v60
|
|
148
|
+
|
|
149
|
+
## 1.0.0-beta.59
|
|
150
|
+
|
|
151
|
+
### Minor Changes
|
|
152
|
+
|
|
153
|
+
- Allow uint uniforms
|
|
154
|
+
|
|
155
|
+
## 1.0.0-beta.58
|
|
156
|
+
|
|
157
|
+
### Patch Changes
|
|
158
|
+
|
|
159
|
+
- Add a synchronous handleResize() during autosize init
|
|
160
|
+
|
|
161
|
+
## 1.0.0-beta.57
|
|
162
|
+
|
|
163
|
+
### Minor Changes
|
|
164
|
+
|
|
165
|
+
- Fix autosize target sizing
|
|
166
|
+
|
|
167
|
+
## 1.0.0-beta.56
|
|
168
|
+
|
|
169
|
+
### Patch Changes
|
|
170
|
+
|
|
171
|
+
- Improve ShaderPad chaining
|
|
172
|
+
|
|
173
|
+
## 1.0.0-beta.55
|
|
174
|
+
|
|
175
|
+
### Minor Changes
|
|
176
|
+
|
|
177
|
+
- Add preventShare option to save plugin
|
|
178
|
+
|
|
179
|
+
## 1.0.0-beta.54
|
|
180
|
+
|
|
181
|
+
### Patch Changes
|
|
182
|
+
|
|
183
|
+
- Fix formatString defaults and improve play/pause ergonomics
|
|
184
|
+
|
|
185
|
+
## 1.0.0-beta.53
|
|
186
|
+
|
|
187
|
+
### Minor Changes
|
|
188
|
+
|
|
189
|
+
- Improve integer format compatibility, perf, add cursorTarget option
|
|
190
|
+
|
|
191
|
+
## 1.0.0-beta.52
|
|
192
|
+
|
|
193
|
+
### Minor Changes
|
|
194
|
+
|
|
195
|
+
- Enable model choice for segmenter plugin
|
|
196
|
+
|
|
197
|
+
## 1.0.0-beta.51
|
|
198
|
+
|
|
199
|
+
### Patch Changes
|
|
200
|
+
|
|
201
|
+
- Bind framebuffer in step
|
|
202
|
+
|
|
203
|
+
## 1.0.0-beta.50
|
|
204
|
+
|
|
205
|
+
### Minor Changes
|
|
206
|
+
|
|
207
|
+
- Improve plugin history consistency and performance
|
|
208
|
+
|
|
209
|
+
## 1.0.0-beta.49
|
|
210
|
+
|
|
211
|
+
### Minor Changes
|
|
212
|
+
|
|
213
|
+
- Remove time as first arg for public step method
|
|
214
|
+
|
|
215
|
+
This version also fixes high-precision float formats, and handles a race condition between init and destroy in MediaPipe plugins.
|
|
216
|
+
|
|
217
|
+
## 1.0.0-beta.48
|
|
218
|
+
|
|
219
|
+
### Minor Changes
|
|
220
|
+
|
|
221
|
+
- Improve inX checks and add public clear method
|
|
222
|
+
|
|
223
|
+
## 1.0.0-beta.47
|
|
224
|
+
|
|
225
|
+
### Patch Changes
|
|
226
|
+
|
|
227
|
+
- Add precision qualifiers to mask uniforms
|
|
228
|
+
|
|
229
|
+
## 1.0.0-beta.46
|
|
230
|
+
|
|
231
|
+
### Minor Changes
|
|
232
|
+
|
|
233
|
+
- Enable headless ShaderPads
|
|
234
|
+
|
|
235
|
+
This version also migrates some canvas-specific code out of the core package into `plugins/autosize` and `util/createFullscreenCanvas`.
|
|
236
|
+
|
|
237
|
+
## 1.0.0-beta.45
|
|
238
|
+
|
|
239
|
+
### Patch Changes
|
|
240
|
+
|
|
241
|
+
- Improve destroy()
|
|
242
|
+
|
|
243
|
+
## 1.0.0-beta.44
|
|
244
|
+
|
|
245
|
+
### Minor Changes
|
|
246
|
+
|
|
247
|
+
- Swap play() arg order
|
|
248
|
+
|
|
249
|
+
## 1.0.0-beta.43
|
|
250
|
+
|
|
251
|
+
### Patch Changes
|
|
252
|
+
|
|
253
|
+
- Improve mobile save/dismiss behaviour
|
|
254
|
+
|
|
255
|
+
## 1.0.0-beta.42
|
|
256
|
+
|
|
257
|
+
### Minor Changes
|
|
258
|
+
|
|
259
|
+
- Allow ShaderPad texture sources, improve MediaPipe perf, add MediaPipe history
|
|
260
|
+
|
|
261
|
+
## 1.0.0-beta.41
|
|
262
|
+
|
|
263
|
+
### Minor Changes
|
|
264
|
+
|
|
265
|
+
- Overhaul hook system and MediaPipe init order
|
|
266
|
+
|
|
267
|
+
## 1.0.0-beta.40
|
|
268
|
+
|
|
269
|
+
### Patch Changes
|
|
270
|
+
|
|
271
|
+
- Improve save / dismiss behaviour on mobile
|
|
272
|
+
|
|
273
|
+
## 1.0.0-beta.39
|
|
274
|
+
|
|
275
|
+
### Patch Changes
|
|
276
|
+
|
|
277
|
+
- Bugfix: allocate storage for intermediate texture
|
|
278
|
+
|
|
279
|
+
## 1.0.0-beta.38
|
|
280
|
+
|
|
281
|
+
### Minor Changes
|
|
282
|
+
|
|
283
|
+
- Allow high-precision history
|
|
284
|
+
|
|
285
|
+
Also:
|
|
286
|
+
- Allow texture options to be passed during ShaderPad creation
|
|
287
|
+
- Add onReady callbacks to MediaPipe plugins
|
|
288
|
+
- Add an afterStep lifecycle method
|
|
289
|
+
- Add option to skip history writes
|
|
290
|
+
- Various bugfixes and performance improvements
|
|
291
|
+
|
|
292
|
+
## 1.0.0-beta.37
|
|
293
|
+
|
|
294
|
+
### Minor Changes
|
|
295
|
+
|
|
296
|
+
- Generate face mask with GL TRIANGLEs
|
|
297
|
+
|
|
298
|
+
## 1.0.0-beta.36
|
|
299
|
+
|
|
300
|
+
### Minor Changes
|
|
301
|
+
|
|
302
|
+
- Re-address antialiasing in face plugin
|
|
303
|
+
|
|
304
|
+
## 1.0.0-beta.35
|
|
305
|
+
|
|
306
|
+
### Patch Changes
|
|
307
|
+
|
|
308
|
+
- Fix bug in face plugin
|
|
309
|
+
|
|
310
|
+
## 1.0.0-beta.34
|
|
311
|
+
|
|
312
|
+
### Minor Changes
|
|
313
|
+
|
|
314
|
+
- Limit antialiasing on mask textures
|
|
315
|
+
|
|
316
|
+
## 1.0.0-beta.33
|
|
317
|
+
|
|
318
|
+
### Minor Changes
|
|
319
|
+
|
|
320
|
+
- Expand texture input types and improve MediaPipe plugins
|
|
321
|
+
|
|
322
|
+
## 1.0.0-beta.32
|
|
323
|
+
|
|
324
|
+
### Minor Changes
|
|
325
|
+
|
|
326
|
+
- Add segmenter plugin
|
|
327
|
+
|
|
328
|
+
## 1.0.0-beta.31
|
|
329
|
+
|
|
330
|
+
### Minor Changes
|
|
331
|
+
|
|
332
|
+
- Add onResults callbacks to MediaPipe plugins
|
|
333
|
+
|
|
334
|
+
## 1.0.0-beta.30
|
|
335
|
+
|
|
336
|
+
### Minor Changes
|
|
337
|
+
|
|
338
|
+
- Rewrite plugins to transfer landmark data as textures
|
|
339
|
+
|
|
340
|
+
Rewrite MediaPipe plugins (pose, face, hands) to transfer landmark data as textures instead of uniform arrays. Landmarks are now accessed via `texelFetch()` on `u_poseLandmarksTex`, `u_faceLandmarksTex`, and `u_handLandmarksTex` textures. The `poseLandmark()`, `faceLandmark()`, and `handLandmark()` functions now return `vec4` (x, y, z, visibility) instead of `vec2`. Function names updated: `getBody()` → `inBody()`, `getFace()` → `inFace()`, etc.
|
|
341
|
+
|
|
342
|
+
As part of this change, typed arrays (e.g., `Float32Array`) are now valid texture sources when provided with width and height.
|
|
343
|
+
|
|
344
|
+
Also:
|
|
345
|
+
- Updated examples for the new API
|
|
346
|
+
- Added debug option to reduce logging in production
|
|
347
|
+
|
|
348
|
+
## 1.0.0-beta.29
|
|
349
|
+
|
|
350
|
+
### Minor Changes
|
|
351
|
+
|
|
352
|
+
- Expose individual face landmarks in face plugin
|
|
353
|
+
|
|
354
|
+
## 1.0.0-beta.28
|
|
355
|
+
|
|
356
|
+
### Minor Changes
|
|
357
|
+
|
|
358
|
+
- Add share text as optional second argument to save()
|
|
359
|
+
|
|
360
|
+
## 1.0.0-beta.27
|
|
361
|
+
|
|
362
|
+
### Minor Changes
|
|
363
|
+
|
|
364
|
+
- Add u_mouth to face plugin
|
|
365
|
+
|
|
366
|
+
## 1.0.0-beta.26
|
|
367
|
+
|
|
368
|
+
### Minor Changes
|
|
369
|
+
|
|
370
|
+
- Improve MediaPipe media handling
|
|
371
|
+
|
|
372
|
+
## 1.0.0-beta.25
|
|
373
|
+
|
|
374
|
+
### Minor Changes
|
|
375
|
+
|
|
376
|
+
- Improve pose segmentation
|
|
377
|
+
|
|
378
|
+
## 1.0.0-beta.24
|
|
379
|
+
|
|
380
|
+
### Patch Changes
|
|
381
|
+
|
|
382
|
+
- Fix fitCover/fitContain function name swap
|
|
383
|
+
|
|
384
|
+
## 1.0.0-beta.23
|
|
385
|
+
|
|
386
|
+
### Patch Changes
|
|
387
|
+
|
|
388
|
+
- Include u_resolution definition in helpers plugin
|
|
389
|
+
|
|
390
|
+
## 1.0.0-beta.22
|
|
391
|
+
|
|
392
|
+
### Minor Changes
|
|
393
|
+
|
|
394
|
+
- Add fitContain and fitCover helper functions
|
|
395
|
+
|
|
396
|
+
## 1.0.0-beta.21
|
|
397
|
+
|
|
398
|
+
### Minor Changes
|
|
399
|
+
|
|
400
|
+
- Export all plugins as default exports
|
|
401
|
+
|
|
402
|
+
Also resolve deprecation warning for non-DOM textures
|
|
403
|
+
|
|
404
|
+
## 1.0.0-beta.20
|
|
405
|
+
|
|
406
|
+
### Minor Changes
|
|
407
|
+
|
|
408
|
+
- Add draw() method
|
|
409
|
+
|
|
410
|
+
## 1.0.0-beta.19
|
|
411
|
+
|
|
412
|
+
### Minor Changes
|
|
413
|
+
|
|
414
|
+
- Add hands and pose plugins
|
|
415
|
+
|
|
416
|
+
### Minor Changes
|
|
417
|
+
- Add MediaPipe hands plugin
|
|
418
|
+
|
|
419
|
+
The `hands` plugin uses [MediaPipe Hand Landmarker](https://ai.google.dev/edge/mediapipe/solutions/vision/hand_landmarker) to detect and track hand landmarks in video or image textures. Each hand contributes 22 landmarks (21 standard landmarks plus hand center).
|
|
420
|
+
|
|
421
|
+
- Add MediaPipe pose plugin
|
|
422
|
+
|
|
423
|
+
The `pose` plugin uses [MediaPipe Pose Landmarker](https://ai.google.dev/edge/mediapipe/solutions/vision/pose_landmarker) to detect and track body pose landmarks. Each pose contributes 33 landmarks, and the plugin provides both landmark data and a mask texture showing the skeleton and body segmentation.
|
|
424
|
+
|
|
425
|
+
- Add documentation site
|
|
426
|
+
|
|
427
|
+
Added a new documentation site that showcases ShaderPad with a live shader example. The site is automatically deployed to GitHub Pages via a new GitHub Actions workflow.
|
|
428
|
+
|
|
429
|
+
- Add new example shaders
|
|
430
|
+
|
|
431
|
+
Added several new example shaders demonstrating the new plugins and various shader techniques:
|
|
432
|
+
- `hands.ts`: Hand tracking example
|
|
433
|
+
- `pose.ts`: Pose tracking example
|
|
434
|
+
- `god-rays.ts`: God rays effect example
|
|
435
|
+
- `fragmentum.ts`: Complex procedural shader example
|
|
436
|
+
|
|
437
|
+
### Patch Changes
|
|
438
|
+
- Update package.json exports to include new plugins (hands, pose)
|
|
439
|
+
- Remove plugins/index.ts in favor of individual plugin exports (optimizes bundle size)
|
|
440
|
+
- Update README with comprehensive documentation for all MediaPipe plugins
|
|
441
|
+
- Add project logo
|
|
442
|
+
|
|
443
|
+
## 1.0.0-beta.18
|
|
444
|
+
|
|
445
|
+
### Minor Changes
|
|
446
|
+
|
|
447
|
+
- Add per-texture history
|
|
448
|
+
|
|
449
|
+
The history plugin now supports history tracking for individual textures, in addition to framebuffer history. When initializing a texture with `initializeTexture()`, you can now specify a historyDepth parameter to maintain a buffer of prior frames for that specific texture:
|
|
450
|
+
|
|
451
|
+
```ts
|
|
452
|
+
// Store the last 30 webcam frames
|
|
453
|
+
// shader.initializeTexture('u_webcam', videoElement, 30);
|
|
454
|
+
```
|
|
455
|
+
|
|
456
|
+
Added two new examples demonstrating per-texture history:
|
|
457
|
+
- history-webcam-channels
|
|
458
|
+
- history-webcam-grid
|
|
459
|
+
|
|
460
|
+
## 1.0.0-beta.17
|
|
461
|
+
|
|
462
|
+
### Minor Changes
|
|
463
|
+
|
|
464
|
+
- Add plugin system
|
|
465
|
+
|
|
466
|
+
Finally in beta! This version adds a new plugin system, and migrates history
|
|
467
|
+
and save functionality out of the main class into standalone plugins. This
|
|
468
|
+
reduces bundle size for the most common usecases, and ensures flexibility going
|
|
469
|
+
forward.
|
|
470
|
+
|
|
471
|
+
This commit also reorganizes the examples directory; now all demos can be
|
|
472
|
+
played without needing to edit any files.
|
|
473
|
+
|
|
474
|
+
Other significant changes:
|
|
475
|
+
- The `play` callback now runs after the next loop is requested, so
|
|
476
|
+
`shader.pause()` can be called from within the `play` callback.
|
|
477
|
+
- The constructor no-longer accepts a `history` option. That has moved to the
|
|
478
|
+
history plugin’s configuration.
|
|
479
|
+
- The constructor now accepts a `plugins` option.
|
|
480
|
+
|
|
481
|
+
## 1.0.0-alpha.16
|
|
482
|
+
|
|
483
|
+
### Minor Changes
|
|
484
|
+
|
|
485
|
+
- Prevent double play
|
|
486
|
+
|
|
487
|
+
## 1.0.0-alpha.15
|
|
488
|
+
|
|
489
|
+
### Patch Changes
|
|
490
|
+
|
|
491
|
+
- Improve iOS recognition on save
|
|
492
|
+
|
|
493
|
+
## 1.0.0-alpha.14
|
|
494
|
+
|
|
495
|
+
### Patch Changes
|
|
496
|
+
|
|
497
|
+
- Improve mobile save experience
|
|
498
|
+
|
|
499
|
+
## 1.0.0-alpha.13
|
|
500
|
+
|
|
501
|
+
### Minor Changes
|
|
502
|
+
|
|
503
|
+
- Improve save experience on mobile
|
|
504
|
+
|
|
505
|
+
## 1.0.0-alpha.12
|
|
506
|
+
|
|
507
|
+
### Minor Changes
|
|
508
|
+
|
|
509
|
+
- Improve resize behaviour
|
|
510
|
+
|
|
511
|
+
## 1.0.0-alpha.11
|
|
512
|
+
|
|
513
|
+
### Patch Changes
|
|
514
|
+
|
|
515
|
+
- Remove wheel position from u_cursor
|
|
516
|
+
|
|
517
|
+
## 1.0.0-alpha.10
|
|
518
|
+
|
|
519
|
+
### Minor Changes
|
|
520
|
+
|
|
521
|
+
- Add reset() and onResize
|
|
522
|
+
|
|
523
|
+
## 1.0.0-alpha.9
|
|
524
|
+
|
|
525
|
+
### Patch Changes
|
|
526
|
+
|
|
527
|
+
- Make initial history frames transparent
|
|
528
|
+
|
|
529
|
+
## 1.0.0-alpha.8
|
|
530
|
+
|
|
531
|
+
### Minor Changes
|
|
532
|
+
|
|
533
|
+
- Allow `initializeTexture` and `history` to exist in the same shader
|
|
534
|
+
|
|
535
|
+
## 1.0.0-alpha.7
|
|
536
|
+
|
|
537
|
+
### Minor Changes
|
|
538
|
+
|
|
539
|
+
- - **WebGL 2.0 upgrade** 🚀
|
|
540
|
+
|
|
541
|
+
ShaderPad now uses WebGL 2.0 and GLSL 3.00 ES. All shaders now use the `#version 300 es` directive with updated syntax:
|
|
542
|
+
- `attribute` → `in`
|
|
543
|
+
- `varying` → `out` (vertex) / `in` (fragment)
|
|
544
|
+
- `gl_FragColor` → custom `out` variables
|
|
545
|
+
- `texture2D` → `texture`
|
|
546
|
+
|
|
547
|
+
This is a breaking change - existing shaders will need to be updated to use the new syntax.
|
|
548
|
+
|
|
549
|
+
- **Frame history buffers**
|
|
550
|
+
|
|
551
|
+
Added support for frame history buffers, enabling shaders to reference prior frames. The `u_history` uniform provides access to previous frames as a `sampler2DArray`.
|
|
552
|
+
|
|
553
|
+
```typescript
|
|
554
|
+
// 2-frame history (eg. for cellular automata)
|
|
555
|
+
const shader = new ShaderPad(fragmentShaderSrc, { history: 2 });
|
|
556
|
+
```
|
|
557
|
+
|
|
558
|
+
- **Options object constructor**
|
|
559
|
+
|
|
560
|
+
The constructor now accepts an options object instead of just a canvas element:
|
|
561
|
+
|
|
562
|
+
```typescript
|
|
563
|
+
// Old API
|
|
564
|
+
const shader = new ShaderPad(fragmentShaderSrc, canvas);
|
|
565
|
+
|
|
566
|
+
// New API
|
|
567
|
+
const shader = new ShaderPad(fragmentShaderSrc, { canvas });
|
|
568
|
+
```
|
|
569
|
+
|
|
570
|
+
- **Resize throttling**
|
|
571
|
+
|
|
572
|
+
Added throttled resize handling to improve performance during window resizing.
|
|
573
|
+
|
|
574
|
+
- **Minor bugfixes around click handling**
|
|
575
|
+
|
|
576
|
+
## 1.0.0-alpha.6
|
|
577
|
+
|
|
578
|
+
### Minor Changes
|
|
579
|
+
|
|
580
|
+
- Update uniform names to use conventional u\_ prefix
|
|
581
|
+
|
|
582
|
+
### Patch Changes
|
|
583
|
+
|
|
584
|
+
- b9bf4b1: npx changeset version
|
|
585
|
+
|
|
586
|
+
## 1.0.0-alpha.5
|
|
587
|
+
|
|
588
|
+
### Minor Changes
|
|
589
|
+
|
|
590
|
+
- Enhanced mouse interaction uniforms
|
|
591
|
+
|
|
592
|
+
Updated the mouse interaction uniforms to provide comprehensive input tracking:
|
|
593
|
+
- `u_cursor` is now a `vec4` with cursor position (x, y) and scroll position (z, w)
|
|
594
|
+
- `u_click` is now a `vec3` with click position (x, y) and left click state (z)
|
|
595
|
+
|
|
596
|
+
This allows shaders to respond to cursor movement, scrolling, and mouse clicks.
|
|
597
|
+
|
|
598
|
+
- Callbacks passed to `play` now receive `time` in seconds, not milliseconds.
|
|
599
|
+
|
|
600
|
+
This improves consistency with the `u_time` uniform.
|
|
601
|
+
|
|
602
|
+
## 1.0.0-alpha.4
|
|
603
|
+
|
|
604
|
+
### Minor Changes
|
|
605
|
+
|
|
606
|
+
- Add step method and frame counter
|
|
607
|
+
|
|
608
|
+
This release adds a `shaderPad.step` method, which enables finer-grained control over animation loops. The `shaderPad.play` callback now receives a `frame` parameter, which is the current frame number.
|
|
609
|
+
|
|
610
|
+
## 1.0.0-alpha.3
|
|
611
|
+
|
|
612
|
+
### Minor Changes
|
|
613
|
+
|
|
614
|
+
- Add texture and destroy methods
|
|
615
|
+
|
|
616
|
+
This release adds `shaderPad.initializeTexture` and `shaderPad.updateTextures` methods, which roughly map to how `initializeUniform` and `updateUniform` works. It also adds a `shaderPad.destroy` method, which runs some general cleanup.
|
|
617
|
+
|
|
618
|
+
This release also fixes a bug where a passed-in canvas would resize indefinitely on a retina display.
|
|
619
|
+
|
|
620
|
+
## 1.0.0-alpha.2
|
|
621
|
+
|
|
622
|
+
### Patch Changes
|
|
623
|
+
|
|
624
|
+
- Remove log from save()
|
|
625
|
+
|
|
626
|
+
## 1.0.0-alpha.1
|
|
627
|
+
|
|
628
|
+
### Minor Changes
|
|
629
|
+
|
|
630
|
+
- Add save() method
|
|
631
|
+
|
|
632
|
+
This method saves the current frame to a PNG file. The filename is optional; if not provided, it will be "export.png".
|
|
633
|
+
|
|
634
|
+
## 1.0.0-alpha.0
|
|
635
|
+
|
|
636
|
+
### Major Changes
|
|
637
|
+
|
|
638
|
+
- Initial alpha release 🎉
|
|
639
|
+
|
|
640
|
+
I’ve started using this on a few projects, and I’m pretty confident that the API will retain this general shape. I want to try adopting ShaderPad into a few more projects before officially moving this out of alpha.
|
|
641
|
+
|
|
642
|
+
Always open to suggestions!
|