diff --git a/ClassicalSharp/Events/Events.cs b/ClassicalSharp/Events/Events.cs
index aab5949cb..0734517b7 100644
--- a/ClassicalSharp/Events/Events.cs
+++ b/ClassicalSharp/Events/Events.cs
@@ -43,7 +43,7 @@ namespace ClassicalSharp {
public event EventHandler ColourCodesChanged;
internal void RaiseColourCodesChanged() { Raise( ColourCodesChanged ); }
- ChatEventArgs chatArgs = new ChatEventArgs();
+ ChatEventArgs chatArgs = new ChatEventArgs();
protected void Raise( EventHandler handler ) {
if( handler != null )
handler( this, EventArgs.Empty );
diff --git a/ClassicalSharp/Game/Game.Properties.cs b/ClassicalSharp/Game/Game.Properties.cs
index 6f3ed2353..fd3de2646 100644
--- a/ClassicalSharp/Game/Game.Properties.cs
+++ b/ClassicalSharp/Game/Game.Properties.cs
@@ -150,32 +150,25 @@ namespace ClassicalSharp {
/// Affected by both the current resolution of the window, as well as the
/// scaling specified by the user (field HotbarScale).
public float GuiHotbarScale {
- get {
- float scaleX = Width / 640f, scaleY = Height / 480f;
- return Math.Min( scaleX, scaleY ) * HotbarScale;
- }
+ get { return MinWindowScale * HotbarScale; }
}
/// Calculates the amount that the block inventory menu should be scaled by when rendered.
/// Affected by both the current resolution of the window, as well as the
/// scaling specified by the user (field InventoryScale).
public float GuiInventoryScale {
- get {
- float scaleX = Width / 640f, scaleY = Height / 480f;
- return Math.Min( scaleX, scaleY ) * InventoryScale;
- }
+ get { return MinWindowScale * InventoryScale; }
}
/// Calculates the amount that 2D chat widgets should be scaled by when rendered.
/// Affected by both the current resolution of the window, as well as the
/// scaling specified by the user (field ChatScale).
public float GuiChatScale {
- get {
- float scaleX = Width / 640f, scaleY = Height / 480f;
- return Math.Min( scaleX, scaleY ) * ChatScale;
- }
+ get { return MinWindowScale * ChatScale; }
}
+ float MinWindowScale { get { return Math.Min( Width / 640f, Height / 480f ); } }
+
string defTexturePack = "default.zip";
/// Gets or sets the path of the default texture pack that should be used by the client.
/// If the custom default texture pack specified by the user could not be found,
diff --git a/ClassicalSharp/Game/Game.cs b/ClassicalSharp/Game/Game.cs
index c72c0e3f7..26463d232 100644
--- a/ClassicalSharp/Game/Game.cs
+++ b/ClassicalSharp/Game/Game.cs
@@ -190,24 +190,24 @@ namespace ClassicalSharp {
}
Stopwatch frameTimer = new Stopwatch();
- internal void RenderFrame( FrameEventArgs e ) {
+ internal void RenderFrame( double delta ) {
frameTimer.Reset();
frameTimer.Start();
Graphics.BeginFrame( this );
Graphics.BindIb( defaultIb );
- accumulator += e.Time;
+ accumulator += delta;
Vertices = 0;
if( !Focused && !ScreenLockedInput )
SetNewScreen( new PauseScreen( this ) );
- CheckScheduledTasks( e.Time );
+ CheckScheduledTasks( delta );
float t = (float)( ticksAccumulator / ticksPeriod );
LocalPlayer.SetInterpPosition( t );
Graphics.Clear();
Graphics.SetMatrixMode( MatrixType.Modelview );
- Matrix4 modelView = Camera.GetView( e.Time );
+ Matrix4 modelView = Camera.GetView( delta );
View = modelView;
Graphics.LoadMatrix( ref modelView );
Culling.CalcFrustumEquations( ref Projection, ref modelView );
@@ -215,36 +215,36 @@ namespace ClassicalSharp {
bool visible = activeScreen == null || !activeScreen.BlocksWorld;
if( Map.IsNotLoaded ) visible = false;
if( visible ) {
- AxisLinesRenderer.Render( e.Time );
- Players.RenderModels( Graphics, e.Time, t );
- Players.RenderNames( Graphics, e.Time, t );
+ AxisLinesRenderer.Render( delta );
+ Players.RenderModels( Graphics, delta, t );
+ Players.RenderNames( Graphics, delta, t );
CurrentCameraPos = Camera.GetCameraPos( LocalPlayer.EyePosition );
- ParticleManager.Render( e.Time, t );
+ ParticleManager.Render( delta, t );
Camera.GetPickedBlock( SelectedPos ); // TODO: only pick when necessary
- EnvRenderer.Render( e.Time );
+ EnvRenderer.Render( delta );
if( SelectedPos.Valid && !HideGui )
- Picking.Render( e.Time, SelectedPos );
- MapRenderer.Render( e.Time );
- SelectionManager.Render( e.Time );
- Players.RenderHoveredNames( Graphics, e.Time, t );
+ Picking.Render( delta, SelectedPos );
+ MapRenderer.Render( delta );
+ SelectionManager.Render( delta );
+ Players.RenderHoveredNames( Graphics, delta, t );
bool left = IsMousePressed( MouseButton.Left );
bool middle = IsMousePressed( MouseButton.Middle );
bool right = IsMousePressed( MouseButton.Right );
InputHandler.PickBlocks( true, left, middle, right );
if( !HideGui )
- BlockHandRenderer.Render( e.Time, t );
+ BlockHandRenderer.Render( delta, t );
} else {
SelectedPos.SetAsInvalid();
}
Graphics.Mode2D( Width, Height, EnvRenderer is StandardEnvRenderer );
- fpsScreen.Render( e.Time );
+ fpsScreen.Render( delta );
if( activeScreen == null || !activeScreen.HidesHud )
- hudScreen.Render( e.Time );
+ hudScreen.Render( delta );
if( activeScreen != null )
- activeScreen.Render( e.Time );
+ activeScreen.Render( delta );
Graphics.Mode3D( EnvRenderer is StandardEnvRenderer );
if( screenshotRequested )
diff --git a/ClassicalSharp/Platform/IPlatformWindow.cs b/ClassicalSharp/Platform/IPlatformWindow.cs
index 070d4c0aa..8f30a9fff 100644
--- a/ClassicalSharp/Platform/IPlatformWindow.cs
+++ b/ClassicalSharp/Platform/IPlatformWindow.cs
@@ -67,8 +67,13 @@ namespace ClassicalSharp {
}
protected override void OnRenderFrame( FrameEventArgs e ) {
- game.RenderFrame( e );
+ game.RenderFrame( e.Time );
base.OnRenderFrame( e );
}
+
+ protected override void OnResize( object sender, EventArgs e ) {
+ game.OnResize();
+ base.OnResize( sender, e );
+ }
}
}