ddraw: Add missing pitch in callback from EnumDisplayModes().
This commit is contained in:
parent
24f78d7366
commit
6e8b7c4cef
|
@ -1289,7 +1289,12 @@ IDirectDrawImpl_EnumDisplayModes(IDirectDraw7 *iface,
|
||||||
|
|
||||||
PixelFormat_WineD3DtoDD(&callback_sd.u4.ddpfPixelFormat, mode.Format);
|
PixelFormat_WineD3DtoDD(&callback_sd.u4.ddpfPixelFormat, mode.Format);
|
||||||
|
|
||||||
TRACE("Enumerating %dx%d@%d\n", callback_sd.dwWidth, callback_sd.dwHeight, callback_sd.u4.ddpfPixelFormat.u1.dwRGBBitCount);
|
/* Calc pitch and DWORD align like MSDN says */
|
||||||
|
callback_sd.u1.lPitch = (callback_sd.u4.ddpfPixelFormat.u1.dwRGBBitCount / 8) * mode.Width;
|
||||||
|
callback_sd.u1.lPitch = (callback_sd.u1.lPitch + 3) & ~3;
|
||||||
|
|
||||||
|
TRACE("Enumerating %dx%dx%d @%d\n", callback_sd.dwWidth, callback_sd.dwHeight, callback_sd.u4.ddpfPixelFormat.u1.dwRGBBitCount,
|
||||||
|
callback_sd.u2.dwRefreshRate);
|
||||||
|
|
||||||
if(cb(&callback_sd, Context) == DDENUMRET_CANCEL)
|
if(cb(&callback_sd, Context) == DDENUMRET_CANCEL)
|
||||||
{
|
{
|
||||||
|
|
|
@ -108,9 +108,22 @@ static void flushdisplaymodes(void)
|
||||||
|
|
||||||
static HRESULT WINAPI enummodescallback(LPDDSURFACEDESC lpddsd, LPVOID lpContext)
|
static HRESULT WINAPI enummodescallback(LPDDSURFACEDESC lpddsd, LPVOID lpContext)
|
||||||
{
|
{
|
||||||
trace("Width = %i, Height = %i, Refresh Rate = %i\r\n",
|
trace("Width = %i, Height = %i, Refresh Rate = %i, Pitch = %i, flags =%02X\r\n",
|
||||||
lpddsd->dwWidth, lpddsd->dwHeight,
|
lpddsd->dwWidth, lpddsd->dwHeight,
|
||||||
U2(*lpddsd).dwRefreshRate);
|
U2(*lpddsd).dwRefreshRate, lpddsd->lPitch, lpddsd->dwFlags);
|
||||||
|
|
||||||
|
/* Check that the pitch is valid if applicable */
|
||||||
|
if(lpddsd->dwFlags & DDSD_PITCH)
|
||||||
|
{
|
||||||
|
ok(lpddsd->lPitch != 0, "EnumDisplayModes callback with bad pitch\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Check that frequency is valid if applicable */
|
||||||
|
if(lpddsd->dwFlags & DDSD_REFRESHRATE)
|
||||||
|
{
|
||||||
|
ok(lpddsd->dwRefreshRate != 0, "EnumDisplayModes callback with bad refresh rate\n");
|
||||||
|
}
|
||||||
|
|
||||||
adddisplaymode(lpddsd);
|
adddisplaymode(lpddsd);
|
||||||
|
|
||||||
return DDENUMRET_OK;
|
return DDENUMRET_OK;
|
||||||
|
|
Loading…
Reference in New Issue