mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-02 01:33:37 +00:00
443 lines
17 KiB
Plaintext
443 lines
17 KiB
Plaintext
/*
|
|
* Copyright 2023 Zhiyi Zhang for CodeWeavers
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
*/
|
|
|
|
import "objidl.idl";
|
|
import "d2dbasetypes.h";
|
|
import "dcommon.idl";
|
|
import "dcompanimation.idl";
|
|
import "dcomptypes.idl";
|
|
import "unknwn.idl";
|
|
|
|
typedef struct _D3DMATRIX
|
|
{
|
|
float m[4][4];
|
|
} D3DMATRIX;
|
|
|
|
[
|
|
local,
|
|
object,
|
|
pointer_default(unique),
|
|
uuid(bb8a4953-2c99-4f5a-96f5-4819027fa3ac)
|
|
]
|
|
interface IDCompositionSurface : IUnknown
|
|
{
|
|
HRESULT BeginDraw([in, optional] const RECT *rect, [in] REFIID iid, [out] void **object, [out] POINT *offset);
|
|
HRESULT EndDraw();
|
|
HRESULT SuspendDraw();
|
|
HRESULT ResumeDraw();
|
|
HRESULT Scroll([in, optional] const RECT *scroll, [in, optional] const RECT *clip, [in] int offset_x, [in] int offset_y);
|
|
}
|
|
|
|
[
|
|
local,
|
|
object,
|
|
pointer_default(unique),
|
|
uuid(ae471c51-5f53-4a24-8d3e-d0c39c30b3f0)
|
|
]
|
|
interface IDCompositionVirtualSurface : IDCompositionSurface
|
|
{
|
|
HRESULT Resize([in] UINT width, [in] UINT height);
|
|
HRESULT Trim([in, optional, size_is(count)] const RECT *rectangles, [in] UINT count);
|
|
}
|
|
|
|
[
|
|
local,
|
|
object,
|
|
pointer_default(unique),
|
|
uuid(e334bc12-3937-4e02-85eb-fcf4eb30d2c8)
|
|
]
|
|
interface IDCompositionSurfaceFactory : IUnknown
|
|
{
|
|
HRESULT CreateSurface([in] UINT width, [in] UINT height, [in] DXGI_FORMAT pixel_format, [in] DXGI_ALPHA_MODE alpha_mode, [out] IDCompositionSurface **surface);
|
|
HRESULT CreateVirtualSurface([in] UINT width, [in] UINT height, [in] DXGI_FORMAT pixel_format, [in] DXGI_ALPHA_MODE alpha_mode, [out] IDCompositionVirtualSurface **surface);
|
|
}
|
|
|
|
[
|
|
local,
|
|
object,
|
|
pointer_default(unique),
|
|
uuid(64ac3703-9d3f-45ec-a109-7cac0e7a13a7)
|
|
]
|
|
interface IDCompositionClip : IUnknown
|
|
{
|
|
}
|
|
|
|
[
|
|
local,
|
|
object,
|
|
pointer_default(unique),
|
|
uuid(9842ad7d-d9cf-4908-aed7-48b51da5e7c2)
|
|
]
|
|
interface IDCompositionRectangleClip : IDCompositionClip
|
|
{
|
|
HRESULT SetLeft([in] float left);
|
|
HRESULT SetLeftAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetTop([in] float top);
|
|
HRESULT SetTopAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetRight([in] float right);
|
|
HRESULT SetRightAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetBottom([in] float bottom);
|
|
HRESULT SetBottomAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetTopLeftRadiusX([in] float radius);
|
|
HRESULT SetTopLeftRadiusXAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetTopLeftRadiusY([in] float radius);
|
|
HRESULT SetTopLeftRadiusYAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetTopRightRadiusX([in] float radius);
|
|
HRESULT SetTopRightRadiusXAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetTopRightRadiusY([in] float radius);
|
|
HRESULT SetTopRightRadiusYAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetBottomLeftRadiusX([in] float radius);
|
|
HRESULT SetBottomLeftRadiusXAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetBottomLeftRadiusY([in] float radius);
|
|
HRESULT SetBottomLeftRadiusYAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetBottomRightRadiusX([in] float radius);
|
|
HRESULT SetBottomRightRadiusXAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetBottomRightRadiusY([in] float radius);
|
|
HRESULT SetBottomRightRadiusYAnimation([in] IDCompositionAnimation *animation);
|
|
}
|
|
|
|
[
|
|
local,
|
|
object,
|
|
pointer_default(unique),
|
|
uuid(ec81b08f-bfcb-4e8d-b193-a915587999e8)
|
|
]
|
|
interface IDCompositionEffect : IUnknown
|
|
{
|
|
}
|
|
|
|
[
|
|
local,
|
|
object,
|
|
pointer_default(unique),
|
|
uuid(71185722-246b-41f2-aad1-0443f7f4bfc2)
|
|
]
|
|
interface IDCompositionTransform3D : IDCompositionEffect
|
|
{
|
|
}
|
|
|
|
[
|
|
local,
|
|
object,
|
|
pointer_default(unique),
|
|
uuid(a7929a74-e6b2-4bd6-8b95-4040119ca34d)
|
|
]
|
|
interface IDCompositionEffectGroup : IDCompositionEffect
|
|
{
|
|
HRESULT SetOpacity([in] float opacity);
|
|
HRESULT SetOpacityAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetTransform3D([in, optional] IDCompositionTransform3D *transform);
|
|
};
|
|
|
|
[
|
|
local,
|
|
object,
|
|
pointer_default(unique),
|
|
uuid(91636d4b-9ba1-4532-aaf7-e3344994d788)
|
|
]
|
|
interface IDCompositionTranslateTransform3D : IDCompositionTransform3D
|
|
{
|
|
HRESULT SetOffsetX([in] float offset);
|
|
HRESULT SetOffsetXAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetOffsetY([in] float offset);
|
|
HRESULT SetOffsetYAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetOffsetZ([in] float offset);
|
|
HRESULT SetOffsetZAnimation([in] IDCompositionAnimation *animation);
|
|
};
|
|
|
|
[
|
|
local,
|
|
object,
|
|
pointer_default(unique),
|
|
uuid(2a9e9ead-364b-4b15-a7c4-a1997f78b389)
|
|
]
|
|
interface IDCompositionScaleTransform3D : IDCompositionTransform3D
|
|
{
|
|
HRESULT SetScaleX([in] float scale);
|
|
HRESULT SetScaleXAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetScaleY([in] float scale);
|
|
HRESULT SetScaleYAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetScaleZ([in] float scale);
|
|
HRESULT SetScaleZAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetCenterX([in] float center);
|
|
HRESULT SetCenterXAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetCenterY([in] float center);
|
|
HRESULT SetCenterYAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetCenterZ([in] float center);
|
|
HRESULT SetCenterZAnimation([in] IDCompositionAnimation *animation);
|
|
}
|
|
|
|
[
|
|
local,
|
|
object,
|
|
pointer_default(unique),
|
|
uuid(d8f5b23f-d429-4a91-b55a-d2f45fd75b18)
|
|
]
|
|
interface IDCompositionRotateTransform3D : IDCompositionTransform3D
|
|
{
|
|
HRESULT SetScaleX([in] float scale);
|
|
HRESULT SetScaleXAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetScaleY([in] float scale);
|
|
HRESULT SetScaleYAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetScaleZ([in] float scale);
|
|
HRESULT SetScaleZAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetCenterX([in] float center);
|
|
HRESULT SetCenterXAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetCenterY([in] float center);
|
|
HRESULT SetCenterYAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetCenterZ([in] float center);
|
|
HRESULT SetCenterZAnimation([in] IDCompositionAnimation *animation);
|
|
}
|
|
|
|
[
|
|
local,
|
|
object,
|
|
pointer_default(unique),
|
|
uuid(4b3363f0-643b-41b7-b6e0-ccf22d34467c)
|
|
]
|
|
interface IDCompositionMatrixTransform3D : IDCompositionTransform3D
|
|
{
|
|
/* C++ method: HRESULT SetMatrix(const D3DMATRIX &matrix); Use pointer instead of reference */
|
|
HRESULT SetMatrix([in] const D3DMATRIX *matrix);
|
|
HRESULT SetMatrixElement([in] int row, [in] int column, [in] float value);
|
|
HRESULT SetMatrixElementAnimation([in] int row, [in] int column, [in] IDCompositionAnimation *animation);
|
|
};
|
|
|
|
[
|
|
local,
|
|
object,
|
|
pointer_default(unique),
|
|
uuid(fd55faa7-37e0-4c20-95d2-9be45bc33f55)
|
|
]
|
|
interface IDCompositionTransform : IDCompositionTransform3D
|
|
{
|
|
}
|
|
|
|
[
|
|
local,
|
|
object,
|
|
pointer_default(unique),
|
|
uuid(71fde914-40ef-45ef-bd51-68b037c339f9)
|
|
]
|
|
interface IDCompositionScaleTransform : IDCompositionTransform
|
|
{
|
|
HRESULT SetScaleX([in] float scale);
|
|
HRESULT SetScaleXAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetScaleY([in] float scale);
|
|
HRESULT SetScaleYAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetCenterX([in] float center);
|
|
HRESULT SetCenterXAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetCenterY([in] float center);
|
|
HRESULT SetCenterYAnimation([in] IDCompositionAnimation *animation);
|
|
};
|
|
|
|
[
|
|
local,
|
|
object,
|
|
pointer_default(unique),
|
|
uuid(641ed83c-ae96-46c5-90dc-32774cc5c6d5)
|
|
]
|
|
interface IDCompositionRotateTransform : IDCompositionTransform
|
|
{
|
|
HRESULT SetAngle([in] float angle);
|
|
HRESULT SetAngleAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetCenterX([in] float center_x);
|
|
HRESULT SetCenterXAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetCenterY([in] float center_y);
|
|
HRESULT SetCenterYAnimation([in] IDCompositionAnimation *animation);
|
|
};
|
|
|
|
[
|
|
local,
|
|
object,
|
|
pointer_default(unique),
|
|
uuid(e57aa735-dcdb-4c72-9c61-0591f58889ee)
|
|
]
|
|
interface IDCompositionSkewTransform : IDCompositionTransform
|
|
{
|
|
HRESULT SetAngleX([in] float angle);
|
|
HRESULT SetAngleXAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetAngleY([in] float angle);
|
|
HRESULT SetAngleYAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetCenterX([in] float center);
|
|
HRESULT SetCenterXAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetCenterY([in] float center);
|
|
HRESULT SetCenterYAnimation([in] IDCompositionAnimation *animation);
|
|
};
|
|
|
|
[
|
|
local,
|
|
object,
|
|
pointer_default(unique),
|
|
uuid(16cdff07-c503-419c-83f2-0965c7af1fa6)
|
|
]
|
|
interface IDCompositionMatrixTransform : IDCompositionTransform
|
|
{
|
|
/* C++ method: HRESULT SetMatrix(const D2D_MATRIX_3X2_F &matrix); Use pointer instead of reference */
|
|
HRESULT SetMatrix([in] const D2D_MATRIX_3X2_F *matrix);
|
|
HRESULT SetMatrixElement([in] int row, [in] int column, [in] float value);
|
|
HRESULT SetMatrixElementAnimation([in] int row, [in] int column, [in] IDCompositionAnimation *animation);
|
|
};
|
|
|
|
[
|
|
local,
|
|
object,
|
|
pointer_default(unique),
|
|
uuid(06791122-c6f0-417d-8323-269e987f5954)
|
|
]
|
|
interface IDCompositionTranslateTransform : IDCompositionTransform
|
|
{
|
|
HRESULT SetOffsetX([in] float offset);
|
|
HRESULT SetOffsetXAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetOffsetY([in] float offset);
|
|
HRESULT SetOffsetYAnimation([in] IDCompositionAnimation *animation);
|
|
};
|
|
|
|
[
|
|
object,
|
|
uuid(4d93059d-097b-4651-9a60-f0f25116e2f3),
|
|
local,
|
|
pointer_default(unique)
|
|
]
|
|
interface IDCompositionVisual : IUnknown
|
|
{
|
|
HRESULT SetOffsetX([in] float offset_x);
|
|
HRESULT SetOffsetXAnimation([in] IDCompositionAnimation *animation);
|
|
HRESULT SetOffsetY([in] float offset_y);
|
|
HRESULT SetOffsetYAnimation([in] IDCompositionAnimation *animation);
|
|
/* C++ method: HRESULT SetTransform(const D2D_MATRIX_3X2_F &matrix); Use pointer instead of reference */
|
|
HRESULT SetTransform([in] const D2D_MATRIX_3X2_F *matrix);
|
|
HRESULT SetTransformObject([in] IDCompositionTransform *transform);
|
|
HRESULT SetTransformParent([in] IDCompositionVisual *visual);
|
|
HRESULT SetEffect([in] IDCompositionEffect *effect);
|
|
HRESULT SetBitmapInterpolationMode([in] enum DCOMPOSITION_BITMAP_INTERPOLATION_MODE interpolation_mode);
|
|
HRESULT SetBorderMode([in] enum DCOMPOSITION_BORDER_MODE border_mode);
|
|
/* C++ method: HRESULT SetClip(const D2D_RECT_F &rect); Use pointer instead of reference */
|
|
HRESULT SetClip([in] const D2D_RECT_F *rect);
|
|
HRESULT SetClipObject([in] IDCompositionClip *clip);
|
|
HRESULT SetContent([in] IUnknown *content);
|
|
HRESULT AddVisual([in] IDCompositionVisual *visual, [in] BOOL insert_above, [in] IDCompositionVisual *reference_visual);
|
|
HRESULT RemoveVisual([in] IDCompositionVisual *visual);
|
|
HRESULT RemoveAllVisuals();
|
|
HRESULT SetCompositeMode([in] enum DCOMPOSITION_COMPOSITE_MODE composite_mode);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(e8de1639-4331-4b26-bc5f-6a321d347a85),
|
|
local,
|
|
pointer_default(unique)
|
|
]
|
|
interface IDCompositionVisual2 : IDCompositionVisual
|
|
{
|
|
HRESULT SetOpacityMode([in] enum DCOMPOSITION_OPACITY_MODE opacity_mode);
|
|
HRESULT SetBackFaceVisibility([in] enum DCOMPOSITION_BACKFACE_VISIBILITY visibility);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(eacdd04c-117e-4e17-88f4-d1b12b0e3d89),
|
|
local,
|
|
pointer_default(unique)
|
|
]
|
|
interface IDCompositionTarget : IUnknown
|
|
{
|
|
HRESULT SetRoot([in] IDCompositionVisual *visual);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(c37ea93a-e7aa-450d-b16f-9746cb0407f3),
|
|
local,
|
|
pointer_default(unique)
|
|
]
|
|
interface IDCompositionDevice : IUnknown
|
|
{
|
|
HRESULT Commit();
|
|
HRESULT WaitForCommitCompletion();
|
|
HRESULT GetFrameStatistics([out] DCOMPOSITION_FRAME_STATISTICS *statistics);
|
|
HRESULT CreateTargetForHwnd([in] HWND hwnd, [in] BOOL topmost, [out] IDCompositionTarget **target);
|
|
HRESULT CreateVisual([out] IDCompositionVisual **visual);
|
|
HRESULT CreateSurface([in] UINT width, [in] UINT height, [in] DXGI_FORMAT pixel_format, [in] DXGI_ALPHA_MODE alpha_mode, [out] IDCompositionSurface **surface);
|
|
HRESULT CreateVirtualSurface([in] UINT width, [in] UINT height, [in] DXGI_FORMAT pixel_format, [in] DXGI_ALPHA_MODE alpha_mode, [out] IDCompositionVirtualSurface **surface);
|
|
HRESULT CreateSurfaceFromHandle([in] HANDLE handle, [out] IUnknown **surface);
|
|
HRESULT CreateSurfaceFromHwnd([in] HWND hwnd, [out] IUnknown **surface);
|
|
HRESULT CreateTranslateTransform([out] IDCompositionTranslateTransform **transform);
|
|
HRESULT CreateScaleTransform([out] IDCompositionScaleTransform **transform);
|
|
HRESULT CreateRotateTransform([out] IDCompositionRotateTransform **transform);
|
|
HRESULT CreateSkewTransform([out] IDCompositionSkewTransform **transform);
|
|
HRESULT CreateMatrixTransform([out] IDCompositionMatrixTransform **transform);
|
|
HRESULT CreateTransformGroup([in, size_is(elements)] IDCompositionTransform **transforms, [in] UINT elements, [out] IDCompositionTransform **transform_group);
|
|
HRESULT CreateTranslateTransform3D([out] IDCompositionTranslateTransform3D **transform_3d);
|
|
HRESULT CreateScaleTransform3D([out] IDCompositionScaleTransform3D **transform_3d);
|
|
HRESULT CreateRotateTransform3D([out] IDCompositionRotateTransform3D **transform_3d);
|
|
HRESULT CreateMatrixTransform3D([out] IDCompositionMatrixTransform3D **transform_3d);
|
|
HRESULT CreateTransform3DGroup([in, size_is(elements)] IDCompositionTransform3D **transforms_3d, [in] UINT elements, [out] IDCompositionTransform3D **transform_3d_group);
|
|
HRESULT CreateEffectGroup([out] IDCompositionEffectGroup **effect_group);
|
|
HRESULT CreateRectangleClip([out] IDCompositionRectangleClip **clip);
|
|
HRESULT CreateAnimation([out] IDCompositionAnimation **animation);
|
|
HRESULT CheckDeviceState([out] BOOL *valid);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(75f6468d-1b8e-447c-9bc6-75fea80b5b25),
|
|
local,
|
|
pointer_default(unique)
|
|
]
|
|
interface IDCompositionDevice2 : IUnknown
|
|
{
|
|
HRESULT Commit();
|
|
HRESULT WaitForCommitCompletion();
|
|
HRESULT GetFrameStatistics([out] DCOMPOSITION_FRAME_STATISTICS *statistics);
|
|
HRESULT CreateVisual([out] IDCompositionVisual2 **visual);
|
|
HRESULT CreateSurfaceFactory([in] IUnknown *rendering_device, [out] IDCompositionSurfaceFactory **surface_factory);
|
|
HRESULT CreateSurface([in] UINT width, [in] UINT height, [in] DXGI_FORMAT pixel_format, [in] DXGI_ALPHA_MODE alpha_mode, [out] IDCompositionSurface **surface);
|
|
HRESULT CreateVirtualSurface([in] UINT width, [in] UINT height, [in] DXGI_FORMAT pixel_format, [in] DXGI_ALPHA_MODE alpha_mode, [out] IDCompositionVirtualSurface **surface);
|
|
HRESULT CreateTranslateTransform([out] IDCompositionTranslateTransform **transform);
|
|
HRESULT CreateScaleTransform([out] IDCompositionScaleTransform **transform);
|
|
HRESULT CreateRotateTransform([out] IDCompositionRotateTransform **transform);
|
|
HRESULT CreateSkewTransform([out] IDCompositionSkewTransform **transform);
|
|
HRESULT CreateMatrixTransform([out] IDCompositionMatrixTransform **transform);
|
|
HRESULT CreateTransformGroup([in, size_is(elements)] IDCompositionTransform **transforms, [in] UINT elements, [out] IDCompositionTransform **transform_group);
|
|
HRESULT CreateTranslateTransform3D([out] IDCompositionTranslateTransform3D **transform_3d);
|
|
HRESULT CreateScaleTransform3D([out] IDCompositionScaleTransform3D **transform_3d);
|
|
HRESULT CreateRotateTransform3D([out] IDCompositionRotateTransform3D **transform_3d);
|
|
HRESULT CreateMatrixTransform3D([out] IDCompositionMatrixTransform3D **transform_3d);
|
|
HRESULT CreateTransform3DGroup([in, size_is(elements)] IDCompositionTransform3D **transforms_3d, [in] UINT elements, [out] IDCompositionTransform3D **transform_3d_group);
|
|
HRESULT CreateEffectGroup([out] IDCompositionEffectGroup **effect_group);
|
|
HRESULT CreateRectangleClip([out] IDCompositionRectangleClip **clip);
|
|
HRESULT CreateAnimation([out] IDCompositionAnimation **animation);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(5f4633fe-1e08-4cb8-8c75-ce24333f5602),
|
|
local,
|
|
pointer_default(unique)
|
|
]
|
|
interface IDCompositionDesktopDevice : IDCompositionDevice2
|
|
{
|
|
HRESULT CreateTargetForHwnd([in] HWND hwnd, [in] BOOL topmost, [out] IDCompositionTarget **target);
|
|
HRESULT CreateSurfaceFromHandle([in] HANDLE handle, [out] IUnknown **surface);
|
|
HRESULT CreateSurfaceFromHwnd([in] HWND hwnd, [out] IUnknown **surface);
|
|
}
|
|
|
|
cpp_quote("STDAPI DCompositionCreateDevice(IDXGIDevice *dxgi_device, REFIID iid, void **device);")
|
|
cpp_quote("STDAPI DCompositionCreateDevice2(IUnknown *rendering_device, REFIID iid, void **device);")
|