mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-11-16 06:23:23 +09:00
[Fix] (EGL+GL): let ANGLE's GL backend run on MobileGL (GBM displays, foreign wl_display, precision query, ES-free GL_VERSION)
This commit is contained in:
@@ -617,11 +617,19 @@ namespace MobileGL::MG_Impl::GLImpl {
|
||||
MGLOG_D("vendorString: %s", vendorString.c_str());
|
||||
return (const GLubyte*)vendorString.c_str();
|
||||
case GL_VERSION: {
|
||||
// "OpenGL ES" must not appear anywhere in a desktop GL_VERSION: some callers (ANGLE's GL
|
||||
// backend among them) search the whole string for it rather than its prefix, and
|
||||
// then take this for an ES driver, read the version from the wrong offsets and look
|
||||
// for ES-named extensions. The backend is named "GLES" here for that reason only.
|
||||
String backendName = rendererInfo.BackendName;
|
||||
if (const auto at = backendName.find("OpenGL ES"); at != String::npos) {
|
||||
backendName.replace(at, sizeof("OpenGL ES") - 1, "GLES");
|
||||
}
|
||||
versionStr =
|
||||
std::format("{} {} {}, {} Backend, GIT@" GIT_COMMIT_HASH_SHORT,
|
||||
rendererInfo.RendererGLInfo.TargetGLVersion.toString(), MG_Config::ProjectName,
|
||||
MG_Config::CoreVersion.toFormattedString(MG_Config::DefaultVersionStringFormatAttrib),
|
||||
rendererInfo.BackendName);
|
||||
backendName);
|
||||
MGLOG_D("versionStr: %s", versionStr.c_str());
|
||||
return (const GLubyte*)versionStr.c_str();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user