OpenGLRenderer: Minor improvements

This commit is contained in:
SirLynix 2024-01-04 10:19:38 +01:00
parent f46f0da12a
commit 0cd8cff53e
2 changed files with 56 additions and 89 deletions

View File

@ -1101,105 +1101,72 @@ namespace Nz::GL
void Context::HandleDebugMessage(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message) const void Context::HandleDebugMessage(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message) const
{ {
std::stringstream ss; auto SourceStr = [](GLenum source)
ss << "OpenGL debug message (ID: 0x" << id << "):\n";
ss << "Sent by context: " << this;
ss << "\n-Source: ";
switch (source)
{ {
case GL_DEBUG_SOURCE_API: using namespace std::literals;
ss << "OpenGL API";
break;
case GL_DEBUG_SOURCE_WINDOW_SYSTEM: switch (source)
ss << "Operating system"; {
break; case GL_DEBUG_SOURCE_API: return "OpenGL API"sv;
case GL_DEBUG_SOURCE_WINDOW_SYSTEM: return "Operating system"sv;
case GL_DEBUG_SOURCE_SHADER_COMPILER: return "Shader compiler"sv;
case GL_DEBUG_SOURCE_THIRD_PARTY: return "Third party"sv;
case GL_DEBUG_SOURCE_APPLICATION: return "Application"sv;
case GL_DEBUG_SOURCE_OTHER: return "Other"sv;
default:
// Extension type
break;
}
case GL_DEBUG_SOURCE_SHADER_COMPILER: return "Unknown"sv;
ss << "Shader compiler"; };
break;
case GL_DEBUG_SOURCE_THIRD_PARTY: auto TypeStr = [](GLenum type)
ss << "Third party";
break;
case GL_DEBUG_SOURCE_APPLICATION:
ss << "Application";
break;
case GL_DEBUG_SOURCE_OTHER:
ss << "Other";
break;
default:
// Extension source
ss << "Unknown";
break;
}
ss << '\n';
ss << "-Type: ";
switch (type)
{ {
case GL_DEBUG_TYPE_ERROR: using namespace std::literals;
ss << "Error";
break;
case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR: switch (type)
ss << "Deprecated behavior"; {
break; case GL_DEBUG_TYPE_ERROR: return "Error"sv;
case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR: return "Deprecated behavior"sv;
case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR: return "Undefined behavior"sv;
case GL_DEBUG_TYPE_PORTABILITY: return "Portability"sv;
case GL_DEBUG_TYPE_PERFORMANCE: return "Performance"sv;
case GL_DEBUG_TYPE_OTHER: return "Other"sv;
default:
// Extension type
break;
}
case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR: return "Unknown"sv;
ss << "Undefined behavior"; };
break;
case GL_DEBUG_TYPE_PORTABILITY: auto SeverityStr = [](GLenum severity)
ss << "Portability";
break;
case GL_DEBUG_TYPE_PERFORMANCE:
ss << "Performance";
break;
case GL_DEBUG_TYPE_OTHER:
ss << "Other";
break;
default:
// Extension type
ss << "Unknown";
break;
}
ss << '\n';
ss << "-Severity: ";
switch (severity)
{ {
case GL_DEBUG_SEVERITY_HIGH: using namespace std::literals;
ss << "High";
break;
case GL_DEBUG_SEVERITY_MEDIUM: switch (severity)
ss << "Medium"; {
break; case GL_DEBUG_SEVERITY_HIGH: return "High"sv;
case GL_DEBUG_SEVERITY_MEDIUM: return "Medium"sv;
case GL_DEBUG_SEVERITY_LOW: return "Low"sv;
case GL_DEBUG_SEVERITY_NOTIFICATION: return "Notification"sv;
default:
// Extension severity
break;
}
case GL_DEBUG_SEVERITY_LOW: return "Unknown"sv;
ss << "Low"; };
break;
case GL_DEBUG_SEVERITY_NOTIFICATION: NazaraNotice(
ss << "Notification"; R"(OpenGL debug message (ID: {0:#x})
break; - Context: {1}
- Source: {2}
default: - Type: {3}
ss << "Unknown"; - Severity: {4}
break; - Message: {5}
} )", id, fmt::ptr(this), SourceStr(source), TypeStr(type), SeverityStr(severity), std::string_view(message, length));
ss << '\n';
ss << "Message: " << std::string_view(message, length) << '\n';
NazaraNotice(ss.str());
} }
bool Context::InitializeBlitFramebuffers() const bool Context::InitializeBlitFramebuffers() const

View File

@ -192,7 +192,7 @@ namespace Nz::GL
if (m_params.type == ContextType::OpenGL_ES) if (m_params.type == ContextType::OpenGL_ES)
{ {
// Create OpenGL ES context // Create OpenGL ES context
std::array<Version, 3> supportedGL_ESVersions = { constexpr std::array<Version, 3> supportedGL_ESVersions = {
{ {
{ 3, 2 }, { 3, 2 },
{ 3, 1 }, { 3, 1 },
@ -226,7 +226,7 @@ namespace Nz::GL
else else
{ {
// Create OpenGL ES context // Create OpenGL ES context
std::array<Version, 8> supportedGLVersions = { constexpr std::array<Version, 8> supportedGLVersions = {
{ {
{ 4, 6 }, { 4, 6 },
{ 4, 5 }, { 4, 5 },