Skip to content

Commit

Permalink
Require target Vector2 in WebGLRenderer getSize() methods
Browse files Browse the repository at this point in the history
  • Loading branch information
WestLangley committed Feb 6, 2019
1 parent c4dff1c commit d1e4dbc
Show file tree
Hide file tree
Showing 10 changed files with 47 additions and 27 deletions.
16 changes: 12 additions & 4 deletions docs/api/en/renderers/WebGLRenderer.html
Original file line number Diff line number Diff line change
Expand Up @@ -351,14 +351,22 @@ <h3>[method:RenderTarget getRenderTarget]()</h3>
<h3>[method:RenderTarget getCurrentViewport]()</h3>
<p>Returns the current viewport.</p>

<h3>[method:Object getDrawingBufferSize]()</h3>
<p>Returns an object containing the width and height of the renderer's drawing buffer, in pixels.</p>
<h3>[method:Vector2 getDrawingBufferSize]( [param:Vector2 target] )</h3>
<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>
<p>Returns current device pixel ratio used.</p>

<h3>[method:Object getSize]()</h3>
<p>Returns an object containing the width and height of the renderer's output canvas, in pixels.</p>
<h3>[method:Vector2 getSize]( [param:Vector2 target] )</h3>
<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>
<p>Reset the GL state to default. Called internally if the WebGL context is lost.</p>
Expand Down
4 changes: 2 additions & 2 deletions examples/js/effects/OutlineEffect.js
Original file line number Diff line number Diff line change
Expand Up @@ -478,9 +478,9 @@ THREE.OutlineEffect = function ( renderer, parameters ) {

};

this.getSize = function () {
this.getSize = function ( target ) {

return renderer.getSize();
return renderer.getSize( target );

};

Expand Down
3 changes: 2 additions & 1 deletion examples/js/effects/StereoEffect.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ THREE.StereoEffect = function ( renderer ) {

var _stereo = new THREE.StereoCamera();
_stereo.aspect = 0.5;
var size = new THREE.Vector2();

this.setEyeSeparation = function ( eyeSep ) {

Expand All @@ -30,7 +31,7 @@ THREE.StereoEffect = function ( renderer ) {

_stereo.update( camera );

var size = renderer.getSize();
renderer.getSize( size );

if ( renderer.autoClear ) renderer.clear();
renderer.setScissorTest( true );
Expand Down
2 changes: 1 addition & 1 deletion examples/js/nodes/postprocessing/NodePostProcessing.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ function NodePostProcessing( renderer, renderTarget ) {
stencilBuffer: false
};

var size = renderer.getDrawingBufferSize();
var size = renderer.getDrawingBufferSize( new THREE.Vector2() );
renderTarget = new THREE.WebGLRenderTarget( size.width, size.height, parameters );

}
Expand Down
6 changes: 3 additions & 3 deletions examples/js/postprocessing/EffectComposer.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ THREE.EffectComposer = function ( renderer, renderTarget ) {
stencilBuffer: false
};

var size = renderer.getDrawingBufferSize();
var size = renderer.getDrawingBufferSize( new THREE.Vector2() );
renderTarget = new THREE.WebGLRenderTarget( size.width, size.height, parameters );
renderTarget.texture.name = 'EffectComposer.rt1';

Expand Down Expand Up @@ -64,7 +64,7 @@ Object.assign( THREE.EffectComposer.prototype, {

this.passes.push( pass );

var size = this.renderer.getDrawingBufferSize();
var size = this.renderer.getDrawingBufferSize( new THREE.Vector2() );
pass.setSize( size.width, size.height );

},
Expand Down Expand Up @@ -139,7 +139,7 @@ Object.assign( THREE.EffectComposer.prototype, {

if ( renderTarget === undefined ) {

var size = this.renderer.getDrawingBufferSize();
var size = this.renderer.getDrawingBufferSize( new THREE.Vector2() );

renderTarget = this.renderTarget1.clone();
renderTarget.setSize( size.width, size.height );
Expand Down
4 changes: 2 additions & 2 deletions examples/js/renderers/WebGLDeferredRenderer.js
Original file line number Diff line number Diff line change
Expand Up @@ -125,8 +125,8 @@ THREE.WebGLDeferredRenderer = function ( parameters ) {

_gl = _this.renderer.context;

_width = parameters.width !== undefined ? parameters.width : _this.renderer.getSize().width;
_height = parameters.height !== undefined ? parameters.height : _this.renderer.getSize().height;
_width = parameters.width !== undefined ? parameters.width : _this.renderer.getSize( new THREE.Vector2() ).width;
_height = parameters.height !== undefined ? parameters.height : _this.renderer.getSize( new THREE.Vector2() ).height;

var antialias = parameters.antialias !== undefined ? parameters.antialias : false;

Expand Down
2 changes: 1 addition & 1 deletion examples/webgl2_multisampled_renderbuffers.html
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@
stencilBuffer: false
};

var size = renderer.getDrawingBufferSize();
var size = renderer.getDrawingBufferSize( new THREE.Vector2() );
var renderTarget = new THREE.WebGLMultisampleRenderTarget( size.width, size.height, parameters );

var renderPass = new THREE.RenderPass( scene, camera );
Expand Down
4 changes: 2 additions & 2 deletions examples/webgl_postprocessing_nodes.html
Original file line number Diff line number Diff line change
Expand Up @@ -369,7 +369,7 @@

// POST

var size = renderer.getDrawingBufferSize();
var size = renderer.getDrawingBufferSize( new THREE.Vector2() );

var screen = new THREE.ScreenNode();

Expand Down Expand Up @@ -451,7 +451,7 @@

// POST

var size = renderer.getDrawingBufferSize();
var size = renderer.getDrawingBufferSize( new THREE.Vector2() );

var blurScreen = new THREE.BlurNode( new THREE.ScreenNode() );
blurScreen.size = new THREE.Vector2( size.width, size.height );
Expand Down
2 changes: 1 addition & 1 deletion examples/webgl_postprocessing_nodes_pass.html
Original file line number Diff line number Diff line change
Expand Up @@ -432,7 +432,7 @@

// PASS

var size = renderer.getDrawingBufferSize();
var size = renderer.getDrawingBufferSize( new THREE.Vector2() );

var blurScreen = new THREE.BlurNode( new THREE.ScreenNode() );
blurScreen.size = new THREE.Vector2( size.width, size.height );
Expand Down
31 changes: 21 additions & 10 deletions src/renderers/WebGLRenderer.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import { Matrix4 } from '../math/Matrix4.js';
import { ShaderLib } from './shaders/ShaderLib.js';
import { UniformsLib } from './shaders/UniformsLib.js';
import { cloneUniforms } from './shaders/UniformsUtils.js';
import { Vector2 } from '../math/Vector2.js';
import { Vector3 } from '../math/Vector3.js';
import { Vector4 } from '../math/Vector4.js';
import { WebGLAnimation } from './webgl/WebGLAnimation.js';
Expand Down Expand Up @@ -360,12 +361,17 @@ function WebGLRenderer( parameters ) {

};

this.getSize = function () {
this.getSize = function ( target ) {

return {
width: _width,
height: _height
};
if ( target === undefined ) {

console.warn( 'WebGLRenderer: .getsize() now requires a Vector2 as an argument' );

target = new Vector2();

}

return target.set( _width, _height );

};

Expand Down Expand Up @@ -395,12 +401,17 @@ function WebGLRenderer( parameters ) {

};

this.getDrawingBufferSize = function () {
this.getDrawingBufferSize = function ( target ) {

return {
width: _width * _pixelRatio,
height: _height * _pixelRatio
};
if ( target === undefined ) {

console.warn( 'WebGLRenderer: .getdrawingBufferSize() now requires a Vector2 as an argument' );

target = new Vector2();

}

return target.set( _width * _pixelRatio, _height * _pixelRatio );

};

Expand Down

0 comments on commit d1e4dbc

Please sign in to comment.