mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-02-11 17:18:37 +00:00
Refactor: Split up updating the display and render size.
This commit is contained in:
parent
e654f6937a
commit
7596713059
@ -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();
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user