Initial loadscreen impl; draws a black screen.

This commit is contained in:
Paul Chote
2010-08-24 23:50:26 +12:00
parent d8c053253d
commit 08a60ca336
3 changed files with 25 additions and 12 deletions

View File

@@ -263,20 +263,20 @@ namespace OpenRA
Log.AddChannel("debug", "debug.log"); Log.AddChannel("debug", "debug.log");
Log.AddChannel("sync", "syncreport.log"); Log.AddChannel("sync", "syncreport.log");
FileSystem.Mount("."); // Needed to access shaders
Renderer.Initialize( Game.Settings.Graphics.Mode );
Renderer.SheetSize = Settings.Game.SheetSize;
Renderer = new Renderer();
LobbyInfo.GlobalSettings.Mods = Settings.Game.Mods; LobbyInfo.GlobalSettings.Mods = Settings.Game.Mods;
modData = new ModData( LobbyInfo.GlobalSettings.Mods ); modData = new ModData( LobbyInfo.GlobalSettings.Mods );
Renderer.SheetSize = Settings.Game.SheetSize;
Renderer.Initialize( Game.Settings.Graphics.Mode );
Sound.Initialize(); Sound.Initialize();
PerfHistory.items["render"].hasNormalTick = false; PerfHistory.items["render"].hasNormalTick = false;
PerfHistory.items["batches"].hasNormalTick = false; PerfHistory.items["batches"].hasNormalTick = false;
PerfHistory.items["text"].hasNormalTick = false; PerfHistory.items["text"].hasNormalTick = false;
PerfHistory.items["cursor"].hasNormalTick = false; PerfHistory.items["cursor"].hasNormalTick = false;
Renderer = new Renderer();
JoinLocal(); JoinLocal();
StartGame(modData.Manifest.ShellmapUid); StartGame(modData.Manifest.ShellmapUid);

View File

@@ -70,6 +70,16 @@ namespace OpenRA.Graphics
Timer.Time( "endFrame: {0}" ); Timer.Time( "endFrame: {0}" );
} }
public static void DrawLoadScreen( Renderer r, float loadFraction )
{
r.BeginFrame(float2.Zero);
// Do stuff
r.RgbaSpriteRenderer.Flush();
r.EndFrame();
}
public void RefreshPalette() public void RefreshPalette()
{ {
Game.world.WorldRenderer.palette.Update( Game.world.WorldRenderer.palette.Update(

View File

@@ -28,13 +28,14 @@ namespace OpenRA
public ModData( params string[] mods ) public ModData( params string[] mods )
{ {
Manifest = new Manifest( mods ); Manifest = new Manifest( mods );
ObjectCreator = new ObjectCreator( Manifest );
FileSystem.LoadFromManifest( Manifest ); FileSystem.LoadFromManifest( Manifest );
SheetBuilder = new SheetBuilder( TextureChannel.Red );
CursorSheetBuilder = new CursorSheetBuilder( this );
ChromeProvider.Initialize( Manifest.Chrome ); ChromeProvider.Initialize( Manifest.Chrome );
Viewport.DrawLoadScreen(Game.Renderer, 0f);
ObjectCreator = new ObjectCreator( Manifest );
SheetBuilder = new SheetBuilder( TextureChannel.Red );
CursorSheetBuilder = new CursorSheetBuilder( this );
AvailableMaps = FindMaps( mods ); AvailableMaps = FindMaps( mods );
} }
@@ -51,6 +52,8 @@ namespace OpenRA
string cachedTheatre = null; string cachedTheatre = null;
public Map PrepareMap(string uid) public Map PrepareMap(string uid)
{ {
Viewport.DrawLoadScreen(Game.Renderer, 0f);
if (!AvailableMaps.ContainsKey(uid)) if (!AvailableMaps.ContainsKey(uid))
throw new InvalidDataException("Invalid map uid: {0}".F(uid)); throw new InvalidDataException("Invalid map uid: {0}".F(uid));