|
@@ -79,7 +79,6 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
// internal state cache
|
|
// internal state cache
|
|
|
|
|
|
- _currentViewport = null,
|
|
|
|
_currentProgram = null,
|
|
_currentProgram = null,
|
|
_currentRenderTarget = null,
|
|
_currentRenderTarget = null,
|
|
_currentFramebuffer = null,
|
|
_currentFramebuffer = null,
|
|
@@ -87,6 +86,11 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
_currentGeometryProgram = '',
|
|
_currentGeometryProgram = '',
|
|
_currentCamera = null,
|
|
_currentCamera = null,
|
|
|
|
|
|
|
|
+ _currentScissor = new THREE.Vector4(),
|
|
|
|
+ _currentScissorTest = null,
|
|
|
|
+
|
|
|
|
+ _currentViewport = new THREE.Vector4(),
|
|
|
|
+
|
|
_usedTextureUnits = 0,
|
|
_usedTextureUnits = 0,
|
|
|
|
|
|
_scissor = new THREE.Vector4( 0, 0, _canvas.width, _canvas.height ),
|
|
_scissor = new THREE.Vector4( 0, 0, _canvas.width, _canvas.height ),
|
|
@@ -3395,7 +3399,7 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
}
|
|
}
|
|
|
|
|
|
var isCube = ( renderTarget instanceof THREE.WebGLRenderTargetCube );
|
|
var isCube = ( renderTarget instanceof THREE.WebGLRenderTargetCube );
|
|
- var framebuffer, scissor, scissorTest, viewport;
|
|
|
|
|
|
+ var framebuffer;
|
|
|
|
|
|
if ( renderTarget ) {
|
|
if ( renderTarget ) {
|
|
|
|
|
|
@@ -3411,19 +3415,19 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- scissor = renderTarget.scissor;
|
|
|
|
- scissorTest = renderTarget.scissorTest;
|
|
|
|
|
|
+ _currentScissor.copy( renderTarget.scissor );
|
|
|
|
+ _currentScissorTest = renderTarget.scissorTest;
|
|
|
|
|
|
- viewport = renderTarget.viewport;
|
|
|
|
|
|
+ _currentViewport.copy( renderTarget.viewport );
|
|
|
|
|
|
} else {
|
|
} else {
|
|
|
|
|
|
framebuffer = null;
|
|
framebuffer = null;
|
|
|
|
|
|
- scissor = _scissor;
|
|
|
|
- scissorTest = _scissorTest;
|
|
|
|
|
|
+ _currentScissor.copy( _scissor );
|
|
|
|
+ _currentScissorTest = _scissorTest;
|
|
|
|
|
|
- viewport = _viewport;
|
|
|
|
|
|
+ _currentViewport.copy( _viewport );
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@@ -3435,10 +3439,10 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- state.scissor( scissor );
|
|
|
|
- state.setScissorTest( scissorTest );
|
|
|
|
|
|
+ state.scissor( _currentScissor );
|
|
|
|
+ state.setScissorTest( _currentScissorTest );
|
|
|
|
|
|
- state.viewport( viewport );
|
|
|
|
|
|
+ state.viewport( _currentViewport );
|
|
|
|
|
|
if ( isCube ) {
|
|
if ( isCube ) {
|
|
|
|
|
|
@@ -3447,8 +3451,6 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- _currentViewport = viewport;
|
|
|
|
-
|
|
|
|
};
|
|
};
|
|
|
|
|
|
this.readRenderTargetPixels = function ( renderTarget, x, y, width, height, buffer ) {
|
|
this.readRenderTargetPixels = function ( renderTarget, x, y, width, height, buffer ) {
|