MCPcopy Create free account
hub / github.com/Tencent/libpag / GetGLVersion

Function GetGLVersion

test/src/PAGSurfaceTest.cpp:29–58  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

27#define GL_VER(major, minor) ((static_cast<uint32_t>(major) << 16) | static_cast<uint32_t>(minor))
28
29uint32_t GetGLVersion(const char* versionString) {
30 if (versionString == nullptr) {
31 return GL_VER(-1, -1);
32 }
33 int major, minor;
34 int mesaMajor, mesaMinor;
35 int n = sscanf(versionString, "%d.%d Mesa %d.%d", &major, &minor, &mesaMajor, &mesaMinor);
36 if (4 == n) {
37 return GL_VER(major, minor);
38 }
39 n = sscanf(versionString, "%d.%d", &major, &minor);
40 if (2 == n) {
41 return GL_VER(major, minor);
42 }
43 int esMajor, esMinor;
44 n = sscanf(versionString, "OpenGL ES %d.%d (WebGL %d.%d", &esMajor, &esMinor, &major, &minor);
45 if (4 == n) {
46 return GL_VER(major, minor);
47 }
48 char profile[2];
49 n = sscanf(versionString, "OpenGL ES-%c%c %d.%d", profile, profile + 1, &major, &minor);
50 if (4 == n) {
51 return GL_VER(major, minor);
52 }
53 n = sscanf(versionString, "OpenGL ES %d.%d", &major, &minor);
54 if (2 == n) {
55 return GL_VER(major, minor);
56 }
57 return GL_VER(-1, -1);
58}
59
60/**
61 * 用例描述: 测试 PAGSurface 数据同步

Callers 1

PAG_TESTFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected