提交 2feae0ee 编写于 作者: M Mr.doob

Added devicePixelRatio to CanvasRenderer and WebGLRenderer.

上级 ae7cf6e2
......@@ -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;
......
......@@ -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;
......@@ -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 );
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册