ReactOS 0.4.17-dev-934-g091855f
d3d10core_main.c File Reference
#include "wine/debug.h"
#include "initguid.h"
#include "d3d10.h"
Include dependency graph for d3d10core_main.c:

Go to the source code of this file.

Macros

#define COBJMACROS
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (d3d10core)
 
HRESULT WINAPI DXGID3D10CreateDevice (HMODULE d3d11, IDXGIFactory *factory, IDXGIAdapter *adapter, unsigned int flags, const D3D_FEATURE_LEVEL *feature_levels, unsigned int level_count, void **device)
 
HRESULT WINAPI D3D10CoreRegisterLayers (void)
 
HRESULT WINAPI D3D10CoreCreateDevice (IDXGIFactory *factory, IDXGIAdapter *adapter, unsigned int flags, D3D_FEATURE_LEVEL feature_level, ID3D10Device **device)
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 24 of file d3d10core_main.c.

Function Documentation

◆ D3D10CoreCreateDevice()

HRESULT WINAPI D3D10CoreCreateDevice ( IDXGIFactory *  factory,
IDXGIAdapter *  adapter,
unsigned int  flags,
D3D_FEATURE_LEVEL  feature_level,
ID3D10Device **  device 
)

Definition at line 39 of file d3d10core_main.c.

41{
43 HMODULE d3d11;
44 HRESULT hr;
45
46 TRACE("factory %p, adapter %p, flags %#x, feature_level %#x, device %p.\n",
47 factory, adapter, flags, feature_level, device);
48
49 d3d11 = LoadLibraryA("d3d11.dll");
50 hr = DXGID3D10CreateDevice(d3d11, factory, adapter, flags, &feature_level, 1, (void **)&dxgi_device);
51 FreeLibrary(d3d11);
52 if (FAILED(hr))
53 {
54 WARN("Failed to create device, hr %#lx.\n", hr);
55 return hr;
56 }
57
58 hr = IUnknown_QueryInterface(dxgi_device, &IID_ID3D10Device, (void **)device);
59 IUnknown_Release(dxgi_device);
60 if (FAILED(hr))
61 {
62 ERR("Failed to query ID3D10Device interface, returning E_FAIL.\n");
63 return E_FAIL;
64 }
65
66 return S_OK;
67}
#define WARN(fmt,...)
Definition: precomp.h:61
#define ERR(fmt,...)
Definition: precomp.h:57
HRESULT WINAPI DXGID3D10CreateDevice(HMODULE d3d11, IDXGIFactory *factory, IDXGIAdapter *adapter, unsigned int flags, const D3D_FEATURE_LEVEL *feature_levels, unsigned int level_count, void **device)
Definition: dxgi_main.c:135
#define E_FAIL
Definition: ddrawi.h:102
HRESULT hr
Definition: delayimp.cpp:582
#define FreeLibrary(x)
Definition: compat.h:748
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName)
Definition: loader.c:111
return adapter
GLbitfield flags
Definition: glext.h:7161
#define S_OK
Definition: intsafe.h:52
#define FAILED(hr)
Definition: intsafe.h:51
#define TRACE(s)
Definition: solgame.cpp:4
Definition: devices.h:37
Definition: main.c:439

Referenced by d3d10_create_device(), and d3d10_create_device1().

◆ D3D10CoreRegisterLayers()

HRESULT WINAPI D3D10CoreRegisterLayers ( void  )

Definition at line 32 of file d3d10core_main.c.

33{
34 TRACE("\n");
35
36 return E_NOTIMPL;
37}
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ DXGID3D10CreateDevice()

HRESULT WINAPI DXGID3D10CreateDevice ( HMODULE  d3d11,
IDXGIFactory *  factory,
IDXGIAdapter *  adapter,
unsigned int  flags,
const D3D_FEATURE_LEVEL *  feature_levels,
unsigned int  level_count,
void **  device 
)

Definition at line 135 of file dxgi_main.c.

137{
138 struct layer_get_size_args get_size_args;
139 struct dxgi_device_layer d3d10_layer;
140 struct dxgi_device *dxgi_device;
141 UINT device_size;
142 DWORD count;
143 HRESULT hr;
144
145 TRACE("d3d10core %p, factory %p, adapter %p, flags %#x, feature_levels %p, level_count %u, device %p.\n",
146 d3d10core, factory, adapter, flags, feature_levels, level_count, device);
147
148 if (flags)
149 FIXME("Ignoring flags %#x.\n", flags);
150
151 if (TRACE_ON(dxgi))
153
154 hr = register_d3d10core_layers(d3d10core);
155 if (FAILED(hr))
156 {
157 ERR("Failed to register d3d10core layers, returning %#lx.\n", hr);
158 return hr;
159 }
160
161 if (!get_layer(DXGI_DEVICE_LAYER_D3D10_DEVICE, &d3d10_layer))
162 {
163 ERR("Failed to get D3D10 device layer.\n");
164 return E_FAIL;
165 }
166
167 count = 0;
168 hr = d3d10_layer.init(d3d10_layer.id, &count, NULL);
169 if (FAILED(hr))
170 {
171 WARN("Failed to initialize D3D10 device layer.\n");
172 return E_FAIL;
173 }
174
175 get_size_args.unknown0 = 0;
176 get_size_args.unknown1 = 0;
177 get_size_args.unknown2 = NULL;
178 get_size_args.unknown3 = NULL;
179 get_size_args.adapter = adapter;
180 get_size_args.interface_major = 10;
181 get_size_args.interface_minor = 1;
182 get_size_args.version_build = 4;
183 get_size_args.version_revision = 6000;
184
185 device_size = d3d10_layer.get_size(d3d10_layer.id, &get_size_args, 0);
186 device_size += sizeof(*dxgi_device);
187
188 if (!(dxgi_device = calloc(1, device_size)))
189 {
190 ERR("Failed to allocate device memory.\n");
191 return E_OUTOFMEMORY;
192 }
193
194 hr = dxgi_device_init(dxgi_device, &d3d10_layer, factory, adapter, feature_levels, level_count);
195 if (FAILED(hr))
196 {
197 WARN("Failed to initialize device, hr %#lx.\n", hr);
199 *device = NULL;
200 return hr;
201 }
202
203 TRACE("Created device %p.\n", dxgi_device);
205
206 return S_OK;
207}
#define FIXME(fmt,...)
Definition: precomp.h:53
@ DXGI_DEVICE_LAYER_D3D10_DEVICE
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define free
Definition: debug_ros.c:5
#define NULL
Definition: types.h:112
HRESULT dxgi_device_init(struct dxgi_device *device, struct dxgi_device_layer *layer, IDXGIFactory *factory, IDXGIAdapter *adapter, const D3D_FEATURE_LEVEL *feature_levels, unsigned int level_count)
Definition: device.c:486
#define TRACE_ON(x)
Definition: compat.h:75
static HRESULT register_d3d10core_layers(HMODULE d3d10core)
Definition: dxgi_main.c:100
static BOOL get_layer(enum dxgi_device_layer_id id, struct dxgi_device_layer *layer)
Definition: dxgi_main.c:80
void dump_feature_levels(const D3D_FEATURE_LEVEL *feature_levels, unsigned int level_count)
Definition: utils.c:410
unsigned long DWORD
Definition: ntddk_ex.h:95
GLuint GLuint GLsizei count
Definition: gl.h:1545
unsigned int UINT
Definition: sysinfo.c:13
static D3D_DRIVER_TYPE HMODULE UINT const D3D_FEATURE_LEVEL * feature_levels
Definition: hlsl_d3d11.c:28
#define calloc
Definition: rosglue.h:14
IWineDXGIDevice IWineDXGIDevice_iface
Definition: dxgi_private.h:129

Referenced by D3D10CoreCreateDevice(), and D3D11CoreCreateDevice().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( d3d10core  )