diff --git a/xs/src/slic3r/GUI/GLCanvas3DManager.cpp b/xs/src/slic3r/GUI/GLCanvas3DManager.cpp
index f817e7739..ec4ac1606 100644
--- a/xs/src/slic3r/GUI/GLCanvas3DManager.cpp
+++ b/xs/src/slic3r/GUI/GLCanvas3DManager.cpp
@@ -78,35 +78,32 @@ std::string GLCanvas3DManager::GLInfo::to_string(bool format_as_html, bool exten
std::stringstream out;
std::string h2_start = format_as_html ? "" : "";
- std::string h2_end = format_as_html ? "" : "";
- std::string b_start = format_as_html ? "" : "";
- std::string b_end = format_as_html ? "" : "";
+ std::string h2_end = format_as_html ? "" : "";
+ std::string b_start = format_as_html ? "" : "";
+ std::string b_end = format_as_html ? "" : "";
std::string line_end = format_as_html ? "
" : "\n";
out << h2_start << "OpenGL installation" << h2_end << line_end;
- out << b_start << "GL version: " << b_end << (version.empty() ? "N/A" : version) << line_end;
- out << b_start << "Vendor: " << b_end << (vendor.empty() ? "N/A" : vendor) << line_end;
- out << b_start << "Renderer: " << b_end << (renderer.empty() ? "N/A" : renderer) << line_end;
- out << b_start << "GLSL version: " << b_end << (glsl_version.empty() ? "N/A" : glsl_version) << line_end;
+ out << b_start << "GL version: " << b_end << (version.empty() ? "N/A" : version) << line_end;
+ out << b_start << "Vendor: " << b_end << (vendor.empty() ? "N/A" : vendor) << line_end;
+ out << b_start << "Renderer: " << b_end << (renderer.empty() ? "N/A" : renderer) << line_end;
+ out << b_start << "GLSL version: " << b_end << (glsl_version.empty() ? "N/A" : glsl_version) << line_end;
if (extensions)
{
- out << h2_start << "Installed extensions:" << h2_end << line_end;
-
std::vector extensions_list;
- GLint num_extensions;
- ::glGetIntegerv(GL_NUM_EXTENSIONS, &num_extensions);
-
- for (GLint i = 0; i < num_extensions; ++i)
- {
- const char* e = (const char*)::glGetStringi(GL_EXTENSIONS, i);
- extensions_list.push_back(e);
- }
+ std::string extensions_str = (const char*)::glGetString(GL_EXTENSIONS);
+ boost::split(extensions_list, extensions_str, boost::is_any_of(" "), boost::token_compress_off);
- std::sort(extensions_list.begin(), extensions_list.end());
- for (const std::string& ext : extensions_list)
+ if (!extensions_list.empty())
{
- out << ext << line_end;
+ out << h2_start << "Installed extensions:" << h2_end << line_end;
+
+ std::sort(extensions_list.begin(), extensions_list.end());
+ for (const std::string& ext : extensions_list)
+ {
+ out << ext << line_end;
+ }
}
}