af062818b47340eef15700d2f0211576ba3506eevboxsync/*
af062818b47340eef15700d2f0211576ba3506eevboxsync * Copyright 2007 Andras Kovacs
af062818b47340eef15700d2f0211576ba3506eevboxsync *
af062818b47340eef15700d2f0211576ba3506eevboxsync * This library is free software; you can redistribute it and/or
af062818b47340eef15700d2f0211576ba3506eevboxsync * modify it under the terms of the GNU Lesser General Public
af062818b47340eef15700d2f0211576ba3506eevboxsync * License as published by the Free Software Foundation; either
af062818b47340eef15700d2f0211576ba3506eevboxsync * version 2.1 of the License, or (at your option) any later version.
af062818b47340eef15700d2f0211576ba3506eevboxsync *
af062818b47340eef15700d2f0211576ba3506eevboxsync * This library is distributed in the hope that it will be useful,
af062818b47340eef15700d2f0211576ba3506eevboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
af062818b47340eef15700d2f0211576ba3506eevboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
af062818b47340eef15700d2f0211576ba3506eevboxsync * Lesser General Public License for more details.
af062818b47340eef15700d2f0211576ba3506eevboxsync *
af062818b47340eef15700d2f0211576ba3506eevboxsync * You should have received a copy of the GNU Lesser General Public
af062818b47340eef15700d2f0211576ba3506eevboxsync * License along with this library; if not, write to the Free Software
af062818b47340eef15700d2f0211576ba3506eevboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
af062818b47340eef15700d2f0211576ba3506eevboxsync */
af062818b47340eef15700d2f0211576ba3506eevboxsync
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync/*
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * a choice of LGPL license versions is made available with the language indicating
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * of the LGPL is applied is otherwise unspecified.
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync */
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncimport "dxgitype.idl";
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncconst UINT _FACDXGI = 0x87a;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#define MAKE_DXGI_STATUS(x) MAKE_HRESULT(0, _FACDXGI, x)")
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#define DXGI_STATUS_OCCLUDED MAKE_DXGI_STATUS(1)")
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#define DXGI_STATUS_CLIPPED MAKE_DXGI_STATUS(2)")
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#define DXGI_STATUS_NO_REDIRECTION MAKE_DXGI_STATUS(4)")
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#define DXGI_STATUS_NO_DESKTOP_ACCESS MAKE_DXGI_STATUS(5)")
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#define DXGI_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE MAKE_DXGI_STATUS(6)")
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#define DXGI_STATUS_MODE_CHANGED MAKE_DXGI_STATUS(7)")
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#define DXGI_STATUS_MODE_CHANGE_IN_PROGRESS MAKE_DXGI_STATUS(8)")
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#define MAKE_DXGI_HRESULT(x) MAKE_HRESULT(1, _FACDXGI, x)")
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#define DXGI_ERROR_INVALID_CALL MAKE_DXGI_HRESULT(1)")
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#define DXGI_ERROR_NOT_FOUND MAKE_DXGI_HRESULT(2)")
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#define DXGI_ERROR_MORE_DATA MAKE_DXGI_HRESULT(3)")
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#define DXGI_ERROR_UNSUPPORTED MAKE_DXGI_HRESULT(4)")
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#define DXGI_ERROR_DEVICE_REMOVED MAKE_DXGI_HRESULT(5)")
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#define DXGI_ERROR_DEVICE_HUNG MAKE_DXGI_HRESULT(6)")
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#define DXGI_ERROR_DEVICE_RESET MAKE_DXGI_HRESULT(7)")
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#define DXGI_ERROR_WAS_STILL_DRAWING MAKE_DXGI_HRESULT(10)")
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#define DXGI_ERROR_FRAME_STATISTICS_DISJOINT MAKE_DXGI_HRESULT(11)")
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#define DXGI_ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE MAKE_DXGI_HRESULT(12)")
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#define DXGI_ERROR_DRIVER_INTERNAL_ERROR MAKE_DXGI_HRESULT(32)")
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#define DXGI_ERROR_NONEXCLUSIVE MAKE_DXGI_HRESULT(33)")
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#define DXGI_ERROR_NOT_CURRENTLY_AVAILABLE MAKE_DXGI_HRESULT(34)")
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#if 0")
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef HANDLE HMONITOR;
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct _LUID {
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD LowPart;
af062818b47340eef15700d2f0211576ba3506eevboxsync LONG HighPart;
af062818b47340eef15700d2f0211576ba3506eevboxsync} LUID, *PLUID;
af062818b47340eef15700d2f0211576ba3506eevboxsynccpp_quote("#endif")
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef UINT DXGI_USAGE;
af062818b47340eef15700d2f0211576ba3506eevboxsyncconst DXGI_USAGE DXGI_USAGE_SHADER_INPUT = 0x10L;
af062818b47340eef15700d2f0211576ba3506eevboxsyncconst DXGI_USAGE DXGI_USAGE_RENDER_TARGET_OUTPUT = 0x20L;
af062818b47340eef15700d2f0211576ba3506eevboxsyncconst DXGI_USAGE DXGI_USAGE_BACK_BUFFER = 0x40L;
af062818b47340eef15700d2f0211576ba3506eevboxsyncconst DXGI_USAGE DXGI_USAGE_SHARED = 0x80L;
af062818b47340eef15700d2f0211576ba3506eevboxsyncconst DXGI_USAGE DXGI_USAGE_READ_ONLY = 0x100L;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef enum DXGI_SWAP_EFFECT {
af062818b47340eef15700d2f0211576ba3506eevboxsync DXGI_SWAP_EFFECT_DISCARD = 0,
af062818b47340eef15700d2f0211576ba3506eevboxsync DXGI_SWAP_EFFECT_SEQUENTIAL = 1,
af062818b47340eef15700d2f0211576ba3506eevboxsync} DXGI_SWAP_EFFECT;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef enum DXGI_RESIDENCY {
af062818b47340eef15700d2f0211576ba3506eevboxsync DXGI_RESIDENCY_FULLY_RESIDENT = 1,
af062818b47340eef15700d2f0211576ba3506eevboxsync DXGI_RESIDENCY_RESIDENT_IN_SHARED_MEMORY = 2,
af062818b47340eef15700d2f0211576ba3506eevboxsync DXGI_RESIDENCY_EVICTED_TO_DISK = 3,
af062818b47340eef15700d2f0211576ba3506eevboxsync} DXGI_RESIDENCY;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct DXGI_SURFACE_DESC {
af062818b47340eef15700d2f0211576ba3506eevboxsync UINT Width;
af062818b47340eef15700d2f0211576ba3506eevboxsync UINT Height;
af062818b47340eef15700d2f0211576ba3506eevboxsync DXGI_FORMAT Format;
af062818b47340eef15700d2f0211576ba3506eevboxsync DXGI_SAMPLE_DESC SampleDesc;
af062818b47340eef15700d2f0211576ba3506eevboxsync} DXGI_SURFACE_DESC;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct DXGI_MAPPED_RECT {
af062818b47340eef15700d2f0211576ba3506eevboxsync INT Pitch;
af062818b47340eef15700d2f0211576ba3506eevboxsync BYTE *pBits;
af062818b47340eef15700d2f0211576ba3506eevboxsync} DXGI_MAPPED_RECT;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct DXGI_OUTPUT_DESC {
af062818b47340eef15700d2f0211576ba3506eevboxsync WCHAR DeviceName[32];
af062818b47340eef15700d2f0211576ba3506eevboxsync RECT DesktopCoordinates;
af062818b47340eef15700d2f0211576ba3506eevboxsync BOOL AttachedToDesktop;
af062818b47340eef15700d2f0211576ba3506eevboxsync DXGI_MODE_ROTATION Rotation;
af062818b47340eef15700d2f0211576ba3506eevboxsync HMONITOR Monitor;
af062818b47340eef15700d2f0211576ba3506eevboxsync} DXGI_OUTPUT_DESC;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct DXGI_FRAME_STATISTICS {
af062818b47340eef15700d2f0211576ba3506eevboxsync UINT PresentCount;
af062818b47340eef15700d2f0211576ba3506eevboxsync UINT PresentRefreshCount;
af062818b47340eef15700d2f0211576ba3506eevboxsync UINT SyncRefreshCount;
af062818b47340eef15700d2f0211576ba3506eevboxsync LARGE_INTEGER SyncQPCTime;
af062818b47340eef15700d2f0211576ba3506eevboxsync LARGE_INTEGER SyncGPUTime;
af062818b47340eef15700d2f0211576ba3506eevboxsync} DXGI_FRAME_STATISTICS;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct DXGI_ADAPTER_DESC {
af062818b47340eef15700d2f0211576ba3506eevboxsync WCHAR Description[128];
af062818b47340eef15700d2f0211576ba3506eevboxsync UINT VendorId;
af062818b47340eef15700d2f0211576ba3506eevboxsync UINT DeviceId;
af062818b47340eef15700d2f0211576ba3506eevboxsync UINT SubSysId;
af062818b47340eef15700d2f0211576ba3506eevboxsync UINT Revision;
af062818b47340eef15700d2f0211576ba3506eevboxsync SIZE_T DedicatedVideoMemory;
af062818b47340eef15700d2f0211576ba3506eevboxsync SIZE_T DedicatedSystemMemory;
af062818b47340eef15700d2f0211576ba3506eevboxsync SIZE_T SharedSystemMemory;
af062818b47340eef15700d2f0211576ba3506eevboxsync LUID AdapterLuid;
af062818b47340eef15700d2f0211576ba3506eevboxsync} DXGI_ADAPTER_DESC;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct DXGI_SWAP_CHAIN_DESC {
af062818b47340eef15700d2f0211576ba3506eevboxsync DXGI_MODE_DESC BufferDesc;
af062818b47340eef15700d2f0211576ba3506eevboxsync DXGI_SAMPLE_DESC SampleDesc;
af062818b47340eef15700d2f0211576ba3506eevboxsync DXGI_USAGE BufferUsage;
af062818b47340eef15700d2f0211576ba3506eevboxsync UINT BufferCount;
af062818b47340eef15700d2f0211576ba3506eevboxsync HWND OutputWindow;
af062818b47340eef15700d2f0211576ba3506eevboxsync BOOL Windowed;
af062818b47340eef15700d2f0211576ba3506eevboxsync DXGI_SWAP_EFFECT SwapEffect;
af062818b47340eef15700d2f0211576ba3506eevboxsync UINT Flags;
af062818b47340eef15700d2f0211576ba3506eevboxsync} DXGI_SWAP_CHAIN_DESC;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct DXGI_SHARED_RESOURCE {
af062818b47340eef15700d2f0211576ba3506eevboxsync HANDLE Handle;
af062818b47340eef15700d2f0211576ba3506eevboxsync} DXGI_SHARED_RESOURCE;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync[
af062818b47340eef15700d2f0211576ba3506eevboxsync object,
af062818b47340eef15700d2f0211576ba3506eevboxsync local,
af062818b47340eef15700d2f0211576ba3506eevboxsync uuid(aec22fb8-76f3-4639-9be0-28eb43a67a2e)
af062818b47340eef15700d2f0211576ba3506eevboxsync]
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IDXGIObject : IUnknown
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetPrivateData(
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] REFGUID guid,
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] UINT data_size,
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] const void *data
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetPrivateDataInterface(
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] REFGUID guid,
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] const IUnknown *object
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetPrivateData(
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] REFGUID guid,
af062818b47340eef15700d2f0211576ba3506eevboxsync [in, out] UINT *data_size,
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] void *data
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetParent(
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] REFIID riid,
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] void **parent
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync[
af062818b47340eef15700d2f0211576ba3506eevboxsync object,
af062818b47340eef15700d2f0211576ba3506eevboxsync local,
af062818b47340eef15700d2f0211576ba3506eevboxsync uuid(3d3e0379-f9de-4d58-bb6c-18d62992f1a6)
af062818b47340eef15700d2f0211576ba3506eevboxsync]
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IDXGIDeviceSubObject : IDXGIObject
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetDevice(
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] REFIID riid,
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] void **device
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync[
af062818b47340eef15700d2f0211576ba3506eevboxsync object,
af062818b47340eef15700d2f0211576ba3506eevboxsync local,
af062818b47340eef15700d2f0211576ba3506eevboxsync uuid(cafcb56c-6ac3-4889-bf47-9e23bbd260ec)
af062818b47340eef15700d2f0211576ba3506eevboxsync]
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IDXGISurface : IDXGIDeviceSubObject
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetDesc(
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] DXGI_SURFACE_DESC *desc
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT Map(
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] DXGI_MAPPED_RECT *mapped_rect,
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] UINT flags
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT Unmap(
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync[
af062818b47340eef15700d2f0211576ba3506eevboxsync object,
af062818b47340eef15700d2f0211576ba3506eevboxsync local,
af062818b47340eef15700d2f0211576ba3506eevboxsync uuid(ae02eedb-c735-4690-8d52-5a8dc20213aa)
af062818b47340eef15700d2f0211576ba3506eevboxsync]
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IDXGIOutput : IDXGIObject
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetDesc(
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] DXGI_OUTPUT_DESC *desc
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetDisplayModeList(
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] DXGI_FORMAT format,
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] UINT flags,
af062818b47340eef15700d2f0211576ba3506eevboxsync [in, out] UINT *mode_count,
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] DXGI_MODE_DESC *desc
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT FindClosestMatchingMode(
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] const DXGI_MODE_DESC *mode,
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] DXGI_MODE_DESC *closest_match,
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] IUnknown *device
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT WaitForVBlank(
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT TakeOwnership(
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] IUnknown *device,
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] BOOL exclusive
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync void ReleaseOwnership(
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetGammaControlCapabilities(
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetGammaControl(
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] const DXGI_GAMMA_CONTROL *gamma_control
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetGammaControl(
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] DXGI_GAMMA_CONTROL *gamma_control
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetDisplaySurface(
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] IDXGISurface *surface
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetDisplaySurfaceData(
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] IDXGISurface *surface
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetFrameStatistics(
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] DXGI_FRAME_STATISTICS *stats
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync[
af062818b47340eef15700d2f0211576ba3506eevboxsync object,
af062818b47340eef15700d2f0211576ba3506eevboxsync local,
af062818b47340eef15700d2f0211576ba3506eevboxsync uuid(2411e7e1-12ac-4ccf-bd14-9798e8534dc0)
af062818b47340eef15700d2f0211576ba3506eevboxsync]
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IDXGIAdapter : IDXGIObject
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT EnumOutputs(
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] UINT output_idx,
af062818b47340eef15700d2f0211576ba3506eevboxsync [in, out] IDXGIOutput **output
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetDesc(
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] DXGI_ADAPTER_DESC *desc
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT CheckInterfaceSupport(
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] REFGUID guid,
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] LARGE_INTEGER *umd_version
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync[
af062818b47340eef15700d2f0211576ba3506eevboxsync object,
af062818b47340eef15700d2f0211576ba3506eevboxsync local,
af062818b47340eef15700d2f0211576ba3506eevboxsync uuid(310d36a0-d2e7-4c0a-aa04-6a9d23b8886a)
af062818b47340eef15700d2f0211576ba3506eevboxsync]
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IDXGISwapChain : IDXGIDeviceSubObject
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT Present(
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] UINT sync_interval,
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] UINT flags
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetBuffer(
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] UINT buffer_idx,
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] REFIID riid,
af062818b47340eef15700d2f0211576ba3506eevboxsync [in, out] void **surface
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetFullscreenState(
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] BOOL fullscreen,
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] IDXGIOutput *target
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetFullscreenState(
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] BOOL *fullscreen,
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] IDXGIOutput **target
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetDesc(
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] DXGI_SWAP_CHAIN_DESC *desc
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT ResizeBuffers(
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] UINT buffer_count,
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] UINT width,
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] UINT height,
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] DXGI_FORMAT format,
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] UINT flags
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT ResizeTarget(
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] const DXGI_MODE_DESC *target_mode_desc
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetContainingOutput(
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] IDXGIOutput **output
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetFrameStatistics(
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] DXGI_FRAME_STATISTICS *stats
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetLastPresentCount(
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] UINT *last_present_count
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync[
af062818b47340eef15700d2f0211576ba3506eevboxsync object,
af062818b47340eef15700d2f0211576ba3506eevboxsync local,
af062818b47340eef15700d2f0211576ba3506eevboxsync uuid(7b7166ec-21c7-44ae-b21a-c9ae321ae369)
af062818b47340eef15700d2f0211576ba3506eevboxsync]
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IDXGIFactory : IDXGIObject
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT EnumAdapters(
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] UINT adapter_idx,
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] IDXGIAdapter **adapter
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT MakeWindowAssociation(
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] HWND window,
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] UINT flags
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetWindowAssociation(
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] HWND *window
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT CreateSwapChain(
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] IUnknown *device,
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] DXGI_SWAP_CHAIN_DESC *desc,
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] IDXGISwapChain **swapchain
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT CreateSoftwareAdapter(
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] HMODULE swrast,
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] IDXGIAdapter **adapter
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync[local] HRESULT CreateDXGIFactory(REFIID riid, void **factory);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync[
af062818b47340eef15700d2f0211576ba3506eevboxsync object,
af062818b47340eef15700d2f0211576ba3506eevboxsync local,
af062818b47340eef15700d2f0211576ba3506eevboxsync uuid(54ec77fa-1377-44e6-8c32-88fd5f44c84c)
af062818b47340eef15700d2f0211576ba3506eevboxsync]
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IDXGIDevice : IDXGIObject
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetAdapter(
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] IDXGIAdapter **adapter
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT CreateSurface(
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] const DXGI_SURFACE_DESC *desc,
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] UINT surface_count,
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] DXGI_USAGE usage,
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] const DXGI_SHARED_RESOURCE *shared_resource,
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] IDXGISurface **surface
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT QueryResourceResidency(
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] IUnknown *const *resources,
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] DXGI_RESIDENCY *residency,
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] UINT resource_count
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetGPUThreadPriority(
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] INT priority
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetGPUThreadPriority(
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] INT *priority
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync}