D3D viewport fix to get rid of the black borders. Seems to work fine in Window mode, not working yet for full screen mode.

Also a minor fix for the command line switches to specify pad and wiimote plugins.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4215 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
rice1964 2009-09-06 17:47:48 +00:00
parent 21e0bad21e
commit aef1f943f3
2 changed files with 22 additions and 8 deletions

View File

@ -317,11 +317,15 @@ bool DolphinApp::OnInit()
}
if (selectPadPlugin && padPluginFilename != wxEmptyString)
{
SConfig::GetInstance().m_LocalCoreStartupParameter.m_strPadPlugin[0] = std::string(padPluginFilename.mb_str());
int k;
for(k=0;k<4;k++)
SConfig::GetInstance().m_LocalCoreStartupParameter.m_strPadPlugin[k] = std::string(padPluginFilename.mb_str());
}
if (selectWiimotePlugin && wiimotePluginFilename != wxEmptyString)
{
SConfig::GetInstance().m_LocalCoreStartupParameter.m_strWiimotePlugin[0] = std::string(wiimotePluginFilename.mb_str());
int k;
for(k=0;k<4;k++)
SConfig::GetInstance().m_LocalCoreStartupParameter.m_strWiimotePlugin[k] = std::string(wiimotePluginFilename.mb_str());
}

View File

@ -17,6 +17,7 @@
#include "D3DBase.h"
#include "Render.h"
#include "XFStructs.h"
namespace D3D
@ -107,15 +108,14 @@ namespace D3D
pp->MultiSampleType = adapters[adapter].aa_levels[aa_mode].ms_setting;
pp->MultiSampleQuality = adapters[adapter].aa_levels[aa_mode].qual_setting;
pp->Flags = D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL;
//D3DPRESENTFLAG_LOCKABLE_BACKBUFFER
//pp->Flags = D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL;
if (fullScreen)
{
xres = pp->BackBufferWidth = FSResX;
yres = pp->BackBufferHeight = FSResY;
pp->SwapEffect = D3DSWAPEFFECT_DISCARD;
//pp->SwapEffect = D3DSWAPEFFECT_DISCARD;
pp->SwapEffect = D3DSWAPEFFECT_COPY;
pp->Windowed = FALSE;
}
else
@ -123,7 +123,8 @@ namespace D3D
GetClientRect(hWnd, &client);
xres = pp->BackBufferWidth = client.right - client.left;
yres = pp->BackBufferHeight = client.bottom - client.top;
pp->SwapEffect = D3DSWAPEFFECT_DISCARD;
//pp->SwapEffect = D3DSWAPEFFECT_DISCARD;
pp->SwapEffect = D3DSWAPEFFECT_COPY;
pp->PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
pp->Windowed = TRUE;
}
@ -396,7 +397,16 @@ namespace D3D
if (dev)
{
dev->EndScene();
dev->Present( NULL, NULL, NULL, NULL );
// copying the content from the backbuffer to the front buffer
// and adjust the aspect ratio
// The buffers are created with D3DSWAPEFFECT_COPY, otherwise the rescaling won't work
int Width = (int)ceil(abs((int)(2 * xfregs.rawViewport[0])) * Renderer::GetTargetScaleX());
int Height = (int)ceil(abs((int)(2 * xfregs.rawViewport[1])) * Renderer::GetTargetScaleY());
RECT src={0,0,Width,Height};
dev->Present( &src, NULL, NULL, NULL );
}
if (fullScreen != nextFullScreen)