using System; using System.Buffers; namespace SixLabors.ImageSharp.Tests { using SixLabors.ImageSharp.Advanced; using SixLabors.ImageSharp.PixelFormats; class TestMemoryManager : MemoryManager where T : struct, IPixel { public TestMemoryManager(T[] pixelArray) { this.PixelArray = pixelArray; } public T[] PixelArray { get; } protected override void Dispose(bool disposing) { } public override Span GetSpan() { return this.PixelArray; } public override MemoryHandle Pin(int elementIndex = 0) { throw new NotImplementedException(); } public override void Unpin() { throw new NotImplementedException(); } public static TestMemoryManager CreateAsCopyOfPixelData(Span pixelData) { var pixelArray = new T[pixelData.Length]; pixelData.CopyTo(pixelArray); return new TestMemoryManager(pixelArray); } public static TestMemoryManager CreateAsCopyOfPixelData(Image image) { return CreateAsCopyOfPixelData(image.GetPixelSpan()); } } }