Add robustness getting the EGL version (see bug #4040)

This commit is contained in:
Sylvain Becker 2019-10-18 13:27:58 +02:00
parent 3ecce84749
commit 03f27a3a75

View file

@ -509,6 +509,18 @@ SDL_EGL_LoadLibrary(_THIS, const char *egl_path, NativeDisplayType native_displa
}
#endif
/* Get the EGL version */
if (_this->egl_data->eglQueryString && _this->egl_data->egl_version_major == 0 && _this->egl_data->egl_version_major == 0) {
const char *egl_version = _this->egl_data->eglQueryString(_this->egl_data->egl_display, EGL_VERSION);
int major = 0, minor = 0;
if (egl_version != NULL) {
if (SDL_sscanf(egl_version, "%d.%d", &major, &minor) == 2) {
_this->egl_data->egl_version_major = major;
_this->egl_data->egl_version_minor = minor;
}
}
}
_this->egl_data->is_offscreen = 0;
return 0;
@ -594,6 +606,18 @@ SDL_EGL_InitializeOffscreen(_THIS, int device)
}
}
/* Get the EGL version */
if (_this->egl_data->eglQueryString && _this->egl_data->egl_version_major == 0 && _this->egl_data->egl_version_major == 0) {
const char *egl_version = _this->egl_data->eglQueryString(_this->egl_data->egl_display, EGL_VERSION);
int major = 0, minor = 0;
if (egl_version != NULL) {
if (SDL_sscanf(egl_version, "%d.%d", &major, &minor) == 2) {
_this->egl_data->egl_version_major = major;
_this->egl_data->egl_version_minor = minor;
}
}
}
_this->egl_data->is_offscreen = 1;
return 0;