Skip to content

Commit a7e980f

Browse files
committed
Adjust viewport
1 parent 9b1ac70 commit a7e980f

1 file changed

Lines changed: 23 additions & 4 deletions

File tree

src/renderer/webgl/RenderTarget.js

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -256,13 +256,20 @@ var RenderTarget = new Class({
256256
{
257257
var renderer = this.renderer;
258258

259+
var textureWidth = this.width;
260+
var textureHeight = this.height;
261+
259262
var rendererWidth = renderer.width;
260263
var rendererHeight = renderer.height;
261264

265+
var width = Math.max(textureWidth, rendererWidth);
266+
var height = Math.max(textureHeight, rendererHeight);
267+
262268
var x = 0;
263-
var y = this.height - rendererHeight;
269+
var y = (textureHeight < rendererHeight) ? textureHeight - rendererHeight : Math.abs(rendererHeight - textureHeight);
264270

265-
renderer.gl.viewport(x, y, rendererWidth, rendererHeight);
271+
renderer.gl.viewport(x, y, width, height);
272+
renderer.gl.disable(renderer.gl.SCISSOR_TEST);
266273
},
267274

268275
/**
@@ -298,12 +305,24 @@ var RenderTarget = new Class({
298305
{
299306
if (flush === undefined) { flush = false; }
300307

308+
var renderer = this.renderer;
309+
301310
if (flush)
302311
{
303-
this.renderer.flush();
312+
renderer.flush();
313+
314+
var scissor = renderer.currentScissor;
315+
var x = scissor[0];
316+
var y = scissor[1];
317+
var width = scissor[2];
318+
var height = scissor[3];
319+
320+
renderer.gl.enable(renderer.gl.SCISSOR_TEST);
321+
322+
renderer.gl.scissor(x, (renderer.drawingBufferHeight - y - height), width, height);
304323
}
305324

306-
return this.renderer.popFramebuffer();
325+
return renderer.popFramebuffer();
307326
},
308327

309328
/**

0 commit comments

Comments
 (0)