提交 d1e4dbc9 编写于 作者: W WestLangley

Require target Vector2 in WebGLRenderer getSize() methods

上级 c4dff1c9
...@@ -351,14 +351,22 @@ ...@@ -351,14 +351,22 @@
<h3>[method:RenderTarget getCurrentViewport]()</h3> <h3>[method:RenderTarget getCurrentViewport]()</h3>
<p>Returns the current viewport.</p> <p>Returns the current viewport.</p>
<h3>[method:Object getDrawingBufferSize]()</h3> <h3>[method:Vector2 getDrawingBufferSize]( [param:Vector2 target] )</h3>
<p>Returns an object containing the width and height of the renderer's drawing buffer, in pixels.</p> <p>
[page:Vector2 target] — the result will be copied into this Vector2.<br /><br />
Returns the width and height of the renderer's drawing buffer, in pixels.
</p>
<h3>[method:number getPixelRatio]()</h3> <h3>[method:number getPixelRatio]()</h3>
<p>Returns current device pixel ratio used.</p> <p>Returns current device pixel ratio used.</p>
<h3>[method:Object getSize]()</h3> <h3>[method:Vector2 getSize]( [param:Vector2 target] )</h3>
<p>Returns an object containing the width and height of the renderer's output canvas, in pixels.</p> <p>
[page:Vector2 target] — the result will be copied into this Vector2.<br /><br />
Returns the width and height of the renderer's output canvas, in pixels.
</p>
<h3>[method:null resetGLState]( )</h3> <h3>[method:null resetGLState]( )</h3>
<p>Reset the GL state to default. Called internally if the WebGL context is lost.</p> <p>Reset the GL state to default. Called internally if the WebGL context is lost.</p>
......
...@@ -478,9 +478,9 @@ THREE.OutlineEffect = function ( renderer, parameters ) { ...@@ -478,9 +478,9 @@ THREE.OutlineEffect = function ( renderer, parameters ) {
}; };
this.getSize = function () { this.getSize = function ( target ) {
return renderer.getSize(); return renderer.getSize( target );
}; };
......
...@@ -9,6 +9,7 @@ THREE.StereoEffect = function ( renderer ) { ...@@ -9,6 +9,7 @@ THREE.StereoEffect = function ( renderer ) {
var _stereo = new THREE.StereoCamera(); var _stereo = new THREE.StereoCamera();
_stereo.aspect = 0.5; _stereo.aspect = 0.5;
var size = new THREE.Vector2();
this.setEyeSeparation = function ( eyeSep ) { this.setEyeSeparation = function ( eyeSep ) {
...@@ -30,7 +31,7 @@ THREE.StereoEffect = function ( renderer ) { ...@@ -30,7 +31,7 @@ THREE.StereoEffect = function ( renderer ) {
_stereo.update( camera ); _stereo.update( camera );
var size = renderer.getSize(); renderer.getSize( size );
if ( renderer.autoClear ) renderer.clear(); if ( renderer.autoClear ) renderer.clear();
renderer.setScissorTest( true ); renderer.setScissorTest( true );
......
...@@ -16,7 +16,7 @@ function NodePostProcessing( renderer, renderTarget ) { ...@@ -16,7 +16,7 @@ function NodePostProcessing( renderer, renderTarget ) {
stencilBuffer: false stencilBuffer: false
}; };
var size = renderer.getDrawingBufferSize(); var size = renderer.getDrawingBufferSize( new THREE.Vector2() );
renderTarget = new THREE.WebGLRenderTarget( size.width, size.height, parameters ); renderTarget = new THREE.WebGLRenderTarget( size.width, size.height, parameters );
} }
......
...@@ -15,7 +15,7 @@ THREE.EffectComposer = function ( renderer, renderTarget ) { ...@@ -15,7 +15,7 @@ THREE.EffectComposer = function ( renderer, renderTarget ) {
stencilBuffer: false stencilBuffer: false
}; };
var size = renderer.getDrawingBufferSize(); var size = renderer.getDrawingBufferSize( new THREE.Vector2() );
renderTarget = new THREE.WebGLRenderTarget( size.width, size.height, parameters ); renderTarget = new THREE.WebGLRenderTarget( size.width, size.height, parameters );
renderTarget.texture.name = 'EffectComposer.rt1'; renderTarget.texture.name = 'EffectComposer.rt1';
...@@ -64,7 +64,7 @@ Object.assign( THREE.EffectComposer.prototype, { ...@@ -64,7 +64,7 @@ Object.assign( THREE.EffectComposer.prototype, {
this.passes.push( pass ); this.passes.push( pass );
var size = this.renderer.getDrawingBufferSize(); var size = this.renderer.getDrawingBufferSize( new THREE.Vector2() );
pass.setSize( size.width, size.height ); pass.setSize( size.width, size.height );
}, },
...@@ -139,7 +139,7 @@ Object.assign( THREE.EffectComposer.prototype, { ...@@ -139,7 +139,7 @@ Object.assign( THREE.EffectComposer.prototype, {
if ( renderTarget === undefined ) { if ( renderTarget === undefined ) {
var size = this.renderer.getDrawingBufferSize(); var size = this.renderer.getDrawingBufferSize( new THREE.Vector2() );
renderTarget = this.renderTarget1.clone(); renderTarget = this.renderTarget1.clone();
renderTarget.setSize( size.width, size.height ); renderTarget.setSize( size.width, size.height );
......
...@@ -125,8 +125,8 @@ THREE.WebGLDeferredRenderer = function ( parameters ) { ...@@ -125,8 +125,8 @@ THREE.WebGLDeferredRenderer = function ( parameters ) {
_gl = _this.renderer.context; _gl = _this.renderer.context;
_width = parameters.width !== undefined ? parameters.width : _this.renderer.getSize().width; _width = parameters.width !== undefined ? parameters.width : _this.renderer.getSize( new THREE.Vector2() ).width;
_height = parameters.height !== undefined ? parameters.height : _this.renderer.getSize().height; _height = parameters.height !== undefined ? parameters.height : _this.renderer.getSize( new THREE.Vector2() ).height;
var antialias = parameters.antialias !== undefined ? parameters.antialias : false; var antialias = parameters.antialias !== undefined ? parameters.antialias : false;
......
...@@ -130,7 +130,7 @@ ...@@ -130,7 +130,7 @@
stencilBuffer: false stencilBuffer: false
}; };
var size = renderer.getDrawingBufferSize(); var size = renderer.getDrawingBufferSize( new THREE.Vector2() );
var renderTarget = new THREE.WebGLMultisampleRenderTarget( size.width, size.height, parameters ); var renderTarget = new THREE.WebGLMultisampleRenderTarget( size.width, size.height, parameters );
var renderPass = new THREE.RenderPass( scene, camera ); var renderPass = new THREE.RenderPass( scene, camera );
......
...@@ -369,7 +369,7 @@ ...@@ -369,7 +369,7 @@
// POST // POST
var size = renderer.getDrawingBufferSize(); var size = renderer.getDrawingBufferSize( new THREE.Vector2() );
var screen = new THREE.ScreenNode(); var screen = new THREE.ScreenNode();
...@@ -451,7 +451,7 @@ ...@@ -451,7 +451,7 @@
// POST // POST
var size = renderer.getDrawingBufferSize(); var size = renderer.getDrawingBufferSize( new THREE.Vector2() );
var blurScreen = new THREE.BlurNode( new THREE.ScreenNode() ); var blurScreen = new THREE.BlurNode( new THREE.ScreenNode() );
blurScreen.size = new THREE.Vector2( size.width, size.height ); blurScreen.size = new THREE.Vector2( size.width, size.height );
......
...@@ -432,7 +432,7 @@ ...@@ -432,7 +432,7 @@
// PASS // PASS
var size = renderer.getDrawingBufferSize(); var size = renderer.getDrawingBufferSize( new THREE.Vector2() );
var blurScreen = new THREE.BlurNode( new THREE.ScreenNode() ); var blurScreen = new THREE.BlurNode( new THREE.ScreenNode() );
blurScreen.size = new THREE.Vector2( size.width, size.height ); blurScreen.size = new THREE.Vector2( size.width, size.height );
......
...@@ -17,6 +17,7 @@ import { Matrix4 } from '../math/Matrix4.js'; ...@@ -17,6 +17,7 @@ import { Matrix4 } from '../math/Matrix4.js';
import { ShaderLib } from './shaders/ShaderLib.js'; import { ShaderLib } from './shaders/ShaderLib.js';
import { UniformsLib } from './shaders/UniformsLib.js'; import { UniformsLib } from './shaders/UniformsLib.js';
import { cloneUniforms } from './shaders/UniformsUtils.js'; import { cloneUniforms } from './shaders/UniformsUtils.js';
import { Vector2 } from '../math/Vector2.js';
import { Vector3 } from '../math/Vector3.js'; import { Vector3 } from '../math/Vector3.js';
import { Vector4 } from '../math/Vector4.js'; import { Vector4 } from '../math/Vector4.js';
import { WebGLAnimation } from './webgl/WebGLAnimation.js'; import { WebGLAnimation } from './webgl/WebGLAnimation.js';
...@@ -360,12 +361,17 @@ function WebGLRenderer( parameters ) { ...@@ -360,12 +361,17 @@ function WebGLRenderer( parameters ) {
}; };
this.getSize = function () { this.getSize = function ( target ) {
return { if ( target === undefined ) {
width: _width,
height: _height console.warn( 'WebGLRenderer: .getsize() now requires a Vector2 as an argument' );
};
target = new Vector2();
}
return target.set( _width, _height );
}; };
...@@ -395,12 +401,17 @@ function WebGLRenderer( parameters ) { ...@@ -395,12 +401,17 @@ function WebGLRenderer( parameters ) {
}; };
this.getDrawingBufferSize = function () { this.getDrawingBufferSize = function ( target ) {
return { if ( target === undefined ) {
width: _width * _pixelRatio,
height: _height * _pixelRatio console.warn( 'WebGLRenderer: .getdrawingBufferSize() now requires a Vector2 as an argument' );
};
target = new Vector2();
}
return target.set( _width * _pixelRatio, _height * _pixelRatio );
}; };
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册