Skip to content

Commit 4b1c8de

Browse files
authored
Merge pull request #15730 from WestLangley/dev-renderer_current_viewport
Require target Vector4 in WebGLRenderer getCurrentViewport()
2 parents 511bd5a + d8de242 commit 4b1c8de

File tree

4 files changed

+18
-6
lines changed

4 files changed

+18
-6
lines changed

docs/api/en/renderers/WebGLRenderer.html

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -348,8 +348,12 @@ <h3>[method:WebGLContextAttributes getContextAttributes]()</h3>
348348
<h3>[method:RenderTarget getRenderTarget]()</h3>
349349
<p>Returns the current RenderTarget, if any.</p>
350350

351-
<h3>[method:RenderTarget getCurrentViewport]()</h3>
352-
<p>Returns the current viewport.</p>
351+
<h3>[method:Vector4 getCurrentViewport]( [param:Vector4 target] )</h3>
352+
<p>
353+
[page:Vector4 target] — the result will be copied into this Vector4.<br /><br />
354+
355+
Returns the current viewport.
356+
</p>
353357

354358
<h3>[method:Vector2 getDrawingBufferSize]( [param:Vector2 target] )</h3>
355359
<p>

examples/js/objects/Lensflare.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ THREE.Lensflare = function () {
162162

163163
this.onBeforeRender = function ( renderer, scene, camera ) {
164164

165-
viewport.copy( renderer.getCurrentViewport() );
165+
renderer.getCurrentViewport( viewport );
166166

167167
var invAspect = viewport.w / viewport.z;
168168
var halfViewportWidth = viewport.z / 2.0;

src/renderers/WebGLRenderer.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ export class WebGLRenderer implements Renderer {
214214
*/
215215
setSize(width: number, height: number, updateStyle?: boolean): void;
216216

217-
getCurrentViewport(): Vector4;
217+
getCurrentViewport(target: Vector4): Vector4;
218218
/**
219219
* Sets the viewport to render from (x, y) to (x + width, y + height).
220220
*/

src/renderers/WebGLRenderer.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -429,9 +429,17 @@ function WebGLRenderer( parameters ) {
429429

430430
};
431431

432-
this.getCurrentViewport = function () {
432+
this.getCurrentViewport = function ( target ) {
433433

434-
return _currentViewport;
434+
if ( target === undefined ) {
435+
436+
console.warn( 'WebGLRenderer: .getCurrentViewport() now requires a Vector4 as an argument' );
437+
438+
target = new Vector4();
439+
440+
}
441+
442+
return target.copy( _currentViewport );
435443

436444
};
437445

0 commit comments

Comments
 (0)