@rive-app/webgl 1.0.2 → 1.0.6

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.
@@ -0,0 +1,304 @@
1
+ interface RiveOptions {
2
+ locateFile(file: string): string
3
+ }
4
+
5
+ declare function Rive(options: RiveOptions): Promise<RiveCanvas>;
6
+ export default Rive;
7
+
8
+ export interface RiveCanvas {
9
+ Alignment: AlignmentFactory;
10
+ CanvasRenderer: typeof CanvasRenderer;
11
+ LinearAnimationInstance: typeof LinearAnimationInstance;
12
+ StateMachineInstance: typeof StateMachineInstance;
13
+ SMIInput: typeof SMIInput;
14
+ renderFactory: CanvasRenderFactory;
15
+
16
+ BlendMode: typeof BlendMode;
17
+ FillRule: typeof FillRule;
18
+ Fit: typeof Fit;
19
+ RenderPaintStyle: typeof RenderPaintStyle;
20
+ StrokeCap: typeof StrokeCap;
21
+ StrokeJoin: typeof StrokeJoin;
22
+
23
+ load(buffer: Uint8Array): File;
24
+ makeRenderer(canvas: HTMLCanvasElement | OffscreenCanvas) : CanvasRenderer;
25
+ }
26
+
27
+ //////////////
28
+ // RENDERER //
29
+ //////////////
30
+
31
+ export declare class RendererWrapper {
32
+ save(): void;
33
+ restore(): void;
34
+ transform(tranform: Mat2D): void;
35
+ drawPath(path: RenderPath, paint: RenderPaint): void;
36
+ clipPath(path: RenderPath): void;
37
+ clear(): void;
38
+ flush(): void;
39
+ }
40
+
41
+ export declare class RenderPathWrapper {
42
+ reset(): void;
43
+ addPath(path: CommandPath, transform: Mat2D): void;
44
+ fillRule(value: FillRule): void;
45
+ moveTo(x: number, y: number): void
46
+ lineTo(x: number, y: number): void
47
+ cubicTo(ox: number, oy: number, ix: number, iy: number, x: number, y: number): void;
48
+ close(): void;
49
+ }
50
+
51
+ export declare class RenderPaintWrapper {
52
+ color(value: number): void;
53
+ thickness(value: number): void;
54
+ join(value: StrokeJoin): void;
55
+ cap(value: StrokeCap): void;
56
+ blendMode(value: BlendMode): void;
57
+ style(value: RenderPaintStyle): void;
58
+ linearGradient(sx: number, sy: number, ex: number, ey: number): void;
59
+ radialGradient(sx: number, sy: number, ex: number, ey: number): void;
60
+ addStop(color: number, stop: number): void;
61
+ completeGradient(): void;
62
+ }
63
+
64
+ export declare class Renderer extends RendererWrapper {
65
+ align(fit: Fit, alignment: Alignment, frame: AABB, content: AABB): void
66
+ }
67
+
68
+ export declare class CommandPath { }
69
+
70
+ export declare class RenderPath extends RenderPathWrapper { }
71
+
72
+ export declare class RenderPaint extends RenderPaintWrapper { }
73
+
74
+
75
+ /////////////////////
76
+ // CANVAS RENDERER //
77
+ /////////////////////
78
+
79
+ export declare class CanvasRenderer extends Renderer {
80
+ constructor(ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D);
81
+ }
82
+
83
+ export declare class CanvasRenderPaint extends RenderPaint {
84
+ draw(ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, path: RenderPath): void;
85
+ }
86
+
87
+ export declare class CanvasRenderPath extends RenderPath { }
88
+
89
+ export interface CanvasRenderFactory {
90
+ makeRenderPaint(): CanvasRenderPaint;
91
+ makeRenderPath(): CanvasRenderPath;
92
+ }
93
+
94
+ //////////
95
+ // File //
96
+ //////////
97
+ export declare class File {
98
+ defaultArtboard(): Artboard;
99
+ artboardByName(name: string): Artboard;
100
+ artboardByIndex(index: number): Artboard;
101
+ artboardCount(): number;
102
+ }
103
+ export declare class Artboard {
104
+ get name(): string;
105
+ get bounds(): AABB;
106
+ instance(): Artboard;
107
+ // Deletes the backing wasm artboard instance
108
+ delete(): void;
109
+ advance(sec: number): any;
110
+ draw(renderer: CanvasRenderer): void;
111
+ animationByName(name: string): LinearAnimation;
112
+ animationByIndex(index: number): LinearAnimation;
113
+ animationCount(): number;
114
+ stateMachineByName(name: string): StateMachine;
115
+ stateMachineByIndex(index: number): StateMachine;
116
+ stateMachineCount(): number;
117
+ bone(name: string): Bone;
118
+ node(name: string): Node;
119
+ rootBone(name: string): RootBone;
120
+ transformComponent(name: string): TransformComponent;
121
+ }
122
+
123
+ export declare class Bone extends TransformComponent {
124
+ length: number;
125
+ }
126
+
127
+ export declare class RootBone extends Bone {
128
+ x: number;
129
+ y: number;
130
+ }
131
+
132
+ export declare class Node extends TransformComponent {
133
+ x: number;
134
+ y: number;
135
+ }
136
+
137
+ export declare class TransformComponent {
138
+ rotation: number;
139
+ scaleX: number;
140
+ scaleY: number;
141
+ }
142
+
143
+ ///////////////
144
+ // Animation //
145
+ ///////////////
146
+ export declare class LinearAnimation {
147
+ get name(): string;
148
+ get duration(): number;
149
+ get fps(): number;
150
+ get workStart(): number;
151
+ get workEnd(): number;
152
+ get loopValue(): number;
153
+ get speed(): number;
154
+ apply(artboard: Artboard, time: number, mix: number): void;
155
+ }
156
+ export declare class LinearAnimationInstance {
157
+ /** Time of the animation in seconds */
158
+ time: number;
159
+ didLoop: boolean;
160
+ constructor(animation: LinearAnimation);
161
+ advance(sec: number): any;
162
+ /**
163
+ * Apply animation on the artboard
164
+ * @param artboard the Artboard on which apply the frame.
165
+ * @param mix 0-1 the strength of the animation in the animations mix.
166
+ */
167
+ apply(artboard: Artboard, mix: number): any;
168
+ // Deletes the backing Wasm animation instance
169
+ delete(): void;
170
+ }
171
+
172
+ export declare class StateMachine {
173
+ get name(): string;
174
+ }
175
+
176
+ export declare class StateMachineInstance {
177
+ constructor(stateMachine: StateMachine);
178
+ inputCount(): number;
179
+ input(i: number): SMIInput;
180
+ advance(artboard: Artboard, sec: number): any;
181
+ stateChangedCount(): number;
182
+ stateChangedNameByIndex(i: number): string;
183
+ // Deletes the backing Wasm state machine instance
184
+ delete(): void;
185
+ }
186
+
187
+ export declare class SMIInput {
188
+ static bool: number;
189
+ static number: number;
190
+ static trigger: number;
191
+
192
+ get name(): string;
193
+ get type(): number;
194
+ get value(): boolean | number | undefined;
195
+ set value(val: boolean | number | undefined);
196
+ fire(): void;
197
+ asBool(): SMIInput;
198
+ asNumber(): SMIInput;
199
+ asTrigger(): SMIInput;
200
+ }
201
+
202
+ export declare class SMIBool {
203
+
204
+ }
205
+
206
+ export declare class SMINumber {
207
+
208
+ }
209
+
210
+ export declare class SMITrigger {
211
+
212
+ }
213
+
214
+ ///////////
215
+ // ENUMS //
216
+ ///////////
217
+
218
+ export enum Fit {
219
+ fill,
220
+ contain,
221
+ cover,
222
+ fitWidth,
223
+ fitHeight,
224
+ none,
225
+ scaleDown,
226
+ }
227
+
228
+ export enum RenderPaintStyle {
229
+ fill,
230
+ stroke,
231
+ }
232
+
233
+ export enum FillRule {
234
+ nonZero,
235
+ evenOdd,
236
+ }
237
+
238
+ export enum StrokeCap {
239
+ butt,
240
+ round,
241
+ square,
242
+ }
243
+ export enum StrokeJoin {
244
+ miter,
245
+ round,
246
+ bevel,
247
+ }
248
+
249
+ export enum BlendMode {
250
+ srcOver = 3,
251
+ screen = 14,
252
+ overlay = 15,
253
+ darken = 16,
254
+ lighten = 17,
255
+ colorDodge = 18,
256
+ colorBurn = 19,
257
+ hardLight = 20,
258
+ softLight = 21,
259
+ difference = 22,
260
+ exclusion = 23,
261
+ multiply = 24,
262
+ hue = 25,
263
+ saturation = 26,
264
+ color = 27,
265
+ luminosity = 28,
266
+ }
267
+
268
+ ///////////
269
+ // UTILS //
270
+ ///////////
271
+
272
+ export declare class Alignment {
273
+ get x(): number;
274
+ get y(): number;
275
+ }
276
+
277
+ export declare class AlignmentFactory {
278
+ get topLeft(): Alignment;
279
+ get topCenter(): Alignment;
280
+ get topRight(): Alignment;
281
+ get centerLeft(): Alignment;
282
+ get center(): Alignment;
283
+ get centerRight(): Alignment;
284
+ get bottomLeft(): Alignment;
285
+ get bottomCenter(): Alignment;
286
+ get bottomRight(): Alignment;
287
+ }
288
+
289
+ export interface AABB {
290
+ minX: number;
291
+ minY: number;
292
+ maxX: number;
293
+ maxY: number;
294
+ }
295
+
296
+ export declare class Mat2D {
297
+ xx: number;
298
+ xy: number;
299
+ yx: number;
300
+ yy: number;
301
+ tx: number;
302
+ ty: number;
303
+ }
304
+