Refactor: Split up updating the display and render size.

This commit is contained in:
Henrik Rydgård 2022-11-21 14:34:06 +01:00
parent e654f6937a
commit 7596713059
4 changed files with 14 additions and 10 deletions

View File

@ -86,25 +86,22 @@ void FramebufferManagerCommon::Init() {
Resized();
}
bool FramebufferManagerCommon::UpdateSize() {
bool FramebufferManagerCommon::UpdateRenderSize() {
const bool newRender = renderWidth_ != (float)PSP_CoreParameter().renderWidth || renderHeight_ != (float)PSP_CoreParameter().renderHeight;
const int effectiveBloomHack = PSP_CoreParameter().compat.flags().ForceLowerResolutionForEffectsOn ? 3 : g_Config.iBloomHack;
bool newBuffered = !g_Config.bSkipBufferEffects;
const bool newSettings = bloomHack_ != effectiveBloomHack || useBufferedRendering_ != newBuffered;
renderWidth_ = (float)PSP_CoreParameter().renderWidth;
renderHeight_ = (float)PSP_CoreParameter().renderHeight;
renderScaleFactor_ = (float)PSP_CoreParameter().renderScaleFactor;
pixelWidth_ = PSP_CoreParameter().pixelWidth;
pixelHeight_ = PSP_CoreParameter().pixelHeight;
bloomHack_ = effectiveBloomHack;
useBufferedRendering_ = newBuffered;
presentation_->UpdateSize(pixelWidth_, pixelHeight_, renderWidth_, renderHeight_);
presentation_->UpdateRenderSize(renderWidth_, renderHeight_);
return newRender || newSettings;
}
@ -2342,7 +2339,11 @@ void FramebufferManagerCommon::Resized() {
PSP_CoreParameter().renderHeight = h;
PSP_CoreParameter().renderScaleFactor = scaleFactor;
if (UpdateSize()) {
pixelWidth_ = PSP_CoreParameter().pixelWidth;
pixelHeight_ = PSP_CoreParameter().pixelHeight;
presentation_->UpdateDisplaySize(pixelWidth_, pixelHeight_);
if (UpdateRenderSize()) {
DestroyAllFBOs();
}

View File

@ -450,7 +450,7 @@ protected:
void CopyToColorFromOverlappingFramebuffers(VirtualFramebuffer *dest);
void CopyToDepthFromOverlappingFramebuffers(VirtualFramebuffer *dest);
bool UpdateSize();
bool UpdateRenderSize();
void FlushBeforeCopy();
virtual void DecimateFBOs(); // keeping it virtual to let D3D do a little extra

View File

@ -78,9 +78,11 @@ public:
PresentationCommon(Draw::DrawContext *draw);
~PresentationCommon();
void UpdateSize(int w, int h, int rw, int rh) {
void UpdateDisplaySize(int w, int h) {
pixelWidth_ = w;
pixelHeight_ = h;
}
void UpdateRenderSize(int rw, int rh) {
renderWidth_ = rw;
renderHeight_ = rh;
}

View File

@ -712,7 +712,8 @@ void SoftGPU::Resized() {
}
if (presentation_) {
presentation_->UpdateSize(PSP_CoreParameter().pixelWidth, PSP_CoreParameter().pixelHeight, PSP_CoreParameter().renderWidth, PSP_CoreParameter().renderHeight);
presentation_->UpdateDisplaySize(PSP_CoreParameter().pixelWidth, PSP_CoreParameter().pixelHeight);
presentation_->UpdateRenderSize(PSP_CoreParameter().renderWidth, PSP_CoreParameter().renderHeight);
presentation_->UpdatePostShader();
}
}