Skip to content

Commit 280a1f6

Browse files
authored
Merge pull request #13593 from WestLangley/dev-viewport
Make WebGLRenderer.setViewport(), setScissor() relative to lower-left corner
2 parents 173a580 + 5d5ec83 commit 280a1f6

File tree

5 files changed

+16
-16
lines changed

5 files changed

+16
-16
lines changed

examples/webgl_lines_fat.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -205,9 +205,9 @@
205205

206206
renderer.setScissorTest( true );
207207

208-
renderer.setScissor( 20, window.innerHeight - insetHeight - 20, insetWidth, insetHeight );
208+
renderer.setScissor( 20, 20, insetWidth, insetHeight );
209209

210-
renderer.setViewport( 20, window.innerHeight - insetHeight - 20, insetWidth, insetHeight );
210+
renderer.setViewport( 20, 20, insetWidth, insetHeight );
211211

212212
camera2.position.copy( camera.position );
213213
camera2.quaternion.copy( camera.quaternion );

examples/webgl_multiple_elements.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -224,10 +224,10 @@
224224
var width = rect.right - rect.left;
225225
var height = rect.bottom - rect.top;
226226
var left = rect.left;
227-
var top = rect.top;
227+
var bottom = renderer.domElement.clientHeight - rect.bottom;
228228

229-
renderer.setViewport( left, top, width, height );
230-
renderer.setScissor( left, top, width, height );
229+
renderer.setViewport( left, bottom, width, height );
230+
renderer.setScissor( left, bottom, width, height );
231231

232232
var camera = scene.userData.camera;
233233

examples/webgl_multiple_elements_text.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -252,10 +252,10 @@
252252
var width = rect.right - rect.left;
253253
var height = rect.bottom - rect.top;
254254
var left = rect.left;
255-
var top = rect.top;
255+
var bottom = renderer.domElement.clientHeight - rect.bottom;
256256

257-
renderer.setViewport( left, top, width, height );
258-
renderer.setScissor( left, top, width, height );
257+
renderer.setViewport( left, bottom, width, height );
258+
renderer.setScissor( left, bottom, width, height );
259259

260260
renderer.render( scene, scene.userData.camera );
261261

examples/webgl_multiple_views.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
var views = [
5858
{
5959
left: 0,
60-
top: 0,
60+
bottom: 0,
6161
width: 0.5,
6262
height: 1.0,
6363
background: new THREE.Color( 0.5, 0.5, 0.7 ),
@@ -74,7 +74,7 @@
7474
},
7575
{
7676
left: 0.5,
77-
top: 0.5,
77+
bottom: 0,
7878
width: 0.5,
7979
height: 0.5,
8080
background: new THREE.Color( 0.7, 0.5, 0.5 ),
@@ -91,7 +91,7 @@
9191
},
9292
{
9393
left: 0.5,
94-
top: 0,
94+
bottom: 0.5,
9595
width: 0.5,
9696
height: 0.5,
9797
background: new THREE.Color( 0.5, 0.7, 0.7 ),
@@ -280,12 +280,12 @@
280280
view.updateCamera( camera, scene, mouseX, mouseY );
281281

282282
var left = Math.floor( windowWidth * view.left );
283-
var top = Math.floor( windowHeight * view.top );
283+
var bottom = Math.floor( windowHeight * view.bottom );
284284
var width = Math.floor( windowWidth * view.width );
285285
var height = Math.floor( windowHeight * view.height );
286286

287-
renderer.setViewport( left, top, width, height );
288-
renderer.setScissor( left, top, width, height );
287+
renderer.setViewport( left, bottom, width, height );
288+
renderer.setScissor( left, bottom, width, height );
289289
renderer.setScissorTest( true );
290290
renderer.setClearColor( view.background );
291291

src/renderers/WebGLRenderer.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -426,14 +426,14 @@ function WebGLRenderer( parameters ) {
426426

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

429-
_viewport.set( x, _height - y - height, width, height );
429+
_viewport.set( x, y, width, height );
430430
state.viewport( _currentViewport.copy( _viewport ).multiplyScalar( _pixelRatio ) );
431431

432432
};
433433

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

436-
_scissor.set( x, _height - y - height, width, height );
436+
_scissor.set( x, y, width, height );
437437
state.scissor( _currentScissor.copy( _scissor ).multiplyScalar( _pixelRatio ) );
438438

439439
};

0 commit comments

Comments
 (0)