MCPcopy Create free account
hub / github.com/cginternals/glbinding / extensions

Function extensions

source/glbinding-aux/source/ContextInfo.cpp:44–88  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

42// parameters via pointers while maintaining a single implementation.
43
44std::set<GLextension> extensions(std::set<std::string> * const unknown)
45{
46 const auto v = glbinding::aux::ContextInfo::version();
47
48 if (v <= glbinding::Version(1, 0)) // OpenGL 1.0 doesn't support extensions
49 {
50 return std::set<GLextension>{};
51 }
52
53 auto extensions = std::set<GLextension>{};
54
55 if (v < glbinding::Version(3, 0))
56 {
57 const auto extensionString = glGetString(GL_EXTENSIONS);
58
59 if (!extensionString)
60 {
61 return extensions;
62 }
63
64 std::istringstream stream{ reinterpret_cast<const char *>(extensionString) };
65 auto extensionName = std::string{ };
66
67 while (std::getline(stream, extensionName, ' '))
68 {
69 insertExtension(extensionName, &extensions, unknown);
70 }
71 }
72 else
73 {
74 auto numExtensions = 0;
75 glGetIntegerv(GL_NUM_EXTENSIONS, &numExtensions);
76
77 for (GLuint i = 0; i < static_cast<GLuint>(numExtensions); ++i)
78 {
79 const auto name = glGetStringi(GL_EXTENSIONS, i);
80 if (name)
81 {
82 insertExtension(reinterpret_cast<const char*>(name), &extensions, unknown);
83 }
84 }
85 }
86
87 return extensions;
88}
89
90bool supported(const std::set<gl::GLextension> & extensions, std::set<gl::GLextension> * unsupported)
91{

Callers 8

printInfosFunction · 0.85
mainFunction · 0.85
mainFunction · 0.85
mainFunction · 0.85
extensionsMethod · 0.85
functionsMethod · 0.85
supportedFunction · 0.85
extensionsMethod · 0.85

Calls 5

glGetStringFunction · 0.85
insertExtensionFunction · 0.85
glGetStringiFunction · 0.85
VersionClass · 0.70
glGetIntegervFunction · 0.50

Tested by

no test coverage detected