Use CachedTransform in ImageWidget
This commit is contained in:
@@ -31,6 +31,16 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
readonly Lazy<TooltipContainerWidget> tooltipContainer;
|
readonly Lazy<TooltipContainerWidget> tooltipContainer;
|
||||||
public Func<string> GetTooltipText;
|
public Func<string> GetTooltipText;
|
||||||
|
|
||||||
|
readonly CachedTransform<(string, string), Sprite> getImageCache = new CachedTransform<(string, string), Sprite>(
|
||||||
|
((string collection, string image) args) =>
|
||||||
|
{
|
||||||
|
var sprite = ChromeProvider.GetImage(args.collection, args.image);
|
||||||
|
if (sprite == null)
|
||||||
|
throw new ArgumentException($"Sprite {args.collection}/{args.image} was not found.");
|
||||||
|
|
||||||
|
return sprite;
|
||||||
|
});
|
||||||
|
|
||||||
public ImageWidget()
|
public ImageWidget()
|
||||||
{
|
{
|
||||||
GetImageName = () => ImageName;
|
GetImageName = () => ImageName;
|
||||||
@@ -60,13 +70,7 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
|
|
||||||
public override void Draw()
|
public override void Draw()
|
||||||
{
|
{
|
||||||
var name = GetImageName();
|
var sprite = getImageCache.Update((GetImageCollection(), GetImageName()));
|
||||||
var collection = GetImageCollection();
|
|
||||||
|
|
||||||
var sprite = ChromeProvider.GetImage(collection, name);
|
|
||||||
if (sprite == null)
|
|
||||||
throw new ArgumentException($"Sprite {collection}/{name} was not found.");
|
|
||||||
|
|
||||||
WidgetUtils.DrawSprite(sprite, RenderOrigin);
|
WidgetUtils.DrawSprite(sprite, RenderOrigin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user