/* * 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 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 */