UI: Set the Unix platform on startup

Move the OBS_USE_EGL environment variable check to obs-app.cpp,
and set the OBS platform to be either OBS_NIX_PLATFORM_X11_GLX
or OBS_NIX_PLATFORM_X11_EGL.
This commit is contained in:
Georges Basile Stavracas Neto 2020-04-07 23:17:02 -03:00
parent 506b950d02
commit 27d0182fdb
3 changed files with 12 additions and 4 deletions

View file

@ -1392,6 +1392,10 @@ bool OBSApp::OBSInit()
#if !defined(_WIN32) && !defined(__APPLE__)
obs_set_nix_platform(OBS_NIX_PLATFORM_X11_GLX);
if (QApplication::platformName() == "xcb") {
if (getenv("OBS_USE_EGL")) {
blog(LOG_INFO, "Using EGL/X11");
obs_set_nix_platform(OBS_NIX_PLATFORM_X11_EGL);
}
obs_set_nix_platform_display(QX11Info::display());
}
#endif

View file

@ -25,11 +25,13 @@ static void init_winsys(void)
{
assert(gl_vtable == NULL);
if (getenv("OBS_USE_EGL")) {
gl_vtable = gl_x11_egl_get_winsys_vtable();
blog(LOG_INFO, "Using EGL/X11");
} else {
switch (obs_get_nix_platform()) {
case OBS_NIX_PLATFORM_X11_GLX:
gl_vtable = gl_x11_glx_get_winsys_vtable();
break;
case OBS_NIX_PLATFORM_X11_EGL:
gl_vtable = gl_x11_egl_get_winsys_vtable();
break;
}
assert(gl_vtable != NULL);

View file

@ -17,6 +17,8 @@
#pragma once
#include <obs-nix-platform.h>
#include "gl-subsystem.h"
struct gl_winsys_vtable {