Skip to content

Commit

Permalink
Retina display pixel ratio viewport fix
Browse files Browse the repository at this point in the history
  • Loading branch information
rennat committed Mar 7, 2014
1 parent 6eb81f4 commit 6d7d95e
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions public/javascript/viewer.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ define(["THREE", "compass", "viewer_controls"], function(THREE, Compass, ViewerC
controls, compass,
render, animate, add3DObject, invalidate, zoomToFit,
renderTargetParametersRGBA, depthTarget, depthPassPlugin,
composer, renderPassSSAO, renderPassFXAA;
composer, renderPassSSAO, renderPassFXAA,
devicePixelRatio = typeof(window.devicePixelRatio) !== 'undefined' ? window.devicePixelRatio : 1;

renderTargetParametersRGBA = {
minFilter: THREE.LinearFilter,
Expand All @@ -31,9 +32,10 @@ define(["THREE", "compass", "viewer_controls"], function(THREE, Compass, ViewerC
alpha: true
});
this.renderer = renderer;

renderer.setClearColor(CADjs.getThemeValue('canvasClearColor'));
renderer.setSize(canvasParent.offsetWidth, canvasParent.offsetHeight);
renderer.setViewport(0, 0, canvasParent.offsetWidth * devicePixelRatio, canvasParent.offsetHeight * devicePixelRatio);
renderer.sortObjects = true;
renderer.autoClear = false;
// DEPTH PASS
Expand Down Expand Up @@ -163,12 +165,14 @@ define(["THREE", "compass", "viewer_controls"], function(THREE, Compass, ViewerC

// SCREEN RESIZE
window.addEventListener("resize", function() {
devicePixelRatio = typeof(window.devicePixelRatio) !== 'undefined' ? window.devicePixelRatio : 1;
depthTarget = new THREE.WebGLRenderTarget(canvasParent.offsetWidth, canvasParent.offsetHeight, renderTargetParametersRGBA);
depthPassPlugin.renderTarget = depthTarget;
renderPassSSAO.uniforms['tDepth'].value = depthTarget;
renderPassSSAO.uniforms['size'].value.set(canvasParent.offsetWidth, canvasParent.offsetHeight);
renderPassFXAA.uniforms['resolution'].value.set(1/canvasParent.offsetWidth, 1/canvasParent.offsetHeight);
renderer.setSize(canvasParent.offsetWidth, canvasParent.offsetHeight);
renderer.setViewport(0, 0, canvasParent.offsetWidth * devicePixelRatio, canvasParent.offsetHeight * devicePixelRatio);
camera.aspect = canvasParent.offsetWidth / canvasParent.offsetHeight;
camera.updateProjectionMatrix();
camera.lookAt(geometryScene.position);
Expand Down

0 comments on commit 6d7d95e

Please sign in to comment.