From 3ed17dc2deb09aced9e1d7705dba5c8f362ffd28 Mon Sep 17 00:00:00 2001 From: WestLangley Date: Tue, 19 Feb 2019 22:43:38 -0500 Subject: [PATCH] WebGLRenderer: support Vector4 arg in setScissor() --- docs/api/en/renderers/WebGLRenderer.html | 10 ++++++++-- src/renderers/WebGLRenderer.d.ts | 2 +- src/renderers/WebGLRenderer.js | 11 ++++++++++- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/docs/api/en/renderers/WebGLRenderer.html b/docs/api/en/renderers/WebGLRenderer.html index 9cbbd84ad2..598b44c724 100644 --- a/docs/api/en/renderers/WebGLRenderer.html +++ b/docs/api/en/renderers/WebGLRenderer.html @@ -440,9 +440,15 @@ This method sets the active rendertarget. If the parameter is omitted the canvas is set as the active rendertarget.

-

[method:null setScissor]( [param:Integer x], [param:Integer y], [param:Integer width], [param:Integer height] )

+

[method:null setScissor]( [param:Integer x], [param:Integer y], [param:Integer width], [param:Integer height] )
+ [method:null setScissor]( [param:Vector4 vector] )

+

- Sets the scissor area from (x, y) to (x + width, y + height) + The x, y, width, and height parameters of the scissor region.
+ Optionally, a 4-component vector specifying the parameters of the region.

+ + Sets the scissor region from (x, y) to (x + width, y + height).
+ (x, y) is the lower-left corner of the scissor region.

[method:null setScissorTest]( [param:Boolean boolean] )

diff --git a/src/renderers/WebGLRenderer.d.ts b/src/renderers/WebGLRenderer.d.ts index f42ab91ce3..7a678b05c6 100644 --- a/src/renderers/WebGLRenderer.d.ts +++ b/src/renderers/WebGLRenderer.d.ts @@ -235,7 +235,7 @@ export class WebGLRenderer implements Renderer { /** * Sets the scissor area from (x, y) to (x + width, y + height). */ - setScissor(x: number, y: number, width: number, height: number): void; + setScissor(x: Vector4 | number, y?: number, width?: number, height?: number): void; /** * Returns true if scissor test is enabled; returns false otherwise. diff --git a/src/renderers/WebGLRenderer.js b/src/renderers/WebGLRenderer.js index 2f785697b7..3967a1950e 100644 --- a/src/renderers/WebGLRenderer.js +++ b/src/renderers/WebGLRenderer.js @@ -474,7 +474,16 @@ function WebGLRenderer( parameters ) { this.setScissor = function ( x, y, width, height ) { - _scissor.set( x, y, width, height ); + if ( x.isVector4 ) { + + _scissor.set( x.x, x.y, x.z, x.w ); + + } else { + + _scissor.set( x, y, width, height ); + + } + state.scissor( _currentScissor.copy( _scissor ).multiplyScalar( _pixelRatio ) ); }; -- GitLab