Skip to content

Commit 6e15f6b

Browse files
committed
Refactored to tidy it up and also now works with Light2D pipeline
1 parent 8bb4933 commit 6e15f6b

1 file changed

Lines changed: 15 additions & 29 deletions

File tree

src/tilemaps/staticlayer/StaticTilemapLayerWebGLRenderer.js

Lines changed: 15 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -29,60 +29,46 @@ var ViewLoad2D = require('../../renderer/webgl/mvp/ViewLoad2D');
2929
*/
3030
var StaticTilemapLayerWebGLRenderer = function (renderer, src, interpolationPercentage, camera)
3131
{
32-
var tilesets = src.tileset;
33-
32+
var gl = renderer.gl;
3433
var pipeline = src.pipeline;
35-
var pipelineVertexBuffer = pipeline.vertexBuffer;
3634

37-
renderer.setPipeline(pipeline);
35+
// Restore when we're done
36+
var pipelineVertexBuffer = pipeline.vertexBuffer;
3837

3938
Identity(pipeline);
4039
Translate(pipeline, src.x - (camera.scrollX * src.scrollFactorX), src.y - (camera.scrollY * src.scrollFactorY), 0);
4140
Scale(pipeline, src.scaleX, src.scaleY, 1);
4241
ViewLoad2D(pipeline, camera.matrix.matrix);
4342

44-
renderer.clearTextureZero();
45-
renderer.clearNormalMap();
43+
// This calls mvpUpdate during pipeline.bind, so make sure we call it _after_ setting the MVP stuff above
44+
renderer.setPipeline(pipeline);
4645

47-
for (var i = 0; i < tilesets.length; i++)
46+
for (var i = 0; i < src.tileset.length; i++)
4847
{
48+
var tileset = src.tileset[i];
49+
var vertexCount = src.vertexCount[i];
50+
4951
src.upload(camera, i);
5052

51-
if (src.vertexCount[i] > 0)
53+
if (vertexCount > 0)
5254
{
53-
renderer.flush();
54-
55-
pipeline.vertexBuffer = src.vertexBuffer[i];
56-
57-
renderer.setTextureZero(tilesets[i].glTexture);
58-
59-
var normalTexture = null;
60-
61-
if (Array.isArray(tilesets))
55+
if (pipeline.forceZero)
6256
{
63-
normalTexture = tilesets[0].image.dataSource[0];
57+
// Light Pipeline, or similar
58+
pipeline.setGameObject(src, tileset);
6459
}
6560
else
6661
{
67-
normalTexture = tilesets.image.dataSource[0];
62+
renderer.setTextureZero(tileset.glTexture);
6863
}
6964

70-
if (normalTexture)
71-
{
72-
// renderer.setNormalMap(pipeline.defaultNormalMap.glTexture);
73-
// renderer.setNormalMap(normalTexture.glTexture);
74-
}
75-
76-
renderer.gl.drawArrays(pipeline.topology, 0, src.vertexCount[i]);
65+
gl.drawArrays(gl.TRIANGLES, 0, vertexCount);
7766
}
7867
}
7968

8069
// Restore the pipeline
8170
pipeline.vertexBuffer = pipelineVertexBuffer;
8271

83-
renderer.clearTextureZero();
84-
renderer.clearNormalMap();
85-
8672
ViewIdentity(pipeline);
8773
Identity(pipeline);
8874
};

0 commit comments

Comments
 (0)