ReactOS 0.4.17-dev-970-gcf0f1a6
d3d10misc.h File Reference
#include "d3d10.h"
Include dependency graph for d3d10misc.h:

Go to the source code of this file.

Typedefs

typedef enum D3D10_DRIVER_TYPE D3D10_DRIVER_TYPE
 

Enumerations

enum  D3D10_DRIVER_TYPE {
  D3D10_DRIVER_TYPE_HARDWARE = 0 , D3D10_DRIVER_TYPE_REFERENCE = 1 , D3D10_DRIVER_TYPE_NULL = 2 , D3D10_DRIVER_TYPE_SOFTWARE = 3 ,
  D3D10_DRIVER_TYPE_WARP = 5
}
 

Functions

HRESULT WINAPI D3D10CreateDevice (IDXGIAdapter *adapter, D3D10_DRIVER_TYPE driver_type, HMODULE swrast, UINT flags, UINT sdk_version, ID3D10Device **device)
 
HRESULT WINAPI D3D10CreateDeviceAndSwapChain (IDXGIAdapter *adapter, D3D10_DRIVER_TYPE driver_type, HMODULE swrast, UINT flags, UINT sdk_version, DXGI_SWAP_CHAIN_DESC *swapchain_desc, IDXGISwapChain **swapchain, ID3D10Device **device)
 
HRESULT WINAPI D3D10CreateBlob (SIZE_T data_size, ID3D10Blob **blob)
 

Typedef Documentation

◆ D3D10_DRIVER_TYPE

Enumeration Type Documentation

◆ D3D10_DRIVER_TYPE

Enumerator
D3D10_DRIVER_TYPE_HARDWARE 
D3D10_DRIVER_TYPE_REFERENCE 
D3D10_DRIVER_TYPE_NULL 
D3D10_DRIVER_TYPE_SOFTWARE 
D3D10_DRIVER_TYPE_WARP 

Definition at line 28 of file d3d10misc.h.

28 {
D3D10_DRIVER_TYPE
Definition: d3d10misc.h:28
@ D3D10_DRIVER_TYPE_SOFTWARE
Definition: d3d10misc.h:32
@ D3D10_DRIVER_TYPE_REFERENCE
Definition: d3d10misc.h:30
@ D3D10_DRIVER_TYPE_NULL
Definition: d3d10misc.h:31
@ D3D10_DRIVER_TYPE_HARDWARE
Definition: d3d10misc.h:29
@ D3D10_DRIVER_TYPE_WARP
Definition: d3d10misc.h:33

Function Documentation

◆ D3D10CreateBlob()

HRESULT WINAPI D3D10CreateBlob ( SIZE_T  data_size,
ID3D10Blob **  blob 
)

◆ D3D10CreateDevice()

HRESULT WINAPI D3D10CreateDevice ( IDXGIAdapter *  adapter,
D3D10_DRIVER_TYPE  driver_type,
HMODULE  swrast,
UINT  flags,
UINT  sdk_version,
ID3D10Device **  device 
)

Definition at line 158 of file d3d10_main.c.

160{
162}
static HRESULT d3d10_create_device(IDXGIAdapter *adapter, D3D10_DRIVER_TYPE driver_type, HMODULE swrast, UINT flags, UINT sdk_version, ID3D10Device **device)
Definition: d3d10_main.c:46
return adapter
GLbitfield flags
Definition: glext.h:7161
static D3D_DRIVER_TYPE HMODULE UINT const D3D_FEATURE_LEVEL UINT UINT sdk_version
Definition: hlsl_d3d11.c:29
static D3D_DRIVER_TYPE driver_type
Definition: hlsl_d3d11.c:27
static D3D_DRIVER_TYPE HMODULE swrast
Definition: hlsl_d3d11.c:28
Definition: devices.h:37

◆ D3D10CreateDeviceAndSwapChain()

HRESULT WINAPI D3D10CreateDeviceAndSwapChain ( IDXGIAdapter *  adapter,
D3D10_DRIVER_TYPE  driver_type,
HMODULE  swrast,
UINT  flags,
UINT  sdk_version,
DXGI_SWAP_CHAIN_DESC *  swapchain_desc,
IDXGISwapChain **  swapchain,
ID3D10Device **  device 
)

Definition at line 164 of file d3d10_main.c.

167{
168 IDXGIDevice *dxgi_device;
170 HRESULT hr;
171
172 TRACE("adapter %p, driver_type %s, swrast %p, flags %#x, sdk_version %d, "
173 "swapchain_desc %p, swapchain %p, device %p\n",
175 swapchain_desc, swapchain, device);
176
177 /* Avoid forwarding to D3D10CreateDevice(), since it breaks applications
178 * hooking these entry-points. */
180 {
181 WARN("Failed to create a device, returning %#lx.\n", hr);
182 *device = NULL;
183 return hr;
184 }
185
186 TRACE("Created ID3D10Device %p\n", *device);
187
188 hr = ID3D10Device_QueryInterface(*device, &IID_IDXGIDevice, (void **)&dxgi_device);
189 if (FAILED(hr))
190 {
191 ERR("Failed to get a dxgi device from the d3d10 device, returning %#lx.\n", hr);
192 ID3D10Device_Release(*device);
193 *device = NULL;
194 return hr;
195 }
196
197 hr = IDXGIDevice_GetAdapter(dxgi_device, &adapter);
198 IDXGIDevice_Release(dxgi_device);
199 if (FAILED(hr))
200 {
201 ERR("Failed to get the device adapter, returning %#lx.\n", hr);
202 ID3D10Device_Release(*device);
203 *device = NULL;
204 return hr;
205 }
206
207 hr = IDXGIAdapter_GetParent(adapter, &IID_IDXGIFactory, (void **)&factory);
208 IDXGIAdapter_Release(adapter);
209 if (FAILED(hr))
210 {
211 ERR("Failed to get the adapter factory, returning %#lx.\n", hr);
212 ID3D10Device_Release(*device);
213 *device = NULL;
214 return hr;
215 }
216
217 hr = IDXGIFactory_CreateSwapChain(factory, (IUnknown *)*device, swapchain_desc, swapchain);
218 IDXGIFactory_Release(factory);
219 if (FAILED(hr))
220 {
221 ID3D10Device_Release(*device);
222 *device = NULL;
223
224 WARN("Failed to create a swapchain, returning %#lx.\n", hr);
225 return hr;
226 }
227
228 TRACE("Created IDXGISwapChain %p\n", *swapchain);
229
230 return S_OK;
231}
#define WARN(fmt,...)
Definition: precomp.h:61
#define ERR(fmt,...)
Definition: precomp.h:57
static const char * debug_d3d10_driver_type(D3D10_DRIVER_TYPE driver_type)
Definition: d3d10_main.c:29
HRESULT hr
Definition: delayimp.cpp:582
#define NULL
Definition: types.h:112
#define S_OK
Definition: intsafe.h:52
#define FAILED(hr)
Definition: intsafe.h:51
#define TRACE(s)
Definition: solgame.cpp:4
Definition: main.c:439