var Identity = require('../../renderer/webgl/mvp/Identity'); var Scale = require('../../renderer/webgl/mvp/Scale'); var Translate = require('../../renderer/webgl/mvp/Translate'); var ViewLoad2D = require('../../renderer/webgl/mvp/ViewLoad2D'); var StaticTilemapLayerWebGLRenderer = function (renderer, src, camera){ var gl = renderer.gl; var pipeline = src.pipeline; renderer.flush(); var pipelineVertexBuffer = pipeline.vertexBuffer; Identity(src); Translate(src, src.x - (camera.scrollX * src.scrollFactorX), src.y - (camera.scrollY * src.scrollFactorY), 0); Scale(src, src.scaleX, src.scaleY, 1); ViewLoad2D(src, camera.matrix.matrix); renderer.pipelines.set(pipeline); renderer.setMatrix4(pipeline.program, 'uModelMatrix', false , src.modelMatrix); renderer.setMatrix4(pipeline.program, 'uViewMatrix', false , src.viewMatrix); renderer.setMatrix4(pipeline.program, 'uProjectionMatrix', false , pipeline.projectionMatrix); for (var i = 0; i < _AN_Read_length('length', src.tileset); i++ ){ var tileset = src.tileset[i]; var vertexCount = src.vertexCount[i]; src.upload(camera, i); if (vertexCount > 0) { if (pipeline.forceZero) { pipeline.setGameObject(src, tileset); } else { renderer.setTextureZero(tileset.glTexture); } gl.drawArrays(gl.TRIANGLES, 0, vertexCount); } } renderer.resetTextures(); pipeline.vertexBuffer = pipelineVertexBuffer; renderer.currentVertexBuffer = pipelineVertexBuffer; pipeline.setAttribPointers(); renderer.setMatrix4(pipeline.program, 'uModelMatrix', false , pipeline.modelMatrix); renderer.setMatrix4(pipeline.program, 'uViewMatrix', false , pipeline.viewMatrix); renderer.setMatrix4(pipeline.program, 'uProjectionMatrix', false , pipeline.projectionMatrix); } ; module.exports = StaticTilemapLayerWebGLRenderer;