[Improvement] (GL_getter.cpp): Make glGetStringi standard.

This commit is contained in:
BZLZHH
2025-04-04 11:28:18 +08:00
parent 9a61811db7
commit e813847173
+2 -20
View File
@@ -64,6 +64,8 @@ namespace MG_GL::GL {
const GLubyte* GetStringi(GLenum name, GLuint index) { const GLubyte* GetStringi(GLenum name, GLuint index) {
MG_Util::Debug::LogD("glGetStringi, name: %s, index: %d", MG_Util::Debug::GLEnumToString(name), index); MG_Util::Debug::LogD("glGetStringi, name: %s, index: %d", MG_Util::Debug::GLEnumToString(name), index);
if (name != GL_EXTENSIONS)
return (const GLubyte*)"";
typedef struct { typedef struct {
GLenum name; GLenum name;
const char** parts; const char** parts;
@@ -81,27 +83,7 @@ namespace MG_GL::GL {
GLenum target = cache.name; GLenum target = cache.name;
const GLubyte* str = nullptr; const GLubyte* str = nullptr;
const char* delimiter = " "; const char* delimiter = " ";
switch (target) {
case GL_VENDOR:
str = (const GLubyte*)"MobileGL-Dev";
delimiter = ", ";
break;
case GL_VERSION:
str = (const GLubyte*)"3.0.0 MobileGL";
delimiter = " .";
break;
case GL_SHADING_LANGUAGE_VERSION:
str = (const GLubyte*)"4.50 MobileGL glslang";
break;
case GL_EXTENSIONS:
str = GetString(GL_EXTENSIONS); str = GetString(GL_EXTENSIONS);
break;
default:
return (const GLubyte *) "Unknown enum";
}
if (!str) continue;
char* copy = strdup((const char*)str); char* copy = strdup((const char*)str);
char* token = strtok(copy, delimiter); char* token = strtok(copy, delimiter);