未验证 提交 280a1f68 编写于 作者: W WestLangley 提交者: GitHub

Merge pull request #13593 from WestLangley/dev-viewport

Make WebGLRenderer.setViewport(), setScissor() relative to lower-left corner
...@@ -205,9 +205,9 @@ ...@@ -205,9 +205,9 @@
renderer.setScissorTest( true ); renderer.setScissorTest( true );
renderer.setScissor( 20, window.innerHeight - insetHeight - 20, insetWidth, insetHeight ); renderer.setScissor( 20, 20, insetWidth, insetHeight );
renderer.setViewport( 20, window.innerHeight - insetHeight - 20, insetWidth, insetHeight ); renderer.setViewport( 20, 20, insetWidth, insetHeight );
camera2.position.copy( camera.position ); camera2.position.copy( camera.position );
camera2.quaternion.copy( camera.quaternion ); camera2.quaternion.copy( camera.quaternion );
......
...@@ -224,10 +224,10 @@ ...@@ -224,10 +224,10 @@
var width = rect.right - rect.left; var width = rect.right - rect.left;
var height = rect.bottom - rect.top; var height = rect.bottom - rect.top;
var left = rect.left; var left = rect.left;
var top = rect.top; var bottom = renderer.domElement.clientHeight - rect.bottom;
renderer.setViewport( left, top, width, height ); renderer.setViewport( left, bottom, width, height );
renderer.setScissor( left, top, width, height ); renderer.setScissor( left, bottom, width, height );
var camera = scene.userData.camera; var camera = scene.userData.camera;
......
...@@ -252,10 +252,10 @@ ...@@ -252,10 +252,10 @@
var width = rect.right - rect.left; var width = rect.right - rect.left;
var height = rect.bottom - rect.top; var height = rect.bottom - rect.top;
var left = rect.left; var left = rect.left;
var top = rect.top; var bottom = renderer.domElement.clientHeight - rect.bottom;
renderer.setViewport( left, top, width, height ); renderer.setViewport( left, bottom, width, height );
renderer.setScissor( left, top, width, height ); renderer.setScissor( left, bottom, width, height );
renderer.render( scene, scene.userData.camera ); renderer.render( scene, scene.userData.camera );
......
...@@ -57,7 +57,7 @@ ...@@ -57,7 +57,7 @@
var views = [ var views = [
{ {
left: 0, left: 0,
top: 0, bottom: 0,
width: 0.5, width: 0.5,
height: 1.0, height: 1.0,
background: new THREE.Color( 0.5, 0.5, 0.7 ), background: new THREE.Color( 0.5, 0.5, 0.7 ),
...@@ -74,7 +74,7 @@ ...@@ -74,7 +74,7 @@
}, },
{ {
left: 0.5, left: 0.5,
top: 0.5, bottom: 0,
width: 0.5, width: 0.5,
height: 0.5, height: 0.5,
background: new THREE.Color( 0.7, 0.5, 0.5 ), background: new THREE.Color( 0.7, 0.5, 0.5 ),
...@@ -91,7 +91,7 @@ ...@@ -91,7 +91,7 @@
}, },
{ {
left: 0.5, left: 0.5,
top: 0, bottom: 0.5,
width: 0.5, width: 0.5,
height: 0.5, height: 0.5,
background: new THREE.Color( 0.5, 0.7, 0.7 ), background: new THREE.Color( 0.5, 0.7, 0.7 ),
...@@ -280,12 +280,12 @@ ...@@ -280,12 +280,12 @@
view.updateCamera( camera, scene, mouseX, mouseY ); view.updateCamera( camera, scene, mouseX, mouseY );
var left = Math.floor( windowWidth * view.left ); var left = Math.floor( windowWidth * view.left );
var top = Math.floor( windowHeight * view.top ); var bottom = Math.floor( windowHeight * view.bottom );
var width = Math.floor( windowWidth * view.width ); var width = Math.floor( windowWidth * view.width );
var height = Math.floor( windowHeight * view.height ); var height = Math.floor( windowHeight * view.height );
renderer.setViewport( left, top, width, height ); renderer.setViewport( left, bottom, width, height );
renderer.setScissor( left, top, width, height ); renderer.setScissor( left, bottom, width, height );
renderer.setScissorTest( true ); renderer.setScissorTest( true );
renderer.setClearColor( view.background ); renderer.setClearColor( view.background );
......
...@@ -426,14 +426,14 @@ function WebGLRenderer( parameters ) { ...@@ -426,14 +426,14 @@ function WebGLRenderer( parameters ) {
this.setViewport = function ( x, y, width, height ) { this.setViewport = function ( x, y, width, height ) {
_viewport.set( x, _height - y - height, width, height ); _viewport.set( x, y, width, height );
state.viewport( _currentViewport.copy( _viewport ).multiplyScalar( _pixelRatio ) ); state.viewport( _currentViewport.copy( _viewport ).multiplyScalar( _pixelRatio ) );
}; };
this.setScissor = function ( x, y, width, height ) { this.setScissor = function ( x, y, width, height ) {
_scissor.set( x, _height - y - height, width, height ); _scissor.set( x, y, width, height );
state.scissor( _currentScissor.copy( _scissor ).multiplyScalar( _pixelRatio ) ); state.scissor( _currentScissor.copy( _scissor ).multiplyScalar( _pixelRatio ) );
}; };
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册