@visactor/vrender-core
Version:
## Description
73 lines (66 loc) • 3.11 kB
JavaScript
var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
return c > 3 && r && Object.defineProperty(target, key, r), r;
}, __metadata = this && this.__metadata || function(k, v) {
if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(k, v);
};
import { injectable } from "../../../common/inversify-lite";
import { wrapCanvas } from "../../../canvas/util";
import { application } from "../../../application";
let OffscreenLayerHandlerContribution = class {
constructor() {
this.offscreen = !0, this.type = "dynamic", this.global = application.global;
}
setDpr(dpr) {
this.canvas.dpr = dpr;
}
init(layer, window, params) {
this.layer = layer;
const nativeCanvas = this.global.createOffscreenCanvas({
width: params.width,
height: params.height,
dpr: window.dpr
}), canvas = wrapCanvas({
nativeCanvas: nativeCanvas,
width: params.width,
height: params.height,
dpr: window.dpr,
canvasControled: !0
});
this.canvas = canvas, this.context = canvas.getContext();
}
resize(w, h) {
this.canvas.resize(w, h);
}
resizeView(w, h) {
this.canvas.resize(w, h);
}
render(group, params) {
var _a;
params.renderService.render(group, Object.assign(Object.assign({
context: this.context,
viewBox: params.stage.window.getViewBox(),
transMatrix: params.stage.window.getViewBoxTransform()
}, params), {
clear: null !== (_a = params.background) && void 0 !== _a ? _a : "#ffffff"
}));
}
prepare(dirtyBounds, params) {}
release() {
this.canvas.release();
}
getContext() {
return this.context;
}
drawTo(target, group, params) {
const context = target.getContext(), targetDpr = target.dpr, {viewBox: viewBox} = params, x = viewBox.x1, y = viewBox.y1, width = viewBox.width(), height = viewBox.height();
context.nativeContext.save(), context.nativeContext.setTransform(targetDpr, 0, 0, targetDpr, 0, 0),
params.clear && context.clearRect(x, y, width, height), context.drawImage(this.canvas.nativeCanvas, 0, 0, this.canvas.width, this.canvas.height, x, y, width, height),
context.nativeContext.restore();
}
merge(layerHandlers) {}
};
OffscreenLayerHandlerContribution = __decorate([ injectable(), __metadata("design:paramtypes", []) ], OffscreenLayerHandlerContribution);
export { OffscreenLayerHandlerContribution };
//# sourceMappingURL=offscreen2d-contribution.js.map