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 gidMap = src.gidMap; var pipeline = src.pipeline; var getTint = Utils.getTintAppendFloatAlpha; var scrollFactorX = src.scrollFactorX; var scrollFactorY = src.scrollFactorY; var x = src.x; var y = src.y; var sx = src.scaleX; var sy = src.scaleY; var tilesets = src.tileset; for (var c = 0; c < _AN_Read_length('length', tilesets); c++ ){ var currentSet = tilesets[c]; var texture = currentSet.glTexture; for (var i = 0; i < tileCount; i++ ){ var tile = renderTiles[i]; var tileset = gidMap[tile.index]; if (tileset !== currentSet) { continue ; } 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, x + ((tw + tile.pixelX) * sx), y + ((th + tile.pixelY) * sy), tile.width, tile.height, sx, sy, tile.rotation, tile.flipX, tile.flipY, scrollFactorX, scrollFactorY, tw, th, frameX, frameY, frameWidth, frameHeight, tint, tint, tint, tint, false , 0, 0, camera, null , true ); } } } ; module.exports = DynamicTilemapLayerWebGLRenderer;