public static unsafe byte[] CompressDDS(byte[] input, int width, int height, CrnglueFormat format, CrnglueMipmaps mipmaps, bool highQualitySlow) { IntPtr output; int outputSize; fixed(byte *b = input) { if (CrnGlueCompressDDS((IntPtr)b, width, height, format, mipmaps, highQualitySlow, out output, out outputSize) == 0) { throw new Exception("Compression failed"); } } var result = Copy(output, outputSize); CrnGlueFreeDDS(output); Thread.Sleep(10000); return(result); }
static extern int CrnGlueCompressDDS(IntPtr input, int inWidth, int inHeight, CrnglueFormat format, CrnglueMipmaps mipmaps, bool highQualitySlow, out IntPtr output, out int outputSize);