If Direct3D doesn't initialize, try OpenGL

This commit is contained in:
jp9000 2014-07-20 17:49:54 -07:00
parent 86d634eeab
commit 3a2677c502

View file

@ -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);