File Annotation

Not logged in
9b639cf2d6 2015-05-05        kinaba: /***********************************************************************\
9b639cf2d6 2015-05-05        kinaba: *                                 dxgi.d                                *
9b639cf2d6 2015-05-05        kinaba: *                                                                       *
9b639cf2d6 2015-05-05        kinaba: *                       Windows API header module                       *
9b639cf2d6 2015-05-05        kinaba: *                                                                       *
9b639cf2d6 2015-05-05        kinaba: *                       Placed into public domain                       *
9b639cf2d6 2015-05-05        kinaba: \***********************************************************************/
9b639cf2d6 2015-05-05        kinaba: module win32.directx.dxgi;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: private import win32.windows;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: private import win32.directx.dxgitype;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum {
9b639cf2d6 2015-05-05        kinaba: 	DXGI_CPU_ACCESS_NONE		=  0,
9b639cf2d6 2015-05-05        kinaba: 	DXGI_CPU_ACCESS_DYNAMIC		=  1,
9b639cf2d6 2015-05-05        kinaba: 	DXGI_CPU_ACCESS_READ_WRITE	=  2,
9b639cf2d6 2015-05-05        kinaba: 	DXGI_CPU_ACCESS_SCRATCH		=  3,
9b639cf2d6 2015-05-05        kinaba: 	DXGI_CPU_ACCESS_FIELD		= 15
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum {
9b639cf2d6 2015-05-05        kinaba: 	DXGI_USAGE_SHADER_INPUT			= 0b00_00010000,
9b639cf2d6 2015-05-05        kinaba: 	DXGI_USAGE_RENDER_TARGET_OUTPUT	= 0b00_00100000,
9b639cf2d6 2015-05-05        kinaba: 	DXGI_USAGE_BACK_BUFFER			= 0b00_01000000,
9b639cf2d6 2015-05-05        kinaba: 	DXGI_USAGE_SHARED				= 0b00_10000000,
9b639cf2d6 2015-05-05        kinaba: 	DXGI_USAGE_READ_ONLY			= 0b01_00000000,
9b639cf2d6 2015-05-05        kinaba: 	DXGI_USAGE_DISCARD_ON_PRESENT	= 0b10_00000000,
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: alias UINT DXGI_USAGE;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: struct DXGI_FRAME_STATISTICS {
9b639cf2d6 2015-05-05        kinaba: 	UINT PresentCount;
9b639cf2d6 2015-05-05        kinaba: 	UINT PresentRefreshCount;
9b639cf2d6 2015-05-05        kinaba: 	UINT SyncRefreshCount;
9b639cf2d6 2015-05-05        kinaba: 	LARGE_INTEGER SyncQPCTime;
9b639cf2d6 2015-05-05        kinaba: 	LARGE_INTEGER SyncGPUTime;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: struct DXGI_MAPPED_RECT {
9b639cf2d6 2015-05-05        kinaba: 	INT Pitch;
9b639cf2d6 2015-05-05        kinaba: 	BYTE* pBits;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: struct DXGI_ADAPTER_DESC {
9b639cf2d6 2015-05-05        kinaba: 	WCHAR[128] Description;
9b639cf2d6 2015-05-05        kinaba: 	UINT VendorId;
9b639cf2d6 2015-05-05        kinaba: 	UINT DeviceId;
9b639cf2d6 2015-05-05        kinaba: 	UINT SubSysId;
9b639cf2d6 2015-05-05        kinaba: 	UINT Revision;
9b639cf2d6 2015-05-05        kinaba: 	SIZE_T DedicatedVideoMemory;
9b639cf2d6 2015-05-05        kinaba: 	SIZE_T DedicatedSystemMemory;
9b639cf2d6 2015-05-05        kinaba: 	SIZE_T SharedSystemMemory;
9b639cf2d6 2015-05-05        kinaba: 	LUID AdapterLuid;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: struct DXGI_OUTPUT_DESC {
9b639cf2d6 2015-05-05        kinaba: 	WCHAR[32] DeviceName;
9b639cf2d6 2015-05-05        kinaba: 	RECT DesktopCoordinates;
9b639cf2d6 2015-05-05        kinaba: 	BOOL AttachedToDesktop;
9b639cf2d6 2015-05-05        kinaba: 	DXGI_MODE_ROTATION Rotation;
9b639cf2d6 2015-05-05        kinaba: 	HMONITOR Monitor;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: struct DXGI_SHARED_RESOURCE {
9b639cf2d6 2015-05-05        kinaba: 	HANDLE Handle;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum {
9b639cf2d6 2015-05-05        kinaba: 	DXGI_RESOURCE_PRIORITY_MINIMUM	= 0x28000000,
9b639cf2d6 2015-05-05        kinaba: 	DXGI_RESOURCE_PRIORITY_LOW		= 0x50000000,
9b639cf2d6 2015-05-05        kinaba: 	DXGI_RESOURCE_PRIORITY_NORMAL	= 0x78000000,
9b639cf2d6 2015-05-05        kinaba: 	DXGI_RESOURCE_PRIORITY_HIGH		= 0xa0000000,
9b639cf2d6 2015-05-05        kinaba: 	DXGI_RESOURCE_PRIORITY_MAXIMUM	= 0xc8000000
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum DXGI_RESIDENCY {
9b639cf2d6 2015-05-05        kinaba: 	DXGI_RESIDENCY_FULLY_RESIDENT				= 1,
9b639cf2d6 2015-05-05        kinaba: 	DXGI_RESIDENCY_RESIDENT_IN_SHARED_MEMORY	= 2,
9b639cf2d6 2015-05-05        kinaba: 	DXGI_RESIDENCY_EVICTED_TO_DISK				= 3
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: struct DXGI_SURFACE_DESC {
9b639cf2d6 2015-05-05        kinaba: 	UINT Width;
9b639cf2d6 2015-05-05        kinaba: 	UINT Height;
9b639cf2d6 2015-05-05        kinaba: 	DXGI_FORMAT Format;
9b639cf2d6 2015-05-05        kinaba: 	DXGI_SAMPLE_DESC SampleDesc;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum DXGI_SWAP_EFFECT {
9b639cf2d6 2015-05-05        kinaba: 	DXGI_SWAP_EFFECT_DISCARD	= 0,
9b639cf2d6 2015-05-05        kinaba: 	DXGI_SWAP_EFFECT_SEQUENTIAL	= 1
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum DXGI_SWAP_CHAIN_FLAG {
9b639cf2d6 2015-05-05        kinaba: 	DXGI_SWAP_CHAIN_FLAG_NONPREROTATED		= 1,
9b639cf2d6 2015-05-05        kinaba: 	DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH	= 2
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: struct DXGI_SWAP_CHAIN_DESC {
9b639cf2d6 2015-05-05        kinaba: 	DXGI_MODE_DESC BufferDesc;
9b639cf2d6 2015-05-05        kinaba: 	DXGI_SAMPLE_DESC SampleDesc;
9b639cf2d6 2015-05-05        kinaba: 	DXGI_USAGE BufferUsage;
9b639cf2d6 2015-05-05        kinaba: 	UINT BufferCount;
9b639cf2d6 2015-05-05        kinaba: 	HWND OutputWindow;
9b639cf2d6 2015-05-05        kinaba: 	BOOL Windowed;
9b639cf2d6 2015-05-05        kinaba: 	DXGI_SWAP_EFFECT SwapEffect;
9b639cf2d6 2015-05-05        kinaba: 	UINT Flags;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: interface IDXGIObject : IUnknown {
9b639cf2d6 2015-05-05        kinaba: 	extern(Windows) :
9b639cf2d6 2015-05-05        kinaba: 	HRESULT SetPrivateData(REFGUID Name, UINT DataSize, void* pData);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT SetPrivateDataInterface(REFGUID Name, IUnknown pUnknown);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT GetPrivateData(REFGUID Name, UINT* pDataSize, void* pData);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT GetParent(REFIID riid, void** ppParent);
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: interface IDXGIDeviceSubObject : IDXGIObject {
9b639cf2d6 2015-05-05        kinaba: 	extern(Windows) :
9b639cf2d6 2015-05-05        kinaba: 	HRESULT GetDevice(REFIID riid, void** ppDevice);
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: interface IDXGIResource : IDXGIDeviceSubObject {
9b639cf2d6 2015-05-05        kinaba: 	extern(Windows) :
9b639cf2d6 2015-05-05        kinaba: 	HRESULT GetSharedHandle(HANDLE* pSharedHandle);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT GetUsage(DXGI_USAGE* pUsage);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT SetEvictionPriority(UINT EvictionPriority);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT GetEvictionPriority(UINT* pEvictionPriority);
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: interface IDXGISurface : IDXGIDeviceSubObject {
9b639cf2d6 2015-05-05        kinaba: 	extern(Windows) :
9b639cf2d6 2015-05-05        kinaba: 	HRESULT GetDesc(DXGI_SURFACE_DESC* pDesc);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT Map(DXGI_MAPPED_RECT* pLockedRect, UINT MapFlags);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT Unmap();
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: interface IDXGIAdapter : IDXGIObject {
9b639cf2d6 2015-05-05        kinaba: 	extern(Windows) :
9b639cf2d6 2015-05-05        kinaba: 	HRESULT EnumOutputs(UINT Output, IDXGIOutput* ppOutput);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT GetDesc(DXGI_ADAPTER_DESC* pDesc);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT CheckInterfaceSupport(REFGUID InterfaceName, LARGE_INTEGER* pUMDVersion);
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: interface IDXGIOutput : IDXGIObject {
9b639cf2d6 2015-05-05        kinaba: 	extern(Windows) :
9b639cf2d6 2015-05-05        kinaba: 	HRESULT GetDesc(DXGI_OUTPUT_DESC* pDesc);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT GetDisplayModeList(DXGI_FORMAT EnumFormat, UINT Flags, UINT* pNumModes, DXGI_MODE_DESC* pDesc);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT FindClosestMatchingMode(DXGI_MODE_DESC* pModeToMatch, DXGI_MODE_DESC* pClosestMatch, IUnknown pConcernedDevice);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT WaitForVBlank();
9b639cf2d6 2015-05-05        kinaba: 	HRESULT TakeOwnership(IUnknown pDevice, BOOL Exclusive);
9b639cf2d6 2015-05-05        kinaba: 	void ReleaseOwnership();
9b639cf2d6 2015-05-05        kinaba: 	HRESULT GetGammaControlCapabilities(DXGI_GAMMA_CONTROL_CAPABILITIES* pGammaCaps);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT SetGammaControl(DXGI_GAMMA_CONTROL* pArray);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT GetGammaControl(DXGI_GAMMA_CONTROL* pArray);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT SetDisplaySurface(IDXGISurface pScanoutSurface);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT GetDisplaySurfaceData(IDXGISurface pDestination);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT GetFrameStatistics(DXGI_FRAME_STATISTICS* pStats);
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: const DXGI_MAX_SWAP_CHAIN_BUFFERS = 16;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum {
9b639cf2d6 2015-05-05        kinaba: 	DXGI_PRESENT_TEST				= 0x00000001,
9b639cf2d6 2015-05-05        kinaba: 	DXGI_PRESENT_DO_NOT_SEQUENCE	= 0x00000002,
9b639cf2d6 2015-05-05        kinaba: 	DXGI_PRESENT_RESTART			= 0x00000004
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: interface IDXGISwapChain : IDXGIDeviceSubObject {
9b639cf2d6 2015-05-05        kinaba: 	extern(Windows) :
9b639cf2d6 2015-05-05        kinaba: 	HRESULT Present(UINT SyncInterval, UINT Flags);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT GetBuffer(UINT Buffer, REFIID riid, void** ppSurface);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT SetFullscreenState(BOOL Fullscreen, IDXGIOutput pTarget);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT GetFullscreenState(BOOL* pFullscreen, IDXGIOutput* ppTarget);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT GetDesc(DXGI_SWAP_CHAIN_DESC* pDesc);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT ResizeBuffers(UINT BufferCount, UINT Width, UINT Height, DXGI_FORMAT NewFormat, UINT SwapChainFlags);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT ResizeTarget(DXGI_MODE_DESC* pNewTargetParameters);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT GetContainingOutput(IDXGIOutput* ppOutput);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT GetFrameStatistics(DXGI_FRAME_STATISTICS* pStats);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT GetLastPresentCount(UINT* pLastPresentCount);
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: interface IDXGIFactory : IDXGIObject {
9b639cf2d6 2015-05-05        kinaba: 	extern(Windows) :
9b639cf2d6 2015-05-05        kinaba: 	HRESULT EnumAdapters(UINT Adapter, IDXGIAdapter* ppAdapter);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT MakeWindowAssociation(HWND WindowHandle, UINT Flags);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT GetWindowAssociation(HWND* pWindowHandle);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT CreateSwapChain(IUnknown pDevice, DXGI_SWAP_CHAIN_DESC* pDesc, IDXGISwapChain* ppSwapChain);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT CreateSoftwareAdapter(HMODULE Module, IDXGIAdapter* ppAdapter);
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: interface IDXGIDevice : IDXGIObject {
9b639cf2d6 2015-05-05        kinaba: 	extern(Windows) :
9b639cf2d6 2015-05-05        kinaba: 	HRESULT GetAdapter(IDXGIAdapter* pAdapter);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT CreateSurface(DXGI_SURFACE_DESC* pDesc, UINT NumSurfaces, DXGI_USAGE Usage, DXGI_SHARED_RESOURCE* pSharedResource, IDXGISurface* ppSurface);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT QueryResourceResidency(IUnknown* ppResources, DXGI_RESIDENCY* pResidencyStatus, UINT NumResources);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT SetGPUThreadPriority(INT Priority);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT GetGPUThreadPriority(INT* pPriority);
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: extern(C) const GUID IID_IDXGIObject			= {0xaec22fb8, 0x76f3, 0x4639, [0x9b, 0xe0, 0x28, 0xeb, 0x43, 0xa6, 0x7a, 0x2e]};
9b639cf2d6 2015-05-05        kinaba: extern(C) const GUID IID_IDXGIDeviceSubObject	= {0x3d3e0379, 0xf9de, 0x4d58, [0xbb, 0x6c, 0x18, 0xd6, 0x29, 0x92, 0xf1, 0xa6]};
9b639cf2d6 2015-05-05        kinaba: extern(C) const GUID IID_IDXGIResource			= {0x035f3ab4, 0x482e, 0x4e50, [0xb4, 0x1f, 0x8a, 0x7f, 0x8b, 0xd8, 0x96, 0x0b]};
9b639cf2d6 2015-05-05        kinaba: extern(C) const GUID IID_IDXGISurface			= {0xcafcb56c, 0x6ac3, 0x4889, [0xbf, 0x47, 0x9e, 0x23, 0xbb, 0xd2, 0x60, 0xec]};
9b639cf2d6 2015-05-05        kinaba: extern(C) const GUID IID_IDXGIAdapter			= {0x2411e7e1, 0x12ac, 0x4ccf, [0xbd, 0x14, 0x97, 0x98, 0xe8, 0x53, 0x4d, 0xc0]};
9b639cf2d6 2015-05-05        kinaba: extern(C) const GUID IID_IDXGIOutput			= {0xae02eedb, 0xc735, 0x4690, [0x8d, 0x52, 0x5a, 0x8d, 0xc2, 0x02, 0x13, 0xaa]};
9b639cf2d6 2015-05-05        kinaba: extern(C) const GUID IID_IDXGISwapChain			= {0x310d36a0, 0xd2e7, 0x4c0a, [0xaa, 0x04, 0x6a, 0x9d, 0x23, 0xb8, 0x88, 0x6a]};
9b639cf2d6 2015-05-05        kinaba: extern(C) const GUID IID_IDXGIFactory			= {0x7b7166ec, 0x21c7, 0x44ae, [0xb2, 0x1a, 0xc9, 0xae, 0x32, 0x1a, 0xe3, 0x69]};
9b639cf2d6 2015-05-05        kinaba: extern(C) const GUID IID_IDXGIDevice			= {0x54ec77fa, 0x1377, 0x44e6, [0x8c, 0x32, 0x88, 0xfd, 0x5f, 0x44, 0xc8, 0x4c]};
9b639cf2d6 2015-05-05        kinaba: