4 using System.Runtime.InteropServices;
 
    7 namespace SiliconStudio.TextureConverter.DxtWrapper
 
   13     internal enum DXGI_FORMAT
 
  134     internal enum DDS_FLAGS
 
  170     internal enum TEX_COMPRESS_FLAGS
 
  201     internal enum TEX_PREMULTIPLY_ALPHA_FLAGS
 
  217     internal enum TEX_DIMENSION
 
  225     internal enum TEX_MISC_FLAG
 
  231     internal enum TEX_FILTER_FLAGS
 
  281     internal enum HRESULT
 
  297     internal enum CP_FLAGS
 
  326     internal enum CNMAP_FLAGS
 
  355     [StructLayout(LayoutKind.Sequential)]
 
  356     internal struct TexMetadata
 
  361         public int arraySize;  
 
  362         public int mipLevels;
 
  363         public TEX_MISC_FLAG miscFlags;
 
  364         public int miscFlags2;
 
  365         public DXGI_FORMAT 
format;
 
  366         public TEX_DIMENSION dimension;
 
  368         public TexMetadata(
int width, 
int height, 
int depth, 
int arraySize, 
int mipLevels, TEX_MISC_FLAG miscFlags, 
int miscFlags2, DXGI_FORMAT 
format, TEX_DIMENSION dimension)
 
  371             this.height = height;
 
  373             this.arraySize = arraySize;
 
  374             this.mipLevels = mipLevels;
 
  375             this.miscFlags = miscFlags;
 
  376             this.miscFlags2 = miscFlags2;
 
  378             this.dimension = dimension;
 
  381         public override String ToString()
 
  383             return "width:" + width + 
"\nheight:" + height + 
"\ndepth:" + depth + 
"\narraySize:" + arraySize + 
"\nmipLevels:" + mipLevels + 
"\nmiscFlags:" + miscFlags + 
"\nformat:" + format + 
"\ndimension:" + dimension;
 
  390     [StructLayout(LayoutKind.Sequential, Pack = 1)]
 
  391     internal struct Image
 
  395         public DXGI_FORMAT 
format;
 
  397         public int slicePitch;
 
  398         public IntPtr pixels;
 
  400         public Image(
int width, 
int height, DXGI_FORMAT 
format, 
int rowPitch, 
int slicePitch, IntPtr pixels)
 
  403             this.height = height;
 
  405             this.rowPitch = rowPitch;
 
  406             this.slicePitch = slicePitch;
 
  407             this.pixels = pixels;
 
  410         public override String ToString()
 
  412             return "width:" + width + 
"\nheight:" + height + 
"\nformat:" + format + 
"\nrowPitch:" + rowPitch + 
"\nslicePitch:" + slicePitch + 
"\npixels:" + pixels;
 
  421         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode), SuppressUnmanagedCodeSecurity]
 
  422         private extern static void dxtComputePitch(DXGI_FORMAT fmt, 
int width, 
int height, out 
int rowPitch, out 
int slicePitch, CP_FLAGS 
flags);
 
  424         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode), SuppressUnmanagedCodeSecurity]
 
  425         private extern static uint 
dxtLoadDDSFile(String filePath, DDS_FLAGS flags, out TexMetadata 
metadata, IntPtr image);
 
  427         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode), SuppressUnmanagedCodeSecurity]
 
  430         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode), SuppressUnmanagedCodeSecurity]
 
  431         private extern static uint 
dxtConvert(ref Image srcImage, DXGI_FORMAT 
format, TEX_FILTER_FLAGS filter, 
float threshold, IntPtr cImage);
 
  433         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode), SuppressUnmanagedCodeSecurity]
 
  434         private extern static uint 
dxtConvertArray(Image[] srcImages, 
int nimages, ref TexMetadata metadata, DXGI_FORMAT format, TEX_FILTER_FLAGS filter, 
float threshold, IntPtr cImages);
 
  436         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode), SuppressUnmanagedCodeSecurity]
 
  437         private extern static uint 
dxtCompress(ref Image srcImage, DXGI_FORMAT format, TEX_COMPRESS_FLAGS compress, 
float alphaRef, IntPtr cImage);
 
  439         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode), SuppressUnmanagedCodeSecurity]
 
  440         private extern static uint 
dxtCompressArray(Image[] srcImages, 
int nimages, ref TexMetadata metadata, DXGI_FORMAT format, TEX_COMPRESS_FLAGS compress, 
float alphaRef, IntPtr cImages);
 
  442         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode), SuppressUnmanagedCodeSecurity]
 
  443         private extern static uint 
dxtDecompress(ref Image cImage, DXGI_FORMAT format, IntPtr image);
 
  445         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode), SuppressUnmanagedCodeSecurity]
 
  446         private extern static uint 
dxtDecompressArray(Image[] cImages, 
int nimages, ref TexMetadata metadata, DXGI_FORMAT format, IntPtr images);
 
  448         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode), SuppressUnmanagedCodeSecurity]
 
  449         private extern static uint 
dxtSaveToDDSFile(ref Image image, DDS_FLAGS flags, 
string szFile);
 
  451         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode), SuppressUnmanagedCodeSecurity]
 
  452         private extern static uint 
dxtSaveToDDSFileArray(Image[] images, 
int nimages, ref TexMetadata metadata, DDS_FLAGS flags, 
string szFile);
 
  454         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode), SuppressUnmanagedCodeSecurity]
 
  455         private extern static uint 
dxtGenerateMipMaps(ref Image baseImage, TEX_FILTER_FLAGS filter, 
int levels, IntPtr mipChain, 
bool allow1D);
 
  457         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode), SuppressUnmanagedCodeSecurity]
 
  458         private extern static uint 
dxtGenerateMipMapsArray(Image[] srcImages, 
int nimages, ref TexMetadata metadata, TEX_FILTER_FLAGS filter, 
int levels, IntPtr mipChain);
 
  460         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode), SuppressUnmanagedCodeSecurity]
 
  461         private extern static uint 
dxtGenerateMipMaps3D(ref Image baseImage, 
int depth, TEX_FILTER_FLAGS filter, 
int levels, IntPtr mipChain);
 
  463         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode), SuppressUnmanagedCodeSecurity]
 
  464         private extern static uint 
dxtGenerateMipMaps3DArray(Image[] srcImages, 
int nimages, ref TexMetadata metadata, TEX_FILTER_FLAGS filter, 
int levels, IntPtr mipChain );
 
  466         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode), SuppressUnmanagedCodeSecurity]
 
  467         private extern static uint 
dxtResize(Image[] srcImages, 
int nimages, ref TexMetadata metadata, 
int width, 
int height, TEX_FILTER_FLAGS filter, IntPtr result);
 
  469         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode), SuppressUnmanagedCodeSecurity]
 
  470         private extern static uint 
dxtComputeNormalMap(Image[] srcImages, 
int nimages, ref TexMetadata metadata, CNMAP_FLAGS flags, 
float amplitude, DXGI_FORMAT format, IntPtr normalMaps );
 
  472         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode), SuppressUnmanagedCodeSecurity]
 
  473         private extern static uint 
dxtPremultiplyAlpha(Image[] srcImages, 
int nimages, ref TexMetadata metadata, TEX_PREMULTIPLY_ALPHA_FLAGS flags, IntPtr result);
 
  475         public static void ComputePitch(DXGI_FORMAT fmt, 
int width, 
int height, out 
int rowPitch, out 
int slicePitch, CP_FLAGS flags)
 
  477             dxtComputePitch(fmt, width, height, out rowPitch, out slicePitch, flags);
 
  480         public static HRESULT LoadDDSFile(String filePath, DDS_FLAGS flags, out TexMetadata metadata, ScratchImage image)
 
  482             return HandleHRESULT(
dxtLoadDDSFile(filePath, flags, out metadata, image.ptr));
 
  485         public static HRESULT 
SaveToDDSFile(ref Image image, DDS_FLAGS flags, 
string szFile)
 
  490         public static HRESULT 
SaveToDDSFile(Image[] images, 
int nimages, ref TexMetadata metadata, DDS_FLAGS flags, 
string szFile)
 
  500         public static HRESULT 
Convert(ref Image srcImage, DXGI_FORMAT format, TEX_FILTER_FLAGS filter, 
float threshold, ScratchImage cImage)
 
  502             return HandleHRESULT(
dxtConvert(ref srcImage, format, filter, threshold, cImage.ptr));
 
  505         public static HRESULT 
Convert(Image[] srcImages, 
int nimages, ref TexMetadata metadata, DXGI_FORMAT format, TEX_FILTER_FLAGS filter, 
float threshold, ScratchImage cImages)
 
  507             return HandleHRESULT(
dxtConvertArray(srcImages, nimages, ref metadata, format, filter, threshold, cImages.ptr));
 
  510         public static HRESULT 
Compress(ref Image srcImage, DXGI_FORMAT format, TEX_COMPRESS_FLAGS compress, 
float alphaRef, ScratchImage cImage)
 
  512             return HandleHRESULT(
dxtCompress(ref srcImage, format, compress, alphaRef, cImage.ptr));
 
  515         public static HRESULT 
Compress(Image[] srcImages, 
int nimages, ref TexMetadata metadata, DXGI_FORMAT format, TEX_COMPRESS_FLAGS compress, 
float alphaRef, ScratchImage cImages)
 
  517             return HandleHRESULT(
dxtCompressArray(srcImages, nimages, ref metadata, format, compress, alphaRef, cImages.ptr));
 
  520         public static HRESULT 
Decompress(ref Image cImage, DXGI_FORMAT format, ScratchImage image)
 
  522             return HandleHRESULT(
dxtDecompress(ref cImage, format, image.ptr));
 
  525         public static HRESULT 
Decompress(Image[] cImages, 
int nimages, ref TexMetadata metadata, DXGI_FORMAT format, ScratchImage images)
 
  527             return HandleHRESULT(
dxtDecompressArray(cImages, nimages, ref metadata, format, images.ptr));
 
  530         public static HRESULT 
GenerateMipMaps(ref Image baseImage, TEX_FILTER_FLAGS filter, 
int levels, ScratchImage mipChain, 
bool allow1D = 
false)
 
  532             return HandleHRESULT(
dxtGenerateMipMaps(ref baseImage, filter, levels, mipChain.ptr, allow1D));
 
  535         public static HRESULT 
GenerateMipMaps(Image[] srcImages, 
int nimages, ref TexMetadata metadata, TEX_FILTER_FLAGS filter, 
int levels, ScratchImage mipChain)
 
  540         public static HRESULT 
GenerateMipMaps3D(ref Image baseImage, 
int depth, TEX_FILTER_FLAGS filter, 
int levels, ScratchImage mipChain)
 
  545         public static HRESULT 
GenerateMipMaps3D(Image[] srcImages, 
int nimages, ref TexMetadata metadata, TEX_FILTER_FLAGS filter, 
int levels, ScratchImage mipChain)
 
  550         public static HRESULT 
Resize(Image[] srcImages, 
int nimages, ref TexMetadata metadata, 
int width, 
int height, TEX_FILTER_FLAGS filter, ScratchImage result)
 
  552             return HandleHRESULT(
dxtResize(srcImages, nimages, ref metadata, width, height, filter, result.ptr));
 
  555         public static HRESULT 
ComputeNormalMap(Image[] srcImages, 
int nimages, ref TexMetadata metadata, CNMAP_FLAGS flags, 
float amplitude, DXGI_FORMAT format, ScratchImage normalMaps)
 
  557             return HandleHRESULT(
dxtComputeNormalMap(srcImages, nimages, ref metadata, flags, amplitude, format, normalMaps.ptr));
 
  560         public static HRESULT 
PremultiplyAlpha(Image[] srcImages, 
int nimages, ref TexMetadata metadata, TEX_PREMULTIPLY_ALPHA_FLAGS flags, ScratchImage result)
 
  562             return HandleHRESULT(
dxtPremultiplyAlpha(srcImages, nimages, ref metadata, flags, result.ptr));
 
  566         public static HRESULT HandleHRESULT(uint hresult)
 
  570                 case 0x00000000: 
return HRESULT.S_OK;
 
  571                 case 0x80004004: 
return HRESULT.E_ABORT;
 
  572                 case 0x80070005: 
return HRESULT.E_ACCESSDENIED;
 
  573                 case 0x80004005: 
return HRESULT.E_FAIL;
 
  574                 case 0x80070006: 
return HRESULT.E_HANDLE;
 
  575                 case 0x80070057: 
return HRESULT.E_INVALIDARG;
 
  576                 case 0x80004002: 
return HRESULT.E_NOINTERFACE;
 
  577                 case 0x80004001: 
return HRESULT.E_NOTIMPL;
 
  578                 case 0x8007000E: 
return HRESULT.E_OUTOFMEMORY;
 
  579                 case 0x80004003: 
return HRESULT.E_POINTER;
 
  580                 case 0x8000FFFF: 
return HRESULT.E_UNEXPECTED;
 
  581                 default: 
return HRESULT.E_FAIL;
 
  591     internal class ScratchImage : IDisposable
 
  593         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
 
  596         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
 
  599         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
 
  600         private extern static uint 
dxtInitialize(IntPtr img, out TexMetadata mdata);
 
  602         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
 
  603         private extern static uint 
dxtInitialize1D(IntPtr img, DXGI_FORMAT fmt,  
int length,  
int arraySize,  
int mipLevels );
 
  605         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
 
  606         private extern static uint 
dxtInitialize2D(IntPtr img, DXGI_FORMAT fmt, 
int width, 
int height, 
int arraySize, 
int mipLevels);
 
  608         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
 
  609         private extern static uint 
dxtInitialize3D(IntPtr img, DXGI_FORMAT fmt,  
int width,  
int height,  
int depth,  
int mipLevels );
 
  611         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
 
  612         private extern static uint 
dxtInitializeCube(IntPtr img, DXGI_FORMAT fmt,  
int width,  
int height,  
int nCubes,  
int mipLevels );
 
  614         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
 
  617         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
 
  620         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
 
  623         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
 
  626         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
 
  627         private extern static void dxtRelease(IntPtr img);
 
  629         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
 
  632         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
 
  635         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
 
  636         private extern static IntPtr 
dxtGetImage(IntPtr img, 
int mip, 
int item, 
int slice);
 
  638         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
 
  641         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
 
  644         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
 
  647         [DllImport(
"DxtWrapper", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
 
  651         public IntPtr ptr { 
private set; 
get; }
 
  653         public ScratchImage()
 
  658         public void Dispose()
 
  663         public HRESULT Initialize(out TexMetadata mdata)
 
  665             return Utilities.HandleHRESULT(
dxtInitialize(ptr, out mdata));
 
  668         public HRESULT Initialize1D(DXGI_FORMAT fmt, 
int length, 
int arraySize, 
int mipLevels)
 
  670             return Utilities.HandleHRESULT(
dxtInitialize1D(ptr, fmt, length, arraySize, mipLevels));
 
  673         public HRESULT Initialize2D(DXGI_FORMAT fmt, 
int width, 
int height, 
int arraySize, 
int mipLevels)
 
  675             return Utilities.HandleHRESULT(
dxtInitialize2D(ptr, fmt, width, height, arraySize, mipLevels));
 
  678         public HRESULT Initialize3D(DXGI_FORMAT fmt, 
int width, 
int height, 
int depth, 
int mipLevels)
 
  680             return Utilities.HandleHRESULT(
dxtInitialize3D(ptr, fmt, width, height, depth, mipLevels));
 
  683         public HRESULT InitializeCube(DXGI_FORMAT fmt, 
int width, 
int height, 
int nCubes, 
int mipLevels)
 
  685             return Utilities.HandleHRESULT(
dxtInitializeCube(ptr, fmt, width, height, nCubes, mipLevels));
 
  688         public HRESULT InitializeFromImage(out Image srcImage, 
bool allow1D = 
false)
 
  693         public HRESULT InitializeFromImages(Image[] images, 
int nImages, 
bool allow1D = 
false)
 
  698         public HRESULT InitializeCubeFromImages(Image[] images, 
int nImages)
 
  703         public HRESULT Initialize3DFromImages(Image[] images, 
int depth)
 
  708         public void Release()
 
  713         public bool OverrideFormat(TexMetadata mdata, DXGI_FORMAT f)
 
  720             get {
return (TexMetadata)Marshal.PtrToStructure(
dxtGetMetadata(ptr), typeof(TexMetadata));}
 
  733         public int imageCount
 
  738         public Image GetImage(
int mip, 
int item, 
int slice)
 
  740             return (Image)Marshal.PtrToStructure(
dxtGetImage(ptr, mip, item, slice), typeof(Image));
 
  743         public Image[] GetImages()
 
  746             int imagenb =  imageCount;
 
  748             Image[] images = 
new Image[imagenb];
 
  751             for(
int i=0;i<imagenb;++i)
 
  753                 images[i] = (Image)Marshal.PtrToStructure(imagesPtr + i * Marshal.SizeOf(images[0]), typeof(Image));
 
HRESULT dxtInitialize3D(DirectX::ScratchImage *img, DXGI_FORMAT fmt, size_t width, size_t height, size_t depth, size_t mipLevels)
 
HRESULT dxtInitialize1D(DirectX::ScratchImage *img, DXGI_FORMAT fmt, size_t length, size_t arraySize, size_t mipLevels)
 
HRESULT dxtConvertArray(const DirectX::Image *srcImages, size_t nimages, const DirectX::TexMetadata &metadata, DXGI_FORMAT format, DWORD filter, float threshold, DirectX::ScratchImage &cImage)
 
_In_ size_t _In_ const TexMetadata _In_ DWORD _In_ size_t nImages
 
HRESULT Resize(_In_ const Image &srcImage, _In_ size_t width, _In_ size_t height, _In_ DWORD filter, _Out_ ScratchImage &image)
 
HRESULT dxtLoadDDSFile(LPCWSTR szFile, DWORD flags, DirectX::TexMetadata *metadata, DirectX::ScratchImage &image)
 
_In_ size_t _In_ DXGI_FORMAT _In_ size_t _In_ DXGI_FORMAT _In_ DWORD flags
 
HRESULT dxtInitializeCubeFromImages(DirectX::ScratchImage *img, const DirectX::Image *images, size_t nImages)
 
HRESULT dxtGenerateMipMaps(const DirectX::Image &baseImage, DWORD filter, size_t levels, DirectX::ScratchImage &mipChain, bool allow1D=false)
 
_In_ size_t _In_ DXGI_FORMAT _In_ size_t _In_ float threshold
 
const DirectX::TexMetadata & dxtGetMetadata(const DirectX::ScratchImage *img)
 
void dxtDeleteScratchImage(DirectX::ScratchImage *img)
 
HRESULT dxtDecompressArray(const DirectX::Image *cImages, size_t nimages, const DirectX::TexMetadata &metadata, DXGI_FORMAT format, DirectX::ScratchImage &images)
 
const DirectX::Image * dxtGetImage(const DirectX::ScratchImage *img, size_t mip, size_t item, size_t slice)
 
HRESULT dxtInitialize2D(DirectX::ScratchImage *img, DXGI_FORMAT fmt, size_t width, size_t height, size_t arraySize, size_t mipLevels)
 
HRESULT dxtResize(const DirectX::Image *srcImages, size_t nimages, const DirectX::TexMetadata &metadata, size_t width, size_t height, DWORD filter, DirectX::ScratchImage &result)
 
HRESULT dxtGenerateMipMaps3DArray(const DirectX::Image *srcImages, size_t nimages, const DirectX::TexMetadata &metadata, DWORD filter, size_t levels, DirectX::ScratchImage &mipChain)
 
HRESULT GenerateMipMaps(_In_ const Image &baseImage, _In_ DWORD filter, _In_ size_t levels, _Inout_ ScratchImage &mipChain, _In_ bool allow1D=false)
 
Flags
Enumeration of the new Assimp's flags. 
 
_In_ size_t _In_ const TexMetadata & metadata
 
void ComputePitch(_In_ DXGI_FORMAT fmt, _In_ size_t width, _In_ size_t height, _Out_ size_t &rowPitch, _Out_ size_t &slicePitch, _In_ DWORD flags=CP_FLAGS_NONE)
 
const DirectX::Image * dxtGetImages(const DirectX::ScratchImage *img)
 
DirectX::ScratchImage * dxtCreateScratchImage()
 
HRESULT dxtInitializeArrayFromImages(DirectX::ScratchImage *img, const DirectX::Image *images, size_t nImages, bool allow1D)
 
HRESULT dxtConvert(const DirectX::Image &srcImage, DXGI_FORMAT format, DWORD filter, float threshold, DirectX::ScratchImage &cImage)
 
size_t dxtGetImageCount(const DirectX::ScratchImage *img)
 
SiliconStudio.Core.Utilities Utilities
 
HRESULT dxtInitializeCube(DirectX::ScratchImage *img, DXGI_FORMAT fmt, size_t width, size_t height, size_t nCubes, size_t mipLevels)
 
HRESULT dxtCompress(const DirectX::Image &srcImage, DXGI_FORMAT format, DWORD compress, float alphaRef, DirectX::ScratchImage &cImage)
 
HRESULT GenerateMipMaps3D(_In_reads_(depth) const Image *baseImages, _In_ size_t depth, _In_ DWORD filter, _In_ size_t levels, _Out_ ScratchImage &mipChain)
 
HRESULT dxtSaveToDDSFile(const DirectX::Image &image, DWORD flags, LPCWSTR szFile)
 
bool dxtOverrideFormat(DirectX::ScratchImage *img, DXGI_FORMAT f)
 
HRESULT Convert(_In_ const Image &srcImage, _In_ DXGI_FORMAT format, _In_ DWORD filter, _In_ float threshold, _Out_ ScratchImage &image)
 
HRESULT dxtGenerateMipMapsArray(const DirectX::Image *srcImages, size_t nimages, const DirectX::TexMetadata &metadata, DWORD filter, size_t levels, DirectX::ScratchImage &mipChain)
 
HRESULT Decompress(_In_ const Image &cImage, _In_ DXGI_FORMAT format, _Out_ ScratchImage &image)
 
_Use_decl_annotations_ bool IsCompressed(DXGI_FORMAT fmt)
 
HRESULT dxtPremultiplyAlpha(const DirectX::Image *srcImages, size_t nimages, const DirectX::TexMetadata &metadata, DWORD flags, DirectX::ScratchImage &result)
 
HRESULT ComputeNormalMap(_In_ const Image &srcImage, _In_ DWORD flags, _In_ float amplitude, _In_ DXGI_FORMAT format, _Out_ ScratchImage &normalMap)
 
size_t dxtGetPixelsSize(const DirectX::ScratchImage *img)
 
_In_ size_t _In_ size_t _In_ DXGI_FORMAT format
 
bool dxtIsCompressed(DXGI_FORMAT fmt)
 
HRESULT dxtGenerateMipMaps3D(const DirectX::Image *baseImages, size_t depth, DWORD filter, size_t levels, DirectX::ScratchImage &mipChain)
 
HRESULT dxtInitializeFromImage(DirectX::ScratchImage *img, const DirectX::Image &srcImage, bool allow1D)
 
uint8_t * dxtGetPixels(const DirectX::ScratchImage *img)
 
HRESULT dxtInitialize(DirectX::ScratchImage *img, const DirectX::TexMetadata &mdata)
 
HRESULT dxtInitialize3DFromImages(DirectX::ScratchImage *img, const DirectX::Image *images, size_t depth)
 
HRESULT dxtCompressArray(const DirectX::Image *srcImages, size_t nimages, const DirectX::TexMetadata &metadata, DXGI_FORMAT format, DWORD compress, float alphaRef, DirectX::ScratchImage &cImages)
 
HRESULT dxtComputeNormalMap(const DirectX::Image *srcImages, size_t nimages, const DirectX::TexMetadata &metadata, DWORD flags, float amplitude, DXGI_FORMAT format, DirectX::ScratchImage &normalMaps)
 
HRESULT dxtDecompress(const DirectX::Image &cImage, DXGI_FORMAT format, DirectX::ScratchImage &image)
 
HRESULT Compress(_In_ const Image &srcImage, _In_ DXGI_FORMAT format, _In_ DWORD compress, _In_ float alphaRef, _Out_ ScratchImage &cImage)
 
_Use_decl_annotations_ HRESULT SaveToDDSFile(const Image &image, DWORD flags, LPCWSTR szFile)
 
void dxtComputePitch(DXGI_FORMAT fmt, size_t width, size_t height, size_t &rowPitch, size_t &slicePitch, DWORD flags=DirectX::CP_FLAGS_NONE)
 
HRESULT PremultiplyAlpha(_In_ const Image &srcImage, _In_ DWORD flags, _Out_ ScratchImage &image)
 
void dxtRelease(DirectX::ScratchImage *img)
 
HRESULT dxtSaveToDDSFileArray(const DirectX::Image *images, size_t nimages, const DirectX::TexMetadata &metadata, DWORD flags, LPCWSTR szFile)