Replace `ImGuiResourceCache.BrushCache` with a single `Brush`
This commit is contained in:
parent
fb425c9db6
commit
fedd2dbb03
|
@ -14,7 +14,8 @@ namespace BizHawk.Bizware.Graphics
|
||||||
|
|
||||||
internal readonly IPipeline Pipeline;
|
internal readonly IPipeline Pipeline;
|
||||||
internal readonly Dictionary<Bitmap, ITexture2D> TextureCache = [ ];
|
internal readonly Dictionary<Bitmap, ITexture2D> TextureCache = [ ];
|
||||||
internal readonly Dictionary<Color, SolidBrush> BrushCache = [ ];
|
|
||||||
|
internal readonly SolidBrush CachedBrush = new(default);
|
||||||
|
|
||||||
public ImGuiResourceCache(IGL igl)
|
public ImGuiResourceCache(IGL igl)
|
||||||
{
|
{
|
||||||
|
@ -87,14 +88,8 @@ namespace BizHawk.Bizware.Graphics
|
||||||
{
|
{
|
||||||
cachedTex.Dispose();
|
cachedTex.Dispose();
|
||||||
}
|
}
|
||||||
|
CachedBrush.Dispose();
|
||||||
foreach (var cachedBrush in BrushCache.Values)
|
|
||||||
{
|
|
||||||
cachedBrush.Dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
TextureCache.Clear();
|
TextureCache.Clear();
|
||||||
BrushCache.Clear();
|
|
||||||
Pipeline?.Dispose();
|
Pipeline?.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,6 @@ using System.Runtime.InteropServices;
|
||||||
using ImGuiNET;
|
using ImGuiNET;
|
||||||
|
|
||||||
using BizHawk.Common;
|
using BizHawk.Common;
|
||||||
using BizHawk.Common.CollectionExtensions;
|
|
||||||
|
|
||||||
using SDGraphics = System.Drawing.Graphics;
|
using SDGraphics = System.Drawing.Graphics;
|
||||||
|
|
||||||
|
@ -262,7 +261,8 @@ namespace BizHawk.Bizware.Graphics
|
||||||
case DrawCallbackId.DrawString:
|
case DrawCallbackId.DrawString:
|
||||||
{
|
{
|
||||||
var stringArgs = (DrawStringArgs)GCHandle.FromIntPtr(cmd.UserCallbackData).Target!;
|
var stringArgs = (DrawStringArgs)GCHandle.FromIntPtr(cmd.UserCallbackData).Target!;
|
||||||
var brush = _resourceCache.BrushCache.GetValueOrPutNew1(stringArgs.Color);
|
var brush = _resourceCache.CachedBrush;
|
||||||
|
brush.Color = stringArgs.Color;
|
||||||
_stringGraphics.TextRenderingHint = stringArgs.TextRenderingHint;
|
_stringGraphics.TextRenderingHint = stringArgs.TextRenderingHint;
|
||||||
_stringGraphics.DrawString(stringArgs.Str, stringArgs.Font, brush, stringArgs.X, stringArgs.Y, stringArgs.Format);
|
_stringGraphics.DrawString(stringArgs.Str, stringArgs.Font, brush, stringArgs.X, stringArgs.Y, stringArgs.Format);
|
||||||
|
|
||||||
|
|
|
@ -3,8 +3,6 @@ using System.Runtime.InteropServices;
|
||||||
|
|
||||||
using ImGuiNET;
|
using ImGuiNET;
|
||||||
|
|
||||||
using BizHawk.Common.CollectionExtensions;
|
|
||||||
|
|
||||||
using static SDL2.SDL;
|
using static SDL2.SDL;
|
||||||
|
|
||||||
#pragma warning disable BHI1007 // target-typed Exception TODO don't
|
#pragma warning disable BHI1007 // target-typed Exception TODO don't
|
||||||
|
@ -178,7 +176,8 @@ namespace BizHawk.Bizware.Graphics
|
||||||
case DrawCallbackId.DrawString:
|
case DrawCallbackId.DrawString:
|
||||||
{
|
{
|
||||||
var stringArgs = (DrawStringArgs)GCHandle.FromIntPtr(cmd.UserCallbackData).Target!;
|
var stringArgs = (DrawStringArgs)GCHandle.FromIntPtr(cmd.UserCallbackData).Target!;
|
||||||
var brush = _resourceCache.BrushCache.GetValueOrPutNew1(stringArgs.Color);
|
var brush = _resourceCache.CachedBrush;
|
||||||
|
brush.Color = stringArgs.Color;
|
||||||
_stringGraphics.TextRenderingHint = stringArgs.TextRenderingHint;
|
_stringGraphics.TextRenderingHint = stringArgs.TextRenderingHint;
|
||||||
_stringGraphics.DrawString(stringArgs.Str, stringArgs.Font, brush, stringArgs.X, stringArgs.Y, stringArgs.Format);
|
_stringGraphics.DrawString(stringArgs.Str, stringArgs.Font, brush, stringArgs.X, stringArgs.Y, stringArgs.Format);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue