提交 3a2677c5 编写于 作者: J jp9000

If Direct3D doesn't initialize, try OpenGL

上级 86d634ee
......@@ -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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册