From 40db84893d1e94334fb0fdb8687514a1430a0025 Mon Sep 17 00:00:00 2001 From: Mike Date: Mon, 18 Dec 2023 17:41:17 -0600 Subject: [PATCH] v2.5 and BC7 release --- DAT_Image_File.txt | 14 +-- DatFile.cs | 26 ++--- ImageFormat.Dat.csproj | 9 ++ JeremyAnsel.BcnSharpLib32.dll | Bin 0 -> 125952 bytes JeremyAnsel.BcnSharpLib64.dll | Bin 0 -> 161792 bytes MIT License.txt | 21 ++++ Properties/AssemblyInfo.cs | 4 +- Readme.txt | 15 ++- Sub.cs | 178 ++++++++++++++++++++++++---------- 9 files changed, 189 insertions(+), 78 deletions(-) create mode 100644 JeremyAnsel.BcnSharpLib32.dll create mode 100644 JeremyAnsel.BcnSharpLib64.dll create mode 100644 MIT License.txt diff --git a/DAT_Image_File.txt b/DAT_Image_File.txt index 49f8dc5..40e642c 100644 --- a/DAT_Image_File.txt +++ b/DAT_Image_File.txt @@ -11,7 +11,6 @@ etc. Portions of the format are similar or directly ripped from the .ACT format of TIE and XvT. The images are separated into "Groups" and "Subs", with the Group being the base image, and the Sub being variants or animation frames. -**NOTE** Addition of BC7 is WIP, not all information has been added ** ===== DAT Structure @@ -62,14 +61,15 @@ struct Sub 0x00 SubHeader 0x12 ImageHeader 0x3E Colors[ImageHeader.NumberOfColors] -#if (Type!=25C) - Row[Height] -#else +#if (Type==25C) 0x3E BYTE[5] CompressionParameters 0x43 BYTE[] LzmaData +#elseif (Type==BC7) + 0x3E BYTE[] EncodedBlockData +#else Row[Height] #endif #if (Type==7 || Type==23) - BYTE Reserved (0) + BYTE Reserved (0) #endif } @@ -324,4 +324,6 @@ Type "BC7"; BCn compressed, requires 32-bit hook. The data length is the size of the padded area, with padding up to multiples of 4 in both width and height. ((Width+3)/4 * 4) * ((Height+3)/4 * 4). Note that for dimensions that are already divisible by 4, this is simply Width * Height. Pixels are run through -the compression algorithm in 4x4 blocks. \ No newline at end of file +the compression algorithm in 4x4 blocks. The full details of how BCn works is +left to you if you're curious, I'm using an external source for the algorithm +instead of trying to recreate it. \ No newline at end of file diff --git a/DatFile.cs b/DatFile.cs index f7f5231..a34b3cf 100644 --- a/DatFile.cs +++ b/DatFile.cs @@ -1,6 +1,6 @@ /* * Idmr.ImageFormat.Dat, Allows editing capability of LA *.DAT Image files - * Copyright (C) 2009-2022 Michael Gaisser (mjgaisser@gmail.com) + * Copyright (C) 2009-2023 Michael Gaisser (mjgaisser@gmail.com) * * This library is free software; you can redistribute it and/or modify it * under the terms of the Mozilla Public License; either version 2.0 of the @@ -35,9 +35,9 @@ * [UPD] Group/Sub converted to class */ +using Idmr.Common; using System; using System.IO; -using Idmr.Common; namespace Idmr.ImageFormat.Dat { @@ -70,7 +70,7 @@ public DatFile(string file) } catch (Exception x) { - if (fs != null) fs.Close(); + fs?.Close(); throw new LoadFileException(x); } _filePath = file; @@ -133,7 +133,7 @@ public void Save() } catch (Exception x) { - if (fs != null) fs.Close(); + fs?.Close(); if (File.Exists(tempFile)) File.Copy(tempFile, _filePath); // restore backup if it exists File.Delete(tempFile); // delete backup if it exists throw new SaveFileException(x); @@ -188,21 +188,21 @@ public void DecodeFile(byte[] rawData) } } #endregion public methods - + #region public properties /// Gets the file name of the Dat object /// Value is without the directory - public string FileName { get { return StringFunctions.GetFileName(_filePath); } } - + public string FileName => StringFunctions.GetFileName(_filePath); + /// Gets the full path of the Dat object /// Defaults to "newfile.dat" - public string FilePath { get { return _filePath; } } - + public string FilePath => _filePath; + /// Gets the Collection of Groups in the archive public GroupCollection Groups { get; internal set; } - + /// Gets the number of Groups in the archive - public short NumberOfGroups { get { return (short)Groups.Count; } } + public short NumberOfGroups => (short)Groups.Count; /// Gets the maximum height used for all images public short UsedHeight @@ -254,7 +254,7 @@ int length return l; } } - - int dataOffset { get { return NumberOfGroups * Group._headerLength; } } + + int dataOffset => NumberOfGroups * Group._headerLength; } } diff --git a/ImageFormat.Dat.csproj b/ImageFormat.Dat.csproj index 6b6f61c..887a48d 100644 --- a/ImageFormat.Dat.csproj +++ b/ImageFormat.Dat.csproj @@ -84,9 +84,18 @@ + + PreserveNewest + + + PreserveNewest + PreserveNewest + + PreserveNewest + PreserveNewest diff --git a/JeremyAnsel.BcnSharpLib32.dll b/JeremyAnsel.BcnSharpLib32.dll new file mode 100644 index 0000000000000000000000000000000000000000..9af258c4e4453de80dae0e422055f8ba8ab83513 GIT binary patch literal 125952 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 z%0D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

7ms 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 literal 0 HcmV?d00001 diff --git a/JeremyAnsel.BcnSharpLib64.dll b/JeremyAnsel.BcnSharpLib64.dll new file mode 100644 index 0000000000000000000000000000000000000000..5334a4b8fbd20d249c805205458c1b84baf7939f GIT binary patch literal 161792 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 z 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 literal 0 HcmV?d00001 diff --git a/MIT License.txt b/MIT License.txt new file mode 100644 index 0000000..c0e3330 --- /dev/null +++ b/MIT License.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2020-2021 Richard Geldreich, Jr, 2023 Jérémy Ansel + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index 6e2e0f8..1ad74de 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -13,9 +13,9 @@ [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("Imperial Department of Military Research")] [assembly: AssemblyProduct("Idmr.ImageFormat.Dat")] -[assembly: AssemblyCopyright("Copyright © Michael Gaisser 2009-2022")] +[assembly: AssemblyCopyright("Copyright © Michael Gaisser 2009-2023")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // Major.Minor.Build.Revision -[assembly: AssemblyVersion("2.4.*")] \ No newline at end of file +[assembly: AssemblyVersion("2.5.*")] \ No newline at end of file diff --git a/Readme.txt b/Readme.txt index 8f3a354..fef5526 100644 --- a/Readme.txt +++ b/Readme.txt @@ -2,15 +2,16 @@ Idmr.ImageFormat.Dat.dll ======================== Author: Michael Gaisser (mjgaisser@gmail.com) -Version: 2.4 -Date: 2022.02.27 +Version: 2.5 +Date: 2023.12.18 Library for reading LucasArts *.DAT backdrop files ========== Version History - - BC7 format detection, currently unsupported and returns a blank image +v2.5 - 18 Dec 2023 + - Added BC7 format capability v2.4 - 27 Feb 2022 - Added Format 25C capability @@ -58,6 +59,8 @@ Additional Information Instructions: - Get latest version of Idmr.Common.dll (v1.1 or later) - Add Idmr.Common.dll and Idmr.ImageFormat.Dat.dll to your references + - Add both JeremyAnsel.BcnSharpLib32.dll and ~64.dll to the build directory + for use as external references. File format structure can be found in DAT_Image_File.txt @@ -66,12 +69,16 @@ Programmer's reference can be found in help/Idmr.ImageFormat.Dat.chm ========== Copyright Information -Copyright (C) Michael Gaisser, 2009-2022 +Copyright (C) Michael Gaisser, 2009-2023 This library file and related files are licensed under the Mozilla Public License v2.0 or later. See License.txt for further details. The LZMA SDK is written and placed in the public domain by Igor Pavlov. +The BC7 library and implementation are Copyright (C) 2020-2021 +Richard Geldreich, Jr and 2023 Jérémy Ansel, covered by the MIT License. +See "MIT License.txt" for full details. + "Star Wars" and related items are trademarks of LucasFilm Ltd and LucasArts Entertainment Co. diff --git a/Sub.cs b/Sub.cs index d6ec26e..1489cd7 100644 --- a/Sub.cs +++ b/Sub.cs @@ -1,14 +1,18 @@ /* * Idmr.ImageFormat.Dat, Allows editing capability of LucasArts *.DAT Image files - * Copyright (C) 2009-2022 Michael Gaisser (mjgaisser@gmail.com) + * Copyright (C) 2009-2023 Michael Gaisser (mjgaisser@gmail.com) * Licensed under the GPL v2.0 or later * + * BC7 implementation based on JeremyAnsel.BcnSharp, Copyright 2023 Jérémy Ansel + * Licensed under the MIT License. + * * Full notice in DatFile.cs - * VERSION: 2.4+ + * VERSION: 2.5 */ /* CHANGE LOG - * [NEW] BC7 detection, format currently unsupported and returns a blank image + * v2.5, 231218 + * [NEW] Format BC7 support * v2.4, 220227 * [UPD] _rows set to null for Full32bpp images since there's no processing * [NEW] Format "25C", 32bpp LZMA compressed @@ -26,11 +30,12 @@ * [UPD] allowed Colors.set without defined _image */ +using Idmr.Common; using System; using System.Drawing; using System.Drawing.Imaging; using System.IO; -using Idmr.Common; +using System.Runtime.InteropServices; namespace Idmr.ImageFormat.Dat { @@ -63,12 +68,11 @@ public enum ImageType : short Blended = 23, ///

16bpp Indexed Alpha uncompressed UncompressedBlended, - /// 32bpp ARGB + /// 32bpp ARGB per 32bpp hook Full32bppArgb, - /// "25C", 32bpp ARGB with LZMA compression + /// "25C", 32bpp ARGB with LZMA compression per 32bpp hook Compressed32bppArgb, - /// 32bpp ARGB with BCn compression - /// CURRENTLY UNSUPPORTED + /// 32bpp ARGB with BCn compression per 32bpp hook BC7Compressed }; @@ -116,8 +120,8 @@ public Sub(byte[] raw) // Sub.Rows[] _rows = new byte[length - imageDataOffset]; ArrayFunctions.TrimArray(raw, offset, _rows); - if (_type != ImageType.Compressed32bppArgb) - _image = DecodeImage(_rows, _width, _height, _colors, _type); // don't unzip until it's called + if (_type != ImageType.Compressed32bppArgb && _type != ImageType.BC7Compressed) + _image = DecodeImage(_rows, _width, _height, _colors, _type); // don't decompress until it's called for if (_type == ImageType.Full32bppArgb) _rows = null; } /// Create a new sub from the provided image and IDs @@ -141,7 +145,7 @@ public Sub(short groupID, short subID, Bitmap image) _rows = EncodeImage(image, _type, (Color[])image.Palette.Entries.Clone(), out _image, out _colors); _height = (short)_image.Height; _width = (short)_image.Width; - _length = _rows.Length + imageDataOffset; + _length = _rows.Length + _imageDataOffset; UpdateHeader(); if (_type == ImageType.Full32bppArgb) _rows = null; } @@ -171,10 +175,10 @@ public Sub(short groupID, short subID) /// Image height /// Defined Color array to be used for the image /// Encoding protocol used for - /// If is , returns a image.
- /// Otherwise the returned image will be . - /// is ignored and allowed to be null if is or .
- /// if is , then must be the LZMA compression data.
+ /// If is , returns a image, otherwise the returned image will be .
+ /// is ignored and allowed to be null if is , or .
+ /// If is , then must be the LZMA compression data.
+ /// If is , then must be the encoded block data.
public static Bitmap DecodeImage(byte[] rawData, int width, int height, Color[] colors, ImageType type) { int offset = 0; @@ -259,10 +263,11 @@ public static Bitmap DecodeImage(byte[] rawData, int width, int height, Color[] break; case ImageType.Full32bppArgb: case ImageType.Compressed32bppArgb: + case ImageType.BC7Compressed: image = new Bitmap(width, height, PixelFormat.Format32bppArgb); BitmapData bdArgb = GraphicsFunctions.GetBitmapData(image); if (type == ImageType.Full32bppArgb) GraphicsFunctions.CopyBytesToImage(rawData, bdArgb); // already good data - else + else if (type == ImageType.Compressed32bppArgb) { byte[] lzmaParameters = new byte[5]; ArrayFunctions.TrimArray(rawData, 0, lzmaParameters); @@ -278,11 +283,22 @@ public static Bitmap DecodeImage(byte[] rawData, int width, int height, Color[] } GraphicsFunctions.CopyBytesToImage(pixelsArgb, bdArgb); } + else if (type == ImageType.BC7Compressed) + { // This else block covered by MIT License + var pixelsArgb = new byte[bdArgb.Stride * bdArgb.Height]; + GCHandle pixelsHandle = GCHandle.Alloc(pixelsArgb, GCHandleType.Pinned); + GCHandle blocksHandle = GCHandle.Alloc(rawData, GCHandleType.Pinned); + + try { BC7_Decode(blocksHandle.AddrOfPinnedObject(), pixelsHandle.AddrOfPinnedObject(), width, height); } + finally + { + pixelsHandle.Free(); + blocksHandle.Free(); + } + GraphicsFunctions.CopyBytesToImage(pixelsArgb, bdArgb); + } image.UnlockBits(bdArgb); break; - case ImageType.BC7Compressed: - // TODO: BC7. do nothing for now, unsupported - break; } return image; } @@ -291,17 +307,16 @@ public static Bitmap DecodeImage(byte[] rawData, int width, int height, Color[] /// The image to encode /// The encoding protocol to use /// The color array to use - /// with unused color indexes removed, or simply the original as if is or . - /// with unused color indexes removed, or null if is or . + /// with unused color indexes removed, or simply the original as if is , or . + /// with unused color indexes removed, or null if is , or . /// Unused color indexes are removed from both and , the returned array reflects the trimmed parameters. is ignored and can be null if is or .
/// If is , then instead of being row data the array is the compressed LZMA data.
- /// ** is not supported!**
+ /// If is , then instead of being row data the array is the compressed BC7 block data. /// Encoded byte data of - /// is null and is not or . - /// is + /// is null and is not , or . public static byte[] EncodeImage(Bitmap image, ImageType type, Color[] colors, out Bitmap trimmedImage, out Color[] trimmedColors) { - if (type == ImageType.Full32bppArgb || type == ImageType.Compressed32bppArgb) + if (type == ImageType.Full32bppArgb || type == ImageType.Compressed32bppArgb || type == ImageType.BC7Compressed) { trimmedImage = new Bitmap(image); // convert to 32bppArgb BitmapData bdArgb = GraphicsFunctions.GetBitmapData(trimmedImage); @@ -310,25 +325,43 @@ public static byte[] EncodeImage(Bitmap image, ImageType type, Color[] colors, o trimmedImage.UnlockBits(bdArgb); trimmedColors = null; if (type == ImageType.Full32bppArgb) return pixelsArgb; - byte[] rawData; - using (var compressedData = new MemoryStream(pixelsArgb.Length + 5)) + byte[] rawData = null; + if (type == ImageType.Compressed32bppArgb) { - using (var pixelData = new MemoryStream(pixelsArgb)) + using (var compressedData = new MemoryStream(pixelsArgb.Length + 5)) { - var encoder = new SevenZip.Compression.LZMA.Encoder(); - encoder.WriteCoderProperties(compressedData); - encoder.Code(pixelData, compressedData, pixelData.Length, -1, null); + using (var pixelData = new MemoryStream(pixelsArgb)) + { + var encoder = new SevenZip.Compression.LZMA.Encoder(); + encoder.WriteCoderProperties(compressedData); + encoder.Code(pixelData, compressedData, pixelData.Length, -1, null); + } + rawData = compressedData.ToArray(); } - rawData = compressedData.ToArray(); } - return rawData; - } + else // BC7 + { // This else block covered by MIT License + int blocksWidth = image.Width + (image.Width % 4 == 0 ? 0 : 4 - image.Width % 4); + int blocksHeight = image.Height + (image.Height % 4 == 0 ? 0 : 4 - image.Height % 4); - if (type == ImageType.BC7Compressed) - { - throw new NotImplementedException("BC7 encoding is not supported, choose another format."); + byte[] blockData = new byte[blocksWidth * blocksHeight]; + + GCHandle pixelsHandle = GCHandle.Alloc(pixelsArgb, GCHandleType.Pinned); + GCHandle blocksHandle = GCHandle.Alloc(blockData, GCHandleType.Pinned); + + try { BC7_Encode(blocksHandle.AddrOfPinnedObject(), pixelsHandle.AddrOfPinnedObject(), image.Width, image.Height); } + finally + { + pixelsHandle.Free(); + blocksHandle.Free(); + } + + rawData = blockData; + } + return rawData; } + #region indexed byte[] mask = null; if (colors == null) throw new ArgumentNullException("colors", "Colors is required for all types except Full32bppArgb"); @@ -468,12 +501,13 @@ public static byte[] EncodeImage(Bitmap image, ImageType type, Color[] colors, o byte[] temp = new byte[offset]; ArrayFunctions.TrimArray(rows, 0, temp); return temp; + #endregion } /// Sets the image of the Sub /// The image to be used /// Unused color indexes will be removed.
- /// If is undefined, is initialized to the default 256 color palette. Unused indexes will be removed
+ /// If is undefined, is initialized to the default 256 color palette. Unused indexes will be removed.
/// If is , Colors will initialize to the image's palette.
public void SetImage(Bitmap image) { @@ -482,7 +516,7 @@ public void SetImage(Bitmap image) _rows = EncodeImage(image, _type, (Color[])_colors.Clone(), out _image, out _colors); _height = (short)_image.Height; _width = (short)_image.Width; - _length = _rows.Length + imageDataOffset; + _length = _rows.Length + _imageDataOffset; UpdateHeader(); if (_type == ImageType.Full32bppArgb) _rows = null; } @@ -530,15 +564,15 @@ public void SetTransparencyMask(Bitmap mask) /// Attempted to set an indexed format and is null. public ImageType Type { - get { return _type; } + get => _type; set { - if (value != ImageType.Full32bppArgb && value != ImageType.Compressed32bppArgb && _colors == null) + if (value != ImageType.Full32bppArgb && value != ImageType.Compressed32bppArgb && value != ImageType.BC7Compressed && _colors == null) throw new InvalidOperationException("Cannot change to indexed format prior to assigning color palette."); if (_image != null) { _rows = EncodeImage(_image, value, (_colors != null ? (Color[])_colors.Clone() : null), out _image, out _colors); - _length = _rows.Length + imageDataOffset; + _length = _rows.Length + _imageDataOffset; } _type = value; UpdateHeader(); @@ -548,16 +582,16 @@ public ImageType Type /// Gets the width of the image /// If is undefined, value is 0 - public short Width { get { return _width; } } + public short Width => _width; /// Gets the height of the image /// If is undefined, value is 0 - public short Height { get { return _height; } } + public short Height => _height; /// Gets or sets the ID of the parent public short GroupID { - get { return _groupID; } + get => _groupID; set { _groupID = value; @@ -568,7 +602,7 @@ public short GroupID /// Gets or sets the image ID public short SubID { - get { return _subID; } + get => _subID; set { _subID = value; @@ -577,7 +611,7 @@ public short SubID } /// Gets the defined number of - public int NumberOfColors { get { return (_colors != null ? _colors.Length : 0); } } + public int NumberOfColors => (_colors != null ? _colors.Length : 0); /// Gets or sets the defined colors /// value is limited to 256 colors.
@@ -586,10 +620,10 @@ public short SubID /// value exceeds 256 colors public Color[] Colors { - get { return _colors; } + get => _colors; set { - if (value == null && _type != ImageType.Full32bppArgb && _type != ImageType.Compressed32bppArgb) throw new ArgumentNullException("Colors", "Colors cannot be null for indexed image types"); + if (value == null && _type != ImageType.Full32bppArgb && _type != ImageType.Compressed32bppArgb && _type != ImageType.BC7Compressed) throw new ArgumentNullException("Colors", "Colors cannot be null for indexed image types"); if (value != null) { if (value.Length > 256) throw new ArgumentOutOfRangeException("Colors", "256 colors max"); @@ -601,7 +635,7 @@ public Color[] Colors for (int i = 0; i < value.Length; i++) pal.Entries[i] = value[i]; _image.Palette = pal; } - else if (_type != ImageType.Full32bppArgb && _type != ImageType.Compressed32bppArgb) + else if (_type != ImageType.Full32bppArgb && _type != ImageType.Compressed32bppArgb && _type != ImageType.BC7Compressed) { byte[] maskData = getMaskData(_image); Bitmap temp8bpp = GraphicsFunctions.ConvertTo8bpp(_image, _colors); //force back to 8bpp @@ -641,7 +675,7 @@ internal void UpdateHeader() byte[] width = BitConverter.GetBytes(_width); byte[] height = BitConverter.GetBytes(_height); byte[] length = BitConverter.GetBytes(_length); - byte[] type = BitConverter.GetBytes((short)(_type == ImageType.Compressed32bppArgb ? ImageType.Full32bppArgb : _type)); + byte[] type = BitConverter.GetBytes((short)(_type == ImageType.Compressed32bppArgb || _type == ImageType.BC7Compressed ? ImageType.Full32bppArgb : _type)); ArrayFunctions.WriteToArray(type, _headers, 0); ArrayFunctions.WriteToArray(width, _headers, 2); ArrayFunctions.WriteToArray(height, _headers, 4); @@ -651,7 +685,7 @@ internal void UpdateHeader() ArrayFunctions.WriteToArray(length, _headers, 0xE); ArrayFunctions.WriteToArray(length, _headers, _subHeaderLength); // imageHeaderLength - ArrayFunctions.WriteToArray(imageDataOffset, _headers, _subHeaderLength + 8); + ArrayFunctions.WriteToArray(_imageDataOffset, _headers, _subHeaderLength + 8); ArrayFunctions.WriteToArray(length, _headers, _subHeaderLength + 0xC); ArrayFunctions.WriteToArray(width, _headers, _subHeaderLength + 0x10); // short 0 @@ -700,6 +734,44 @@ static byte[] getMaskData(Bitmap image) #endregion private methods /// ImageHeader.ImageDataOffset = ImageHeaderLength + NumberOfColors * 3 - internal int imageDataOffset { get { return _imageHeaderLength + (_colors != null ? _colors.Length * 3 : 0); } } + private int _imageDataOffset { get { return _imageHeaderLength + (_colors != null ? _colors.Length * 3 : 0); } } + + #region imports for BC7 + [DllImport("JeremyAnsel.BcnSharpLib32.dll", EntryPoint = "BC7_Decode")] + private static extern int BC7_Decode32(IntPtr pBlock, IntPtr pPixelsRGBA, int pPixelsRGBAWidth, int pPixelsRGBAHeight); + + [DllImport("JeremyAnsel.BcnSharpLib64.dll", EntryPoint = "BC7_Decode")] + private static extern int BC7_Decode64(IntPtr pBlock, IntPtr pPixelsRGBA, int pPixelsRGBAWidth, int pPixelsRGBAHeight); + + private static int BC7_Decode(IntPtr pBlock, IntPtr pPixelsRGBA, int pPixelsRGBAWidth, int pPixelsRGBAHeight) + { + if (Environment.Is64BitProcess) + { + return BC7_Decode64(pBlock, pPixelsRGBA, pPixelsRGBAWidth, pPixelsRGBAHeight); + } + else + { + return BC7_Decode32(pBlock, pPixelsRGBA, pPixelsRGBAWidth, pPixelsRGBAHeight); + } + } + + [DllImport("JeremyAnsel.BcnSharpLib32.dll", EntryPoint = "BC7_Encode")] + private static extern int BC7_Encode32(IntPtr pBlock, IntPtr pPixelsRGBA, int pPixelsRGBAWidth, int pPixelsRGBAHeight); + + [DllImport("JeremyAnsel.BcnSharpLib64.dll", EntryPoint = "BC7_Encode")] + private static extern int BC7_Encode64(IntPtr pBlock, IntPtr pPixelsRGBA, int pPixelsRGBAWidth, int pPixelsRGBAHeight); + + private static int BC7_Encode(IntPtr pBlock, IntPtr pPixelsRGBA, int pPixelsRGBAWidth, int pPixelsRGBAHeight) + { + if (Environment.Is64BitProcess) + { + return BC7_Encode64(pBlock, pPixelsRGBA, pPixelsRGBAWidth, pPixelsRGBAHeight); + } + else + { + return BC7_Encode32(pBlock, pPixelsRGBA, pPixelsRGBAWidth, pPixelsRGBAHeight); + } + } + #endregion } }