/** 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( )); }