summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2019-11-28 20:14:40 -0300
committerGravatar ReinUsesLisp2019-11-28 20:14:40 -0300
commit056f049b269f7f6397c9aa1e736b0d03d31f186d (patch)
tree4578ec167e1e21d5cade10193d182e1482bcaf37
parentrenderer_opengl: Move commentaries to header file (diff)
downloadyuzu-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.cpp128
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
25namespace OpenGL { 25namespace OpenGL {
26 26
27static const char vertex_shader[] = R"( 27namespace {
28
29constexpr char vertex_shader[] = R"(
28#version 150 core 30#version 150 core
29 31
30in vec2 vert_position; 32in vec2 vert_position;
@@ -47,7 +49,7 @@ void main() {
47} 49}
48)"; 50)";
49 51
50static const char fragment_shader[] = R"( 52constexpr char fragment_shader[] = R"(
51#version 150 core 53#version 150 core
52 54
53in vec2 frag_tex_coord; 55in 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 */
85static std::array<GLfloat, 3 * 2> MakeOrthographicMatrix(const float width, const float height) { 87std::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
99const 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
117const 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
136void 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
97RendererOpenGL::RendererOpenGL(Core::Frontend::EmuWindow& emu_window, Core::System& system) 158RendererOpenGL::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
405static 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
423static 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
442static 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
462bool RendererOpenGL::Init() { 466bool RendererOpenGL::Init() {
463 Core::Frontend::ScopeAcquireWindowContext acquire_context{render_window}; 467 Core::Frontend::ScopeAcquireWindowContext acquire_context{render_window};
464 468