|
@@ -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,
|
|
|
|
|
@@ -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 );
|
|
@@ -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;
|
|
@@ -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;
|
|
|
|