|
|
@@ -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
|