Improve error report from Init() functions

Add error popup when citra initialization failed
This commit is contained in:
LittleWhite 2016-01-07 20:33:54 +01:00
parent 7ad669a911
commit 4be68dddfb
12 changed files with 72 additions and 27 deletions

View file

@ -38,7 +38,7 @@ public:
virtual void SetWindow(EmuWindow* window) = 0;
/// Initialize the renderer
virtual void Init() = 0;
virtual bool Init() = 0;
/// Shutdown the renderer
virtual void ShutDown() = 0;

View file

@ -445,7 +445,7 @@ static void DebugHandler(GLenum source, GLenum type, GLuint id, GLenum severity,
}
/// Initialize the renderer
void RendererOpenGL::Init() {
bool RendererOpenGL::Init() {
render_window->MakeCurrent();
// TODO: Make frontends initialize this, so they can use gladLoadGLLoader with their own loaders
@ -462,9 +462,15 @@ void RendererOpenGL::Init() {
LOG_INFO(Render_OpenGL, "GL_VERSION: %s", glGetString(GL_VERSION));
LOG_INFO(Render_OpenGL, "GL_VENDOR: %s", glGetString(GL_VENDOR));
LOG_INFO(Render_OpenGL, "GL_RENDERER: %s", glGetString(GL_RENDERER));
if (!GLAD_GL_VERSION_3_3) {
return false;
}
InitOpenGLObjects();
RefreshRasterizerSetting();
return true;
}
/// Shutdown the renderer

View file

@ -31,7 +31,7 @@ public:
void SetWindow(EmuWindow* window) override;
/// Initialize the renderer
void Init() override;
bool Init() override;
/// Shutdown the renderer
void ShutDown() override;

View file

@ -28,15 +28,19 @@ std::atomic<bool> g_hw_renderer_enabled;
std::atomic<bool> g_shader_jit_enabled;
/// Initialize the video core
void Init(EmuWindow* emu_window) {
bool Init(EmuWindow* emu_window) {
Pica::Init();
g_emu_window = emu_window;
g_renderer = Common::make_unique<RendererOpenGL>();
g_renderer->SetWindow(g_emu_window);
g_renderer->Init();
LOG_DEBUG(Render, "initialized OK");
if (g_renderer->Init()) {
LOG_DEBUG(Render, "initialized OK");
} else {
LOG_ERROR(Render, "initialization failed !");
return false;
}
return true;
}
/// Shutdown the video core

View file

@ -41,7 +41,7 @@ extern std::atomic<bool> g_shader_jit_enabled;
void Start();
/// Initialize the video core
void Init(EmuWindow* emu_window);
bool Init(EmuWindow* emu_window);
/// Shutdown the video core
void Shutdown();