From 8c6029d52d9a525aeab734ef55f8d085111cb79c Mon Sep 17 00:00:00 2001 From: Viktor Kovacs Date: Thu, 22 Apr 2021 08:10:43 +0200 Subject: [PATCH] Hi-DPI aware #60 Take device pixel ration in consideration when initializing renderer and when saving to a fixed size png. --- source/viewer/viewer.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/source/viewer/viewer.js b/source/viewer/viewer.js index f33b2a0..a964e0c 100644 --- a/source/viewer/viewer.js +++ b/source/viewer/viewer.js @@ -104,6 +104,9 @@ OV.Viewer = class }; this.renderer = new THREE.WebGLRenderer (parameters); + if (window.devicePixelRatio) { + this.renderer.setPixelRatio (window.devicePixelRatio); + } this.renderer.setClearColor ('#ffffff', 1.0); this.renderer.setSize (this.canvas.width, this.canvas.height); @@ -394,7 +397,13 @@ OV.Viewer = class GetImageAsDataUrl (width, height) { let originalSize = this.GetImageSize (); - this.ResizeRenderer (width, height); + let renderWidth = width; + let renderHeight = height; + if (window.devicePixelRatio) { + renderWidth /= window.devicePixelRatio; + renderHeight /= window.devicePixelRatio; + } + this.ResizeRenderer (renderWidth, renderHeight); this.Render (); let url = this.renderer.domElement.toDataURL (); this.ResizeRenderer (originalSize.width, originalSize.height);