/** Load a set of renderables
         */
        public void ExecuteRenderableLoading()
        {
            long j = (long)renderablesLoadQueue.Size;

            if (j != 0)
            {
                if (j > Options.Instance.Num_Renderables_Loading)
                {
                    j = Options.Instance.Num_Renderables_Loading;
                }
                for (long i = 0; i < j; i++)
                {
                    Renderable rend = renderablesLoadQueue.Pop( );
                    if (rend != null)
                    {
                        rend.Load();
                        Tile.Tile tile = tilesLoadQueue.Pop( );
                        // make sure tile had not been unloaded til queue insertion
                        if (tile.IsLoaded)
                        {
//							Debug.Assert(tile != null &&  tile.getTileNode ());
                            // only attach if renderable loaded
                            tile.TileNode.AttachObject(rend);
                            tile.LinkRenderableNeighbor();
                        }
                    }
                }
            }
        }
        /// <summary>

        /// Retrieve a free Tile

        /// </summary>

        /// <returns>free tile</returns>
        public Tile GetTile( )
        {
            if (queue.Size == 0)
            {
                // We don´t have more renderables, so we are going to add more
                addBatch(Options.Instance.Num_Tiles_Increment);
                // Increment the next batch by a 10%
                Options.Instance.Num_Tiles_Increment += (long)(Options.Instance.Num_Tiles_Increment * 0.1f);
            }
            return(queue.Pop( ));
        }