factor/basis/windows/directx/dxgi/dxgi.factor

215 lines
8.0 KiB
Factor

USING: alien.c-types alien.syntax classes.struct windows.com windows.com.syntax
windows.directx.dxgiformat windows.directx.dxgitype windows.kernel32
windows.ole32 windows.types windows.directx ;
IN: windows.directx.dxgi
LIBRARY: dxgi
CONSTANT: DXGI_CPU_ACCESS_NONE 0
CONSTANT: DXGI_CPU_ACCESS_DYNAMIC 1
CONSTANT: DXGI_CPU_ACCESS_READ_WRITE 2
CONSTANT: DXGI_CPU_ACCESS_SCRATCH 3
CONSTANT: DXGI_CPU_ACCESS_FIELD 15
CONSTANT: DXGI_USAGE_SHADER_INPUT 16
CONSTANT: DXGI_USAGE_RENDER_TARGET_OUTPUT 32
CONSTANT: DXGI_USAGE_BACK_BUFFER 64
CONSTANT: DXGI_USAGE_SHARED 128
CONSTANT: DXGI_USAGE_READ_ONLY 256
CONSTANT: DXGI_USAGE_DISCARD_ON_PRESENT 512
CONSTANT: DXGI_USAGE_UNORDERED_ACCESS 1024
TYPEDEF: UINT DXGI_USAGE
STRUCT: DXGI_FRAME_STATISTICS
{ PresentCount UINT }
{ PresentRefreshCount UINT }
{ SyncRefreshCount UINT }
{ SyncQPCTime LARGE_INTEGER }
{ SyncGPUTime LARGE_INTEGER } ;
STRUCT: DXGI_MAPPED_RECT
{ Pitch INT }
{ pBits BYTE* } ;
STRUCT: DXGI_ADAPTER_DESC
{ Description WCHAR[128] }
{ VendorId UINT }
{ DeviceId UINT }
{ SubSysId UINT }
{ Revision UINT }
{ DedicatedVideoMemory SIZE_T }
{ DedicatedSystemMemory SIZE_T }
{ SharedSystemMemory SIZE_T }
{ AdapterLuid LUID } ;
STRUCT: DXGI_OUTPUT_DESC
{ DeviceName WCHAR[32] }
{ DesktopCoordinates RECT }
{ AttachedToDesktop BOOL }
{ Rotation DXGI_MODE_ROTATION }
{ Monitor HMONITOR } ;
STRUCT: DXGI_SHARED_RESOURCE
{ Handle HANDLE } ;
CONSTANT: DXGI_RESOURCE_PRIORITY_MINIMUM 0x28000000
CONSTANT: DXGI_RESOURCE_PRIORITY_LOW 0x50000000
CONSTANT: DXGI_RESOURCE_PRIORITY_NORMAL 0x78000000
CONSTANT: DXGI_RESOURCE_PRIORITY_HIGH 0xa0000000
CONSTANT: DXGI_RESOURCE_PRIORITY_MAXIMUM 0xc8000000
CONSTANT: DXGI_RESIDENCY_FULLY_RESIDENT 1
CONSTANT: DXGI_RESIDENCY_RESIDENT_IN_SHARED_MEMORY 2
CONSTANT: DXGI_RESIDENCY_EVICTED_TO_DISK 3
TYPEDEF: int DXGI_RESIDENCY
STRUCT: DXGI_SURFACE_DESC
{ Width UINT }
{ Height UINT }
{ Format DXGI_FORMAT }
{ SampleDesc DXGI_SAMPLE_DESC } ;
CONSTANT: DXGI_SWAP_EFFECT_DISCARD 0
CONSTANT: DXGI_SWAP_EFFECT_SEQUENTIAL 1
TYPEDEF: int DXGI_SWAP_EFFECT
CONSTANT: DXGI_SWAP_CHAIN_FLAG_NONPREROTATED 1
CONSTANT: DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH 2
CONSTANT: DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE 4
TYPEDEF: int DXGI_SWAP_CHAIN_FLAG
STRUCT: DXGI_SWAP_CHAIN_DESC
{ BufferDesc DXGI_MODE_DESC }
{ SampleDesc DXGI_SAMPLE_DESC }
{ BufferUsage DXGI_USAGE }
{ BufferCount UINT }
{ OutputWindow HWND }
{ Windowed BOOL }
{ SwapEffect DXGI_SWAP_EFFECT }
{ Flags UINT } ;
COM-INTERFACE: IDXGIObject IUnknown {aec22fb8-76f3-4639-9be0-28eb43a67a2e}
HRESULT SetPrivateData ( REFGUID Name, UINT DataSize, void* pData )
HRESULT SetPrivateDataInterface ( REFGUID Name, IUnknown* pUnknown )
HRESULT GetPrivateData ( REFGUID Name, UINT* pDataSize, void* pData )
HRESULT GetParent ( REFIID riid, void** ppParent ) ;
COM-INTERFACE: IDXGIDeviceSubObject IDXGIObject {3d3e0379-f9de-4d58-bb6c-18d62992f1a6}
HRESULT GetDevice ( REFIID riid, void** ppDevice ) ;
COM-INTERFACE: IDXGIResource IDXGIDeviceSubObject {035f3ab4-482e-4e50-b41f-8a7f8bd8960b}
HRESULT GetSharedHandle ( HANDLE* pSharedHandle )
HRESULT GetUsage ( DXGI_USAGE* pUsage )
HRESULT SetEvictionPriority ( UINT EvictionPriority )
HRESULT GetEvictionPriority ( UINT* pEvictionPriority ) ;
COM-INTERFACE: IDXGIKeyedMutex IDXGIDeviceSubObject {9d8e1289-d7b3-465f-8126-250e349af85d}
HRESULT AcquireSync ( UINT64 Key, DWORD dwMilliseconds )
HRESULT ReleaseSync ( UINT64 Key ) ;
CONSTANT: DXGI_MAP_READ 1
CONSTANT: DXGI_MAP_WRITE 2
CONSTANT: DXGI_MAP_DISCARD 4
COM-INTERFACE: IDXGISurface IDXGIDeviceSubObject {cafcb56c-6ac3-4889-bf47-9e23bbd260ec}
HRESULT GetDesc ( DXGI_SURFACE_DESC* pDesc )
HRESULT Map ( DXGI_MAPPED_RECT* pLockedRect, UINT MapFlags )
HRESULT Unmap ( ) ;
COM-INTERFACE: IDXGISurface1 IDXGISurface {4AE63092-6327-4c1b-80AE-BFE12EA32B86}
HRESULT GetDC ( BOOL Discard, HDC* phdc )
HRESULT ReleaseDC ( RECT* pDirtyRect ) ;
C-TYPE: IDXGIOutput
COM-INTERFACE: IDXGIAdapter IDXGIObject {2411e7e1-12ac-4ccf-bd14-9798e8534dc0}
HRESULT EnumOutputs ( UINT Output, IDXGIOutput** ppOutput )
HRESULT GetDesc ( DXGI_ADAPTER_DESC* pDesc )
HRESULT CheckInterfaceSupport ( REFGUID InterfaceName, LARGE_INTEGER* pUMDVersion ) ;
CONSTANT: DXGI_ENUM_MODES_INTERLACED 1
CONSTANT: DXGI_ENUM_MODES_SCALING 2
COM-INTERFACE: IDXGIOutput IDXGIObject {ae02eedb-c735-4690-8d52-5a8dc20213aa}
HRESULT GetDesc ( DXGI_OUTPUT_DESC* pDesc )
HRESULT GetDisplayModeList ( DXGI_FORMAT EnumFormat, UINT Flags, UINT* pNumModes, DXGI_MODE_DESC* pDesc )
HRESULT FindClosestMatchingMode ( DXGI_MODE_DESC* pModeToMatch, DXGI_MODE_DESC* pClosestMatch, IUnknown* pConcernedDevice )
HRESULT WaitForVBlank ( )
HRESULT TakeOwnership ( IUnknown* pDevice, BOOL Exclusive )
void ReleaseOwnership ( )
HRESULT GetGammaControlCapabilities ( DXGI_GAMMA_CONTROL_CAPABILITIES* pGammaCaps )
HRESULT SetGammaControl ( DXGI_GAMMA_CONTROL* pArray )
HRESULT GetGammaControl ( DXGI_GAMMA_CONTROL* pArray )
HRESULT SetDisplaySurface ( IDXGISurface* pScanoutSurface )
HRESULT GetDisplaySurfaceData ( IDXGISurface* pDestination )
HRESULT GetFrameStatistics ( DXGI_FRAME_STATISTICS* pStats ) ;
CONSTANT: DXGI_MAX_SWAP_CHAIN_BUFFERS 16
CONSTANT: DXGI_PRESENT_TEST 1
CONSTANT: DXGI_PRESENT_DO_NOT_SEQUENCE 2
CONSTANT: DXGI_PRESENT_RESTART 4
COM-INTERFACE: IDXGISwapChain IDXGIDeviceSubObject {310d36a0-d2e7-4c0a-aa04-6a9d23b8886a}
HRESULT Present ( UINT SyncInterval, UINT Flags )
HRESULT GetBuffer ( UINT Buffer, REFIID riid, void** ppSurface )
HRESULT SetFullscreenState ( BOOL Fullscreen, IDXGIOutput* pTarget )
HRESULT GetFullscreenState ( BOOL* pFullscreen, IDXGIOutput** ppTarget )
HRESULT GetDesc ( DXGI_SWAP_CHAIN_DESC* pDesc )
HRESULT ResizeBuffers ( UINT BufferCount, UINT Width, UINT Height, DXGI_FORMAT NewFormat, UINT SwapChainFlags )
HRESULT ResizeTarget ( DXGI_MODE_DESC* pNewTargetParameters )
HRESULT GetContainingOutput ( IDXGIOutput** ppOutput )
HRESULT GetFrameStatistics ( DXGI_FRAME_STATISTICS* pStats )
HRESULT GetLastPresentCount ( UINT* pLastPresentCount ) ;
CONSTANT: DXGI_MWA_NO_WINDOW_CHANGES 1
CONSTANT: DXGI_MWA_NO_ALT_ENTER 2
CONSTANT: DXGI_MWA_NO_PRINT_SCREEN 4
CONSTANT: DXGI_MWA_VALID 7
COM-INTERFACE: IDXGIFactory IDXGIObject {7b7166ec-21c7-44ae-b21a-c9ae321ae369}
HRESULT EnumAdapters ( UINT Adapter, IDXGIAdapter** ppAdapter )
HRESULT MakeWindowAssociation ( HWND WindowHandle, UINT Flags )
HRESULT GetWindowAssociation ( HWND* pWindowHandle )
HRESULT CreateSwapChain ( IUnknown* pDevice, DXGI_SWAP_CHAIN_DESC* pDesc, IDXGISwapChain** ppSwapChain )
HRESULT CreateSoftwareAdapter ( HMODULE Module, IDXGIAdapter** ppAdapter ) ;
FUNCTION: HRESULT CreateDXGIFactory ( REFIID riid, void** ppFactory ) ;
FUNCTION: HRESULT CreateDXGIFactory1 ( REFIID riid, void** ppFactory ) ;
COM-INTERFACE: IDXGIDevice IDXGIObject {54ec77fa-1377-44e6-8c32-88fd5f44c84c}
HRESULT GetAdapter ( IDXGIAdapter** pAdapter )
HRESULT CreateSurface ( DXGI_SURFACE_DESC* pDesc, UINT NumSurfaces, DXGI_USAGE Usage, DXGI_SHARED_RESOURCE* pSharedResource, IDXGISurface** ppSurface )
HRESULT QueryResourceResidency ( IUnknown** ppResources, DXGI_RESIDENCY* pResidencyStatus, UINT NumResources )
HRESULT SetGPUThreadPriority ( INT Priority )
HRESULT GetGPUThreadPriority ( INT* pPriority ) ;
CONSTANT: DXGI_ADAPTER_FLAG_NONE 0
CONSTANT: DXGI_ADAPTER_FLAG_REMOTE 1
CONSTANT: DXGI_ADAPTER_FLAG_FORCE_DWORD 0xffffffff
TYPEDEF: int DXGI_ADAPTER_FLAG
STRUCT: DXGI_ADAPTER_DESC1
{ Description WCHAR[128] }
{ VendorId UINT }
{ DeviceId UINT }
{ SubSysId UINT }
{ Revision UINT }
{ DedicatedVideoMemory SIZE_T }
{ DedicatedSystemMemory SIZE_T }
{ SharedSystemMemory SIZE_T }
{ AdapterLuid LUID }
{ Flags UINT } ;
STRUCT: DXGI_DISPLAY_COLOR_SPACE
{ PrimaryCoordinates FLOAT[8][2] }
{ WhitePoints FLOAT[16][2] } ;
COM-INTERFACE: IDXGIAdapter1 IDXGIAdapter {29038f61-3839-4626-91fd-086879011a05}
HRESULT GetDesc1 ( DXGI_ADAPTER_DESC1* pDesc ) ;
COM-INTERFACE: IDXGIFactory1 IDXGIFactory {770aae78-f26f-4dba-a829-253c83d1b387}
HRESULT EnumAdapters1 ( UINT Adapter, IDXGIAdapter1** ppAdapter )
BOOL IsCurrent ( ) ;
COM-INTERFACE: IDXGIDevice1 IDXGIDevice {77db970f-6276-48ba-ba28-070143b4392c}
HRESULT SetMaximumFrameLatency ( UINT MaxLatency )
HRESULT GetMaximumFrameLatency ( UINT* pMaxLatency ) ;