mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-07-19 17:49:14 +00:00
If Direct3D doesn't initialize, try OpenGL
This commit is contained in:
parent
86d634eeab
commit
3a2677c502
|
@ -1196,6 +1196,12 @@ void OBSBasic::SetService(obs_service_t newService)
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
#define IS_WIN32 1
|
||||
#else
|
||||
#define IS_WIN32 0
|
||||
#endif
|
||||
|
||||
static inline int AttemptToResetVideo(struct obs_video_info *ovi)
|
||||
{
|
||||
int ret = obs_reset_video(ovi);
|
||||
|
@ -1247,6 +1253,14 @@ int OBSBasic::ResetVideo()
|
|||
ovi.window_height = size.height();
|
||||
|
||||
ret = AttemptToResetVideo(&ovi);
|
||||
if (IS_WIN32 && ret != OBS_VIDEO_SUCCESS) {
|
||||
/* Try OpenGL if DirectX fails on windows */
|
||||
if (astrcmpi(ovi.graphics_module, "libobs-opengl") != 0) {
|
||||
ovi.graphics_module = "libobs-opengl";
|
||||
ret = AttemptToResetVideo(&ovi);
|
||||
}
|
||||
}
|
||||
|
||||
if (ret == OBS_VIDEO_SUCCESS)
|
||||
obs_add_draw_callback(OBSBasic::RenderMain, this);
|
||||
|
||||
|
|
Loading…
Reference in a new issue