Make editor brushes disposable.

This commit is contained in:
Paul Chote
2015-05-28 18:43:04 +01:00
parent bf3a46be93
commit 1c06297ff7
5 changed files with 15 additions and 5 deletions

View File

@@ -24,7 +24,7 @@ using OpenRA.Widgets;
namespace OpenRA.Mods.Common.Widgets
{
public class EditorActorBrush : IEditorBrush
public sealed class EditorActorBrush : IEditorBrush
{
public readonly ActorInfo Actor;
@@ -148,5 +148,7 @@ namespace OpenRA.Mods.Common.Widgets
preview.Bounds.Width = (int)(zoom * s.X);
preview.Bounds.Height = (int)(zoom * s.Y);
}
public void Dispose() { }
}
}

View File

@@ -24,13 +24,13 @@ using OpenRA.Widgets;
namespace OpenRA.Mods.Common.Widgets
{
public interface IEditorBrush
public interface IEditorBrush : IDisposable
{
bool HandleMouseInput(MouseInput mi);
void Tick();
}
public class EditorDefaultBrush : IEditorBrush
public sealed class EditorDefaultBrush : IEditorBrush
{
public readonly ActorInfo Actor;
@@ -110,5 +110,6 @@ namespace OpenRA.Mods.Common.Widgets
}
public void Tick() { }
public void Dispose() { }
}
}

View File

@@ -24,7 +24,7 @@ using OpenRA.Widgets;
namespace OpenRA.Mods.Common.Widgets
{
public class EditorResourceBrush : IEditorBrush
public sealed class EditorResourceBrush : IEditorBrush
{
public readonly ResourceTypeInfo ResourceType;
@@ -119,5 +119,7 @@ namespace OpenRA.Mods.Common.Widgets
preview.Bounds.X = cellScreenPixel.X;
preview.Bounds.Y = cellScreenPixel.Y;
}
public void Dispose() { }
}
}

View File

@@ -24,7 +24,7 @@ using OpenRA.Widgets;
namespace OpenRA.Mods.Common.Widgets
{
public class EditorTileBrush : IEditorBrush
public sealed class EditorTileBrush : IEditorBrush
{
public readonly ushort Template;
@@ -156,5 +156,7 @@ namespace OpenRA.Mods.Common.Widgets
preview.Bounds.Width = (int)(zoom * bounds.Width);
preview.Bounds.Height = (int)(zoom * bounds.Height);
}
public void Dispose() { }
}
}

View File

@@ -48,6 +48,9 @@ namespace OpenRA.Mods.Common.Widgets
public void ClearBrush() { SetBrush(null); }
public void SetBrush(IEditorBrush brush)
{
if (CurrentBrush != null)
CurrentBrush.Dispose();
CurrentBrush = brush ?? defaultBrush;
}