Move the hack to FramebufferCommon.cpp and rename.
This commit is contained in:
parent
722d34e09a
commit
ff9d33d2a7
5 changed files with 31 additions and 77 deletions
|
@ -737,3 +737,29 @@ void FramebufferManagerCommon::NotifyBlockTransferAfter(u32 dstBasePtr, int dstS
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FramebufferManagerCommon::SetRenderSize(VirtualFramebuffer *vfb) {
|
||||||
|
float renderWidthFactor = (float)PSP_CoreParameter().renderWidth / 480.0f;
|
||||||
|
float renderHeightFactor = (float)PSP_CoreParameter().renderHeight / 272.0f;
|
||||||
|
bool force1x = false;
|
||||||
|
switch (g_Config.iBloomHack) {
|
||||||
|
case 1:
|
||||||
|
force1x = vfb->bufferWidth <= 128 || vfb->bufferHeight <= 64;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
force1x = vfb->bufferWidth <= 256 || vfb->bufferHeight <= 128;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
force1x = vfb->bufferWidth <= 480 || vfb->bufferHeight <= 272;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (force1x && g_Config.iInternalResolution != 1) {
|
||||||
|
vfb->renderWidth = vfb->bufferWidth;
|
||||||
|
vfb->renderHeight = vfb->bufferHeight;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
vfb->renderWidth = vfb->bufferWidth * renderWidthFactor;
|
||||||
|
vfb->renderHeight = vfb->bufferHeight * renderHeightFactor;
|
||||||
|
}
|
||||||
|
}
|
|
@ -170,6 +170,7 @@ public:
|
||||||
SetColorUpdated(currentRenderVfb_);
|
SetColorUpdated(currentRenderVfb_);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
void SetRenderSize(VirtualFramebuffer *vfb);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void DisableState() = 0;
|
virtual void DisableState() = 0;
|
||||||
|
|
|
@ -378,44 +378,7 @@ namespace DX9 {
|
||||||
vfb->bufferHeight = std::max(vfb->bufferHeight, h);
|
vfb->bufferHeight = std::max(vfb->bufferHeight, h);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_Config.iInternalResolution == 1) {
|
SetRenderSize(vfb);
|
||||||
vfb->renderWidth = vfb->bufferWidth * renderWidthFactor;
|
|
||||||
vfb->renderHeight = vfb->bufferHeight * renderHeightFactor;
|
|
||||||
} else {
|
|
||||||
switch (g_Config.iBloomHack) {
|
|
||||||
case 0:
|
|
||||||
vfb->renderWidth = vfb->bufferWidth * renderWidthFactor;
|
|
||||||
vfb->renderHeight = vfb->bufferHeight * renderHeightFactor;
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
if (vfb->bufferWidth <= 128 || vfb->bufferHeight <= 64) {
|
|
||||||
vfb->renderWidth = vfb->bufferWidth;
|
|
||||||
vfb->renderHeight = vfb->bufferHeight;
|
|
||||||
} else {
|
|
||||||
vfb->renderWidth = vfb->bufferWidth * renderWidthFactor;
|
|
||||||
vfb->renderHeight = vfb->bufferHeight * renderHeightFactor;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
if (vfb->bufferWidth <= 256 || vfb->bufferHeight <= 128) {
|
|
||||||
vfb->renderWidth = vfb->bufferWidth;
|
|
||||||
vfb->renderHeight = vfb->bufferHeight;
|
|
||||||
} else {
|
|
||||||
vfb->renderWidth = vfb->bufferWidth * renderWidthFactor;
|
|
||||||
vfb->renderHeight = vfb->bufferHeight * renderHeightFactor;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
if (vfb->bufferWidth < 480 || vfb->bufferHeight < 272) {
|
|
||||||
vfb->renderWidth = vfb->bufferWidth;
|
|
||||||
vfb->renderHeight = vfb->bufferHeight;
|
|
||||||
} else {
|
|
||||||
vfb->renderWidth = vfb->bufferWidth * renderWidthFactor;
|
|
||||||
vfb->renderHeight = vfb->bufferHeight * renderHeightFactor;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool trueColor = g_Config.bTrueColor;
|
bool trueColor = g_Config.bTrueColor;
|
||||||
if (hackForce04154000Download_ && vfb->fb_address == 0x00154000) {
|
if (hackForce04154000Download_ && vfb->fb_address == 0x00154000) {
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
|
|
||||||
#include "GPU/Common/PostShader.h"
|
#include "GPU/Common/PostShader.h"
|
||||||
#include "GPU/Common/TextureDecoder.h"
|
#include "GPU/Common/TextureDecoder.h"
|
||||||
|
#include "GPU/Common/FramebufferCommon.h"
|
||||||
#include "GPU/Debugger/Stepping.h"
|
#include "GPU/Debugger/Stepping.h"
|
||||||
#include "GPU/GLES/Framebuffer.h"
|
#include "GPU/GLES/Framebuffer.h"
|
||||||
#include "GPU/GLES/TextureCache.h"
|
#include "GPU/GLES/TextureCache.h"
|
||||||
|
@ -667,44 +668,7 @@ void FramebufferManager::ResizeFramebufFBO(VirtualFramebuffer *vfb, u16 w, u16 h
|
||||||
vfb->bufferHeight = std::max(vfb->bufferHeight, h);
|
vfb->bufferHeight = std::max(vfb->bufferHeight, h);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_Config.iInternalResolution==1) {
|
SetRenderSize(vfb);
|
||||||
vfb->renderWidth = vfb->bufferWidth * renderWidthFactor;
|
|
||||||
vfb->renderHeight = vfb->bufferHeight * renderHeightFactor;
|
|
||||||
} else {
|
|
||||||
switch (g_Config.iBloomHack) {
|
|
||||||
case 0:
|
|
||||||
vfb->renderWidth = vfb->bufferWidth * renderWidthFactor;
|
|
||||||
vfb->renderHeight = vfb->bufferHeight * renderHeightFactor;
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
if (vfb->bufferWidth <= 128 || vfb->bufferHeight <= 64) {
|
|
||||||
vfb->renderWidth = vfb->bufferWidth;
|
|
||||||
vfb->renderHeight = vfb->bufferHeight;
|
|
||||||
} else {
|
|
||||||
vfb->renderWidth = vfb->bufferWidth * renderWidthFactor;
|
|
||||||
vfb->renderHeight = vfb->bufferHeight * renderHeightFactor;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
if (vfb->bufferWidth <= 256 || vfb->bufferHeight <= 128) {
|
|
||||||
vfb->renderWidth = vfb->bufferWidth;
|
|
||||||
vfb->renderHeight = vfb->bufferHeight;
|
|
||||||
} else {
|
|
||||||
vfb->renderWidth = vfb->bufferWidth * renderWidthFactor;
|
|
||||||
vfb->renderHeight = vfb->bufferHeight * renderHeightFactor;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
if (vfb->bufferWidth < 480 || vfb->bufferHeight < 272) {
|
|
||||||
vfb->renderWidth = vfb->bufferWidth;
|
|
||||||
vfb->renderHeight = vfb->bufferHeight;
|
|
||||||
} else {
|
|
||||||
vfb->renderWidth = vfb->bufferWidth * renderWidthFactor;
|
|
||||||
vfb->renderHeight = vfb->bufferHeight * renderHeightFactor;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool trueColor = g_Config.bTrueColor;
|
bool trueColor = g_Config.bTrueColor;
|
||||||
if (hackForce04154000Download_ && vfb->fb_address == 0x00154000) {
|
if (hackForce04154000Download_ && vfb->fb_address == 0x00154000) {
|
||||||
|
|
|
@ -288,7 +288,7 @@ void GameSettingsScreen::CreateViews() {
|
||||||
depthRange->SetDisabledPtr(&g_Config.bSoftwareRendering);
|
depthRange->SetDisabledPtr(&g_Config.bSoftwareRendering);
|
||||||
|
|
||||||
static const char *bloomHackOptions[] = { "Off", "Safe", "Balanced", "Aggressive" };
|
static const char *bloomHackOptions[] = { "Off", "Safe", "Balanced", "Aggressive" };
|
||||||
PopupMultiChoice *bloomHack = graphicsSettings->Add(new PopupMultiChoice(&g_Config.iBloomHack, gs->T("Bloom Effect Smoothing"), bloomHackOptions, 0, ARRAY_SIZE(bloomHackOptions), gs, screenManager()));
|
PopupMultiChoice *bloomHack = graphicsSettings->Add(new PopupMultiChoice(&g_Config.iBloomHack, gs->T("Lower resolution for effects (reduces artifacts)"), bloomHackOptions, 0, ARRAY_SIZE(bloomHackOptions), gs, screenManager()));
|
||||||
bloomHackEnable_ = !g_Config.bSoftwareRendering && (g_Config.iInternalResolution != 1);
|
bloomHackEnable_ = !g_Config.bSoftwareRendering && (g_Config.iInternalResolution != 1);
|
||||||
bloomHack->SetEnabledPtr(&bloomHackEnable_);
|
bloomHack->SetEnabledPtr(&bloomHackEnable_);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue