]> gitweb.factorcode.org Git - factor.git/blob - basis/windows/directx/dxgi/dxgi.factor
6537de885f52db8bd06bd2ec2278c0ca19eddcd8
[factor.git] / basis / windows / directx / dxgi / dxgi.factor
1 USING: alien.c-types alien.syntax classes.struct windows.com windows.com.syntax
2 windows.directx.dxgiformat windows.directx.dxgitype windows.kernel32
3 windows.ole32 windows.types ;
4 IN: windows.directx.dxgi
5
6 LIBRARY: dxgi
7
8 CONSTANT: DXGI_CPU_ACCESS_NONE 0
9 CONSTANT: DXGI_CPU_ACCESS_DYNAMIC 1
10 CONSTANT: DXGI_CPU_ACCESS_READ_WRITE 2
11 CONSTANT: DXGI_CPU_ACCESS_SCRATCH 3
12 CONSTANT: DXGI_CPU_ACCESS_FIELD 15
13 CONSTANT: DXGI_USAGE_SHADER_INPUT 16
14 CONSTANT: DXGI_USAGE_RENDER_TARGET_OUTPUT 32
15 CONSTANT: DXGI_USAGE_BACK_BUFFER 64
16 CONSTANT: DXGI_USAGE_SHARED 128
17 CONSTANT: DXGI_USAGE_READ_ONLY 256
18 CONSTANT: DXGI_USAGE_DISCARD_ON_PRESENT 512
19 CONSTANT: DXGI_USAGE_UNORDERED_ACCESS 1024
20 TYPEDEF: UINT DXGI_USAGE
21
22 STRUCT: DXGI_FRAME_STATISTICS
23 { PresentCount UINT }
24 { PresentRefreshCount UINT }
25 { SyncRefreshCount UINT }
26 { SyncQPCTime LARGE_INTEGER }
27 { SyncGPUTime LARGE_INTEGER } ;
28
29 STRUCT: DXGI_MAPPED_RECT
30 { Pitch INT }
31 { pBits BYTE* } ;
32
33 STRUCT: DXGI_ADAPTER_DESC
34 { Description WCHAR[128] }
35 { VendorId UINT }
36 { DeviceId UINT }
37 { SubSysId UINT }
38 { Revision UINT }
39 { DedicatedVideoMemory SIZE_T }
40 { DedicatedSystemMemory SIZE_T }
41 { SharedSystemMemory SIZE_T }
42 { AdapterLuid LUID } ;
43
44 STRUCT: DXGI_OUTPUT_DESC
45 { DeviceName WCHAR[32] }
46 { DesktopCoordinates RECT }
47 { AttachedToDesktop BOOL }
48 { Rotation DXGI_MODE_ROTATION }
49 { Monitor HMONITOR } ;
50
51 STRUCT: DXGI_SHARED_RESOURCE
52 { Handle HANDLE } ;
53
54 CONSTANT: DXGI_RESOURCE_PRIORITY_MINIMUM HEX: 28000000
55 CONSTANT: DXGI_RESOURCE_PRIORITY_LOW HEX: 50000000
56 CONSTANT: DXGI_RESOURCE_PRIORITY_NORMAL HEX: 78000000
57 CONSTANT: DXGI_RESOURCE_PRIORITY_HIGH HEX: a0000000
58 CONSTANT: DXGI_RESOURCE_PRIORITY_MAXIMUM HEX: c8000000
59
60 CONSTANT: DXGI_RESIDENCY_FULLY_RESIDENT 1
61 CONSTANT: DXGI_RESIDENCY_RESIDENT_IN_SHARED_MEMORY 2
62 CONSTANT: DXGI_RESIDENCY_EVICTED_TO_DISK 3
63 TYPEDEF: int DXGI_RESIDENCY
64
65 STRUCT: DXGI_SURFACE_DESC
66 { Width UINT }
67 { Height UINT }
68 { Format DXGI_FORMAT }
69 { SampleDesc DXGI_SAMPLE_DESC } ;
70
71 CONSTANT: DXGI_SWAP_EFFECT_DISCARD 0
72 CONSTANT: DXGI_SWAP_EFFECT_SEQUENTIAL 1
73 TYPEDEF: int DXGI_SWAP_EFFECT
74
75 CONSTANT: DXGI_SWAP_CHAIN_FLAG_NONPREROTATED 1
76 CONSTANT: DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH 2
77 CONSTANT: DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE 4
78 TYPEDEF: int DXGI_SWAP_CHAIN_FLAG
79
80 STRUCT: DXGI_SWAP_CHAIN_DESC
81 { BufferDesc DXGI_MODE_DESC }
82 { SampleDesc DXGI_SAMPLE_DESC }
83 { BufferUsage DXGI_USAGE }
84 { BufferCount UINT }
85 { OutputWindow HWND }
86 { Windowed BOOL }
87 { SwapEffect DXGI_SWAP_EFFECT }
88 { Flags UINT } ;
89
90 COM-INTERFACE: IDXGIObject IUnknown {aec22fb8-76f3-4639-9be0-28eb43a67a2e}
91 HRESULT SetPrivateData ( REFGUID Name, UINT DataSize, void* pData )
92 HRESULT SetPrivateDataInterface ( REFGUID Name, IUnknown* pUnknown )
93 HRESULT GetPrivateData ( REFGUID Name, UINT* pDataSize, void* pData )
94 HRESULT GetParent ( REFIID riid, void** ppParent ) ;
95
96 COM-INTERFACE: IDXGIDeviceSubObject IDXGIObject {3d3e0379-f9de-4d58-bb6c-18d62992f1a6}
97 HRESULT GetDevice ( REFIID riid, void** ppDevice ) ;
98
99 COM-INTERFACE: IDXGIResource IDXGIDeviceSubObject {035f3ab4-482e-4e50-b41f-8a7f8bd8960b}
100 HRESULT GetSharedHandle ( HANDLE* pSharedHandle )
101 HRESULT GetUsage ( DXGI_USAGE* pUsage )
102 HRESULT SetEvictionPriority ( UINT EvictionPriority )
103 HRESULT GetEvictionPriority ( UINT* pEvictionPriority ) ;
104
105 COM-INTERFACE: IDXGIKeyedMutex IDXGIDeviceSubObject {9d8e1289-d7b3-465f-8126-250e349af85d}
106 HRESULT AcquireSync ( UINT64 Key, DWORD dwMilliseconds )
107 HRESULT ReleaseSync ( UINT64 Key ) ;
108
109 CONSTANT: DXGI_MAP_READ 1
110 CONSTANT: DXGI_MAP_WRITE 2
111 CONSTANT: DXGI_MAP_DISCARD 4
112
113 COM-INTERFACE: IDXGISurface IDXGIDeviceSubObject {cafcb56c-6ac3-4889-bf47-9e23bbd260ec}
114 HRESULT GetDesc ( DXGI_SURFACE_DESC* pDesc )
115 HRESULT Map ( DXGI_MAPPED_RECT* pLockedRect, UINT MapFlags )
116 HRESULT Unmap ( ) ;
117
118 COM-INTERFACE: IDXGISurface1 IDXGISurface {4AE63092-6327-4c1b-80AE-BFE12EA32B86}
119 HRESULT GetDC ( BOOL Discard, HDC* phdc )
120 HRESULT ReleaseDC ( RECT* pDirtyRect ) ;
121
122 COM-INTERFACE: IDXGIAdapter IDXGIObject {2411e7e1-12ac-4ccf-bd14-9798e8534dc0}
123 HRESULT EnumOutputs ( UINT Output, IDXGIOutput** ppOutput )
124 HRESULT GetDesc ( DXGI_ADAPTER_DESC* pDesc )
125 HRESULT CheckInterfaceSupport ( REFGUID InterfaceName, LARGE_INTEGER* pUMDVersion ) ;
126
127 CONSTANT: DXGI_ENUM_MODES_INTERLACED 1
128 CONSTANT: DXGI_ENUM_MODES_SCALING 2
129
130 COM-INTERFACE: IDXGIOutput IDXGIObject {ae02eedb-c735-4690-8d52-5a8dc20213aa}
131 HRESULT GetDesc ( DXGI_OUTPUT_DESC* pDesc )
132 HRESULT GetDisplayModeList ( DXGI_FORMAT EnumFormat, UINT Flags, UINT* pNumModes, DXGI_MODE_DESC* pDesc )
133 HRESULT FindClosestMatchingMode ( DXGI_MODE_DESC* pModeToMatch, DXGI_MODE_DESC* pClosestMatch, IUnknown* pConcernedDevice )
134 HRESULT WaitForVBlank ( )
135 HRESULT TakeOwnership ( IUnknown* pDevice, BOOL Exclusive )
136 void ReleaseOwnership ( )
137 HRESULT GetGammaControlCapabilities ( DXGI_GAMMA_CONTROL_CAPABILITIES* pGammaCaps )
138 HRESULT SetGammaControl ( DXGI_GAMMA_CONTROL* pArray )
139 HRESULT GetGammaControl ( DXGI_GAMMA_CONTROL* pArray )
140 HRESULT SetDisplaySurface ( IDXGISurface* pScanoutSurface )
141 HRESULT GetDisplaySurfaceData ( IDXGISurface* pDestination )
142 HRESULT GetFrameStatistics ( DXGI_FRAME_STATISTICS* pStats ) ;
143
144 CONSTANT: DXGI_MAX_SWAP_CHAIN_BUFFERS 16
145 CONSTANT: DXGI_PRESENT_TEST 1
146 CONSTANT: DXGI_PRESENT_DO_NOT_SEQUENCE 2
147 CONSTANT: DXGI_PRESENT_RESTART 4
148
149 COM-INTERFACE: IDXGISwapChain IDXGIDeviceSubObject {310d36a0-d2e7-4c0a-aa04-6a9d23b8886a}
150 HRESULT Present ( UINT SyncInterval, UINT Flags )
151 HRESULT GetBuffer ( UINT Buffer, REFIID riid, void** ppSurface )
152 HRESULT SetFullscreenState ( BOOL Fullscreen, IDXGIOutput* pTarget )
153 HRESULT GetFullscreenState ( BOOL* pFullscreen, IDXGIOutput** ppTarget )
154 HRESULT GetDesc ( DXGI_SWAP_CHAIN_DESC* pDesc )
155 HRESULT ResizeBuffers ( UINT BufferCount, UINT Width, UINT Height, DXGI_FORMAT NewFormat, UINT SwapChainFlags )
156 HRESULT ResizeTarget ( DXGI_MODE_DESC* pNewTargetParameters )
157 HRESULT GetContainingOutput ( IDXGIOutput** ppOutput )
158 HRESULT GetFrameStatistics ( DXGI_FRAME_STATISTICS* pStats )
159 HRESULT GetLastPresentCount ( UINT* pLastPresentCount ) ;
160
161 CONSTANT: DXGI_MWA_NO_WINDOW_CHANGES 1
162 CONSTANT: DXGI_MWA_NO_ALT_ENTER 2
163 CONSTANT: DXGI_MWA_NO_PRINT_SCREEN 4
164 CONSTANT: DXGI_MWA_VALID 7
165
166 COM-INTERFACE: IDXGIFactory IDXGIObject {7b7166ec-21c7-44ae-b21a-c9ae321ae369}
167 HRESULT EnumAdapters ( UINT Adapter, IDXGIAdapter** ppAdapter )
168 HRESULT MakeWindowAssociation ( HWND WindowHandle, UINT Flags )
169 HRESULT GetWindowAssociation ( HWND* pWindowHandle )
170 HRESULT CreateSwapChain ( IUnknown* pDevice, DXGI_SWAP_CHAIN_DESC* pDesc, IDXGISwapChain** ppSwapChain )
171 HRESULT CreateSoftwareAdapter ( HMODULE Module, IDXGIAdapter** ppAdapter ) ;
172
173 FUNCTION: HRESULT CreateDXGIFactory ( REFIID riid, void** ppFactory ) ;
174 FUNCTION: HRESULT CreateDXGIFactory1 ( REFIID riid, void** ppFactory ) ;
175
176 COM-INTERFACE: IDXGIDevice IDXGIObject {54ec77fa-1377-44e6-8c32-88fd5f44c84c}
177 HRESULT GetAdapter ( IDXGIAdapter** pAdapter )
178 HRESULT CreateSurface ( DXGI_SURFACE_DESC* pDesc, UINT NumSurfaces, DXGI_USAGE Usage, DXGI_SHARED_RESOURCE* pSharedResource, IDXGISurface** ppSurface )
179 HRESULT QueryResourceResidency ( IUnknown** ppResources, DXGI_RESIDENCY* pResidencyStatus, UINT NumResources )
180 HRESULT SetGPUThreadPriority ( INT Priority )
181 HRESULT GetGPUThreadPriority ( INT* pPriority ) ;
182
183 CONSTANT: DXGI_ADAPTER_FLAG_NONE 0
184 CONSTANT: DXGI_ADAPTER_FLAG_REMOTE 1
185 CONSTANT: DXGI_ADAPTER_FLAG_FORCE_DWORD HEX: ffffffff
186 TYPEDEF: int DXGI_ADAPTER_FLAG
187
188 STRUCT: DXGI_ADAPTER_DESC1
189 { Description WCHAR[128] }
190 { VendorId UINT }
191 { DeviceId UINT }
192 { SubSysId UINT }
193 { Revision UINT }
194 { DedicatedVideoMemory SIZE_T }
195 { DedicatedSystemMemory SIZE_T }
196 { SharedSystemMemory SIZE_T }
197 { AdapterLuid LUID }
198 { Flags UINT } ;
199
200 STRUCT: DXGI_DISPLAY_COLOR_SPACE
201 { PrimaryCoordinates FLOAT[8][2] }
202 { WhitePoints FLOAT[16][2] } ;
203
204 COM-INTERFACE: IDXGIFactory1 IDXGIFactory {770aae78-f26f-4dba-a829-253c83d1b387}
205 HRESULT EnumAdapters1 ( UINT Adapter, IDXGIAdapter1** ppAdapter )
206 BOOL IsCurrent ( ) ;
207
208 COM-INTERFACE: IDXGIAdapter1 IDXGIAdapter {29038f61-3839-4626-91fd-086879011a05}
209 HRESULT GetDesc1 ( DXGI_ADAPTER_DESC1* pDesc ) ;
210
211 COM-INTERFACE: IDXGIDevice1 IDXGIDevice {77db970f-6276-48ba-ba28-070143b4392c}
212 HRESULT SetMaximumFrameLatency ( UINT MaxLatency )
213 HRESULT GetMaximumFrameLatency ( UINT* pMaxLatency ) ;