683bbe01ff
In this CL: - Modify modules/canvaskit/gpu.js to support the use of OffscreenCanvas. - Add a CanvasKit demos.skia.org demo for CanvasKit in a Web Worker. Change-Id: I8c26bd94f2aa5b3c09cf149b056b910b0e4cd602 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/304320 Reviewed-by: Elliot Evans <elliotevans@google.com> Reviewed-by: Kevin Lubick <kjlubick@google.com> Reviewed-by: Nathaniel Nifong <nifong@google.com> Commit-Queue: Elliot Evans <elliotevans@google.com>
21 lines
643 B
JavaScript
21 lines
643 B
JavaScript
function SkottieExample(CanvasKit, surface, jsonStr, bounds) {
|
|
if (!CanvasKit || !jsonStr) {
|
|
return;
|
|
}
|
|
const animation = CanvasKit.MakeAnimation(jsonStr);
|
|
const duration = animation.duration() * 1000;
|
|
bounds = {fLeft: 0, fTop: 0, fRight: 500, fBottom: 500};
|
|
|
|
const firstFrame = performance.now();
|
|
|
|
function drawFrame(skcanvas) {
|
|
const now = performance.now();
|
|
const seek = ((now - firstFrame) / duration) % 1.0;
|
|
|
|
animation.seek(seek);
|
|
animation.render(skcanvas, bounds);
|
|
|
|
surface.requestAnimationFrame(drawFrame);
|
|
}
|
|
surface.requestAnimationFrame(drawFrame);
|
|
} |