Add SSAA flag for post process shaders,

enforces 2x auto resolution, to be used with blurry effects
Also includes a perf. friendly example using simplified gauss filter
This commit is contained in:
LunaMoo 2018-04-01 17:00:10 +02:00
parent 9d2a8a7647
commit 199106cad6
6 changed files with 90 additions and 1 deletions

View file

@ -1752,17 +1752,20 @@ void FramebufferManagerCommon::Resized() {
}
postShaderIsUpscalingFilter_ = shaderInfo ? shaderInfo->isUpscalingFilter : false;
postShaderIsSSAAFilter_ = shaderInfo ? shaderInfo->isSSAAFilter : false;
// Actually, auto mode should be more granular...
// Round up to a zoom factor for the render size.
int zoom = g_Config.iInternalResolution;
if (zoom == 0) {
if (zoom == 0 || postShaderIsSSAAFilter_) {
// auto mode, use the longest dimension
if (!g_Config.IsPortrait()) {
zoom = (PSP_CoreParameter().pixelWidth + 479) / 480;
} else {
zoom = (PSP_CoreParameter().pixelHeight + 479) / 480;
}
if (postShaderIsSSAAFilter_)
zoom *= 2;
}
if (zoom <= 1 || postShaderIsUpscalingFilter_)
zoom = 1;
@ -1871,6 +1874,8 @@ void FramebufferManagerCommon::ShowScreenResolution() {
messageStream << PSP_CoreParameter().renderWidth << "x" << PSP_CoreParameter().renderHeight << " ";
if (postShaderIsUpscalingFilter_) {
messageStream << gr->T("(upscaling)") << " ";
} else if (postShaderIsSSAAFilter_) {
messageStream << gr->T("(supersampling)") << " ";
}
messageStream << gr->T("Window Size") << ": ";
messageStream << PSP_CoreParameter().pixelWidth << "x" << PSP_CoreParameter().pixelHeight;