Skip to content

Commit

Permalink
WebGLRenderer: Tweaked the way setViewport/setScissor works. See #5979
Browse files Browse the repository at this point in the history
  • Loading branch information
mrdoob committed Dec 15, 2015
1 parent c738ba8 commit 48461d0
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 26 deletions.
41 changes: 23 additions & 18 deletions src/renderers/WebGLRenderer.js
Expand Up @@ -372,34 +372,33 @@ THREE.WebGLRenderer = function ( parameters ) {

this.setViewport = function ( x, y, width, height ) {

_viewportX = x * pixelRatio;
_viewportY = y * pixelRatio;
if ( _currentRenderTarget === null ) {

_viewportWidth = width * pixelRatio;
_viewportHeight = height * pixelRatio;
_viewportX = x *= pixelRatio;
_viewportY = y *= pixelRatio;

_gl.viewport( _viewportX, _viewportY, _viewportWidth, _viewportHeight );
_viewportWidth = width *= pixelRatio;
_viewportHeight = height *= pixelRatio;

}

_gl.viewport( x, y, width, height );

};

this.getViewport = function ( dimensions ) {
this.setScissor = function ( x, y, width, height ) {

dimensions.x = _viewportX / pixelRatio;
dimensions.y = _viewportY / pixelRatio;
if ( _currentRenderTarget === null ) {

dimensions.z = _viewportWidth / pixelRatio;
dimensions.w = _viewportHeight / pixelRatio;
x *= pixelRatio;
y *= pixelRatio;

};
width *= pixelRatio;
height *= pixelRatio;

this.setScissor = function ( x, y, width, height ) {
}

_gl.scissor(
x * pixelRatio,
y * pixelRatio,
width * pixelRatio,
height * pixelRatio
);
_gl.scissor( x, y, width, height );

};

Expand Down Expand Up @@ -1149,6 +1148,12 @@ THREE.WebGLRenderer = function ( parameters ) {
_infoRender.faces = 0;
_infoRender.points = 0;

if ( renderTarget === undefined ) {

renderTarget = null;

}

this.setRenderTarget( renderTarget );

if ( this.autoClear || forceClear ) {
Expand Down
8 changes: 0 additions & 8 deletions src/renderers/webgl/WebGLShadowMap.js
Expand Up @@ -38,8 +38,6 @@ THREE.WebGLShadowMap = function ( _renderer, _lights, _objects ) {
new THREE.Vector4(), new THREE.Vector4(), new THREE.Vector4()
];

var _vector4 = new THREE.Vector4();

// init

var depthShader = THREE.ShaderLib[ "depthRGBA" ];
Expand Down Expand Up @@ -102,9 +100,6 @@ THREE.WebGLShadowMap = function ( _renderer, _lights, _objects ) {

var currentScissorTest = _state.getScissorTest();

// save the existing viewport so it can be restored later
_renderer.getViewport( _vector4 );

// Set GL state for depth map.
_gl.clearColor( 1, 1, 1, 1 );
_state.disable( _gl.BLEND );
Expand Down Expand Up @@ -295,9 +290,6 @@ THREE.WebGLShadowMap = function ( _renderer, _lights, _objects ) {

}

_renderer.setRenderTarget( null );
_renderer.setViewport( _vector4.x, _vector4.y, _vector4.z, _vector4.w );

// Restore GL state.
var clearColor = _renderer.getClearColor(),
clearAlpha = _renderer.getClearAlpha();
Expand Down

0 comments on commit 48461d0

Please sign in to comment.