Skip to content

Commit

Permalink
Added devicePixelRatio to CanvasRenderer and WebGLRenderer.
Browse files Browse the repository at this point in the history
  • Loading branch information
mrdoob committed Dec 23, 2012
1 parent ae7cf6e commit 2feae0e
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 12 deletions.
34 changes: 24 additions & 10 deletions src/renderers/CanvasRenderer.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,19 @@ THREE.CanvasRenderer = function ( parameters ) {
_renderData, _elements, _lights,
_projector = new THREE.Projector(),

_canvas = parameters.canvas !== undefined ? parameters.canvas : document.createElement( 'canvas' ),
_canvas = parameters.canvas !== undefined
? parameters.canvas
: document.createElement( 'canvas' ),

_canvasWidth, _canvasHeight, _canvasWidthHalf, _canvasHeightHalf,
_context = _canvas.getContext( '2d' ),

_devicePixelRatio = parameters.devicePixelRatio !== undefined
? parameters.devicePixelRatio
: window.devicePixelRatio !== undefined
? window.devicePixelRatio
: 1,

_clearColor = new THREE.Color( 0x000000 ),
_clearOpacity = 0,

Expand Down Expand Up @@ -104,14 +112,18 @@ THREE.CanvasRenderer = function ( parameters ) {

this.setSize = function ( width, height ) {

_canvasWidth = width;
_canvasHeight = height;
_canvasWidth = width * _devicePixelRatio;
_canvasHeight = height * _devicePixelRatio;

_canvasWidthHalf = Math.floor( _canvasWidth / 2 );
_canvasHeightHalf = Math.floor( _canvasHeight / 2 );

_canvas.width = _canvasWidth;
_canvas.height = _canvasHeight;

_canvas.style.width = width + 'px';
_canvas.style.height = height + 'px';

_clipBox.min.set( - _canvasWidthHalf, - _canvasHeightHalf );
_clipBox.max.set( _canvasWidthHalf, _canvasHeightHalf );
_clearBox.min.set( - _canvasWidthHalf, - _canvasHeightHalf );
Expand Down Expand Up @@ -195,11 +207,13 @@ THREE.CanvasRenderer = function ( parameters ) {

}

var e, el, element, material;
if ( this.autoClear === true ) {

this.clear();

this.autoClear === true
? this.clear()
: _context.setTransform( 1, 0, 0, - 1, _canvasWidthHalf, _canvasHeightHalf );
}

_context.setTransform( 1, 0, 0, - 1, _canvasWidthHalf, _canvasHeightHalf );

_this.info.render.vertices = 0;
_this.info.render.faces = 0;
Expand All @@ -221,11 +235,11 @@ THREE.CanvasRenderer = function ( parameters ) {

}

for ( e = 0, el = _elements.length; e < el; e++ ) {
for ( var e = 0, el = _elements.length; e < el; e++ ) {

element = _elements[ e ];
var element = _elements[ e ];

material = element.material;
var material = element.material;

if ( material === undefined || material.visible === false ) continue;

Expand Down
12 changes: 10 additions & 2 deletions src/renderers/WebGLRenderer.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@ THREE.WebGLRenderer = function ( parameters ) {
_antialias = parameters.antialias !== undefined ? parameters.antialias : false,
_stencil = parameters.stencil !== undefined ? parameters.stencil : true,
_preserveDrawingBuffer = parameters.preserveDrawingBuffer !== undefined ? parameters.preserveDrawingBuffer : false,
_devicePixelRatio = parameters.devicePixelRatio !== undefined
? parameters.devicePixelRatio
: window.devicePixelRatio !== undefined
? window.devicePixelRatio
: 1,

_clearColor = parameters.clearColor !== undefined ? new THREE.Color( parameters.clearColor ) : new THREE.Color( 0x000000 ),
_clearAlpha = parameters.clearAlpha !== undefined ? parameters.clearAlpha : 0;
Expand Down Expand Up @@ -266,8 +271,11 @@ THREE.WebGLRenderer = function ( parameters ) {

this.setSize = function ( width, height ) {

_canvas.width = width;
_canvas.height = height;
_canvas.width = width * _devicePixelRatio;
_canvas.height = height * _devicePixelRatio;

_canvas.style.width = width + 'px';
_canvas.style.height = height + 'px';

this.setViewport( 0, 0, _canvas.width, _canvas.height );

Expand Down

0 comments on commit 2feae0e

Please sign in to comment.