mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-10-02 16:08:30 +00:00
Make rpi video cross-compiler friendly.
* Stops using fixed path to find GLES/EGL libs. * Tries pkg-config to locate bcm_host. Signed-off-by: Guillermo A. Amaral <g@maral.me>
This commit is contained in:
@@ -44,12 +44,13 @@
|
||||
|
||||
#if SDL_VIDEO_DRIVER_RPI
|
||||
/* Raspbian places the OpenGL ES/EGL binaries in a non standard path */
|
||||
#define DEFAULT_EGL ( vc4 ? "libEGL.so.1" : "/opt/vc/lib/libbrcmEGL.so" )
|
||||
#define DEFAULT_OGL_ES2 ( vc4 ? "libGLESv2.so.2" : "/opt/vc/lib/libbrcmGLESv2.so" )
|
||||
#define ALT_EGL "/opt/vc/lib/libEGL.so"
|
||||
#define ALT_OGL_ES2 "/opt/vc/lib/libGLESv2.so"
|
||||
#define DEFAULT_OGL_ES_PVR ( vc4 ? "libGLES_CM.so.1" : "/opt/vc/lib/libbrcmGLESv2.so" )
|
||||
#define DEFAULT_OGL_ES ( vc4 ? "libGLESv1_CM.so.1" : "/opt/vc/lib/libbrcmGLESv2.so" )
|
||||
static const char g_rpi_opt_path[] = "/opt/vc/lib";
|
||||
#define DEFAULT_EGL ( vc4 ? "libEGL.so.1" : "libbrcmEGL.so" )
|
||||
#define DEFAULT_OGL_ES2 ( vc4 ? "libGLESv2.so.2" : "libbrcmGLESv2.so" )
|
||||
#define ALT_EGL "libEGL.so"
|
||||
#define ALT_OGL_ES2 "libGLESv2.so"
|
||||
#define DEFAULT_OGL_ES_PVR ( vc4 ? "libGLES_CM.so.1" : "libbrcmGLESv2.so" )
|
||||
#define DEFAULT_OGL_ES ( vc4 ? "libGLESv1_CM.so.1" : "libbrcmGLESv2.so" )
|
||||
|
||||
#elif SDL_VIDEO_DRIVER_ANDROID || SDL_VIDEO_DRIVER_VIVANTE
|
||||
/* Android */
|
||||
@@ -265,6 +266,20 @@ SDL_EGL_LoadLibrary(_THIS, const char *egl_path, NativeDisplayType native_displa
|
||||
#endif
|
||||
#if SDL_VIDEO_DRIVER_RPI
|
||||
SDL_bool vc4 = (0 == access("/sys/module/vc4/", F_OK));
|
||||
|
||||
path = SDL_getenv("LD_LIBRARY_PATH");
|
||||
if (path) {
|
||||
const int path_size = SDL_strlen(path) + 1 + sizeof(g_rpi_opt_path);
|
||||
char *new_path = SDL_calloc(1, path_size);
|
||||
strcat(new_path, path);
|
||||
strcat(new_path, ":");
|
||||
strcat(new_path, g_rpi_opt_path);
|
||||
SDL_setenv("LD_LIBRARY_PATH", new_path, 1);
|
||||
SDL_free(new_path);
|
||||
} else {
|
||||
SDL_setenv("LD_LIBRARY_PATH", g_rpi_opt_path, 1);
|
||||
}
|
||||
path = NULL;
|
||||
#endif
|
||||
|
||||
if (_this->egl_data) {
|
||||
|
Reference in New Issue
Block a user