mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2025-06-28 09:59:41 -06:00
GL: don't draw the screens when nothing is running
This commit is contained in:
@ -396,35 +396,38 @@ void GLScreen_DrawScreen()
|
|||||||
glClearColor(0, 0, 0, 1);
|
glClearColor(0, 0, 0, 1);
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT);
|
||||||
|
|
||||||
int frontbuf = GPU::FrontBuffer;
|
if (RunningSomething)
|
||||||
glActiveTexture(GL_TEXTURE0);
|
|
||||||
glBindTexture(GL_TEXTURE_2D, GL_ScreenTexture);
|
|
||||||
|
|
||||||
if (GPU::Framebuffer[frontbuf][0] && GPU::Framebuffer[frontbuf][1])
|
|
||||||
{
|
{
|
||||||
if (GPU3D::Renderer == 0)
|
int frontbuf = GPU::FrontBuffer;
|
||||||
{
|
glActiveTexture(GL_TEXTURE0);
|
||||||
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 256, 192, GL_RGBA_INTEGER,
|
glBindTexture(GL_TEXTURE_2D, GL_ScreenTexture);
|
||||||
GL_UNSIGNED_BYTE, GPU::Framebuffer[frontbuf][0]);
|
|
||||||
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 192, 256, 192, GL_RGBA_INTEGER,
|
|
||||||
GL_UNSIGNED_BYTE, GPU::Framebuffer[frontbuf][1]);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 256*3 + 1, 192, GL_RGBA_INTEGER,
|
|
||||||
GL_UNSIGNED_BYTE, GPU::Framebuffer[frontbuf][0]);
|
|
||||||
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 192, 256*3 + 1, 192, GL_RGBA_INTEGER,
|
|
||||||
GL_UNSIGNED_BYTE, GPU::Framebuffer[frontbuf][1]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
glActiveTexture(GL_TEXTURE1);
|
if (GPU::Framebuffer[frontbuf][0] && GPU::Framebuffer[frontbuf][1])
|
||||||
if (GPU3D::Renderer != 0)
|
{
|
||||||
GPU3D::GLRenderer::SetupAccelFrame();
|
if (GPU3D::Renderer == 0)
|
||||||
|
{
|
||||||
|
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 256, 192, GL_RGBA_INTEGER,
|
||||||
|
GL_UNSIGNED_BYTE, GPU::Framebuffer[frontbuf][0]);
|
||||||
|
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 192, 256, 192, GL_RGBA_INTEGER,
|
||||||
|
GL_UNSIGNED_BYTE, GPU::Framebuffer[frontbuf][1]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 256*3 + 1, 192, GL_RGBA_INTEGER,
|
||||||
|
GL_UNSIGNED_BYTE, GPU::Framebuffer[frontbuf][0]);
|
||||||
|
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 192, 256*3 + 1, 192, GL_RGBA_INTEGER,
|
||||||
|
GL_UNSIGNED_BYTE, GPU::Framebuffer[frontbuf][1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, GL_ScreenVertexBufferID);
|
glActiveTexture(GL_TEXTURE1);
|
||||||
glBindVertexArray(GL_ScreenVertexArrayID);
|
if (GPU3D::Renderer != 0)
|
||||||
glDrawArrays(GL_TRIANGLES, 0, 4*3);
|
GPU3D::GLRenderer::SetupAccelFrame();
|
||||||
|
|
||||||
|
glBindBuffer(GL_ARRAY_BUFFER, GL_ScreenVertexBufferID);
|
||||||
|
glBindVertexArray(GL_ScreenVertexArrayID);
|
||||||
|
glDrawArrays(GL_TRIANGLES, 0, 4*3);
|
||||||
|
}
|
||||||
|
|
||||||
glFlush();
|
glFlush();
|
||||||
uiGLSwapBuffers(GLContext);
|
uiGLSwapBuffers(GLContext);
|
||||||
|
Reference in New Issue
Block a user