renderer_base.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. // Copyright 2015 Citra Emulator Project
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #include <memory>
  5. #include "core/frontend/emu_window.h"
  6. #include "core/settings.h"
  7. #include "video_core/renderer_base.h"
  8. #include "video_core/renderer_opengl/gl_rasterizer.h"
  9. namespace VideoCore {
  10. RendererBase::RendererBase(Core::Frontend::EmuWindow& window) : render_window{window} {
  11. RefreshBaseSettings();
  12. }
  13. RendererBase::~RendererBase() = default;
  14. void RendererBase::RefreshBaseSettings() {
  15. RefreshRasterizerSetting();
  16. UpdateCurrentFramebufferLayout();
  17. renderer_settings.use_framelimiter = Settings::values.toggle_framelimit;
  18. }
  19. void RendererBase::RefreshRasterizerSetting() {
  20. if (rasterizer == nullptr) {
  21. rasterizer = std::make_unique<RasterizerOpenGL>(render_window);
  22. }
  23. }
  24. void RendererBase::UpdateCurrentFramebufferLayout() {
  25. const Layout::FramebufferLayout& layout = render_window.GetFramebufferLayout();
  26. render_window.UpdateCurrentFramebufferLayout(layout.width, layout.height);
  27. }
  28. } // namespace VideoCore