wine-wine/include/ddk/d3dkmthk.h

177 lines
4.3 KiB
C

/*
* Copyright 2016 Henri Verbeet 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
*/
#ifndef __WINE_D3DKMTHK_H
#define __WINE_D3DKMTHK_H
#include <d3dukmdt.h>
typedef enum _D3DKMT_VIDPNSOURCEOWNER_TYPE
{
D3DKMT_VIDPNSOURCEOWNER_UNOWNED = 0,
D3DKMT_VIDPNSOURCEOWNER_SHARED = 1,
D3DKMT_VIDPNSOURCEOWNER_EXCLUSIVE = 2,
D3DKMT_VIDPNSOURCEOWNER_EXCLUSIVEGDI = 3,
D3DKMT_VIDPNSOURCEOWNER_EMULATED = 4
} D3DKMT_VIDPNSOURCEOWNER_TYPE;
typedef struct _D3DKMT_CREATEDEVICEFLAGS
{
UINT LegacyMode : 1;
UINT RequestVSync : 1;
UINT DisableGpuTimeout : 1;
UINT Reserved : 29;
} D3DKMT_CREATEDEVICEFLAGS;
typedef struct _D3DDDI_ALLOCATIONLIST
{
D3DKMT_HANDLE hAllocation;
union
{
struct
{
UINT WriteOperation : 1;
UINT DoNotRetireInstance : 1;
UINT OfferPriority : 3;
UINT Reserved : 27;
} DUMMYSTRUCTNAME;
UINT Value;
} DUMMYUNIONNAME;
} D3DDDI_ALLOCATIONLIST;
typedef struct _D3DDDI_PATCHLOCATIONLIST
{
UINT AllocationIndex;
union
{
struct
{
UINT SlotId : 24;
UINT Reserved : 8;
} DUMMYSTRUCTNAME;
UINT Value;
} DUMMYUNIONNAME;
UINT DriverId;
UINT AllocationOffset;
UINT PatchOffset;
UINT SplitOffset;
} D3DDDI_PATCHLOCATIONLIST;
typedef struct _D3DKMT_DESTROYDEVICE
{
D3DKMT_HANDLE hDevice;
} D3DKMT_DESTROYDEVICE;
typedef struct _D3DKMT_CHECKOCCLUSION
{
HWND hWnd;
} D3DKMT_CHECKOCCLUSION;
typedef struct _D3DKMT_CREATEDEVICE
{
union
{
D3DKMT_HANDLE hAdapter;
VOID *pAdapter;
} DUMMYUNIONNAME;
D3DKMT_CREATEDEVICEFLAGS Flags;
D3DKMT_HANDLE hDevice;
VOID *pCommandBuffer;
UINT CommandBufferSize;
D3DDDI_ALLOCATIONLIST *pAllocationList;
UINT AllocationListSize;
D3DDDI_PATCHLOCATIONLIST *pPatchLocationList;
UINT PatchLocationListSize;
} D3DKMT_CREATEDEVICE;
typedef struct _D3DKMT_OPENADAPTERFROMHDC
{
HDC hDc;
D3DKMT_HANDLE hAdapter;
LUID AdapterLuid;
D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId;
} D3DKMT_OPENADAPTERFROMHDC;
typedef struct _D3DKMT_OPENADAPTERFROMDEVICENAME
{
const WCHAR *pDeviceName;
D3DKMT_HANDLE hAdapter;
LUID AdapterLuid;
} D3DKMT_OPENADAPTERFROMDEVICENAME;
typedef struct _D3DKMT_OPENADAPTERFROMGDIDISPLAYNAME
{
WCHAR DeviceName[32];
D3DKMT_HANDLE hAdapter;
LUID AdapterLuid;
D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId;
} D3DKMT_OPENADAPTERFROMGDIDISPLAYNAME;
typedef struct _D3DKMT_SETVIDPNSOURCEOWNER
{
D3DKMT_HANDLE hDevice;
const D3DKMT_VIDPNSOURCEOWNER_TYPE *pType;
const D3DDDI_VIDEO_PRESENT_SOURCE_ID *pVidPnSourceId;
UINT VidPnSourceCount;
} D3DKMT_SETVIDPNSOURCEOWNER;
typedef struct _D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP
{
D3DKMT_HANDLE hAdapter;
D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId;
} D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP;
typedef struct _D3DKMT_CLOSEADAPTER
{
D3DKMT_HANDLE hAdapter;
} D3DKMT_CLOSEADAPTER;
typedef struct _D3DKMT_CREATEDCFROMMEMORY
{
void *pMemory;
D3DDDIFORMAT Format;
UINT Width;
UINT Height;
UINT Pitch;
HDC hDeviceDc;
PALETTEENTRY *pColorTable;
HDC hDc;
HANDLE hBitmap;
} D3DKMT_CREATEDCFROMMEMORY;
typedef struct _D3DKMT_DESTROYDCFROMMEMORY
{
HDC hDc;
HANDLE hBitmap;
} D3DKMT_DESTROYDCFROMMEMORY;
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */
NTSTATUS WINAPI D3DKMTCloseAdapter(const D3DKMT_CLOSEADAPTER *desc);
NTSTATUS WINAPI D3DKMTCreateDCFromMemory(D3DKMT_CREATEDCFROMMEMORY *desc);
NTSTATUS WINAPI D3DKMTDestroyDCFromMemory(const D3DKMT_DESTROYDCFROMMEMORY *desc);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __WINE_D3DKMTHK_H */