var Utils = require('../../renderer/webgl/Utils'); var DynamicTilemapLayerWebGLRenderer = function (renderer, src, interpolationPercentage, camera){ src.cull(camera); var renderTiles = src.culledTiles; var tileCount = _AN_Read_length('length', renderTiles); var alpha = camera.alpha * src.alpha; if (tileCount === 0 || alpha <= 0) { return ; } var pipeline = this.pipeline; var getTint = Utils.getTintAppendFloatAlpha; var tileset = src.tileset; var texture = tileset.glTexture; var scrollFactorX = src.scrollFactorX; var scrollFactorY = src.scrollFactorY; var x = src.x; var y = src.y; var sx = src.scaleX; var sy = src.scaleY; for (var i = 0; i < tileCount; i++ ){ var tile = renderTiles[i]; var tileTexCoords = tileset.getTileTextureCoordinates(tile.index); if (tileTexCoords === null ) { continue ; } var frameWidth = tile.width; var frameHeight = tile.height; var frameX = tileTexCoords.x; var frameY = tileTexCoords.y; var tw = tile.width * 0.5; var th = tile.height * 0.5; var tint = getTint(tile.tint, alpha * tile.alpha); pipeline.batchTexture(src, texture, texture.width, texture.height, tw + x + tile.pixelX * sx, th + y + tile.pixelY * sy, tile.width * sx, tile.height * sy, 1, 1, tile.rotation, tile.flipX, tile.flipY, scrollFactorX, scrollFactorY, tw, th, frameX, frameY, frameWidth, frameHeight, tint, tint, tint, tint, false , 0, 0, camera, null ); } } ; module.exports = DynamicTilemapLayerWebGLRenderer;