using Dalamud.Plugin;
using Penumbra.Api.Api;
using Penumbra.Api.Enums;
using Penumbra.Api.Helpers;
namespace Penumbra.Api.IpcSubscribers;
///
public sealed class ConvertTextureFile(IDalamudPluginInterface pi)
: FuncSubscriber(pi, Label)
{
/// The label.
public const string Label = $"Penumbra.{nameof(ConvertTextureFile)}";
///
public Task Invoke(string inputFile, string outputFile, TextureType textureType, bool mipMaps = true)
=> Invoke(inputFile, outputFile, (int)textureType, mipMaps);
/// Create a provider.
public static FuncProvider Provider(IDalamudPluginInterface pi, IPenumbraApiEditing api)
=> new(pi, Label, (a, b, c, d) => api.ConvertTextureFile(a, b, (TextureType)c, d));
}
///
public sealed class ConvertTextureData(IDalamudPluginInterface pi)
: FuncSubscriber(pi, Label)
{
/// The label.
public const string Label = $"Penumbra.{nameof(ConvertTextureData)}";
///
public Task Invoke(byte[] rgbaData, int width, string outputFile, TextureType textureType, bool mipMaps = true)
=> Invoke(rgbaData, width, outputFile, (int)textureType, mipMaps);
/// Create a provider.
public static FuncProvider Provider(IDalamudPluginInterface pi, IPenumbraApiEditing api)
=> new(pi, Label, (a, b, c, d, e) => api.ConvertTextureData(a, b, c, (TextureType)d, e));
}