From d8de242e5aad4b5860a4f060bad5d2169fb44f2a Mon Sep 17 00:00:00 2001 From: WestLangley Date: Wed, 6 Feb 2019 18:17:16 -0500 Subject: [PATCH] Require target Vector4 in WebGLRenderer getCurrentViewport() --- docs/api/en/renderers/WebGLRenderer.html | 8 ++++++-- examples/js/objects/Lensflare.js | 2 +- src/renderers/WebGLRenderer.d.ts | 2 +- src/renderers/WebGLRenderer.js | 12 ++++++++++-- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/docs/api/en/renderers/WebGLRenderer.html b/docs/api/en/renderers/WebGLRenderer.html index 492c617497..33248593d0 100644 --- a/docs/api/en/renderers/WebGLRenderer.html +++ b/docs/api/en/renderers/WebGLRenderer.html @@ -348,8 +348,12 @@

[method:RenderTarget getRenderTarget]()

Returns the current RenderTarget, if any.

-

[method:RenderTarget getCurrentViewport]()

-

Returns the current viewport.

+

[method:Vector4 getCurrentViewport]( [param:Vector4 target] )

+

+ [page:Vector4 target] — the result will be copied into this Vector4.

+ + Returns the current viewport. +

[method:Object getDrawingBufferSize]()

Returns an object containing the width and height of the renderer's drawing buffer, in pixels.

diff --git a/examples/js/objects/Lensflare.js b/examples/js/objects/Lensflare.js index 67cdd0eeb0..57a92cd367 100644 --- a/examples/js/objects/Lensflare.js +++ b/examples/js/objects/Lensflare.js @@ -162,7 +162,7 @@ THREE.Lensflare = function () { this.onBeforeRender = function ( renderer, scene, camera ) { - viewport.copy( renderer.getCurrentViewport() ); + renderer.getCurrentViewport( viewport ); var invAspect = viewport.w / viewport.z; var halfViewportWidth = viewport.z / 2.0; diff --git a/src/renderers/WebGLRenderer.d.ts b/src/renderers/WebGLRenderer.d.ts index 2e70c1e27c..02c92f70f2 100644 --- a/src/renderers/WebGLRenderer.d.ts +++ b/src/renderers/WebGLRenderer.d.ts @@ -213,7 +213,7 @@ export class WebGLRenderer implements Renderer { */ setSize(width: number, height: number, updateStyle?: boolean): void; - getCurrentViewport(): Vector4; + getCurrentViewport(target: Vector4): Vector4; /** * Sets the viewport to render from (x, y) to (x + width, y + height). */ diff --git a/src/renderers/WebGLRenderer.js b/src/renderers/WebGLRenderer.js index 68e20dd4f8..5fb201672c 100644 --- a/src/renderers/WebGLRenderer.js +++ b/src/renderers/WebGLRenderer.js @@ -418,9 +418,17 @@ function WebGLRenderer( parameters ) { }; - this.getCurrentViewport = function () { + this.getCurrentViewport = function ( target ) { - return _currentViewport; + if ( target === undefined ) { + + console.warn( 'WebGLRenderer: .getCurrentViewport() now requires a Vector4 as an argument' ); + + target = new Vector4(); + + } + + return target.copy( _currentViewport ); }; -- GitLab