From 3a2677c502cfc65d64f37db6404b6512b2cbf4e1 Mon Sep 17 00:00:00 2001 From: jp9000 Date: Sun, 20 Jul 2014 17:49:54 -0700 Subject: [PATCH] If Direct3D doesn't initialize, try OpenGL --- obs/window-basic-main.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/obs/window-basic-main.cpp b/obs/window-basic-main.cpp index 6a0944680..669576963 100644 --- a/obs/window-basic-main.cpp +++ b/obs/window-basic-main.cpp @@ -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);