Skip to content

Commit 374cc84

Browse files
committed
Now the pipeline does it all
1 parent 561a1b5 commit 374cc84

1 file changed

Lines changed: 6 additions & 78 deletions

File tree

src/gameobjects/mesh/MeshWebGLRenderer.js

Lines changed: 6 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
* @license {@link https://opensource.org/licenses/MIT|MIT License}
55
*/
66

7-
var GetCalcMatrix = require('../GetCalcMatrix');
8-
97
/**
108
* Renders this Game Object with the WebGL Renderer to the given Camera.
119
* The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.
@@ -20,7 +18,7 @@ var GetCalcMatrix = require('../GetCalcMatrix');
2018
* @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.
2119
* @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested
2220
*/
23-
var MeshWebGLRenderer = function (renderer, src, camera, parentMatrix)
21+
var MeshWebGLRenderer = function (renderer, src)
2422
{
2523
var models = src.models;
2624
var totalModels = models.length;
@@ -30,88 +28,18 @@ var MeshWebGLRenderer = function (renderer, src, camera, parentMatrix)
3028
return;
3129
}
3230

33-
var pipeline = renderer.pipelines.set(src.pipeline, src);
34-
35-
var calcMatrix = GetCalcMatrix(src, camera, parentMatrix).calc;
36-
37-
var vertexOffset = (pipeline.vertexCount * pipeline.vertexComponentCount) - 1;
38-
39-
var debugVerts;
40-
var debugCallback = src.debugCallback;
31+
renderer.pipelines.clear();
4132

42-
var a = calcMatrix.a;
43-
var b = calcMatrix.b;
44-
var c = calcMatrix.c;
45-
var d = calcMatrix.d;
46-
var e = calcMatrix.e;
47-
var f = calcMatrix.f;
48-
49-
var F32 = pipeline.vertexViewF32;
50-
var U32 = pipeline.vertexViewU32;
51-
52-
var globalAlpha = camera.alpha * src.alpha;
33+
var pipeline = renderer.pipelines.set(src.pipeline, src);
5334

5435
for (var m = 0; m < totalModels; m++)
5536
{
5637
var model = models[m];
5738

58-
var faces = model.faces;
59-
var totalFaces = faces.length;
60-
var alpha = globalAlpha * model.alpha;
61-
62-
if (totalFaces === 0 || !model.visible || alpha <= 0)
63-
{
64-
continue;
65-
}
66-
67-
if (debugCallback)
68-
{
69-
debugVerts = [];
70-
}
71-
72-
var tintEffect = model.tintFill;
73-
var textureUnit = pipeline.setGameObject(model);
74-
75-
for (var i = 0; i < totalFaces; i++)
76-
{
77-
var face = faces[i];
78-
79-
if (model.hideCCW && !face.isCounterClockwise())
80-
{
81-
continue;
82-
}
83-
84-
if (pipeline.shouldFlush(3))
85-
{
86-
pipeline.flush();
87-
88-
vertexOffset = 0;
89-
}
90-
91-
vertexOffset = face.vertex1.load(F32, U32, vertexOffset, textureUnit, tintEffect, alpha, a, b, c, d, e, f);
92-
vertexOffset = face.vertex2.load(F32, U32, vertexOffset, textureUnit, tintEffect, alpha, a, b, c, d, e, f);
93-
vertexOffset = face.vertex3.load(F32, U32, vertexOffset, textureUnit, tintEffect, alpha, a, b, c, d, e, f);
94-
95-
pipeline.vertexCount += 3;
96-
97-
if (debugCallback && model.drawDebug)
98-
{
99-
debugVerts.push(
100-
F32[vertexOffset - 20],
101-
F32[vertexOffset - 19],
102-
F32[vertexOffset - 13],
103-
F32[vertexOffset - 12],
104-
F32[vertexOffset - 6],
105-
F32[vertexOffset - 5]
106-
);
107-
}
108-
}
109-
110-
if (debugCallback && model.drawDebug)
111-
{
112-
debugCallback.call(src, src, debugVerts);
113-
}
39+
pipeline.drawModel(src, model);
11440
}
41+
42+
renderer.pipelines.rebind();
11543
};
11644

11745
module.exports = MeshWebGLRenderer;

0 commit comments

Comments
 (0)