From 048b0421ffa3e31dccfdd4ff6cd25b18a8857e5f Mon Sep 17 00:00:00 2001 From: Mohamad Al-Jaf Date: Wed, 5 Apr 2023 21:01:47 -0400 Subject: [PATCH] include: Add Windows.UI.Composition.CompositionGraphicsDevice definition. Needed for mingw Firefox build. --- include/windows.ui.composition.idl | 59 ++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/include/windows.ui.composition.idl b/include/windows.ui.composition.idl index b3919711934..92ca136c05a 100644 --- a/include/windows.ui.composition.idl +++ b/include/windows.ui.composition.idl @@ -68,6 +68,10 @@ namespace Windows.UI.Composition { interface ICompositionEasingFunctionStatics; interface ICompositionEffectBrush; interface ICompositionEffectFactory; + interface ICompositionGraphicsDevice; + interface ICompositionGraphicsDevice2; + interface ICompositionGraphicsDevice3; + interface ICompositionGraphicsDevice4; interface ICompositionObject; interface ICompositionObject2; interface ICompositionObject3; @@ -102,6 +106,7 @@ namespace Windows.UI.Composition { interface IInsetClip; interface ILinearEasingFunction; interface IQuaternionKeyFrameAnimation; + interface IRenderingDeviceReplacedEventArgs; interface IScalarKeyFrameAnimation; interface ISpriteVisual; interface ISpriteVisual2; @@ -126,6 +131,7 @@ namespace Windows.UI.Composition { runtimeclass CompositionEasingFunction; runtimeclass CompositionEffectBrush; runtimeclass CompositionEffectFactory; + runtimeclass CompositionGraphicsDevice; runtimeclass CompositionObject; runtimeclass CompositionPropertySet; runtimeclass CompositionScopedBatch; @@ -139,6 +145,7 @@ namespace Windows.UI.Composition { runtimeclass LinearEasingFunction; runtimeclass KeyFrameAnimation; runtimeclass QuaternionKeyFrameAnimation; + runtimeclass RenderingDeviceReplacedEventArgs; runtimeclass ScalarKeyFrameAnimation; runtimeclass SpriteVisual; runtimeclass Vector2KeyFrameAnimation; @@ -155,6 +162,7 @@ namespace Windows.UI.Composition { interface Windows.Foundation.Collections.IIterator; interface Windows.Foundation.Collections.IIterator; interface Windows.Foundation.TypedEventHandler; + interface Windows.Foundation.TypedEventHandler; } [ @@ -485,6 +493,24 @@ namespace Windows.UI.Composition { [propget] HRESULT LoadStatus([out, retval] Windows.UI.Composition.CompositionEffectFactoryLoadStatus *value); } + [ + contract(Windows.Foundation.UniversalApiContract, 2.0), + exclusiveto(Windows.UI.Composition.CompositionGraphicsDevice), + uuid(fb22c6e1-80a2-4667-9936-dbeaf6eefe95) + ] + interface ICompositionGraphicsDevice : IInspectable + { + HRESULT CreateDrawingSurface( + [in] Windows.Foundation.Size pixels, [in] Windows.Graphics.DirectX.DirectXPixelFormat format, + [in] Windows.Graphics.DirectX.DirectXAlphaMode mode, [out, retval] Windows.UI.Composition.CompositionDrawingSurface **result + ); + [eventadd] HRESULT RenderingDeviceReplaced( + [in] Windows.Foundation.TypedEventHandler *handler, + [out, retval] EventRegistrationToken *token + ); + [eventremove] HRESULT RenderingDeviceReplaced([in] EventRegistrationToken token); + } + [ contract(Windows.Foundation.UniversalApiContract, 2.0), exclusiveto(Windows.UI.Composition.CompositionPropertySet), @@ -729,6 +755,16 @@ namespace Windows.UI.Composition { ); } + [ + contract(Windows.Foundation.UniversalApiContract, 2.0), + exclusiveto(Windows.UI.Composition.RenderingDeviceReplacedEventArgs), + uuid(3a31ac7d-28bf-4e7a-8524-71679d480f38) + ] + interface IRenderingDeviceReplacedEventArgs : IInspectable + { + [propget] HRESULT GraphicsDevice([out, retval] Windows.UI.Composition.CompositionGraphicsDevice **value); + } + [ contract(Windows.Foundation.UniversalApiContract, 2.0), exclusiveto(Windows.UI.Composition.ScalarKeyFrameAnimation), @@ -986,6 +1022,19 @@ namespace Windows.UI.Composition { [default] interface Windows.UI.Composition.ICompositionEffectFactory; } + [ + contract(Windows.Foundation.UniversalApiContract, 2.0), + marshaling_behavior(agile), + threading(both) + ] + runtimeclass CompositionGraphicsDevice : Windows.UI.Composition.CompositionObject + { + [default] interface Windows.UI.Composition.ICompositionGraphicsDevice; + [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.UI.Composition.ICompositionGraphicsDevice2; + [contract(Windows.Foundation.UniversalApiContract, 8.0)] interface Windows.UI.Composition.ICompositionGraphicsDevice3; + [contract(Windows.Foundation.UniversalApiContract, 12.0)] interface Windows.UI.Composition.ICompositionGraphicsDevice4; + } + [ composable(Windows.UI.Composition.ICompositionObjectFactory, public, Windows.Foundation.UniversalApiContract, 2.0), contract(Windows.Foundation.UniversalApiContract, 2.0), @@ -1131,6 +1180,16 @@ namespace Windows.UI.Composition { [default] interface Windows.UI.Composition.IQuaternionKeyFrameAnimation; } + [ + contract(Windows.Foundation.UniversalApiContract, 2.0), + marshaling_behavior(agile), + threading(both) + ] + runtimeclass RenderingDeviceReplacedEventArgs : Windows.UI.Composition.CompositionObject + { + [default] interface Windows.UI.Composition.IRenderingDeviceReplacedEventArgs; + } + [ contract(Windows.Foundation.UniversalApiContract, 2.0), marshaling_behavior(agile),