code: function drawTileLayer(renderer, layer, rect) {
           // get top-left and bottom-right tile position
           var start = this.pixelToTileCoords(rect.pos.x, rect.pos.y, me.pool.pull("me.Vector2d")).floorSelf();
           var end = this.pixelToTileCoords(rect.pos.x + rect.width + this.tilewidth, rect.pos.y + rect.height + this.tileheight, me.pool.pull("me.Vector2d")).ceilSelf(); //ensure we are in the valid tile range
  
           start.x = start.x < 0 ? 0 : start.x;
           start.y = start.y < 0 ? 0 : start.y;
           end.x = end.x > this.cols ? this.cols : end.x;
           end.y = end.y > this.rows ? this.rows : end.y; // main drawing loop
  
           for (var y = start.y; y < end.y; y++) {
             for (var x = start.x; x < end.x; x++) {
               var tmxTile = layer.layerData[x][y];
  
               if (tmxTile) {
                 this.drawTile(renderer, x, y, tmxTile);
               }
             }
           }
  
           me.pool.push(start);
           me.pool.push(end);
         }
docs: draw the tile map
  @ignore