mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 06:09:50 -06:00
after a good commit lets make some experiments:
implemented fixed efb scale to improve alignment and discard some error caused by incorrect scale. make both plugins work similar. this must improve opengl image quality a lot. also implemented dynamic resizing in opengl, this way the resolution math the windows resolution on resize. this is highly experimental so please test a lot. implemented shader dumping on error thinking in future experiments with shaders. enjoy :) git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5458 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@ -322,27 +322,28 @@ void FramebufferManager::copyToVirtualXFB(u32 xfbAddr, u32 fbWidth, u32 fbHeight
|
||||
it--;
|
||||
}
|
||||
|
||||
float MultiSampleCompensation = 1.0f;
|
||||
float SuperSampleCompensation = 1.0f;
|
||||
float scaleX = Renderer::GetXFBScaleX();
|
||||
float scaleY = Renderer::GetXFBScaleY();
|
||||
if(g_ActiveConfig.iMultisampleMode > 0 && g_ActiveConfig.iMultisampleMode < 4)
|
||||
{
|
||||
switch (g_ActiveConfig.iMultisampleMode)
|
||||
{
|
||||
case 1:
|
||||
MultiSampleCompensation = 2.0f/3.0f;
|
||||
break;
|
||||
case 2:
|
||||
MultiSampleCompensation = 0.5f;
|
||||
SuperSampleCompensation = 0.5f;
|
||||
break;
|
||||
case 3:
|
||||
MultiSampleCompensation = 1.0f/3.0f;
|
||||
SuperSampleCompensation = 1.0f/3.0f;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
};
|
||||
}
|
||||
|
||||
float scaleX = Renderer::GetTargetScaleX() * MultiSampleCompensation ;
|
||||
float scaleY = Renderer::GetTargetScaleY() * MultiSampleCompensation;
|
||||
scaleX *= SuperSampleCompensation ;
|
||||
scaleY *= SuperSampleCompensation;
|
||||
TargetRectangle targetSource,efbSource;
|
||||
efbSource = Renderer::ConvertEFBRectangle(sourceRc);
|
||||
targetSource.top = (sourceRc.top *scaleY);
|
||||
|
Reference in New Issue
Block a user