1
0
mirror of https://github.com/wine-mirror/wine synced 2024-06-29 06:14:34 +00:00
wine/include/windows.graphics.imaging.idl

247 lines
9.8 KiB
Plaintext

/*
* Copyright (C) 2024 Biswapriyo Nath
*
* 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
*/
#ifdef __WIDL__
#pragma winrt ns_prefix
#endif
import "inspectable.idl";
import "asyncinfo.idl";
import "eventtoken.idl";
import "windowscontracts.idl";
import "windows.foundation.idl";
import "windows.graphics.directx.direct3d11.idl";
import "windows.storage.streams.idl";
namespace Windows.Graphics.Imaging {
typedef enum BitmapAlphaMode BitmapAlphaMode;
typedef enum BitmapBufferAccessMode BitmapBufferAccessMode;
typedef enum BitmapPixelFormat BitmapPixelFormat;
typedef struct BitmapBounds BitmapBounds;
typedef struct BitmapPlaneDescription BitmapPlaneDescription;
typedef struct BitmapSize BitmapSize;
interface IBitmapBuffer;
interface ISoftwareBitmap;
interface ISoftwareBitmapFactory;
interface ISoftwareBitmapStatics;
runtimeclass BitmapBuffer;
runtimeclass SoftwareBitmap;
declare {
interface Windows.Foundation.Collections.IIterable<Windows.Graphics.Imaging.BitmapPixelFormat>;
interface Windows.Foundation.Collections.IIterable<Windows.Graphics.Imaging.SoftwareBitmap *>;
interface Windows.Foundation.Collections.IIterator<Windows.Graphics.Imaging.BitmapPixelFormat>;
interface Windows.Foundation.Collections.IIterator<Windows.Graphics.Imaging.SoftwareBitmap *>;
interface Windows.Foundation.Collections.IVectorView<Windows.Graphics.Imaging.BitmapPixelFormat>;
interface Windows.Foundation.IAsyncOperation<Windows.Graphics.Imaging.SoftwareBitmap *>;
interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Graphics.Imaging.SoftwareBitmap *>;
interface Windows.Foundation.IReference<Windows.Graphics.Imaging.BitmapBounds>;
}
[contract(Windows.Foundation.UniversalApiContract, 1.0)]
enum BitmapAlphaMode
{
Premultiplied = 0,
Straight = 1,
Ignore = 2,
};
[contract(Windows.Foundation.UniversalApiContract, 1.0)]
enum BitmapBufferAccessMode
{
Read = 0,
ReadWrite = 1,
Write = 2,
};
[contract(Windows.Foundation.UniversalApiContract, 1.0)]
enum BitmapPixelFormat
{
Unknown = 0,
Rgba16 = 12,
Rgba8 = 30,
[contract(Windows.Foundation.UniversalApiContract, 1.0)]
Gray16 = 57,
[contract(Windows.Foundation.UniversalApiContract, 1.0)]
Gray8 = 62,
Bgra8 = 87,
[contract(Windows.Foundation.UniversalApiContract, 1.0)]
Nv12 = 103,
[contract(Windows.Foundation.UniversalApiContract, 6.0)]
P010 = 104,
[contract(Windows.Foundation.UniversalApiContract, 1.0)]
Yuy2 = 107,
};
[contract(Windows.Foundation.UniversalApiContract, 1.0)]
struct BitmapBounds
{
UINT32 X;
UINT32 Y;
UINT32 Width;
UINT32 Height;
};
[contract(Windows.Foundation.UniversalApiContract, 1.0)]
struct BitmapPlaneDescription
{
INT32 StartIndex;
INT32 Width;
INT32 Height;
INT32 Stride;
};
[contract(Windows.Foundation.UniversalApiContract, 1.0)]
struct BitmapSize
{
UINT32 Width;
UINT32 Height;
};
[
contract(Windows.Foundation.UniversalApiContract, 1.0),
exclusiveto(Windows.Graphics.Imaging.BitmapBuffer),
uuid(a53e04c4-399c-438c-b28f-a63a6b83d1a1)
]
interface IBitmapBuffer : IInspectable
requires Windows.Foundation.IMemoryBuffer, Windows.Foundation.IClosable
{
HRESULT GetPlaneCount([out, retval] INT32 *value);
HRESULT GetPlaneDescription([in] INT32 index, [out, retval] Windows.Graphics.Imaging.BitmapPlaneDescription *value);
}
[
contract(Windows.Foundation.UniversalApiContract, 1.0),
exclusiveto(Windows.Graphics.Imaging.SoftwareBitmap),
uuid(689e0708-7eef-483f-963f-da938818e073)
]
interface ISoftwareBitmap : IInspectable
requires Windows.Foundation.IClosable
{
[propget] HRESULT BitmapPixelFormat([out, retval] Windows.Graphics.Imaging.BitmapPixelFormat *value);
[propget] HRESULT BitmapAlphaMode([out, retval] Windows.Graphics.Imaging.BitmapAlphaMode *value);
[propget] HRESULT PixelWidth([out, retval] INT32 *value);
[propget] HRESULT PixelHeight([out, retval] INT32 *value);
[propget] HRESULT IsReadOnly([out, retval] boolean *value);
[propput] HRESULT DpiX([in] DOUBLE value);
[propget] HRESULT DpiX([out, retval] DOUBLE *value);
[propput] HRESULT DpiY([in] DOUBLE value);
[propget] HRESULT DpiY([out, retval] DOUBLE *value);
HRESULT LockBuffer([in] Windows.Graphics.Imaging.BitmapBufferAccessMode mode,
[out, retval] Windows.Graphics.Imaging.BitmapBuffer **value);
HRESULT CopyTo([in] Windows.Graphics.Imaging.SoftwareBitmap *bitmap);
HRESULT CopyFromBuffer([in] Windows.Storage.Streams.IBuffer *buffer);
HRESULT CopyToBuffer([in] Windows.Storage.Streams.IBuffer *buffer);
HRESULT GetReadOnlyView([out, retval] Windows.Graphics.Imaging.SoftwareBitmap **value);
}
[
contract(Windows.Foundation.UniversalApiContract, 1.0),
exclusiveto(Windows.Graphics.Imaging.SoftwareBitmap),
uuid(c99feb69-2d62-4d47-a6b3-4fdb6a07fdf8)
]
interface ISoftwareBitmapFactory : IInspectable
{
HRESULT Create(
[in] Windows.Graphics.Imaging.BitmapPixelFormat format,
[in] INT32 width,
[in] INT32 height,
[out, retval] Windows.Graphics.Imaging.SoftwareBitmap **value);
HRESULT CreateWithAlpha(
[in] Windows.Graphics.Imaging.BitmapPixelFormat format,
[in] INT32 width,
[in] INT32 height,
[in] Windows.Graphics.Imaging.BitmapAlphaMode alpha,
[out, retval] Windows.Graphics.Imaging.SoftwareBitmap **value);
}
[
contract(Windows.Foundation.UniversalApiContract, 1.0),
exclusiveto(Windows.Graphics.Imaging.SoftwareBitmap),
uuid(df0385db-672f-4a9d-806e-c2442f343e86)
]
interface ISoftwareBitmapStatics : IInspectable
{
HRESULT Copy(
[in] Windows.Graphics.Imaging.SoftwareBitmap *source,
[out, retval] Windows.Graphics.Imaging.SoftwareBitmap **value);
[overload("Convert")]
HRESULT Convert(
[in] Windows.Graphics.Imaging.SoftwareBitmap *source,
[in] Windows.Graphics.Imaging.BitmapPixelFormat format,
[out, retval] Windows.Graphics.Imaging.SoftwareBitmap **value);
[overload("Convert")]
HRESULT ConvertWithAlpha(
[in] Windows.Graphics.Imaging.SoftwareBitmap *source,
[in] Windows.Graphics.Imaging.BitmapPixelFormat format,
[in] Windows.Graphics.Imaging.BitmapAlphaMode alpha,
[out, retval] Windows.Graphics.Imaging.SoftwareBitmap **value);
[overload("CreateCopyFromBuffer")]
HRESULT CreateCopyFromBuffer(
[in] Windows.Storage.Streams.IBuffer *source,
[in] Windows.Graphics.Imaging.BitmapPixelFormat format,
[in] INT32 width,
[in] INT32 height,
[out, retval] Windows.Graphics.Imaging.SoftwareBitmap **value);
[overload("CreateCopyFromBuffer")]
HRESULT CreateCopyWithAlphaFromBuffer(
[in] Windows.Storage.Streams.IBuffer *source,
[in] Windows.Graphics.Imaging.BitmapPixelFormat format,
[in] INT32 width,
[in] INT32 height,
[in] Windows.Graphics.Imaging.BitmapAlphaMode alpha,
[out, retval] Windows.Graphics.Imaging.SoftwareBitmap **value);
[overload("CreateCopyFromSurfaceAsync")]
HRESULT CreateCopyFromSurfaceAsync(
[in] Windows.Graphics.DirectX.Direct3D11.IDirect3DSurface *surface,
[out, retval] Windows.Foundation.IAsyncOperation<Windows.Graphics.Imaging.SoftwareBitmap *> **value);
[overload("CreateCopyFromSurfaceAsync")]
HRESULT CreateCopyWithAlphaFromSurfaceAsync(
[in] Windows.Graphics.DirectX.Direct3D11.IDirect3DSurface *surface,
[in] Windows.Graphics.Imaging.BitmapAlphaMode alpha,
[out, retval] Windows.Foundation.IAsyncOperation<Windows.Graphics.Imaging.SoftwareBitmap *> **value);
}
[
contract(Windows.Foundation.UniversalApiContract, 1.0),
marshaling_behavior(agile),
threading(both)
]
runtimeclass BitmapBuffer
{
[default] interface Windows.Graphics.Imaging.IBitmapBuffer;
interface Windows.Foundation.IMemoryBuffer;
interface Windows.Foundation.IClosable;
}
[
activatable(Windows.Graphics.Imaging.ISoftwareBitmapFactory, Windows.Foundation.UniversalApiContract, 1.0),
contract(Windows.Foundation.UniversalApiContract, 1.0),
marshaling_behavior(agile),
static(Windows.Graphics.Imaging.ISoftwareBitmapStatics, Windows.Foundation.UniversalApiContract, 1.0),
threading(both)
]
runtimeclass SoftwareBitmap
{
[default] interface Windows.Graphics.Imaging.ISoftwareBitmap;
interface Windows.Foundation.IClosable;
}
}