mirror of
https://github.com/CTCaer/RetroArch.git
synced 2024-12-22 10:49:02 +00:00
Create d3d_create_device
This commit is contained in:
parent
ff03f83994
commit
2a312e153f
@ -250,29 +250,9 @@ static bool d3d_init_base(void *data, const video_info_t *info)
|
||||
d3d->cur_mon_id = 0;
|
||||
#endif
|
||||
|
||||
if (FAILED(d3d->d3d_err = d3d->g_pD3D->CreateDevice(
|
||||
d3d->cur_mon_id,
|
||||
D3DDEVTYPE_HAL,
|
||||
win32_get_window(),
|
||||
D3DCREATE_HARDWARE_VERTEXPROCESSING,
|
||||
&d3dpp,
|
||||
&d3d->dev)))
|
||||
{
|
||||
RARCH_WARN("[D3D]: Failed to init device with hardware vertex processing (code: 0x%x). Trying to fall back to software vertex processing.\n",
|
||||
(unsigned)d3d->d3d_err);
|
||||
|
||||
if (FAILED(d3d->d3d_err = d3d->g_pD3D->CreateDevice(
|
||||
d3d->cur_mon_id,
|
||||
D3DDEVTYPE_HAL,
|
||||
win32_get_window(),
|
||||
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
|
||||
&d3dpp,
|
||||
&d3d->dev)))
|
||||
{
|
||||
RARCH_ERR("Failed to initialize device.\n");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (!d3d_create_device(d3d->cur_mon_id, &d3dpp, d3d->g_pD3D, &d3d->dev,
|
||||
win32_get_window()))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -32,6 +32,38 @@ static bool d3d_restore_device(LPDIRECT3DDEVICE dev)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool d3d_create_device(unsigned monitor_id, D3DPRESENT_PARAMETERS *d3dpp,
|
||||
LPDIRECT3D adapter, LPDIRECT3DDEVICE dev, HWND window)
|
||||
{
|
||||
HRESULT err;
|
||||
|
||||
if (FAILED(err = adapter->CreateDevice(
|
||||
monitor_id,
|
||||
D3DDEVTYPE_HAL,
|
||||
window,
|
||||
D3DCREATE_HARDWARE_VERTEXPROCESSING,
|
||||
d3dpp,
|
||||
dev)))
|
||||
{
|
||||
RARCH_WARN("[D3D]: Failed to init device with hardware vertex processing (code: 0x%x). Trying to fall back to software vertex processing.\n",
|
||||
(unsigned)err);
|
||||
|
||||
if (FAILED(err = adapter->CreateDevice(
|
||||
monitor_id,
|
||||
D3DDEVTYPE_HAL,
|
||||
window,
|
||||
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
|
||||
d3dpp,
|
||||
dev)))
|
||||
{
|
||||
RARCH_ERR("Failed to initialize device.\n");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool d3d_swap(void *data, LPDIRECT3DDEVICE dev)
|
||||
{
|
||||
if (!d3d_restore_device(dev))
|
||||
|
@ -112,6 +112,9 @@ void d3d_set_render_state(void *data, D3DRENDERSTATETYPE state, DWORD value);
|
||||
|
||||
bool d3d_reset(LPDIRECT3DDEVICE dev, D3DPRESENT_PARAMETERS *d3dpp);
|
||||
|
||||
bool d3d_create_device(unsigned monitor_id, D3DPRESENT_PARAMETERS *d3dpp,
|
||||
LPDIRECT3D adapter, LPDIRECT3DDEVICE dev, HWND window);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user