Skip to content

Commit

Permalink
Reducing amount of matrix load operations.
Browse files Browse the repository at this point in the history
  • Loading branch information
Rinnegatamante committed Aug 15, 2020
1 parent c045740 commit d8afe1e
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 45 deletions.
69 changes: 34 additions & 35 deletions Source/SysVita/Graphics/GraphicsContextVita.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,9 @@ void IGraphicsContext::EndFrame()
if (!gPostProcessing) {
if (gOverlay) {
glBindTexture(GL_TEXTURE_2D, cur_overlay);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, 960, 544, 0, -1, 1);
gRenderer->DrawUITexture();
}
DrawInGameMenu();
Expand All @@ -206,45 +209,41 @@ void IGraphicsContext::EndFrame()
void IGraphicsContext::UpdateFrame(bool wait_for_vbl)
{
vglStopRendering();
if (gPostProcessing) {
if (emu_fb != 0xDEADBEEF) {
glBindFramebuffer(GL_FRAMEBUFFER, 0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, 960, 544, 0, -1, 1);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
vglStartRendering();
glBindTexture(GL_TEXTURE_2D, emu_fb_tex);
glUseProgram(cur_prog);
if (gPostProcessing && emu_fb != 0xDEADBEEF) {
glBindFramebuffer(GL_FRAMEBUFFER, 0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, 960, 544, 0, -1, 1);
vglStartRendering();
glBindTexture(GL_TEXTURE_2D, emu_fb_tex);
glUseProgram(cur_prog);

int i = 0;
while (prog_uniforms[i].idx != 0xDEADBEEF) {
switch (prog_uniforms[i].type) {
case UNIF_FLOAT:
glUniform1f(prog_uniforms[i].idx, prog_uniforms[i].value[0]);
break;
case UNIF_COLOR:
glUniform3fv(prog_uniforms[i].idx, 1, prog_uniforms[i].value);
break;
default:
break;
}
i++;
int i = 0;
while (prog_uniforms[i].idx != 0xDEADBEEF) {
switch (prog_uniforms[i].type) {
case UNIF_FLOAT:
glUniform1f(prog_uniforms[i].idx, prog_uniforms[i].value[0]);
break;
case UNIF_COLOR:
glUniform3fv(prog_uniforms[i].idx, 1, prog_uniforms[i].value);
break;
default:
break;
}
i++;
}

vglVertexAttribPointerMapped(0, vflux_vertices);
vglVertexAttribPointerMapped(1, vflux_texcoords);
vglDrawObjects(GL_TRIANGLE_FAN, 4, true);
glUseProgram(0);
glEnableClientState(GL_VERTEX_ARRAY);
if (gOverlay) {
glBindTexture(GL_TEXTURE_2D, cur_overlay);
gRenderer->DrawUITexture();
}
DrawInGameMenu();
vglStopRendering();
vglVertexAttribPointerMapped(0, vflux_vertices);
vglVertexAttribPointerMapped(1, vflux_texcoords);
vglDrawObjects(GL_TRIANGLE_FAN, 4, true);
glUseProgram(0);
glEnableClientState(GL_VERTEX_ARRAY);
if (gOverlay) {
glBindTexture(GL_TEXTURE_2D, cur_overlay);
gRenderer->DrawUITexture();
}
DrawInGameMenu();
vglStopRendering();
}
new_frame = true;
if (pause_emu) {
Expand Down
5 changes: 0 additions & 5 deletions Source/SysVita/HLEGraphics/RendererLegacy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -842,11 +842,6 @@ void RendererLegacy::DrawUITexture()
glDisableClientState(GL_COLOR_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, 960, 544, 0, -1, 1);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
vglDrawObjects(GL_TRIANGLE_STRIP, 4, GL_TRUE);
}

Expand Down
5 changes: 0 additions & 5 deletions Source/SysVita/HLEGraphics/RendererModern.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -991,11 +991,6 @@ void RendererModern::DrawUITexture()
glDisableClientState(GL_COLOR_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, 960, 544, 0, -1, 1);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
vglDrawObjects(GL_TRIANGLE_STRIP, 4, GL_TRUE);
}

Expand Down

0 comments on commit d8afe1e

Please sign in to comment.