mirror of
https://github.com/reactos/reactos.git
synced 2024-07-15 08:56:08 +00:00
start implement DrvGetDirectDrawInfo it is not complete only around 1/3 is done
svn path=/trunk/; revision=23130
This commit is contained in:
parent
2c59aa9330
commit
65316d9faa
|
@ -51,16 +51,17 @@ DrvEnableDirectDraw(
|
||||||
ppdev->ddpfDisplay.dwGBitMask = ppdev->GreenMask;
|
ppdev->ddpfDisplay.dwGBitMask = ppdev->GreenMask;
|
||||||
ppdev->ddpfDisplay.dwBBitMask = ppdev->BlueMask;
|
ppdev->ddpfDisplay.dwBBitMask = ppdev->BlueMask;
|
||||||
|
|
||||||
switch(ppdev->BitsPerPixel)
|
ppdev->ddpfDisplay.dwRGBBitCount=ppdev->BitsPerPixel;
|
||||||
|
ppdev->ddpfDisplay.dwRGBAlphaBitMask = 0;
|
||||||
|
ppdev->ddpfDisplay.dwFlags = DDPF_RGB;
|
||||||
|
|
||||||
|
switch(ppdev->iDitherFormat)
|
||||||
{
|
{
|
||||||
case BMF_8BPP:
|
case BMF_8BPP:
|
||||||
ppdev->ddpfDisplay.dwRGBAlphaBitMask = 0;
|
ppdev->ddpfDisplay.dwFlags |= DDPF_PALETTEINDEXED8;
|
||||||
ppdev->ddpfDisplay.dwRGBBitCount=8;
|
|
||||||
ppdev->ddpfDisplay.dwFlags = DDPF_RGB | DDPF_PALETTEINDEXED8;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BMF_16BPP:
|
case BMF_16BPP:
|
||||||
ppdev->ddpfDisplay.dwRGBBitCount=16;
|
|
||||||
switch(ppdev->RedMask)
|
switch(ppdev->RedMask)
|
||||||
{
|
{
|
||||||
case 0x7C00:
|
case 0x7C00:
|
||||||
|
@ -68,28 +69,23 @@ DrvEnableDirectDraw(
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
ppdev->ddpfDisplay.dwRGBAlphaBitMask = 0;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BMF_24BPP:
|
case BMF_24BPP:
|
||||||
ppdev->ddpfDisplay.dwRGBAlphaBitMask = 0;
|
|
||||||
ppdev->ddpfDisplay.dwRGBBitCount=24;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BMF_32BPP:
|
case BMF_32BPP:
|
||||||
ppdev->ddpfDisplay.dwRGBAlphaBitMask = 0xff000000;
|
ppdev->ddpfDisplay.dwRGBAlphaBitMask = 0xff000000;
|
||||||
ppdev->ddpfDisplay.dwRGBBitCount=32;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
/* FIXME unknown pixelformat */
|
/* FIXME unknown pixel bits */
|
||||||
|
ppdev->ddpfDisplay.dwRGBBitCount=0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//InitDDHAL(ppdev);
|
|
||||||
|
|
||||||
|
|
||||||
if (pCallBacks !=NULL)
|
if (pCallBacks !=NULL)
|
||||||
{
|
{
|
||||||
memset(pCallBacks,0,sizeof(DD_CALLBACKS));
|
memset(pCallBacks,0,sizeof(DD_CALLBACKS));
|
||||||
|
@ -138,6 +134,52 @@ DrvGetDirectDrawInfo(
|
||||||
OUT DWORD *pdwNumFourCCCodes,
|
OUT DWORD *pdwNumFourCCCodes,
|
||||||
OUT DWORD *pdwFourCC)
|
OUT DWORD *pdwFourCC)
|
||||||
{
|
{
|
||||||
return FALSE;
|
PPDEV ppdev = (PPDEV)dhpdev;
|
||||||
|
|
||||||
|
/* rest some data */
|
||||||
|
*pdwNumFourCCCodes = 0;
|
||||||
|
*pdwNumHeaps = 0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
check see if pvmList and pdwFourCC are second call
|
||||||
|
or frist. Secon call we fill in pHalInfo info
|
||||||
|
*/
|
||||||
|
|
||||||
|
if(!(pvmList && pdwFourCC))
|
||||||
|
{
|
||||||
|
|
||||||
|
/* Calc how much memmory is left on the video cards memmory */
|
||||||
|
pHalInfo->ddCaps.dwVidMemTotal = (ppdev->MemHeight - ppdev->ScreenHeight) * ppdev->ScreenDelta;
|
||||||
|
|
||||||
|
/* fill in some basic info that we need */
|
||||||
|
pHalInfo->vmiData.pvPrimary = ppdev->ScreenPtr;
|
||||||
|
pHalInfo->vmiData.fpPrimary = 0;
|
||||||
|
pHalInfo->vmiData.dwDisplayWidth = ppdev->ScreenWidth;
|
||||||
|
pHalInfo->vmiData.dwDisplayHeight = ppdev->ScreenHeight;
|
||||||
|
pHalInfo->vmiData.lDisplayPitch = ppdev->ScreenDelta;
|
||||||
|
pHalInfo->vmiData.ddpfDisplay.dwSize = sizeof(DDPIXELFORMAT);
|
||||||
|
pHalInfo->vmiData.ddpfDisplay.dwFlags = DDPF_RGB;
|
||||||
|
pHalInfo->vmiData.ddpfDisplay.dwRGBBitCount = ppdev->BitsPerPixel;
|
||||||
|
pHalInfo->vmiData.ddpfDisplay.dwRBitMask = ppdev->RedMask;
|
||||||
|
pHalInfo->vmiData.ddpfDisplay.dwGBitMask = ppdev->GreenMask;
|
||||||
|
pHalInfo->vmiData.ddpfDisplay.dwBBitMask = ppdev->BlueMask;
|
||||||
|
pHalInfo->vmiData.dwOffscreenAlign = 4;
|
||||||
|
pHalInfo->vmiData.dwZBufferAlign = 4;
|
||||||
|
pHalInfo->vmiData.dwTextureAlign = 4;
|
||||||
|
|
||||||
|
if ( ppdev->BitsPerPixel == 8 )
|
||||||
|
{
|
||||||
|
pHalInfo->vmiData.ddpfDisplay.dwFlags |= DDPF_PALETTEINDEXED8;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -63,6 +63,8 @@ typedef struct _PDEV
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* DirectX Support */
|
/* DirectX Support */
|
||||||
|
DWORD iDitherFormat;
|
||||||
|
ULONG MemHeight;
|
||||||
BOOL bDDInitialized;
|
BOOL bDDInitialized;
|
||||||
DDPIXELFORMAT ddpfDisplay;
|
DDPIXELFORMAT ddpfDisplay;
|
||||||
DDHALINFO dxHalInfo;
|
DDHALINFO dxHalInfo;
|
||||||
|
|
|
@ -191,6 +191,8 @@ IntInitScreenInfo(
|
||||||
ppdev->ScreenDelta = SelectedMode->ScreenStride;
|
ppdev->ScreenDelta = SelectedMode->ScreenStride;
|
||||||
ppdev->BitsPerPixel = SelectedMode->BitsPerPlane * SelectedMode->NumberOfPlanes;
|
ppdev->BitsPerPixel = SelectedMode->BitsPerPlane * SelectedMode->NumberOfPlanes;
|
||||||
|
|
||||||
|
ppdev->MemHeight = SelectedMode->VideoMemoryBitmapHeight;
|
||||||
|
|
||||||
ppdev->RedMask = SelectedMode->RedMask;
|
ppdev->RedMask = SelectedMode->RedMask;
|
||||||
ppdev->GreenMask = SelectedMode->GreenMask;
|
ppdev->GreenMask = SelectedMode->GreenMask;
|
||||||
ppdev->BlueMask = SelectedMode->BlueMask;
|
ppdev->BlueMask = SelectedMode->BlueMask;
|
||||||
|
|
|
@ -91,6 +91,8 @@ DrvEnableSurface(
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ppdev->iDitherFormat = BitmapType;
|
||||||
|
|
||||||
ScreenSize.cx = ppdev->ScreenWidth;
|
ScreenSize.cx = ppdev->ScreenWidth;
|
||||||
ScreenSize.cy = ppdev->ScreenHeight;
|
ScreenSize.cy = ppdev->ScreenHeight;
|
||||||
|
|
||||||
|
@ -181,8 +183,9 @@ DrvAssertMode(
|
||||||
&ulTemp);
|
&ulTemp);
|
||||||
if (ppdev->BitsPerPixel == 8)
|
if (ppdev->BitsPerPixel == 8)
|
||||||
{
|
{
|
||||||
IntSetPalette(dhpdev, ppdev->PaletteEntries, 0, 256);
|
IntSetPalette(dhpdev, ppdev->PaletteEntries, 0, 256);
|
||||||
}
|
}
|
||||||
|
|
||||||
return Result;
|
return Result;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue