diff --git a/docs/api/en/renderers/WebGLRenderer.html b/docs/api/en/renderers/WebGLRenderer.html index 492c61749772bdfc3c172fc674e876e46510e5f7..33248593d01ce95b015a622d53a2d8bad2ed6024 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 67cdd0eeb0bcc9dc5c2caa1d8ac57d115ccdae8b..57a92cd36779ce7d79062c432dc10c0af5a05d7e 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 2e70c1e27cb62528d25c1074c23b7f771ed524a9..02c92f70f22000fc350f028b9582d767299970f4 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 68e20dd4f89169d867099637511ed01d8173d905..5fb201672c123fb4eccf69ae983a09b94bd868a9 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 ); };