etro 0.7.0 → 0.8.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 (106) hide show
  1. package/.github/workflows/nodejs.yml +1 -1
  2. package/CHANGELOG.md +45 -1
  3. package/CONTRIBUTING.md +23 -19
  4. package/README.md +81 -26
  5. package/dist/effect/base.d.ts +38 -0
  6. package/dist/effect/brightness.d.ts +16 -0
  7. package/dist/effect/channels.d.ts +23 -0
  8. package/dist/effect/chroma-key.d.ts +23 -0
  9. package/dist/effect/contrast.d.ts +15 -0
  10. package/dist/effect/elliptical-mask.d.ts +31 -0
  11. package/dist/effect/gaussian-blur.d.ts +60 -0
  12. package/dist/effect/grayscale.d.ts +7 -0
  13. package/dist/effect/index.d.ts +15 -0
  14. package/dist/effect/pixelate.d.ts +18 -0
  15. package/dist/effect/shader.d.ts +99 -0
  16. package/dist/effect/stack.d.ts +23 -0
  17. package/dist/effect/transform.d.ts +73 -0
  18. package/dist/etro-cjs.js +9337 -3331
  19. package/dist/etro-iife.js +9279 -3273
  20. package/dist/etro.d.ts +7 -0
  21. package/dist/event.d.ts +35 -0
  22. package/dist/index.d.ts +6 -0
  23. package/dist/layer/audio-source.d.ts +24 -0
  24. package/dist/layer/audio.d.ts +14 -0
  25. package/dist/layer/base.d.ts +69 -0
  26. package/dist/layer/image.d.ts +6 -0
  27. package/dist/layer/index.d.ts +11 -0
  28. package/dist/layer/text.d.ts +60 -0
  29. package/dist/layer/video.d.ts +11 -0
  30. package/dist/layer/visual-source.d.ts +32 -0
  31. package/dist/layer/visual.d.ts +58 -0
  32. package/dist/movie.d.ts +192 -0
  33. package/dist/object.d.ts +12 -0
  34. package/dist/util.d.ts +125 -0
  35. package/eslint.conf.js +0 -8
  36. package/eslint.example-conf.js +9 -0
  37. package/eslint.typescript-conf.js +5 -0
  38. package/examples/application/readme-screenshot.html +12 -9
  39. package/examples/application/video-player.html +7 -7
  40. package/examples/application/webcam.html +6 -6
  41. package/examples/introduction/audio.html +30 -18
  42. package/examples/introduction/effects.html +14 -10
  43. package/examples/introduction/export.html +32 -25
  44. package/examples/introduction/functions.html +6 -4
  45. package/examples/introduction/hello-world1.html +9 -5
  46. package/examples/introduction/hello-world2.html +5 -5
  47. package/examples/introduction/keyframes.html +35 -23
  48. package/examples/introduction/media.html +26 -18
  49. package/examples/introduction/text.html +9 -5
  50. package/karma.conf.js +1 -1
  51. package/package.json +29 -13
  52. package/rollup.config.js +15 -4
  53. package/scripts/gen-effect-samples.html +29 -25
  54. package/scripts/save-effect-samples.js +14 -15
  55. package/spec/assets/effect/gaussian-blur-horizontal.png +0 -0
  56. package/spec/assets/effect/gaussian-blur-vertical.png +0 -0
  57. package/spec/assets/effect/grayscale.png +0 -0
  58. package/spec/assets/effect/original.png +0 -0
  59. package/spec/assets/effect/pixelate.png +0 -0
  60. package/spec/assets/effect/transform/multiply.png +0 -0
  61. package/spec/assets/effect/transform/rotate.png +0 -0
  62. package/spec/assets/effect/transform/scale-fraction.png +0 -0
  63. package/spec/assets/effect/transform/scale.png +0 -0
  64. package/spec/assets/effect/transform/translate-fraction.png +0 -0
  65. package/spec/assets/effect/transform/translate.png +0 -0
  66. package/spec/effect.spec.js +126 -57
  67. package/spec/event.spec.js +14 -0
  68. package/spec/layer.spec.js +175 -18
  69. package/spec/movie.spec.js +191 -7
  70. package/spec/util.spec.js +14 -5
  71. package/src/effect/base.ts +96 -0
  72. package/src/effect/brightness.ts +43 -0
  73. package/src/effect/channels.ts +50 -0
  74. package/src/effect/chroma-key.ts +82 -0
  75. package/src/effect/contrast.ts +42 -0
  76. package/src/effect/elliptical-mask.ts +75 -0
  77. package/src/effect/gaussian-blur.ts +232 -0
  78. package/src/effect/grayscale.ts +34 -0
  79. package/src/effect/index.ts +22 -0
  80. package/src/effect/pixelate.ts +59 -0
  81. package/src/effect/shader.ts +561 -0
  82. package/src/effect/stack.ts +74 -0
  83. package/src/effect/transform.ts +194 -0
  84. package/src/etro.ts +26 -0
  85. package/src/event.ts +118 -0
  86. package/src/index.ts +8 -0
  87. package/src/layer/audio-source.ts +217 -0
  88. package/src/layer/audio.ts +35 -0
  89. package/src/layer/base.ts +156 -0
  90. package/src/layer/image.ts +8 -0
  91. package/src/layer/index.ts +13 -0
  92. package/src/layer/text.ts +138 -0
  93. package/src/layer/video.ts +15 -0
  94. package/src/layer/visual-source.ts +150 -0
  95. package/src/layer/visual.ts +198 -0
  96. package/src/movie.ts +709 -0
  97. package/src/object.ts +14 -0
  98. package/src/util.ts +473 -0
  99. package/tsconfig.json +8 -0
  100. package/screenshots/2019-08-17_0.png +0 -0
  101. package/src/effect.js +0 -1268
  102. package/src/event.js +0 -78
  103. package/src/index.js +0 -23
  104. package/src/layer.js +0 -897
  105. package/src/movie.js +0 -637
  106. package/src/util.js +0 -505
@@ -0,0 +1,23 @@
1
+ import { Movie } from '../movie';
2
+ import { Base } from './base';
3
+ import { Visual } from '../layer';
4
+ export interface StackOptions {
5
+ effects: Base[];
6
+ }
7
+ /**
8
+ * A sequence of effects to apply, treated as one effect. This can be useful
9
+ * for defining reused effect sequences as one effect.
10
+ */
11
+ export declare class Stack extends Base {
12
+ readonly effects: Base[];
13
+ private _effectsBack;
14
+ constructor(options: StackOptions);
15
+ attach(movie: Movie): void;
16
+ detach(): void;
17
+ apply(target: Movie | Visual, reltime: number): void;
18
+ /**
19
+ * Convenience method for chaining
20
+ * @param effect - the effect to append
21
+ */
22
+ addEffect(effect: Base): Stack;
23
+ }
@@ -0,0 +1,73 @@
1
+ import { Visual } from '../layer/index';
2
+ import { Movie } from '../movie';
3
+ import { Dynamic } from '../util';
4
+ import { Base } from './base';
5
+ export interface TransformOptions {
6
+ matrix: Dynamic<Transform.Matrix>;
7
+ }
8
+ /**
9
+ * Transforms a layer or movie using a transformation matrix. Use {@link
10
+ * Transform.Matrix} to either A) calculate those values based on a series of
11
+ * translations, scalings and rotations) or B) input the matrix values
12
+ * directly, using the optional argument in the constructor.
13
+ */
14
+ declare class Transform extends Base {
15
+ /** Matrix that determines how to transform the target */
16
+ matrix: Dynamic<Transform.Matrix>;
17
+ private _tmpMatrix;
18
+ private _tmpCanvas;
19
+ private _tmpCtx;
20
+ /**
21
+ * @param matrix - matrix that determines how to transform the target
22
+ */
23
+ constructor(options: TransformOptions);
24
+ apply(target: Movie | Visual, reltime: number): void;
25
+ }
26
+ declare namespace Transform {
27
+ /**
28
+ * @class
29
+ * A 3x3 matrix for storing 2d transformations
30
+ */
31
+ class Matrix {
32
+ /**
33
+ * The identity matrix
34
+ */
35
+ static IDENTITY: Matrix;
36
+ private static _TMP_MATRIX;
37
+ data: number[];
38
+ constructor(data?: number[]);
39
+ identity(): Matrix;
40
+ /**
41
+ * @param x
42
+ * @param y
43
+ * @param [val]
44
+ */
45
+ cell(x: number, y: number, val?: number): number;
46
+ get a(): number;
47
+ get b(): number;
48
+ get c(): number;
49
+ get d(): number;
50
+ get e(): number;
51
+ get f(): number;
52
+ /**
53
+ * Combines <code>this</code> with another matrix <code>other</code>
54
+ * @param other
55
+ */
56
+ multiply(other: Matrix): Matrix;
57
+ /**
58
+ * @param x
59
+ * @param y
60
+ */
61
+ translate(x: number, y: number): Matrix;
62
+ /**
63
+ * @param x
64
+ * @param y
65
+ */
66
+ scale(x: number, y: number): Matrix;
67
+ /**
68
+ * @param a - the angle or rotation in radians
69
+ */
70
+ rotate(a: number): Matrix;
71
+ }
72
+ }
73
+ export { Transform };