|
| 1 | +// RenderPass Will only work with Sprite and Image GameObjects. |
| 2 | + |
1 | 3 | var Class = require('../../utils/Class'); |
2 | 4 | var GameObject = require('../GameObject'); |
3 | 5 | var Components = require('../../components'); |
4 | 6 | var Render = require('./RenderPassRender'); |
| 7 | +var TexturedAndNormalizedTintedShader = require('../../renderer/webgl/shaders/TexturedAndNormalizedTintedShader'); |
5 | 8 |
|
6 | 9 | var RenderPass = new Class({ |
7 | 10 |
|
@@ -30,36 +33,33 @@ var RenderPass = new Class({ |
30 | 33 | var resourceManager = state.game.renderer.resourceManager; |
31 | 34 | var gl; |
32 | 35 |
|
33 | | - this.dstRenderTarget = null |
34 | | - this.dstRenderTexture = null; |
35 | | - this.dstShader = null; |
| 36 | + this.renderer = state.game.renderer; |
| 37 | + this.passRenderTarget = null |
| 38 | + this.passRenderTexture = null; |
| 39 | + this.passShader = null; |
36 | 40 | this.uniforms = {}; |
37 | 41 |
|
38 | 42 | if (resourceManager !== undefined) |
39 | 43 | { |
40 | | - /*gl = state.game.renderer.gl; |
41 | | - this.dstShader = resourceManager.createShader(shaderName, { |
42 | | - vert: TexturedAndNormalizedTintedShader.vert, |
43 | | - frag: fragmentShader |
44 | | - }); |
45 | | - this.dstRenderTexture = resourceManager.createTexture( |
46 | | - 0, |
47 | | - gl.LINEAR, gl.LINEAR, |
48 | | - gl.CLAMP_TO_EDGE, gl.CLAMP_TO_EDGE, |
49 | | - gl.RGBA, |
50 | | - null, width, height |
51 | | - ); |
52 | | - this.dstRenderTarget = resourceManager.createRenderTarget(width, height, this.dstRenderTexture, null); */ |
| 44 | + gl = state.game.renderer.gl; |
| 45 | + this.passShader = resourceManager.createShader(shaderName, {vert: TexturedAndNormalizedTintedShader.vert, frag: fragmentShader}); |
| 46 | + this.passRenderTexture = resourceManager.createTexture(0, gl.LINEAR, gl.LINEAR, gl.CLAMP_TO_EDGE, gl.CLAMP_TO_EDGE, gl.RGBA, null, width, height); |
| 47 | + this.passRenderTarget = resourceManager.createRenderTarget(width, height, this.passRenderTexture, null); |
53 | 48 | state.game.renderer.currentTexture = null; // force rebinding of prev texture |
54 | 49 | } |
55 | | - this.flipY = true; |
| 50 | + |
56 | 51 | this.setPosition(x, y); |
57 | 52 | this.setSize(width, height); |
58 | 53 | this.setOrigin(0, 0); |
| 54 | + |
59 | 55 | }, |
60 | 56 |
|
61 | | - render: function (gameObject) |
| 57 | + render: function (gameObject, camera) |
62 | 58 | { |
| 59 | + var gl = this.renderer.gl; |
| 60 | + this.renderer.spriteBatch.addSprite(gameObject, camera); |
| 61 | + this.renderer.spriteBatch.flush(this.passShader, this.passRenderTarget.framebufferObject); |
| 62 | + this.renderer.setRenderer(null, null, null); |
63 | 63 | }, |
64 | 64 |
|
65 | 65 | getUniformLocation: function (uniformName) |
|
0 commit comments