aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/renderer_opengl/renderer_opengl.h
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2021-01-05 04:09:39 -0300
committerReinUsesLisp <reinuseslisp@airmail.cc>2021-02-13 02:16:19 -0300
commit75ccd9959ca7aa78b71fbb800ed2127d8613e9dc (patch)
tree3b9b5c0779cff69ef135bb3394ae70a0d3a9804d /src/video_core/renderer_opengl/renderer_opengl.h
parent19156292a374ddf15c6e8679f93d146a6d305fd6 (diff)
gpu: Report renderer errors with exceptions
Instead of using a two step initialization to report errors, initialize the GPU renderer and rasterizer on the constructor and report errors through std::runtime_error.
Diffstat (limited to 'src/video_core/renderer_opengl/renderer_opengl.h')
-rw-r--r--src/video_core/renderer_opengl/renderer_opengl.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/video_core/renderer_opengl/renderer_opengl.h b/src/video_core/renderer_opengl/renderer_opengl.h
index 44e109794..e043a0ccb 100644
--- a/src/video_core/renderer_opengl/renderer_opengl.h
+++ b/src/video_core/renderer_opengl/renderer_opengl.h
@@ -10,6 +10,7 @@
#include "common/math_util.h"
#include "video_core/renderer_base.h"
#include "video_core/renderer_opengl/gl_device.h"
+#include "video_core/renderer_opengl/gl_rasterizer.h"
#include "video_core/renderer_opengl/gl_resource_manager.h"
#include "video_core/renderer_opengl/gl_shader_manager.h"
#include "video_core/renderer_opengl/gl_state_tracker.h"
@@ -63,18 +64,18 @@ public:
std::unique_ptr<Core::Frontend::GraphicsContext> context_);
~RendererOpenGL() override;
- bool Init() override;
- void ShutDown() override;
void SwapBuffers(const Tegra::FramebufferConfig* framebuffer) override;
+ VideoCore::RasterizerInterface* ReadRasterizer() override {
+ return &rasterizer;
+ }
+
private:
/// Initializes the OpenGL state and creates persistent objects.
void InitOpenGLObjects();
void AddTelemetryFields();
- void CreateRasterizer();
-
void ConfigureFramebufferTexture(TextureInfo& texture,
const Tegra::FramebufferConfig& framebuffer);
@@ -118,6 +119,8 @@ private:
/// Global dummy shader pipeline
ProgramManager program_manager;
+ RasterizerOpenGL rasterizer;
+
/// OpenGL framebuffer data
std::vector<u8> gl_framebuffer_data;