Skip to content

Commit ec5da69

Browse files
committed
Added post pipeline support to all Game Objects
1 parent 995c813 commit ec5da69

24 files changed

Lines changed: 325 additions & 60 deletions

src/gameobjects/bitmaptext/dynamic/DynamicBitmapTextWebGLRenderer.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ var DynamicBitmapTextWebGLRenderer = function (renderer, src, camera, parentMatr
3434
return;
3535
}
3636

37-
var pipeline = renderer.pipelines.set(this.pipeline, src);
37+
var pipeline = renderer.pipelines.set(src.pipeline, src);
3838

3939
var result = GetCalcMatrix(src, camera, parentMatrix);
4040

@@ -115,6 +115,13 @@ var DynamicBitmapTextWebGLRenderer = function (renderer, src, camera, parentMatr
115115
var displayCallback = src.displayCallback;
116116
var callbackData = src.callbackData;
117117

118+
var postPipeline = (src && src.hasPostPipeline);
119+
120+
if (postPipeline)
121+
{
122+
postPipeline.manager.preBatch(src);
123+
}
124+
118125
for (var i = 0; i < textLength; i++)
119126
{
120127
charCode = text.charCodeAt(i);
@@ -271,6 +278,11 @@ var DynamicBitmapTextWebGLRenderer = function (renderer, src, camera, parentMatr
271278

272279
renderer.popScissor();
273280
}
281+
282+
if (postPipeline)
283+
{
284+
postPipeline.manager.postBatch(src);
285+
}
274286
};
275287

276288
module.exports = DynamicBitmapTextWebGLRenderer;

src/gameobjects/bitmaptext/static/BitmapTextWebGLRenderer.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ var BitmapTextWebGLRenderer = function (renderer, src, camera, parentMatrix)
3232
return;
3333
}
3434

35-
var pipeline = renderer.pipelines.set(this.pipeline, src);
35+
var pipeline = renderer.pipelines.set(src.pipeline, src);
3636

3737
var calcMatrix = GetCalcMatrix(src, camera, parentMatrix).calc;
3838

@@ -66,6 +66,13 @@ var BitmapTextWebGLRenderer = function (renderer, src, camera, parentMatrix)
6666

6767
var dropShadow = (dropShadowX !== 0 || dropShadowY !== 0);
6868

69+
var postPipeline = (src && src.hasPostPipeline);
70+
71+
if (postPipeline)
72+
{
73+
postPipeline.manager.preBatch(src);
74+
}
75+
6976
if (dropShadow)
7077
{
7178
var srcShadowColor = src._dropShadowColorGL;
@@ -120,6 +127,11 @@ var BitmapTextWebGLRenderer = function (renderer, src, camera, parentMatrix)
120127
// Debug test if the characters are in the correct place when rendered:
121128
// pipeline.drawFillRect(tx0, ty0, tx2 - tx0, ty2 - ty0, 0x00ff00, 0.5);
122129
}
130+
131+
if (postPipeline)
132+
{
133+
postPipeline.manager.postBatch(src);
134+
}
123135
};
124136

125137
module.exports = BitmapTextWebGLRenderer;

src/gameobjects/blitter/BlitterWebGLRenderer.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,13 @@ var BlitterWebGLRenderer = function (renderer, src, camera, parentMatrix)
5454
var alpha = camera.alpha * src.alpha;
5555
var roundPixels = camera.roundPixels;
5656

57+
var postPipeline = (src && src.hasPostPipeline);
58+
59+
if (postPipeline)
60+
{
61+
postPipeline.manager.preBatch(src);
62+
}
63+
5764
for (var index = 0; index < list.length; index++)
5865
{
5966
var bob = list[index];
@@ -117,6 +124,11 @@ var BlitterWebGLRenderer = function (renderer, src, camera, parentMatrix)
117124
prevTextureSourceIndex = -1;
118125
}
119126
}
127+
128+
if (postPipeline)
129+
{
130+
postPipeline.manager.postBatch(src);
131+
}
120132
};
121133

122134
module.exports = BlitterWebGLRenderer;

src/gameobjects/graphics/GraphicsWebGLRenderer.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,14 @@ var GraphicsWebGLRenderer = function (renderer, src, camera, parentMatrix)
4747
return;
4848
}
4949

50-
var pipeline = renderer.pipelines.set(this.pipeline, src);
50+
var pipeline = renderer.pipelines.set(src.pipeline, src);
51+
52+
var postPipeline = (src && src.hasPostPipeline);
53+
54+
if (postPipeline)
55+
{
56+
postPipeline.manager.preBatch(src);
57+
}
5158

5259
var calcMatrix = GetCalcMatrix(src, camera, parentMatrix).calc;
5360

@@ -338,6 +345,11 @@ var GraphicsWebGLRenderer = function (renderer, src, camera, parentMatrix)
338345
}
339346
}
340347
}
348+
349+
if (postPipeline)
350+
{
351+
postPipeline.manager.postBatch(src);
352+
}
341353
};
342354

343355
module.exports = GraphicsWebGLRenderer;

src/gameobjects/mesh/MeshWebGLRenderer.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,13 @@ var MeshWebGLRenderer = function (renderer, src, camera, parentMatrix)
6161

6262
var totalFacesRendered = 0;
6363

64+
var postPipeline = (src && src.hasPostPipeline && !src.manualPostPipeline);
65+
66+
if (postPipeline)
67+
{
68+
postPipeline.manager.preBatch(src);
69+
}
70+
6471
for (var i = 0; i < totalFaces; i++)
6572
{
6673
var face = faces[i];
@@ -95,6 +102,11 @@ var MeshWebGLRenderer = function (renderer, src, camera, parentMatrix)
95102
{
96103
debugCallback.call(src, src, debugFaces);
97104
}
105+
106+
if (postPipeline)
107+
{
108+
postPipeline.manager.postBatch(src);
109+
}
98110
};
99111

100112
module.exports = MeshWebGLRenderer;

src/gameobjects/particles/ParticleManagerWebGLRenderer.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,13 @@ var ParticleManagerWebGLRenderer = function (renderer, emitterManager, camera, p
6262

6363
var textureUnit = pipeline.setGameObject(emitterManager, emitterManager.defaultFrame);
6464

65+
var postPipeline = (emitterManager && emitterManager.hasPostPipeline);
66+
67+
if (postPipeline)
68+
{
69+
postPipeline.manager.preBatch(emitterManager);
70+
}
71+
6572
for (var e = 0; e < emittersLength; e++)
6673
{
6774
var emitter = emitters[e];
@@ -145,6 +152,11 @@ var ParticleManagerWebGLRenderer = function (renderer, emitterManager, camera, p
145152
// pipeline.setTexture2D(texture, 0);
146153
}
147154
}
155+
156+
if (postPipeline)
157+
{
158+
postPipeline.manager.postBatch(emitterManager);
159+
}
148160
};
149161

150162
module.exports = ParticleManagerWebGLRenderer;

src/gameobjects/rendertexture/RenderTextureWebGLRenderer.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,13 @@ var RenderTextureWebGLRenderer = function (renderer, src, camera, parentMatrix)
3434

3535
var textureUnit = pipeline.setTexture2D(renderTarget.texture);
3636

37+
var postPipeline = (src && src.hasPostPipeline);
38+
39+
if (postPipeline)
40+
{
41+
postPipeline.manager.preBatch(src);
42+
}
43+
3744
src.pipeline.batchTexture(
3845
src,
3946
renderTarget.texture,
@@ -59,6 +66,11 @@ var RenderTextureWebGLRenderer = function (renderer, src, camera, parentMatrix)
5966
);
6067

6168
renderer.resetTextures();
69+
70+
if (postPipeline)
71+
{
72+
postPipeline.manager.postBatch(src);
73+
}
6274
};
6375

6476
module.exports = RenderTextureWebGLRenderer;

src/gameobjects/rope/RopeWebGLRenderer.js

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,14 @@ var RopeWebGLRenderer = function (renderer, src, camera, parentMatrix)
4141
// Because it's a triangle strip and we don't want lots of degenerate triangles joining things up
4242
pipeline.flush();
4343

44-
var textureUnit = pipeline.setGameObject(src);
44+
var postPipeline = (src && src.hasPostPipeline);
4545

46-
pipeline.manager.preBatch(src);
46+
if (postPipeline)
47+
{
48+
postPipeline.manager.preBatch(src);
49+
}
50+
51+
var textureUnit = pipeline.setGameObject(src);
4752

4853
var vertexViewF32 = pipeline.vertexViewF32;
4954
var vertexViewU32 = pipeline.vertexViewU32;
@@ -100,7 +105,10 @@ var RopeWebGLRenderer = function (renderer, src, camera, parentMatrix)
100105

101106
pipeline.vertexCount += vertexCount;
102107

103-
pipeline.manager.postBatch(src);
108+
if (postPipeline)
109+
{
110+
postPipeline.manager.postBatch(src);
111+
}
104112
};
105113

106114
module.exports = RopeWebGLRenderer;

src/gameobjects/shape/arc/ArcWebGLRenderer.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ var StrokePathWebGL = require('../StrokePathWebGL');
2424
*/
2525
var ArcWebGLRenderer = function (renderer, src, camera, parentMatrix)
2626
{
27-
var pipeline = renderer.pipelines.set(this.pipeline);
27+
var pipeline = renderer.pipelines.set(src.pipeline);
2828

2929
var result = GetCalcMatrix(src, camera, parentMatrix);
3030

@@ -35,6 +35,13 @@ var ArcWebGLRenderer = function (renderer, src, camera, parentMatrix)
3535

3636
var alpha = camera.alpha * src.alpha;
3737

38+
var postPipeline = (src && src.hasPostPipeline);
39+
40+
if (postPipeline)
41+
{
42+
postPipeline.manager.preBatch(src);
43+
}
44+
3845
if (src.isFilled)
3946
{
4047
FillPathWebGL(pipeline, calcMatrix, src, alpha, dx, dy);
@@ -44,6 +51,11 @@ var ArcWebGLRenderer = function (renderer, src, camera, parentMatrix)
4451
{
4552
StrokePathWebGL(pipeline, src, alpha, dx, dy);
4653
}
54+
55+
if (postPipeline)
56+
{
57+
postPipeline.manager.postBatch(src);
58+
}
4759
};
4860

4961
module.exports = ArcWebGLRenderer;

src/gameobjects/shape/curve/CurveWebGLRenderer.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ var StrokePathWebGL = require('../StrokePathWebGL');
2424
*/
2525
var CurveWebGLRenderer = function (renderer, src, camera, parentMatrix)
2626
{
27-
var pipeline = renderer.pipelines.set(this.pipeline);
27+
var pipeline = renderer.pipelines.set(src.pipeline);
2828

2929
var result = GetCalcMatrix(src, camera, parentMatrix);
3030

@@ -35,6 +35,13 @@ var CurveWebGLRenderer = function (renderer, src, camera, parentMatrix)
3535

3636
var alpha = camera.alpha * src.alpha;
3737

38+
var postPipeline = (src && src.hasPostPipeline);
39+
40+
if (postPipeline)
41+
{
42+
postPipeline.manager.preBatch(src);
43+
}
44+
3845
if (src.isFilled)
3946
{
4047
FillPathWebGL(pipeline, calcMatrix, src, alpha, dx, dy);
@@ -44,6 +51,11 @@ var CurveWebGLRenderer = function (renderer, src, camera, parentMatrix)
4451
{
4552
StrokePathWebGL(pipeline, src, alpha, dx, dy);
4653
}
54+
55+
if (postPipeline)
56+
{
57+
postPipeline.manager.postBatch(src);
58+
}
4759
};
4860

4961
module.exports = CurveWebGLRenderer;

0 commit comments

Comments
 (0)