headers: Update imported headers to current Wine version. Signed-off-by: Jacek Caban <jacek@codeweavers.com>
diff --git a/mingw-w64-headers/include/d3d11.h b/mingw-w64-headers/include/d3d11.h index b5c1c31..55c16c1 100644 --- a/mingw-w64-headers/include/d3d11.h +++ b/mingw-w64-headers/include/d3d11.h
@@ -870,6 +870,60 @@ D3D11_VIDEO_PROCESSOR_ROTATION_180 = 2, D3D11_VIDEO_PROCESSOR_ROTATION_270 = 3 } D3D11_VIDEO_PROCESSOR_ROTATION; +typedef enum D3D11_VIDEO_PROCESSOR_DEVICE_CAPS { + D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_LINEAR_SPACE = 0x1, + D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_xvYCC = 0x2, + D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_RGB_RANGE_CONVERSION = 0x4, + D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_YCbCr_MATRIX_CONVERSION = 0x8, + D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_NOMINAL_RANGE = 0x10 +} D3D11_VIDEO_PROCESSOR_DEVICE_CAPS; +typedef enum D3D11_VIDEO_PROCESSOR_FEATURE_CAPS { + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_FILL = 0x1, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_CONSTRICTION = 0x2, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LUMA_KEY = 0x4, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_PALETTE = 0x8, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LEGACY = 0x10, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_STEREO = 0x20, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ROTATION = 0x40, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_STREAM = 0x80, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_PIXEL_ASPECT_RATIO = 0x100, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_MIRROR = 0x200, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_SHADER_USAGE = 0x400, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_METADATA_HDR10 = 0x800 +} D3D11_VIDEO_PROCESSOR_FEATURE_CAPS; +typedef enum D3D11_VIDEO_PROCESSOR_FILTER_CAPS { + D3D11_VIDEO_PROCESSOR_FILTER_CAPS_BRIGHTNESS = 0x1, + D3D11_VIDEO_PROCESSOR_FILTER_CAPS_CONTRAST = 0x2, + D3D11_VIDEO_PROCESSOR_FILTER_CAPS_HUE = 0x4, + D3D11_VIDEO_PROCESSOR_FILTER_CAPS_SATURATION = 0x8, + D3D11_VIDEO_PROCESSOR_FILTER_CAPS_NOISE_REDUCTION = 0x10, + D3D11_VIDEO_PROCESSOR_FILTER_CAPS_EDGE_ENHANCEMENT = 0x20, + D3D11_VIDEO_PROCESSOR_FILTER_CAPS_ANAMORPHIC_SCALING = 0x40, + D3D11_VIDEO_PROCESSOR_FILTER_CAPS_STEREO_ADJUSTMENT = 0x80 +} D3D11_VIDEO_PROCESSOR_FILTER_CAPS; +typedef enum D3D11_VIDEO_PROCESSOR_FORMAT_CAPS { + D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_INTERLACED = 0x1, + D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_PROCAMP = 0x2, + D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_LUMA_KEY = 0x4, + D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_PALETTE_INTERLACED = 0x8 +} D3D11_VIDEO_PROCESSOR_FORMAT_CAPS; +typedef enum D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS { + D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_DENOISE = 0x1, + D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_DERINGING = 0x2, + D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_EDGE_ENHANCEMENT = 0x4, + D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_COLOR_CORRECTION = 0x8, + D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_FLESH_TONE_MAPPING = 0x10, + D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_IMAGE_STABILIZATION = 0x20, + D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_SUPER_RESOLUTION = 0x40, + D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_ANAMORPHIC_SCALING = 0x80 +} D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS; +typedef enum D3D11_VIDEO_PROCESSOR_STEREO_CAPS { + D3D11_VIDEO_PROCESSOR_STEREO_CAPS_MONO_OFFSET = 0x1, + D3D11_VIDEO_PROCESSOR_STEREO_CAPS_ROW_INTERLEAVED = 0x2, + D3D11_VIDEO_PROCESSOR_STEREO_CAPS_COLUMN_INTERLEAVED = 0x4, + D3D11_VIDEO_PROCESSOR_STEREO_CAPS_CHECKERBOARD = 0x8, + D3D11_VIDEO_PROCESSOR_STEREO_CAPS_FLIP_MODE = 0x10 +} D3D11_VIDEO_PROCESSOR_STEREO_CAPS; typedef enum D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS { D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_BLEND = 0x1, D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_BOB = 0x2,
diff --git a/mingw-w64-headers/include/d3d11.idl b/mingw-w64-headers/include/d3d11.idl index f4be49e..24ecc31 100644 --- a/mingw-w64-headers/include/d3d11.idl +++ b/mingw-w64-headers/include/d3d11.idl
@@ -360,6 +360,72 @@ D3D11_VIDEO_PROCESSOR_ROTATION_270 = 3, } D3D11_VIDEO_PROCESSOR_ROTATION; +typedef enum D3D11_VIDEO_PROCESSOR_DEVICE_CAPS +{ + D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_LINEAR_SPACE = 0x00000001, + D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_xvYCC = 0x00000002, + D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_RGB_RANGE_CONVERSION = 0x00000004, + D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_YCbCr_MATRIX_CONVERSION = 0x00000008, + D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_NOMINAL_RANGE = 0x00000010, +} D3D11_VIDEO_PROCESSOR_DEVICE_CAPS; + +typedef enum D3D11_VIDEO_PROCESSOR_FEATURE_CAPS +{ + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_FILL = 0x00000001, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_CONSTRICTION = 0x00000002, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LUMA_KEY = 0x00000004, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_PALETTE = 0x00000008, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LEGACY = 0x00000010, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_STEREO = 0x00000020, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ROTATION = 0x00000040, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_STREAM = 0x00000080, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_PIXEL_ASPECT_RATIO = 0x00000100, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_MIRROR = 0x00000200, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_SHADER_USAGE = 0x00000400, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_METADATA_HDR10 = 0x00000800, +} D3D11_VIDEO_PROCESSOR_FEATURE_CAPS; + +typedef enum D3D11_VIDEO_PROCESSOR_FILTER_CAPS +{ + D3D11_VIDEO_PROCESSOR_FILTER_CAPS_BRIGHTNESS = 0x00000001, + D3D11_VIDEO_PROCESSOR_FILTER_CAPS_CONTRAST = 0x00000002, + D3D11_VIDEO_PROCESSOR_FILTER_CAPS_HUE = 0x00000004, + D3D11_VIDEO_PROCESSOR_FILTER_CAPS_SATURATION = 0x00000008, + D3D11_VIDEO_PROCESSOR_FILTER_CAPS_NOISE_REDUCTION = 0x00000010, + D3D11_VIDEO_PROCESSOR_FILTER_CAPS_EDGE_ENHANCEMENT = 0x00000020, + D3D11_VIDEO_PROCESSOR_FILTER_CAPS_ANAMORPHIC_SCALING = 0x00000040, + D3D11_VIDEO_PROCESSOR_FILTER_CAPS_STEREO_ADJUSTMENT = 0x00000080, +} D3D11_VIDEO_PROCESSOR_FILTER_CAPS; + +typedef enum D3D11_VIDEO_PROCESSOR_FORMAT_CAPS +{ + D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_INTERLACED = 0x00000001, + D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_PROCAMP = 0x00000002, + D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_LUMA_KEY = 0x00000004, + D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_PALETTE_INTERLACED = 0x00000008, +} D3D11_VIDEO_PROCESSOR_FORMAT_CAPS; + +typedef enum D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS +{ + D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_DENOISE = 0x00000001, + D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_DERINGING = 0x00000002, + D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_EDGE_ENHANCEMENT = 0x00000004, + D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_COLOR_CORRECTION = 0x00000008, + D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_FLESH_TONE_MAPPING = 0x00000010, + D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_IMAGE_STABILIZATION = 0x00000020, + D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_SUPER_RESOLUTION = 0x00000040, + D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_ANAMORPHIC_SCALING = 0x00000080, +} D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS; + +typedef enum D3D11_VIDEO_PROCESSOR_STEREO_CAPS +{ + D3D11_VIDEO_PROCESSOR_STEREO_CAPS_MONO_OFFSET = 0x00000001, + D3D11_VIDEO_PROCESSOR_STEREO_CAPS_ROW_INTERLEAVED = 0x00000002, + D3D11_VIDEO_PROCESSOR_STEREO_CAPS_COLUMN_INTERLEAVED = 0x00000004, + D3D11_VIDEO_PROCESSOR_STEREO_CAPS_CHECKERBOARD = 0x00000008, + D3D11_VIDEO_PROCESSOR_STEREO_CAPS_FLIP_MODE = 0x00000010, +} D3D11_VIDEO_PROCESSOR_STEREO_CAPS; + typedef enum D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS { D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_BLEND = 0x01,
diff --git a/mingw-w64-headers/include/dxgi.h b/mingw-w64-headers/include/dxgi.h index 3324942..93354a5 100644 --- a/mingw-w64-headers/include/dxgi.h +++ b/mingw-w64-headers/include/dxgi.h
@@ -152,6 +152,16 @@ } LUID; typedef struct _LUID *PLUID; #endif +#define DXGI_CPU_ACCESS_NONE (0) + +#define DXGI_CPU_ACCESS_DYNAMIC (1) + +#define DXGI_CPU_ACCESS_READ_WRITE (2) + +#define DXGI_CPU_ACCESS_SCRATCH (3) + +#define DXGI_CPU_ACCESS_FIELD (15) + typedef UINT DXGI_USAGE; #define DXGI_USAGE_SHADER_INPUT (0x10) @@ -2139,6 +2149,7 @@ typedef enum DXGI_ADAPTER_FLAG { DXGI_ADAPTER_FLAG_NONE = 0, DXGI_ADAPTER_FLAG_REMOTE = 1, + DXGI_ADAPTER_FLAG_SOFTWARE = 2, DXGI_ADAPTER_FLAG_FORCE_DWORD = 0xffffffff } DXGI_ADAPTER_FLAG; typedef struct DXGI_ADAPTER_DESC1 {
diff --git a/mingw-w64-headers/include/dxgi.idl b/mingw-w64-headers/include/dxgi.idl index b724770..c2960fd 100644 --- a/mingw-w64-headers/include/dxgi.idl +++ b/mingw-w64-headers/include/dxgi.idl
@@ -33,6 +33,12 @@ } LUID, *PLUID; cpp_quote("#endif") +const UINT DXGI_CPU_ACCESS_NONE = 0; +const UINT DXGI_CPU_ACCESS_DYNAMIC = 1; +const UINT DXGI_CPU_ACCESS_READ_WRITE = 2; +const UINT DXGI_CPU_ACCESS_SCRATCH = 3; +const UINT DXGI_CPU_ACCESS_FIELD = 15; + typedef UINT DXGI_USAGE; const DXGI_USAGE DXGI_USAGE_SHADER_INPUT = 0x10L; const DXGI_USAGE DXGI_USAGE_RENDER_TARGET_OUTPUT = 0x20L; @@ -439,6 +445,7 @@ typedef enum DXGI_ADAPTER_FLAG { DXGI_ADAPTER_FLAG_NONE = 0, DXGI_ADAPTER_FLAG_REMOTE = 1, + DXGI_ADAPTER_FLAG_SOFTWARE = 2, DXGI_ADAPTER_FLAG_FORCE_DWORD = 0xFFFFFFFF } DXGI_ADAPTER_FLAG;
diff --git a/mingw-w64-headers/include/vmr9.h b/mingw-w64-headers/include/vmr9.h index 0258136..4777275 100644 --- a/mingw-w64-headers/include/vmr9.h +++ b/mingw-w64-headers/include/vmr9.h
@@ -2318,6 +2318,11 @@ virtual HRESULT STDMETHODCALLTYPE TermCompositionDevice( IUnknown *d3ddev) = 0; + virtual HRESULT STDMETHODCALLTYPE SetStreamMediaType( + DWORD stream, + AM_MEDIA_TYPE *mt, + WINBOOL texture) = 0; + virtual HRESULT STDMETHODCALLTYPE CompositeImage( IUnknown *d3ddev, IDirect3DSurface9 *d3dtarget, @@ -2357,6 +2362,12 @@ IVMRImageCompositor9 *This, IUnknown *d3ddev); + HRESULT (STDMETHODCALLTYPE *SetStreamMediaType)( + IVMRImageCompositor9 *This, + DWORD stream, + AM_MEDIA_TYPE *mt, + WINBOOL texture); + HRESULT (STDMETHODCALLTYPE *CompositeImage)( IVMRImageCompositor9 *This, IUnknown *d3ddev, @@ -2384,6 +2395,7 @@ /*** IVMRImageCompositor9 methods ***/ #define IVMRImageCompositor9_InitCompositionDevice(This,d3ddev) (This)->lpVtbl->InitCompositionDevice(This,d3ddev) #define IVMRImageCompositor9_TermCompositionDevice(This,d3ddev) (This)->lpVtbl->TermCompositionDevice(This,d3ddev) +#define IVMRImageCompositor9_SetStreamMediaType(This,stream,mt,texture) (This)->lpVtbl->SetStreamMediaType(This,stream,mt,texture) #define IVMRImageCompositor9_CompositeImage(This,d3ddev,d3dtarget,mttarget,start,stop,back,info,streams) (This)->lpVtbl->CompositeImage(This,d3ddev,d3dtarget,mttarget,start,stop,back,info,streams) #else /*** IUnknown methods ***/ @@ -2403,6 +2415,9 @@ static FORCEINLINE HRESULT IVMRImageCompositor9_TermCompositionDevice(IVMRImageCompositor9* This,IUnknown *d3ddev) { return This->lpVtbl->TermCompositionDevice(This,d3ddev); } +static FORCEINLINE HRESULT IVMRImageCompositor9_SetStreamMediaType(IVMRImageCompositor9* This,DWORD stream,AM_MEDIA_TYPE *mt,WINBOOL texture) { + return This->lpVtbl->SetStreamMediaType(This,stream,mt,texture); +} static FORCEINLINE HRESULT IVMRImageCompositor9_CompositeImage(IVMRImageCompositor9* This,IUnknown *d3ddev,IDirect3DSurface9 *d3dtarget,AM_MEDIA_TYPE *mttarget,REFERENCE_TIME start,REFERENCE_TIME stop,D3DCOLOR back,VMR9VideoStreamInfo *info,UINT streams) { return This->lpVtbl->CompositeImage(This,d3ddev,d3dtarget,mttarget,start,stop,back,info,streams); }
diff --git a/mingw-w64-headers/include/vmr9.idl b/mingw-w64-headers/include/vmr9.idl index 98524b0..526cfbd 100644 --- a/mingw-w64-headers/include/vmr9.idl +++ b/mingw-w64-headers/include/vmr9.idl
@@ -518,6 +518,7 @@ { HRESULT InitCompositionDevice([in] IUnknown *d3ddev); HRESULT TermCompositionDevice([in] IUnknown *d3ddev); + HRESULT SetStreamMediaType([in] DWORD stream, [in] AM_MEDIA_TYPE *mt, [in] BOOL texture); HRESULT CompositeImage([in] IUnknown *d3ddev, [in] IDirect3DSurface9 *d3dtarget, [in] AM_MEDIA_TYPE *mttarget, [in] REFERENCE_TIME start, [in] REFERENCE_TIME stop, D3DCOLOR back, [in] VMR9VideoStreamInfo *info, [in] UINT streams);
diff --git a/mingw-w64-headers/include/wincodec.h b/mingw-w64-headers/include/wincodec.h index a5a52ed..35e88c4 100644 --- a/mingw-w64-headers/include/wincodec.h +++ b/mingw-w64-headers/include/wincodec.h
@@ -250,11 +250,28 @@ #endif /* __cplusplus */ #endif +#ifndef __IWICDdsDecoder_FWD_DEFINED__ +#define __IWICDdsDecoder_FWD_DEFINED__ +typedef interface IWICDdsDecoder IWICDdsDecoder; +#ifdef __cplusplus +interface IWICDdsDecoder; +#endif /* __cplusplus */ +#endif + +#ifndef __IWICDdsFrameDecode_FWD_DEFINED__ +#define __IWICDdsFrameDecode_FWD_DEFINED__ +typedef interface IWICDdsFrameDecode IWICDdsFrameDecode; +#ifdef __cplusplus +interface IWICDdsFrameDecode; +#endif /* __cplusplus */ +#endif + /* Headers for imported files */ #include <wtypes.h> #include <propidl.h> #include <ocidl.h> +#include <dxgiformat.h> #ifdef __cplusplus extern "C" { @@ -412,6 +429,21 @@ WICSectionAccessLevelReadWrite = 0x3, WICSectionAccessLevel_FORCE_DWORD = 0x7fffffff } WICSectionAccessLevel; +typedef enum WICDdsDimension { + WICDdsTexture1D = 0x0, + WICDdsTexture2D = 0x1, + WICDdsTexture3D = 0x2, + WICDdsTextureCube = 0x3, + WICDDSTEXTURE_FORCE_DWORD = 0x7fffffff +} WICDdsDimension; +typedef enum WICDdsAlphaMode { + WICDdsAlphaModeUnknown = 0x0, + WICDdsAlphaModeStraight = 0x1, + WICDdsAlphaModePremultiplied = 0x2, + WICDdsAlphaModeOpaque = 0x3, + WICDdsAlphaModeCustom = 0x4, + WICDDSALPHAMODE_FORCE_DWORD = 0x7fffffff +} WICDdsAlphaMode; typedef GUID WICPixelFormatGUID; typedef REFGUID REFWICPixelFormatGUID; DEFINE_GUID(GUID_WICPixelFormatDontCare, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x00); @@ -530,6 +562,22 @@ UINT32 PixelWidth; UINT32 PixelHeight; } WICImageParameters; +typedef struct WICDdsParameters { + UINT Width; + UINT Height; + UINT Depth; + UINT MipLevels; + UINT ArraySize; + DXGI_FORMAT DxgiFormat; + WICDdsDimension Dimension; + WICDdsAlphaMode AlphaMode; +} WICDdsParameters; +typedef struct WICDdsFormatInfo { + DXGI_FORMAT DxgiFormat; + UINT BytesPerBlock; + UINT BlockWidth; + UINT BlockHeight; +} WICDdsFormatInfo; typedef UINT32 WICColor; #ifndef __ID2D1Device_FWD_DEFINED__ #define __ID2D1Device_FWD_DEFINED__ @@ -5837,6 +5885,207 @@ #endif /* __IWICEnumMetadataItem_INTERFACE_DEFINED__ */ +/***************************************************************************** + * IWICDdsDecoder interface + */ +#ifndef __IWICDdsDecoder_INTERFACE_DEFINED__ +#define __IWICDdsDecoder_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWICDdsDecoder, 0x409cd537, 0x8532, 0x40cb, 0x97,0x74, 0xe2,0xfe,0xb2,0xdf,0x4e,0x9c); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("409cd537-8532-40cb-9774-e2feb2df4e9c") +IWICDdsDecoder : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetParameters( + WICDdsParameters *parameters) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFrame( + UINT arrayIndex, + UINT mipLevel, + UINT sliceIndex, + IWICBitmapFrameDecode **bitmapFrame) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IWICDdsDecoder, 0x409cd537, 0x8532, 0x40cb, 0x97,0x74, 0xe2,0xfe,0xb2,0xdf,0x4e,0x9c) +#endif +#else +typedef struct IWICDdsDecoderVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWICDdsDecoder *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWICDdsDecoder *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWICDdsDecoder *This); + + /*** IWICDdsDecoder methods ***/ + HRESULT (STDMETHODCALLTYPE *GetParameters)( + IWICDdsDecoder *This, + WICDdsParameters *parameters); + + HRESULT (STDMETHODCALLTYPE *GetFrame)( + IWICDdsDecoder *This, + UINT arrayIndex, + UINT mipLevel, + UINT sliceIndex, + IWICBitmapFrameDecode **bitmapFrame); + + END_INTERFACE +} IWICDdsDecoderVtbl; + +interface IWICDdsDecoder { + CONST_VTBL IWICDdsDecoderVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IWICDdsDecoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWICDdsDecoder_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWICDdsDecoder_Release(This) (This)->lpVtbl->Release(This) +/*** IWICDdsDecoder methods ***/ +#define IWICDdsDecoder_GetParameters(This,parameters) (This)->lpVtbl->GetParameters(This,parameters) +#define IWICDdsDecoder_GetFrame(This,arrayIndex,mipLevel,sliceIndex,bitmapFrame) (This)->lpVtbl->GetFrame(This,arrayIndex,mipLevel,sliceIndex,bitmapFrame) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IWICDdsDecoder_QueryInterface(IWICDdsDecoder* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IWICDdsDecoder_AddRef(IWICDdsDecoder* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IWICDdsDecoder_Release(IWICDdsDecoder* This) { + return This->lpVtbl->Release(This); +} +/*** IWICDdsDecoder methods ***/ +static FORCEINLINE HRESULT IWICDdsDecoder_GetParameters(IWICDdsDecoder* This,WICDdsParameters *parameters) { + return This->lpVtbl->GetParameters(This,parameters); +} +static FORCEINLINE HRESULT IWICDdsDecoder_GetFrame(IWICDdsDecoder* This,UINT arrayIndex,UINT mipLevel,UINT sliceIndex,IWICBitmapFrameDecode **bitmapFrame) { + return This->lpVtbl->GetFrame(This,arrayIndex,mipLevel,sliceIndex,bitmapFrame); +} +#endif +#endif + +#endif + + +#endif /* __IWICDdsDecoder_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWICDdsFrameDecode interface + */ +#ifndef __IWICDdsFrameDecode_INTERFACE_DEFINED__ +#define __IWICDdsFrameDecode_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWICDdsFrameDecode, 0x3d4c0c61, 0x18a4, 0x41e4, 0xbd,0x80, 0x48,0x1a,0x4f,0xc9,0xf4,0x64); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("3d4c0c61-18a4-41e4-bd80-481a4fc9f464") +IWICDdsFrameDecode : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetSizeInBlocks( + UINT *widthInBlocks, + UINT *heightInBlocks) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFormatInfo( + WICDdsFormatInfo *formatInfo) = 0; + + virtual HRESULT STDMETHODCALLTYPE CopyBlocks( + const WICRect *boundsInBlocks, + UINT stride, + UINT bufferSize, + BYTE *buffer) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IWICDdsFrameDecode, 0x3d4c0c61, 0x18a4, 0x41e4, 0xbd,0x80, 0x48,0x1a,0x4f,0xc9,0xf4,0x64) +#endif +#else +typedef struct IWICDdsFrameDecodeVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWICDdsFrameDecode *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWICDdsFrameDecode *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWICDdsFrameDecode *This); + + /*** IWICDdsFrameDecode methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSizeInBlocks)( + IWICDdsFrameDecode *This, + UINT *widthInBlocks, + UINT *heightInBlocks); + + HRESULT (STDMETHODCALLTYPE *GetFormatInfo)( + IWICDdsFrameDecode *This, + WICDdsFormatInfo *formatInfo); + + HRESULT (STDMETHODCALLTYPE *CopyBlocks)( + IWICDdsFrameDecode *This, + const WICRect *boundsInBlocks, + UINT stride, + UINT bufferSize, + BYTE *buffer); + + END_INTERFACE +} IWICDdsFrameDecodeVtbl; + +interface IWICDdsFrameDecode { + CONST_VTBL IWICDdsFrameDecodeVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IWICDdsFrameDecode_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWICDdsFrameDecode_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWICDdsFrameDecode_Release(This) (This)->lpVtbl->Release(This) +/*** IWICDdsFrameDecode methods ***/ +#define IWICDdsFrameDecode_GetSizeInBlocks(This,widthInBlocks,heightInBlocks) (This)->lpVtbl->GetSizeInBlocks(This,widthInBlocks,heightInBlocks) +#define IWICDdsFrameDecode_GetFormatInfo(This,formatInfo) (This)->lpVtbl->GetFormatInfo(This,formatInfo) +#define IWICDdsFrameDecode_CopyBlocks(This,boundsInBlocks,stride,bufferSize,buffer) (This)->lpVtbl->CopyBlocks(This,boundsInBlocks,stride,bufferSize,buffer) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IWICDdsFrameDecode_QueryInterface(IWICDdsFrameDecode* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IWICDdsFrameDecode_AddRef(IWICDdsFrameDecode* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IWICDdsFrameDecode_Release(IWICDdsFrameDecode* This) { + return This->lpVtbl->Release(This); +} +/*** IWICDdsFrameDecode methods ***/ +static FORCEINLINE HRESULT IWICDdsFrameDecode_GetSizeInBlocks(IWICDdsFrameDecode* This,UINT *widthInBlocks,UINT *heightInBlocks) { + return This->lpVtbl->GetSizeInBlocks(This,widthInBlocks,heightInBlocks); +} +static FORCEINLINE HRESULT IWICDdsFrameDecode_GetFormatInfo(IWICDdsFrameDecode* This,WICDdsFormatInfo *formatInfo) { + return This->lpVtbl->GetFormatInfo(This,formatInfo); +} +static FORCEINLINE HRESULT IWICDdsFrameDecode_CopyBlocks(IWICDdsFrameDecode* This,const WICRect *boundsInBlocks,UINT stride,UINT bufferSize,BYTE *buffer) { + return This->lpVtbl->CopyBlocks(This,boundsInBlocks,stride,bufferSize,buffer); +} +#endif +#endif + +#endif + + +#endif /* __IWICDdsFrameDecode_INTERFACE_DEFINED__ */ + HRESULT WINAPI WICConvertBitmapSource(REFWICPixelFormatGUID dstFormat, IWICBitmapSource *pISrc, IWICBitmapSource **ppIDst); HRESULT WINAPI WICCreateBitmapFromSection(UINT width, UINT height, REFWICPixelFormatGUID format, HANDLE section, UINT stride, UINT offset, IWICBitmap **bitmap); HRESULT WINAPI WICCreateBitmapFromSectionEx(UINT width, UINT height, REFWICPixelFormatGUID format, HANDLE section, UINT stride, UINT offset, WICSectionAccessLevel access, IWICBitmap **bitmap);
diff --git a/mingw-w64-headers/include/wincodec.idl b/mingw-w64-headers/include/wincodec.idl index b26e055..e64d9ed 100644 --- a/mingw-w64-headers/include/wincodec.idl +++ b/mingw-w64-headers/include/wincodec.idl
@@ -19,6 +19,7 @@ import "wtypes.idl"; import "propidl.idl"; import "ocidl.idl"; +import "dxgiformat.idl"; cpp_quote ("#include \"dcommon.h\"") @@ -195,6 +196,23 @@ WICSectionAccessLevel_FORCE_DWORD = CODEC_FORCE_DWORD } WICSectionAccessLevel; +typedef enum WICDdsDimension { + WICDdsTexture1D = 0x00000000, + WICDdsTexture2D = 0x00000001, + WICDdsTexture3D = 0x00000002, + WICDdsTextureCube = 0x00000003, + WICDDSTEXTURE_FORCE_DWORD = CODEC_FORCE_DWORD +} WICDdsDimension; + +typedef enum WICDdsAlphaMode { + WICDdsAlphaModeUnknown = 0x00000000, + WICDdsAlphaModeStraight = 0x00000001, + WICDdsAlphaModePremultiplied = 0x00000002, + WICDdsAlphaModeOpaque = 0x00000003, + WICDdsAlphaModeCustom = 0x00000004, + WICDDSALPHAMODE_FORCE_DWORD = CODEC_FORCE_DWORD +} WICDdsAlphaMode; + typedef GUID WICPixelFormatGUID; typedef REFGUID REFWICPixelFormatGUID; @@ -342,6 +360,24 @@ UINT32 PixelHeight; } WICImageParameters; +typedef struct WICDdsParameters { + UINT Width; + UINT Height; + UINT Depth; + UINT MipLevels; + UINT ArraySize; + DXGI_FORMAT DxgiFormat; + WICDdsDimension Dimension; + WICDdsAlphaMode AlphaMode; +} WICDdsParameters; + +typedef struct WICDdsFormatInfo { + DXGI_FORMAT DxgiFormat; + UINT BytesPerBlock; + UINT BlockWidth; + UINT BlockHeight; +} WICDdsFormatInfo; + typedef UINT32 WICColor; interface ID2D1Device; @@ -1144,6 +1180,43 @@ [out] IWICEnumMetadataItem **ppIEnumMetadataItem); } +[ + object, + uuid(409cd537-8532-40cb-9774-e2feb2df4e9c) +] +interface IWICDdsDecoder : IUnknown +{ + HRESULT GetParameters( + [out] WICDdsParameters *parameters); + + HRESULT GetFrame( + [in] UINT arrayIndex, + [in] UINT mipLevel, + [in] UINT sliceIndex, + [out, retval] IWICBitmapFrameDecode **bitmapFrame); +}; + +[ + object, + uuid(3d4c0c61-18a4-41e4-bd80-481a4fc9f464) +] +interface IWICDdsFrameDecode : IUnknown +{ + HRESULT GetSizeInBlocks( + [out] UINT *widthInBlocks, + [out] UINT *heightInBlocks); + + HRESULT GetFormatInfo( + [out] WICDdsFormatInfo *formatInfo); + + HRESULT CopyBlocks( + [in, unique] const WICRect *boundsInBlocks, + [in] UINT stride, + [in] UINT bufferSize, + [out, size_is(bufferSize)] BYTE *buffer); +}; + + cpp_quote("HRESULT WINAPI WICConvertBitmapSource(REFWICPixelFormatGUID dstFormat, IWICBitmapSource *pISrc, IWICBitmapSource **ppIDst);") cpp_quote("HRESULT WINAPI WICCreateBitmapFromSection(UINT width, UINT height, REFWICPixelFormatGUID format, HANDLE section, UINT stride, UINT offset, IWICBitmap **bitmap);") cpp_quote("HRESULT WINAPI WICCreateBitmapFromSectionEx(UINT width, UINT height, REFWICPixelFormatGUID format, HANDLE section, UINT stride, UINT offset, WICSectionAccessLevel access, IWICBitmap **bitmap);")