diff options
| -rw-r--r-- | src/video_core/renderer_opengl/renderer_opengl.cpp | 33 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/renderer_opengl.h | 10 | 
2 files changed, 18 insertions, 25 deletions
| diff --git a/src/video_core/renderer_opengl/renderer_opengl.cpp b/src/video_core/renderer_opengl/renderer_opengl.cpp index bc1683cb5..cad278381 100644 --- a/src/video_core/renderer_opengl/renderer_opengl.cpp +++ b/src/video_core/renderer_opengl/renderer_opengl.cpp @@ -81,7 +81,7 @@ void RendererOpenGL::SwapBuffers() {      RenderXFB(framebuffer_size, framebuffer_size);      // XFB->Window copy -    RenderFramebuffer(); +    DrawScreens();      // Swap buffers      render_window->PollEvents(); @@ -151,8 +151,16 @@ void RendererOpenGL::RenderXFB(const Common::Rect& src_rect, const Common::Rect&      // so this may need to be changed (pair for each screen).  } -/// Initialize the FBO -void RendererOpenGL::InitFramebuffer() { +/** + * Initializes the OpenGL state and creates persistent objects. + */ +void RendererOpenGL::InitOpenGLObjects() { +    glGenVertexArrays(1, &vertex_array_id); +    glBindVertexArray(vertex_array_id); + +    glClearColor(1.0f, 1.0f, 1.0f, 0.0f); +    glDisable(GL_DEPTH_TEST); +      program_id = ShaderUtil::LoadShaders(GLShaders::g_vertex_shader, GLShaders::g_fragment_shader);      sampler_id = glGetUniformLocation(program_id, "sampler");      attrib_position = glGetAttribLocation(program_id, "position"); @@ -190,7 +198,10 @@ void RendererOpenGL::InitFramebuffer() {      glBindTexture(GL_TEXTURE_2D, 0);  } -void RendererOpenGL::RenderFramebuffer() { +/** + * Draws the emulated screens to the emulator window. + */ +void RendererOpenGL::DrawScreens() {      glViewport(0, 0, resolution_width, resolution_height);      glClear(GL_COLOR_BUFFER_BIT); @@ -253,20 +264,8 @@ void RendererOpenGL::Init() {          exit(-1);      } -    // Generate VAO -    glGenVertexArrays(1, &vertex_array_id); -    glBindVertexArray(vertex_array_id); - -    glClearColor(1.0f, 1.0f, 1.0f, 0.0f); -    glDisable(GL_DEPTH_TEST); - -    glPixelStorei(GL_UNPACK_ALIGNMENT, 4); - -    // Initialize everything else -    // -------------------------- -    InitFramebuffer(); -      NOTICE_LOG(RENDER, "GL_VERSION: %s\n", glGetString(GL_VERSION)); +    InitOpenGLObjects();  }  /// Shutdown the renderer diff --git a/src/video_core/renderer_opengl/renderer_opengl.h b/src/video_core/renderer_opengl/renderer_opengl.h index 98ae7aa66..3dcb331be 100644 --- a/src/video_core/renderer_opengl/renderer_opengl.h +++ b/src/video_core/renderer_opengl/renderer_opengl.h @@ -42,14 +42,8 @@ public:      void ShutDown();  private: - -    /// Initialize the FBO -    void InitFramebuffer(); - -    // Blit the FBO to the OpenGL default framebuffer -    void RenderFramebuffer(); - -    /// Updates the framerate +    void InitOpenGLObjects(); +    void DrawScreens();      void UpdateFramerate();      /// Structure used for storing information for rendering each 3DS screen | 
