Hardcode the backbuffer size again.
Fix R5G6B5 texture converting, textures should be perfect now.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5697 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
NeoBrainX 2010-06-14 21:31:23 +00:00
parent c1ca3ae96c
commit 67283e54fc
2 changed files with 9 additions and 4 deletions

View File

@ -317,9 +317,10 @@ HRESULT Create(HWND wnd)
mode_desc.Scaling = DXGI_MODE_SCALING_UNSPECIFIED; mode_desc.Scaling = DXGI_MODE_SCALING_UNSPECIFIED;
hr = output->FindClosestMatchingMode(&mode_desc, &swap_chain_desc.BufferDesc, NULL); hr = output->FindClosestMatchingMode(&mode_desc, &swap_chain_desc.BufferDesc, NULL);
if (FAILED(hr)) MessageBox(wnd, _T("Failed to find a supported video mode"), _T("Dolphin Direct3D 11 plugin"), MB_OK | MB_ICONERROR); if (FAILED(hr)) MessageBox(wnd, _T("Failed to find a supported video mode"), _T("Dolphin Direct3D 11 plugin"), MB_OK | MB_ICONERROR);
// TODO: Enable these two lines, they're breaking stuff for SOME reason right now
// xres = swap_chain_desc.BufferDesc.Width; // forcing buffer resolution to xres and yres.. TODO: The new video mode might not actually be supported!
// yres = swap_chain_desc.BufferDesc.Height; swap_chain_desc.BufferDesc.Width = xres;
swap_chain_desc.BufferDesc.Height = yres;
#if defined(_DEBUG) || defined(DEBUGFAST) #if defined(_DEBUG) || defined(DEBUGFAST)
D3D11_CREATE_DEVICE_FLAG device_flags = (D3D11_CREATE_DEVICE_FLAG)(D3D11_CREATE_DEVICE_DEBUG|D3D11_CREATE_DEVICE_SINGLETHREADED); D3D11_CREATE_DEVICE_FLAG device_flags = (D3D11_CREATE_DEVICE_FLAG)(D3D11_CREATE_DEVICE_DEBUG|D3D11_CREATE_DEVICE_SINGLETHREADED);

View File

@ -119,8 +119,12 @@ void ReplaceTexture2D(ID3D11Texture2D* pTexture, const u8* buffer, unsigned int
u32* pBits = (u32*)((u8*)outptr + y * destPitch); u32* pBits = (u32*)((u8*)outptr + y * destPitch);
for (unsigned int x = 0; x < width; x++) for (unsigned int x = 0; x < width; x++)
{ {
// we can't simply shift here, since e.g. 11111 must map to 11111111 and not 11111000
const u16 col = *in; const u16 col = *in;
*pBits = 0xFF000000 | (((col&0x1f)<<3)) | ((col&0x7e0)<<5) | ((col&0xF800)<<8); *pBits = 0xFF000000 | // alpha
((((col&0xF800) << 5) * 255 / 31) & 0xFF0000) | // red
((((col& 0x7e0) << 3) * 255 / 63) & 0xFF00) | // green
(( (col& 0x1f) * 255 / 31)); // blue
pBits++; pBits++;
in++; in++;
} }