* IDCompositionFilterEffect: 
https://docs.microsoft.com/en-us/windows/win32/api/dcomp/nn-dcomp-idcompositionfiltereffect
* IDCompositionSaturationEffect: 
https://docs.microsoft.com/en-us/windows/win32/api/dcomp/nn-dcomp-idcompositionsaturationeffect
* IDCompositionGaussianBlurEffect: 
https://docs.microsoft.com/en-us/windows/win32/api/dcomp/nn-dcomp-idcompositiongaussianblureffect
* IDCompositionDevice3: 
https://docs.microsoft.com/en-us/windows/win32/api/dcomp/nn-dcomp-idcompositiondevice3

The order of methods can be found from
https://github.com/terrafx/terrafx.interop.windows/tree/main/sources/Interop/Windows/um/dcomp

As for other IDCompositionEffect interfaces, some methods are inverted for MSVC
compilation in C++.

Co-authored-by: Prince Gupta <guptaprince8...@gmail.com>
---
 mingw-w64-headers/include/dcomp.h | 74 +++++++++++++++++++++++++++++++
 1 file changed, 74 insertions(+)

diff --git a/mingw-w64-headers/include/dcomp.h 
b/mingw-w64-headers/include/dcomp.h
index 58f4b8466..21010f7db 100644
--- a/mingw-w64-headers/include/dcomp.h
+++ b/mingw-w64-headers/include/dcomp.h
@@ -524,8 +524,82 @@ 
__CRT_UUID_DECL(IDCompositionVisualDebug,0xfed2b808,0x5eb4,0x43a0,0xae,0xa3,0x35
 #endif
 
 
+#undef INTERFACE
+#define INTERFACE IDCompositionFilterEffect
+DECLARE_INTERFACE_IID_(IDCompositionFilterEffect, IDCompositionEffect, 
"30C421D5-8CB2-4E9F-B133-37BE270D4AC2")
+{
+    STDMETHOD(SetInput)(THIS_ UINT index, IUnknown *input, UINT flags) PURE;
+};
+
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDCompositionFilterEffect,0x30c421d5,0x8cb2,0x4e9f,0xb1,0x33,0x37,0xbe,0x27,0x0d,0x4a,0xc2);
 #endif
 
+
+#undef INTERFACE
+#define INTERFACE IDCompositionSaturationEffect
+DECLARE_INTERFACE_IID_(IDCompositionSaturationEffect, 
IDCompositionFilterEffect, "A08DEBDA-3258-4FA4-9F16-9174D3FE93B1")
+{
+#if defined(_MSC_VER) && defined(__cplusplus)
+    STDMETHOD(SetSaturation)(THIS_ float ratio) PURE;
+    STDMETHOD(SetSaturation)(THIS_ IDCompositionAnimation* animation) PURE;
+#else
+    STDMETHOD(SetSaturation)(THIS_ IDCompositionAnimation* animation) PURE;
+    STDMETHOD(SetSaturation)(THIS_ float ratio ) PURE;
+#endif
+};
+
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDCompositionSaturationEffect,0xa08debda,0x3258,0x4fa4,0x9f,0x16,0x91,0x74,0xd3,0xfe,0x93,0xb1);
+#endif
+
+
+#undef INTERFACE
+#define INTERFACE IDCompositionGaussianBlurEffect
+DECLARE_INTERFACE_IID_(IDCompositionGaussianBlurEffect, 
IDCompositionFilterEffect, "45D4D0B7-1BD4-454E-8894-2BFA68443033")
+{
+
+#if defined(_MSC_VER) && defined(__cplusplus)
+    STDMETHOD(SetStandardDeviation)(THIS_ float amount) PURE;
+    STDMETHOD(SetStandardDeviation)(THIS_ IDCompositionAnimation* animation) 
PURE;
+#else
+    STDMETHOD(SetStandardDeviation)(THIS_ IDCompositionAnimation* animation) 
PURE;
+    STDMETHOD(SetStandardDeviation)(THIS_ float amount) PURE;
+#endif
+    STDMETHOD(SetBorderMode)(THIS_ D2D1_BORDER_MODE mode) PURE;
+};
+
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDCompositionGaussianBlurEffect,0x45d4d0b7,0x1bd4,0x454e,0x88,0x94,0x2b,0xfa,0x68,0x44,0x30,0x33);
+#endif
+
+
+/* WARNING: some of the arguments are replaced with void*, only what's used 
has been kept */
+#undef INTERFACE
+#define INTERFACE IDCompositionDevice3
+DECLARE_INTERFACE_IID_(IDCompositionDevice3, IDCompositionDevice2, 
"0987CB06-F916-48BF-8D35-CE7641781BD9")
+{
+    STDMETHOD(CreateGaussianBlurEffect)(THIS_ IDCompositionGaussianBlurEffect 
**gaussianBlurEffect) PURE;
+    STDMETHOD(CreateBrightnessEffect)(THIS_ /* TODO 
IDCompositionBrightnessEffect */ void **brightnessEffect) PURE;
+    STDMETHOD(CreateColorMatrixEffect)(THIS_ /* TODO 
IDCompositionColorMatrixEffect */ void **colorMatrixEffect) PURE;
+    STDMETHOD(CreateShadowEffect)(THIS_ /* TODO IDCompositionShadowEffect */ 
void **shadowEffect) PURE;
+    STDMETHOD(CreateHueRotationEffect)(THIS_ /* IDCompositionHueRotationEffect 
*/ void **hueRotationEffect) PURE;
+    STDMETHOD(CreateSaturationEffect)(THIS_ IDCompositionSaturationEffect 
**saturationEffect) PURE;
+    STDMETHOD(CreateTurbulenceEffect)(THIS_ /* IDCompositionTurbulenceEffect 
*/ void **turbulenceEffect) PURE;
+    STDMETHOD(CreateLinearTransferEffect)(THIS_ /* 
IDCompositionLinearTransferEffect */ void **linearTransferEffect) PURE;
+    STDMETHOD(CreateTableTransferEffect)(THIS_ /* 
IDCompositionTableTransferEffect */ void **tableTransferEffect) PURE;
+    STDMETHOD(CreateCompositeEffect)(THIS_ /* IDCompositionCompositeEffect */ 
void **compositeEffect) PURE;
+    STDMETHOD(CreateBlendEffect)(THIS_ /* TODO IDCompositionBlendEffect */ 
void **blendEffect) PURE;
+    STDMETHOD(CreateArithmeticCompositeEffect)(THIS_ /* 
IDCompositionArithmeticCompositeEffect */ void **arithmeticCompositeEffect) 
PURE;
+    STDMETHOD(CreateAffineTransform2DEffect)(THIS_ /* 
IDCompositionAffineTransform2DEffect */ void **affineTransform2dEffect) PURE;
+};
+
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDCompositionDevice3,0x0987cb06,0xf916,0x48bf,0x8d,0x35,0xce,0x76,0x41,0x78,0x1b,0xd9);
+#endif
+
+#endif /* WINAPI_PARTITION_DESKTOP */
+
 #if (_WIN32_WINNT >= 0x0A00)
 
 STDAPI DCompositionCreateDevice3(IUnknown *renderingDevice, REFIID iid, void 
**dcompositionDevice);
-- 
2.29.2



_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to