using Dalamud.Interface.Textures;

namespace HellionChat.Branding;

// UI sibling of HellionForgeAscii.FoxMini: the embedded Hellion Forge fox
// banner PNG. Uses ITextureProvider.GetFromManifestResource, a "Get" shared
// texture, so Dalamud owns the cache and lifetime. No manual dispose, no async
// handling in the plugin. Static to mirror HellionForgeAscii (zero injectable
// deps; Plugin.TextureProvider is a static [PluginService]).
internal static class FoxBannerTexture
{
    private const string ResourceName = "HellionChat.Branding.fox-banner.png";

    // Resolved fresh on every access. Dalamud keeps the shared texture cached
    // internally and decodes it asynchronously, so GetWrapOrDefault() returns
    // null for the first few frames until the decode finishes.
    public static ISharedImmediateTexture Shared =>
        Plugin.TextureProvider.GetFromManifestResource(
            typeof(FoxBannerTexture).Assembly,
            ResourceName
        );
}
