diff --git a/UI/GameSettingsScreen.cpp b/UI/GameSettingsScreen.cpp index d6292625ef..76740156d8 100644 --- a/UI/GameSettingsScreen.cpp +++ b/UI/GameSettingsScreen.cpp @@ -162,6 +162,7 @@ void GameSettingsScreen::CreateViews() { graphicsSettings->Add(new CheckBox(&g_Config.bUseVBO, gs->T("Stream VBO"))); graphicsSettings->Add(new CheckBox(&g_Config.SSAntiAliasing, gs->T("Anti Aliasing"))); graphicsSettings->Add(new CheckBox(&g_Config.bFramebuffersToMem, gs->T("Read Framebuffer to memory"))); + graphicsSettings->Add(new CheckBox(&g_Config.bFramebuffersCPUConvert, gs->T("Convert Framebuffer using CPU"))); // TODO: Does frame rate belong among the graphics settings? graphicsSettings->Add(new ItemHeader(gs->T("Frame rate"))); diff --git a/UI/MenuScreens.cpp b/UI/MenuScreens.cpp index 439af5d5f6..32d6175bf7 100644 --- a/UI/MenuScreens.cpp +++ b/UI/MenuScreens.cpp @@ -954,7 +954,7 @@ void GraphicsScreenP1::render() { g_Config.iVSyncInterval = Vsync ? 1 : 0; UICheckBox(GEN_ID, x, y += stride, gs->T("Fullscreen"), ALIGN_TOPLEFT, &g_Config.bFullScreen); #endif - UICheckBox(GEN_ID, x, y += stride, gs->T("Display Raw Framebuffer"), ALIGN_TOPLEFT, &g_Config.bDisplayFramebuffer); + if (UICheckBox(GEN_ID, x, y += stride, gs->T("Buffered Rendering"), ALIGN_TOPLEFT, &g_Config.bBufferedRendering)) { if (gpu) gpu->Resized(); @@ -964,6 +964,10 @@ void GraphicsScreenP1::render() { if (gpu) gpu->Resized(); } + if (UICheckBox(GEN_ID, x + 60, y += stride, gs->T("Convert Framebuffers using CPU"), ALIGN_TOPLEFT, &g_Config.bFramebuffersCPUConvert)) { + if (gpu) + gpu->Resized(); + } if (UICheckBox(GEN_ID, x + 60, y += stride, gs->T("AA", "Anti-Aliasing"), ALIGN_TOPLEFT, &g_Config.SSAntiAliasing)) { if (gpu) gpu->Resized(); @@ -1245,7 +1249,9 @@ void GraphicsScreenP3::render() { y += 20; } else g_Config.iFrameSkip = 0; - + + UICheckBox(GEN_ID, x, y += stride, gs->T("Display Raw Framebuffer"), ALIGN_TOPLEFT, &g_Config.bDisplayFramebuffer); + UIEnd(); } diff --git a/Windows/WndMainWindow.cpp b/Windows/WndMainWindow.cpp index 2f84448a49..29b5457fd1 100644 --- a/Windows/WndMainWindow.cpp +++ b/Windows/WndMainWindow.cpp @@ -734,6 +734,13 @@ namespace MainWindow gpu->Resized(); // easy way to force a clear... break; + case ID_OPTIONS_FBOCPUCONVERT: + g_Config.bFramebuffersCPUConvert = !g_Config.bFramebuffersCPUConvert; + osm.ShowOnOff(g->T("Convert Framebuffer using CPU"), g_Config.bFramebuffersCPUConvert); + if(gpu) + gpu->Resized(); // easy way to force a clear... + break; + case ID_OPTIONS_SHOWDEBUGSTATISTICS: g_Config.bShowDebugStats = !g_Config.bShowDebugStats; break; @@ -1036,6 +1043,7 @@ namespace MainWindow CHECKITEM(ID_CPU_DYNAREC,g_Config.bJit == true); CHECKITEM(ID_OPTIONS_BUFFEREDRENDERING, g_Config.bBufferedRendering); CHECKITEM(ID_OPTIONS_READFBOTOMEMORY, g_Config.bFramebuffersToMem); + CHECKITEM(ID_OPTIONS_FBOCPUCONVERT, g_Config.bFramebuffersCPUConvert); CHECKITEM(ID_OPTIONS_SHOWDEBUGSTATISTICS, g_Config.bShowDebugStats); CHECKITEM(ID_OPTIONS_HARDWARETRANSFORM, g_Config.bHardwareTransform); CHECKITEM(ID_OPTIONS_FASTMEMORY, g_Config.bFastMemory); diff --git a/Windows/ppsspp.rc b/Windows/ppsspp.rc index 4ff2ba8e6b..4f199195df 100644 Binary files a/Windows/ppsspp.rc and b/Windows/ppsspp.rc differ diff --git a/Windows/resource.h b/Windows/resource.h index 8a8d02c2d1..164f4f46c2 100644 Binary files a/Windows/resource.h and b/Windows/resource.h differ