git-svn-id: file:///home/notaz/opt/svn/PicoDrive@347 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
notaz 2008-02-04 17:56:43 +00:00
parent 471711c0ac
commit 278922b838
2 changed files with 18 additions and 4 deletions

View file

@ -58,7 +58,7 @@ static int DirectDrawInit()
// Create the backbuffer surface
ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE;
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY;
ddsd.dwWidth = EmuWidth;
ddsd.dwHeight = EmuHeight;
@ -110,6 +110,20 @@ static int DirectScreenDDraw()
dst = (int *)((char *)dst + sd.lPitch);
}
}
else if (sd.ddpfPixelFormat.dwRGBBitCount == 24) /* wine uses this for me */
{
void *dst = sd.lpSurface;
for (y = 0; y < EmuHeight; y++)
{
unsigned char *dst1 = (unsigned char *) dst;
for (x = 0; x < EmuWidth; x++, dst1 += 3)
{
int s = *ps++;
dst1[2] = (s&0xf800)>>8; dst1[1] = (s&0x07e0)>>3; dst1[0] = s<<3; // BGR
}
dst = (void *)((char *)dst + sd.lPitch);
}
}
else if (sd.ddpfPixelFormat.dwRGBBitCount == 16)
{
unsigned short *dst = (unsigned short *)sd.lpSurface;