Skip to content

Commit f3ebada

Browse files
committed
Tidy up everything after rendering
1 parent 9280a73 commit f3ebada

1 file changed

Lines changed: 22 additions & 9 deletions

File tree

src/tilemaps/staticlayer/StaticTilemapLayerWebGLRenderer.js

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
var Identity = require('../../renderer/webgl/mvp/Identity');
88
var Scale = require('../../renderer/webgl/mvp/Scale');
99
var Translate = require('../../renderer/webgl/mvp/Translate');
10-
var ViewIdentity = require('../../renderer/webgl/mvp/ViewIdentity');
1110
var ViewLoad2D = require('../../renderer/webgl/mvp/ViewLoad2D');
1211

1312
/**
@@ -32,17 +31,23 @@ var StaticTilemapLayerWebGLRenderer = function (renderer, src, interpolationPerc
3231
var gl = renderer.gl;
3332
var pipeline = src.pipeline;
3433

34+
renderer.flush();
35+
3536
// Restore when we're done
3637
var pipelineVertexBuffer = pipeline.vertexBuffer;
3738

38-
Identity(pipeline);
39-
Translate(pipeline, src.x - (camera.scrollX * src.scrollFactorX), src.y - (camera.scrollY * src.scrollFactorY), 0);
40-
Scale(pipeline, src.scaleX, src.scaleY, 1);
41-
ViewLoad2D(pipeline, camera.matrix.matrix);
39+
Identity(src);
40+
Translate(src, src.x - (camera.scrollX * src.scrollFactorX), src.y - (camera.scrollY * src.scrollFactorY), 0);
41+
Scale(src, src.scaleX, src.scaleY, 1);
42+
ViewLoad2D(src, camera.matrix.matrix);
4243

43-
// This calls mvpUpdate during pipeline.bind, so make sure we call it _after_ setting the MVP stuff above
4444
renderer.setPipeline(pipeline);
4545

46+
// The above alters the uniforms, so make sure we call it _after_ setting the MVP stuff above
47+
renderer.setMatrix4(pipeline.program, 'uModelMatrix', false, src.modelMatrix);
48+
renderer.setMatrix4(pipeline.program, 'uViewMatrix', false, src.viewMatrix);
49+
renderer.setMatrix4(pipeline.program, 'uProjectionMatrix', false, pipeline.projectionMatrix);
50+
4651
for (var i = 0; i < src.tileset.length; i++)
4752
{
4853
var tileset = src.tileset[i];
@@ -66,11 +71,19 @@ var StaticTilemapLayerWebGLRenderer = function (renderer, src, interpolationPerc
6671
}
6772
}
6873

69-
// Restore the pipeline
74+
renderer.resetTextures();
75+
76+
// Restore the pipeline buffer
7077
pipeline.vertexBuffer = pipelineVertexBuffer;
7178

72-
ViewIdentity(pipeline);
73-
Identity(pipeline);
79+
renderer.currentVertexBuffer = pipelineVertexBuffer;
80+
81+
pipeline.setAttribPointers();
82+
83+
// Reset the uniforms
84+
renderer.setMatrix4(pipeline.program, 'uModelMatrix', false, pipeline.modelMatrix);
85+
renderer.setMatrix4(pipeline.program, 'uViewMatrix', false, pipeline.viewMatrix);
86+
renderer.setMatrix4(pipeline.program, 'uProjectionMatrix', false, pipeline.projectionMatrix);
7487
};
7588

7689
module.exports = StaticTilemapLayerWebGLRenderer;

0 commit comments

Comments
 (0)