diff options
| author | 2019-11-28 20:14:40 -0300 | |
|---|---|---|
| committer | 2019-11-28 20:14:40 -0300 | |
| commit | 056f049b269f7f6397c9aa1e736b0d03d31f186d (patch) | |
| tree | 4578ec167e1e21d5cade10193d182e1482bcaf37 | |
| parent | renderer_opengl: Move commentaries to header file (diff) | |
| download | yuzu-056f049b269f7f6397c9aa1e736b0d03d31f186d.tar.gz yuzu-056f049b269f7f6397c9aa1e736b0d03d31f186d.tar.xz yuzu-056f049b269f7f6397c9aa1e736b0d03d31f186d.zip | |
renderer_opengl: Move static definitions to anonymous namespace
| -rw-r--r-- | src/video_core/renderer_opengl/renderer_opengl.cpp | 128 |
1 files changed, 66 insertions, 62 deletions
diff --git a/src/video_core/renderer_opengl/renderer_opengl.cpp b/src/video_core/renderer_opengl/renderer_opengl.cpp index 69fd735bd..82b426223 100644 --- a/src/video_core/renderer_opengl/renderer_opengl.cpp +++ b/src/video_core/renderer_opengl/renderer_opengl.cpp | |||
| @@ -24,7 +24,9 @@ | |||
| 24 | 24 | ||
| 25 | namespace OpenGL { | 25 | namespace OpenGL { |
| 26 | 26 | ||
| 27 | static const char vertex_shader[] = R"( | 27 | namespace { |
| 28 | |||
| 29 | constexpr char vertex_shader[] = R"( | ||
| 28 | #version 150 core | 30 | #version 150 core |
| 29 | 31 | ||
| 30 | in vec2 vert_position; | 32 | in vec2 vert_position; |
| @@ -47,7 +49,7 @@ void main() { | |||
| 47 | } | 49 | } |
| 48 | )"; | 50 | )"; |
| 49 | 51 | ||
| 50 | static const char fragment_shader[] = R"( | 52 | constexpr char fragment_shader[] = R"( |
| 51 | #version 150 core | 53 | #version 150 core |
| 52 | 54 | ||
| 53 | in vec2 frag_tex_coord; | 55 | in vec2 frag_tex_coord; |
| @@ -82,18 +84,77 @@ struct ScreenRectVertex { | |||
| 82 | * The projection part of the matrix is trivial, hence these operations are represented | 84 | * The projection part of the matrix is trivial, hence these operations are represented |
| 83 | * by a 3x2 matrix. | 85 | * by a 3x2 matrix. |
| 84 | */ | 86 | */ |
| 85 | static std::array<GLfloat, 3 * 2> MakeOrthographicMatrix(const float width, const float height) { | 87 | std::array<GLfloat, 3 * 2> MakeOrthographicMatrix(float width, float height) { |
| 86 | std::array<GLfloat, 3 * 2> matrix; // Laid out in column-major order | 88 | std::array<GLfloat, 3 * 2> matrix; // Laid out in column-major order |
| 87 | 89 | ||
| 88 | // clang-format off | 90 | // clang-format off |
| 89 | matrix[0] = 2.f / width; matrix[2] = 0.f; matrix[4] = -1.f; | 91 | matrix[0] = 2.f / width; matrix[2] = 0.f; matrix[4] = -1.f; |
| 90 | matrix[1] = 0.f; matrix[3] = -2.f / height; matrix[5] = 1.f; | 92 | matrix[1] = 0.f; matrix[3] = -2.f / height; matrix[5] = 1.f; |
| 91 | // Last matrix row is implicitly assumed to be [0, 0, 1]. | 93 | // Last matrix row is implicitly assumed to be [0, 0, 1]. |
| 92 | // clang-format on | 94 | // clang-format on |
| 93 | 95 | ||
| 94 | return matrix; | 96 | return matrix; |
| 95 | } | 97 | } |
| 96 | 98 | ||
| 99 | const char* GetSource(GLenum source) { | ||
| 100 | #define RET(s) \ | ||
| 101 | case GL_DEBUG_SOURCE_##s: \ | ||
| 102 | return #s | ||
| 103 | switch (source) { | ||
| 104 | RET(API); | ||
| 105 | RET(WINDOW_SYSTEM); | ||
| 106 | RET(SHADER_COMPILER); | ||
| 107 | RET(THIRD_PARTY); | ||
| 108 | RET(APPLICATION); | ||
| 109 | RET(OTHER); | ||
| 110 | default: | ||
| 111 | UNREACHABLE(); | ||
| 112 | return "Unknown source"; | ||
| 113 | } | ||
| 114 | #undef RET | ||
| 115 | } | ||
| 116 | |||
| 117 | const char* GetType(GLenum type) { | ||
| 118 | #define RET(t) \ | ||
| 119 | case GL_DEBUG_TYPE_##t: \ | ||
| 120 | return #t | ||
| 121 | switch (type) { | ||
| 122 | RET(ERROR); | ||
| 123 | RET(DEPRECATED_BEHAVIOR); | ||
| 124 | RET(UNDEFINED_BEHAVIOR); | ||
| 125 | RET(PORTABILITY); | ||
| 126 | RET(PERFORMANCE); | ||
| 127 | RET(OTHER); | ||
| 128 | RET(MARKER); | ||
| 129 | default: | ||
| 130 | UNREACHABLE(); | ||
| 131 | return "Unknown type"; | ||
| 132 | } | ||
| 133 | #undef RET | ||
| 134 | } | ||
| 135 | |||
| 136 | void APIENTRY DebugHandler(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, | ||
| 137 | const GLchar* message, const void* user_param) { | ||
| 138 | const char format[] = "{} {} {}: {}"; | ||
| 139 | const char* const str_source = GetSource(source); | ||
| 140 | const char* const str_type = GetType(type); | ||
| 141 | |||
| 142 | switch (severity) { | ||
| 143 | case GL_DEBUG_SEVERITY_HIGH: | ||
| 144 | LOG_CRITICAL(Render_OpenGL, format, str_source, str_type, id, message); | ||
| 145 | break; | ||
| 146 | case GL_DEBUG_SEVERITY_MEDIUM: | ||
| 147 | LOG_WARNING(Render_OpenGL, format, str_source, str_type, id, message); | ||
| 148 | break; | ||
| 149 | case GL_DEBUG_SEVERITY_NOTIFICATION: | ||
| 150 | case GL_DEBUG_SEVERITY_LOW: | ||
| 151 | LOG_DEBUG(Render_OpenGL, format, str_source, str_type, id, message); | ||
| 152 | break; | ||
| 153 | } | ||
| 154 | } | ||
| 155 | |||
| 156 | } // Anonymous namespace | ||
| 157 | |||
| 97 | RendererOpenGL::RendererOpenGL(Core::Frontend::EmuWindow& emu_window, Core::System& system) | 158 | RendererOpenGL::RendererOpenGL(Core::Frontend::EmuWindow& emu_window, Core::System& system) |
| 98 | : VideoCore::RendererBase{emu_window}, emu_window{emu_window}, system{system} {} | 159 | : VideoCore::RendererBase{emu_window}, emu_window{emu_window}, system{system} {} |
| 99 | 160 | ||
| @@ -402,63 +463,6 @@ void RendererOpenGL::CaptureScreenshot() { | |||
| 402 | renderer_settings.screenshot_requested = false; | 463 | renderer_settings.screenshot_requested = false; |
| 403 | } | 464 | } |
| 404 | 465 | ||
| 405 | static const char* GetSource(GLenum source) { | ||
| 406 | #define RET(s) \ | ||
| 407 | case GL_DEBUG_SOURCE_##s: \ | ||
| 408 | return #s | ||
| 409 | switch (source) { | ||
| 410 | RET(API); | ||
| 411 | RET(WINDOW_SYSTEM); | ||
| 412 | RET(SHADER_COMPILER); | ||
| 413 | RET(THIRD_PARTY); | ||
| 414 | RET(APPLICATION); | ||
| 415 | RET(OTHER); | ||
| 416 | default: | ||
| 417 | UNREACHABLE(); | ||
| 418 | return "Unknown source"; | ||
| 419 | } | ||
| 420 | #undef RET | ||
| 421 | } | ||
| 422 | |||
| 423 | static const char* GetType(GLenum type) { | ||
| 424 | #define RET(t) \ | ||
| 425 | case GL_DEBUG_TYPE_##t: \ | ||
| 426 | return #t | ||
| 427 | switch (type) { | ||
| 428 | RET(ERROR); | ||
| 429 | RET(DEPRECATED_BEHAVIOR); | ||
| 430 | RET(UNDEFINED_BEHAVIOR); | ||
| 431 | RET(PORTABILITY); | ||
| 432 | RET(PERFORMANCE); | ||
| 433 | RET(OTHER); | ||
| 434 | RET(MARKER); | ||
| 435 | default: | ||
| 436 | UNREACHABLE(); | ||
| 437 | return "Unknown type"; | ||
| 438 | } | ||
| 439 | #undef RET | ||
| 440 | } | ||
| 441 | |||
| 442 | static void APIENTRY DebugHandler(GLenum source, GLenum type, GLuint id, GLenum severity, | ||
| 443 | GLsizei length, const GLchar* message, const void* user_param) { | ||
| 444 | const char format[] = "{} {} {}: {}"; | ||
| 445 | const char* const str_source = GetSource(source); | ||
| 446 | const char* const str_type = GetType(type); | ||
| 447 | |||
| 448 | switch (severity) { | ||
| 449 | case GL_DEBUG_SEVERITY_HIGH: | ||
| 450 | LOG_CRITICAL(Render_OpenGL, format, str_source, str_type, id, message); | ||
| 451 | break; | ||
| 452 | case GL_DEBUG_SEVERITY_MEDIUM: | ||
| 453 | LOG_WARNING(Render_OpenGL, format, str_source, str_type, id, message); | ||
| 454 | break; | ||
| 455 | case GL_DEBUG_SEVERITY_NOTIFICATION: | ||
| 456 | case GL_DEBUG_SEVERITY_LOW: | ||
| 457 | LOG_DEBUG(Render_OpenGL, format, str_source, str_type, id, message); | ||
| 458 | break; | ||
| 459 | } | ||
| 460 | } | ||
| 461 | |||
| 462 | bool RendererOpenGL::Init() { | 466 | bool RendererOpenGL::Init() { |
| 463 | Core::Frontend::ScopeAcquireWindowContext acquire_context{render_window}; | 467 | Core::Frontend::ScopeAcquireWindowContext acquire_context{render_window}; |
| 464 | 468 | ||