diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/base/log/Logger.cpp | 13 | ||||
| -rw-r--r-- | src/platform/gui/sdl/OpenGLRenderer.cpp | 11 |
2 files changed, 16 insertions, 8 deletions
diff --git a/src/base/log/Logger.cpp b/src/base/log/Logger.cpp index d75e006b..58fa6220 100644 --- a/src/base/log/Logger.cpp +++ b/src/base/log/Logger.cpp @@ -3,6 +3,7 @@ #include "cru/base/log/StdioLogTarget.h" #include <algorithm> +#include <chrono> #include <condition_variable> #include <cstdlib> #include <ctime> @@ -167,4 +168,16 @@ void Logger::LogThreadRun() { if (stop) return; } } + +Guard MeasureTimeAndLog(std::string_view tag, std::string_view name) { + CruLogDebug(std::string(tag), "Start measure {}.", name); + auto start = std::chrono::high_resolution_clock::now(); + + return Guard([tag = std::string(tag), name = std::string(name), start] { + auto end = std::chrono::high_resolution_clock::now(); + auto duration = + std::chrono::duration_cast<std::chrono::microseconds>(end - start); + CruLogDebug(tag, "End measure {}, time {} us.", name, duration.count()); + }); +} } // namespace cru::log diff --git a/src/platform/gui/sdl/OpenGLRenderer.cpp b/src/platform/gui/sdl/OpenGLRenderer.cpp index 07b58147..78eb578e 100644 --- a/src/platform/gui/sdl/OpenGLRenderer.cpp +++ b/src/platform/gui/sdl/OpenGLRenderer.cpp @@ -93,6 +93,8 @@ SdlOpenGLRenderer::SdlOpenGLRenderer(SdlWindow* window, int width, int height) { reinterpret_cast<void*>(3 * sizeof(float))); glad_gl_context_.EnableVertexAttribArray(1); + glad_gl_context_.UseProgram(gl_shader_program_); + Resize(width, height); } @@ -174,19 +176,12 @@ void SdlOpenGLRenderer::Present() { assert(cairo_surface_); assert(gl_texture_); - auto _ = MakeContextCurrent(); + auto context_guard = MakeContextCurrent(); auto data = cairo_image_surface_get_data(cairo_surface_); glad_gl_context_.TexImage2D(GL_TEXTURE_2D, 0, GL_BGRA, width_, height_, 0, GL_BGRA, GL_UNSIGNED_BYTE, data); - glad_gl_context_.UseProgram(gl_shader_program_); - glad_gl_context_.ActiveTexture(GL_TEXTURE0); - glad_gl_context_.BindTexture(GL_TEXTURE_2D, gl_texture_); - glad_gl_context_.BindVertexArray(gl_vertex_array_); - glad_gl_context_.BindBuffer(GL_ARRAY_BUFFER, gl_vertex_buffer_); - glad_gl_context_.BindBuffer(GL_ELEMENT_ARRAY_BUFFER, gl_element_buffer_); - glad_gl_context_.DrawElements( GL_TRIANGLES, sizeof(kIndices) / sizeof(*kIndices), GL_UNSIGNED_INT, 0); CheckSdlReturn(SDL_GL_SwapWindow(sdl_window_)); |
