@revideo/2d 0.4.9-alpha.1038 → 0.4.9-test.1044
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/editor/editor/tsconfig.build.tsbuildinfo +1 -1
- package/lib/components/Rive.d.ts +21 -0
- package/lib/components/Rive.d.ts.map +1 -0
- package/lib/components/Rive.js +114 -0
- package/lib/components/index.d.ts +1 -0
- package/lib/components/index.d.ts.map +1 -1
- package/lib/components/index.js +2 -1
- package/lib/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +5 -4
- package/src/lib/components/Rive.ts +156 -0
- package/src/lib/components/index.ts +1 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { BBox, useThread, viaProxy, } from '@revideo/core';
|
|
8
|
+
import RiveInitializer from '@rive-app/canvas-advanced';
|
|
9
|
+
import { computed, initial, nodeName, signal } from '../decorators';
|
|
10
|
+
import { Asset } from './Asset';
|
|
11
|
+
let Rive = class Rive extends Asset {
|
|
12
|
+
constructor(props) {
|
|
13
|
+
super(props);
|
|
14
|
+
this.currentTime = 0;
|
|
15
|
+
this.lastTime = 0;
|
|
16
|
+
const time = useThread().time;
|
|
17
|
+
const start = time();
|
|
18
|
+
this.time(() => time() - start);
|
|
19
|
+
}
|
|
20
|
+
async rive() {
|
|
21
|
+
const src = viaProxy(this.fullSource());
|
|
22
|
+
const rive = await RiveInitializer({
|
|
23
|
+
locateFile: () => {
|
|
24
|
+
return '/@rive-wasm';
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
const canvas = document.createElement('canvas');
|
|
28
|
+
canvas.width = this.width();
|
|
29
|
+
canvas.height = this.height();
|
|
30
|
+
const renderer = rive.makeRenderer(canvas);
|
|
31
|
+
const bytes = await (await fetch(new Request(src))).arrayBuffer();
|
|
32
|
+
const file = (await rive.load(new Uint8Array(bytes)));
|
|
33
|
+
const artboardId = this.artboardId();
|
|
34
|
+
const artboard = this.getArtboard(artboardId, file);
|
|
35
|
+
const animationId = this.animationId();
|
|
36
|
+
const animation = this.getAnimation(animationId, artboard, rive);
|
|
37
|
+
return { rive, renderer, artboard, animation, canvas };
|
|
38
|
+
}
|
|
39
|
+
async draw(context) {
|
|
40
|
+
this.drawShape(context);
|
|
41
|
+
const { rive, renderer, canvas, artboard, animation } = await this.rive();
|
|
42
|
+
const box = BBox.fromSizeCentered(this.computedSize());
|
|
43
|
+
this.currentTime = this.time();
|
|
44
|
+
const timeToAdvance = this.currentTime - this.lastTime;
|
|
45
|
+
this.lastTime = this.currentTime;
|
|
46
|
+
const renderPromise = new Promise(resolve => {
|
|
47
|
+
function renderLoop() {
|
|
48
|
+
renderer.clear();
|
|
49
|
+
animation.advance(timeToAdvance);
|
|
50
|
+
animation.apply(1);
|
|
51
|
+
artboard.advance(timeToAdvance);
|
|
52
|
+
renderer.save();
|
|
53
|
+
renderer.align(rive.Fit.fill, rive.Alignment.center, {
|
|
54
|
+
minX: 0,
|
|
55
|
+
minY: 0,
|
|
56
|
+
maxX: canvas.width,
|
|
57
|
+
maxY: canvas.height,
|
|
58
|
+
}, artboard.bounds);
|
|
59
|
+
artboard.draw(renderer);
|
|
60
|
+
renderer.restore();
|
|
61
|
+
resolve();
|
|
62
|
+
}
|
|
63
|
+
rive.requestAnimationFrame(renderLoop);
|
|
64
|
+
});
|
|
65
|
+
await renderPromise;
|
|
66
|
+
context.drawImage(canvas, box.x, box.y, box.width, box.height);
|
|
67
|
+
if (this.clip()) {
|
|
68
|
+
context.clip(this.getPath());
|
|
69
|
+
}
|
|
70
|
+
await this.drawChildren(context);
|
|
71
|
+
}
|
|
72
|
+
getArtboard(artboardId, file) {
|
|
73
|
+
if (typeof artboardId === 'string') {
|
|
74
|
+
return file.artboardByName(artboardId);
|
|
75
|
+
}
|
|
76
|
+
if (typeof artboardId === 'number') {
|
|
77
|
+
return file.artboardByIndex(artboardId);
|
|
78
|
+
}
|
|
79
|
+
return file.defaultArtboard();
|
|
80
|
+
}
|
|
81
|
+
getAnimation(animationId, artboard, rive) {
|
|
82
|
+
let animation;
|
|
83
|
+
if (typeof animationId === 'number') {
|
|
84
|
+
animation = artboard.animationByIndex(animationId);
|
|
85
|
+
}
|
|
86
|
+
else if (typeof animationId === 'string') {
|
|
87
|
+
animation = artboard.animationByName(animationId);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
animation = artboard.animationByIndex(0);
|
|
91
|
+
}
|
|
92
|
+
return new rive.LinearAnimationInstance(animation, artboard);
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
__decorate([
|
|
96
|
+
initial(0),
|
|
97
|
+
signal()
|
|
98
|
+
], Rive.prototype, "artboardId", void 0);
|
|
99
|
+
__decorate([
|
|
100
|
+
initial(0),
|
|
101
|
+
signal()
|
|
102
|
+
], Rive.prototype, "animationId", void 0);
|
|
103
|
+
__decorate([
|
|
104
|
+
initial(0),
|
|
105
|
+
signal()
|
|
106
|
+
], Rive.prototype, "time", void 0);
|
|
107
|
+
__decorate([
|
|
108
|
+
computed()
|
|
109
|
+
], Rive.prototype, "rive", null);
|
|
110
|
+
Rive = __decorate([
|
|
111
|
+
nodeName('Rive')
|
|
112
|
+
], Rive);
|
|
113
|
+
export { Rive };
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUml2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9SaXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFDTCxJQUFJLEVBR0osU0FBUyxFQUNULFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLGVBTU4sTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFrQnZCLElBQU0sSUFBSSxHQUFWLE1BQU0sSUFBSyxTQUFRLEtBQUs7SUFnQjdCLFlBQW1CLEtBQWdCO1FBQ2pDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUpMLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBQ3hCLGFBQVEsR0FBVyxDQUFDLENBQUM7UUFLN0IsTUFBTSxJQUFJLEdBQUcsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQzlCLE1BQU0sS0FBSyxHQUFHLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUdhLEFBQU4sS0FBSyxDQUFDLElBQUk7UUFDaEIsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sSUFBSSxHQUFHLE1BQU0sZUFBZSxDQUFDO1lBQ2pDLFVBQVUsRUFBRSxHQUFHLEVBQUU7Z0JBQ2YsT0FBTyxhQUFhLENBQUM7WUFDdkIsQ0FBQztTQUNGLENBQUMsQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsTUFBTSxDQUFD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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
|
package/lib/components/index.js
CHANGED
|
@@ -18,6 +18,7 @@ export * from './Polygon';
|
|
|
18
18
|
export * from './QuadBezier';
|
|
19
19
|
export * from './Ray';
|
|
20
20
|
export * from './Rect';
|
|
21
|
+
export * from './Rive';
|
|
21
22
|
export * from './SVG';
|
|
22
23
|
export * from './Shape';
|
|
23
24
|
export * from './Spline';
|
|
@@ -25,4 +26,4 @@ export * from './Txt';
|
|
|
25
26
|
export * from './Video';
|
|
26
27
|
export * from './View2D';
|
|
27
28
|
export * from './types';
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxTQUFTLENBQUMifQ==
|