Skip to content

Commit 0c4eec0

Browse files
committed
Now using new Render Target approach (texture blend still need to be added)
1 parent 54e306f commit 0c4eec0

1 file changed

Lines changed: 32 additions & 63 deletions

File tree

src/gameobjects/rendertexture/RenderTexture.js

Lines changed: 32 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ var GameObject = require('../GameObject');
1515
var NOOP = require('../../utils/NOOP');
1616
var PIPELINE_CONST = require('../../renderer/webgl/pipelines/const');
1717
var Render = require('./RenderTextureRender');
18-
var RenderEvents = require('../../renderer/events');
1918
var RenderTarget = require('../../renderer/webgl/RenderTarget');
2019
var Utils = require('../../renderer/webgl/Utils');
2120
var UUID = require('../../utils/string/UUID');
@@ -287,8 +286,6 @@ var RenderTexture = new Class({
287286
this.setOrigin(0, 0);
288287

289288
this.initPipeline(PIPELINE_CONST.SINGLE_PIPELINE);
290-
291-
renderer.on(RenderEvents.RESIZE, this.onResize, this);
292289
},
293290

294291
/**
@@ -307,34 +304,6 @@ var RenderTexture = new Class({
307304
return this.resize(width, height);
308305
},
309306

310-
/**
311-
* Internal renderer resize handler.
312-
*
313-
* @method Phaser.GameObjects.RenderTexture#onResize
314-
* @private
315-
* @since 3.50.0
316-
*
317-
* @param {number} width - The width of the renderer.
318-
* @param {number} height - The height of the renderer.
319-
*/
320-
onResize: function (width, height)
321-
{
322-
var camera = this.camera;
323-
var renderTarget = this.renderTarget;
324-
325-
if (renderTarget)
326-
{
327-
var renderer = this.renderer;
328-
var rendererWidth = renderer.width;
329-
var rendererHeight = renderer.height;
330-
331-
var zoomX = rendererWidth / width;
332-
var zoomY = rendererHeight / height;
333-
334-
camera.setZoom(zoomX, zoomY);
335-
}
336-
},
337-
338307
/**
339308
* Resizes the Render Texture to the new dimensions given.
340309
*
@@ -389,39 +358,39 @@ var RenderTexture = new Class({
389358
frame.source.glTexture = renderTarget.texture;
390359
}
391360

392-
var camera = this.camera;
361+
// var camera = this.camera;
393362

394363
frame.source.width = width;
395364
frame.source.height = height;
396365

397-
var renderer = this.renderer;
398-
var rendererWidth = renderer.width;
399-
var rendererHeight = renderer.height;
366+
// var renderer = this.renderer;
367+
// var rendererWidth = renderer.width;
368+
// var rendererHeight = renderer.height;
400369

401-
var zoomX = rendererWidth / width;
402-
var zoomY = rendererHeight / height;
370+
// var zoomX = rendererWidth / width;
371+
// var zoomY = rendererHeight / height;
403372

404-
camera.setSize(width, height);
373+
// camera.setSize(width, height);
405374

406375
if (renderTarget)
407376
{
408-
camera.setZoom(zoomX, zoomY);
377+
// camera.setZoom(zoomX, zoomY);
409378
}
410379

411-
var ox = 0.5;
412-
var oy = 0.5;
380+
// var ox = 0.5;
381+
// var oy = 0.5;
413382

414-
if (width !== rendererWidth)
415-
{
416-
ox = 0;
417-
}
383+
// if (width !== rendererWidth)
384+
// {
385+
// ox = 0;
386+
// }
418387

419-
if (height !== rendererHeight)
420-
{
421-
oy = 0;
422-
}
388+
// if (height !== rendererHeight)
389+
// {
390+
// oy = 0;
391+
// }
423392

424-
camera.setOrigin(ox, oy);
393+
// camera.setOrigin(ox, oy);
425394

426395
frame.setSize(width, height);
427396

@@ -576,7 +545,7 @@ var RenderTexture = new Class({
576545

577546
if (renderTarget)
578547
{
579-
renderTarget.bind(true);
548+
renderTarget.bind();
580549

581550
var pipeline = this.pipeline;
582551

@@ -852,15 +821,12 @@ var RenderTexture = new Class({
852821
{
853822
var camera = this.camera;
854823
var renderer = this.renderer;
855-
var renderTarget = this.renderTarget;
856824

857825
camera.preRender();
858826

859-
if (renderTarget)
827+
if (this.renderTarget)
860828
{
861-
renderTarget.bind(true);
862-
863-
renderer.resetTextures(true);
829+
renderer.beginCapture();
864830
}
865831
else
866832
{
@@ -1042,15 +1008,13 @@ var RenderTexture = new Class({
10421008
tint = (tint >> 16) + (tint & 0xff00) + ((tint & 0xff) << 16);
10431009
}
10441010

1045-
var camera = this.camera;
1046-
var renderTarget = this.renderTarget;
10471011
var textureFrame = this.textureManager.getFrame(key, frame);
10481012

10491013
if (textureFrame)
10501014
{
1051-
if (renderTarget)
1015+
if (this.renderTarget)
10521016
{
1053-
this.pipeline.batchTextureFrame(textureFrame, x, y, tint, alpha, camera.matrix, null);
1017+
this.pipeline.batchTextureFrame(textureFrame, x, y, tint, alpha, this.camera.matrix, null);
10541018
}
10551019
else
10561020
{
@@ -1097,11 +1061,18 @@ var RenderTexture = new Class({
10971061
endDraw: function ()
10981062
{
10991063
var renderer = this.renderer;
1064+
11001065
var renderTarget = this.renderTarget;
11011066

11021067
if (renderTarget)
11031068
{
1104-
renderTarget.unbind(true);
1069+
var canvasTarget = renderer.endCapture();
1070+
1071+
var util = renderer.pipelines.setUtility();
1072+
1073+
var y = canvasTarget.height - renderTarget.height;
1074+
1075+
util.copyFrameRect(canvasTarget, renderTarget, 0, y, renderTarget.width, renderTarget.height, false);
11051076
}
11061077
else
11071078
{
@@ -1456,8 +1427,6 @@ var RenderTexture = new Class({
14561427
*/
14571428
preDestroy: function ()
14581429
{
1459-
this.renderer.off(RenderEvents.RESIZE, this.onResize, this);
1460-
14611430
if (!this._saved)
14621431
{
14631432
CanvasPool.remove(this.canvas);

0 commit comments

Comments
 (0)