using Godot; using SixLabors.ImageSharp.PixelFormats; namespace KeepersCompound.TMV; public partial class TextureLoader { // TODO: Replace this with my own implementation lol // References: // - https://www.w3.org/Graphics/GIF/spec-gif89a.txt private static ImageTexture LoadGif(string path) { using var gifImage = SixLabors.ImageSharp.Image.Load(path); var width = gifImage.Width; var height = gifImage.Height; var image = Image.Create(width, height, false, Image.Format.Rgba8); for (var y = 0; y < height; y++) { for (var x = 0; x < width; x++) { var pixel = gifImage[x, y].ToVector4(); image.SetPixel(x, y, new Color(pixel.X, pixel.Y, pixel.Z, pixel.W)); } } return ImageTexture.CreateFromImage(image); } }