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

View File

@ -450,7 +450,7 @@ protected:
void CopyToColorFromOverlappingFramebuffers(VirtualFramebuffer *dest); void CopyToColorFromOverlappingFramebuffers(VirtualFramebuffer *dest);
void CopyToDepthFromOverlappingFramebuffers(VirtualFramebuffer *dest); void CopyToDepthFromOverlappingFramebuffers(VirtualFramebuffer *dest);
bool UpdateSize(); bool UpdateRenderSize();
void FlushBeforeCopy(); void FlushBeforeCopy();
virtual void DecimateFBOs(); // keeping it virtual to let D3D do a little extra 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(Draw::DrawContext *draw);
~PresentationCommon(); ~PresentationCommon();
void UpdateSize(int w, int h, int rw, int rh) { void UpdateDisplaySize(int w, int h) {
pixelWidth_ = w; pixelWidth_ = w;
pixelHeight_ = h; pixelHeight_ = h;
}
void UpdateRenderSize(int rw, int rh) {
renderWidth_ = rw; renderWidth_ = rw;
renderHeight_ = rh; renderHeight_ = rh;
} }

View File

@ -712,7 +712,8 @@ void SoftGPU::Resized() {
} }
if (presentation_) { 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(); presentation_->UpdatePostShader();
} }
} }