WIP: fix performance with helper layer

main
Isaiah Odhner 2019-10-01 00:02:48 -04:00
parent df021f1540
commit c6489773dd
1 changed files with 14 additions and 7 deletions

View File

@ -5,21 +5,28 @@ function update_magnified_canvas_size(){
}
function update_helper_layer() {
var scale = Math.floor(magnification * window.devicePixelRatio);
// var scale = Math.floor(window.devicePixelRatio);
if (!helper_layer) {
helper_layer = new OnCanvasHelperLayer(0, 0, canvas.width, canvas.height, false, scale);
}
var viewport_width = $canvas_area.width();
var viewport_height = $canvas_area.height();
var viewport_x = $canvas_area.scrollLeft();
var viewport_y = $canvas_area.scrollTop();
if (
helper_layer.canvas.width !== canvas.width * scale ||
helper_layer.canvas.height !== canvas.height * scale
helper_layer.canvas.width !== viewport_width * scale / magnification ||
helper_layer.canvas.height !== viewport_height * scale / magnification
) {
helper_layer.canvas.width = canvas.width * scale;
helper_layer.canvas.height = canvas.height * scale;
helper_layer.width = canvas.width;
helper_layer.height = canvas.height;
helper_layer.canvas.width = viewport_width * scale / magnification;
helper_layer.canvas.height = viewport_height * scale / magnification;
helper_layer.canvas.ctx.disable_image_smoothing();
helper_layer.position();
helper_layer.width = viewport_width / magnification;
helper_layer.height = viewport_height / magnification;
}
helper_layer.x = viewport_x / magnification;
helper_layer.y = viewport_y / magnification;
helper_layer.position();
var hcanvas = helper_layer.canvas;
var hctx = hcanvas.ctx;