Author: greatlrd
Date: Tue Jul 18 17:23:38 2006
New Revision: 23141
URL:
http://svn.reactos.org/svn/reactos?rev=23141&view=rev
Log:
fill the DDHALINFO almost to 100% now, we are mising the rops table.
Almost all info that need be send back for frist call is done,
Modified:
trunk/reactos/drivers/video/displays/framebuf/ddenable.c
Modified: trunk/reactos/drivers/video/displays/framebuf/ddenable.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/video/displays/fra…
==============================================================================
--- trunk/reactos/drivers/video/displays/framebuf/ddenable.c (original)
+++ trunk/reactos/drivers/video/displays/framebuf/ddenable.c Tue Jul 18 17:23:38 2006
@@ -135,6 +135,7 @@
OUT DWORD *pdwFourCC)
{
PPDEV ppdev = (PPDEV)dhpdev;
+ int i;
if (ppdev == NULL)
return FALSE;
@@ -162,22 +163,34 @@
*/
if(!(pvmList && pdwFourCC))
- {
+ {
+
RtlZeroMemory(pHalInfo, sizeof(DDHALINFO));
pHalInfo->dwSize = sizeof(DDHALINFO);
pHalInfo->ddCaps.dwCaps = DDCAPS_BLT | DDCAPS_BLTQUEUE |
DDCAPS_BLTCOLORFILL | DDCAPS_READSCANLINE |
DDCAPS_BLTSTRETCH | DDCAPS_COLORKEY | DDCAPS_CANBLTSYSMEM;
- pHalInfo->ddCaps.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN |
DDSCAPS_PRIMARYSURFACE | DDSCAPS_FLIP;
-
+ pHalInfo->ddCaps.dwFXCaps = DDFXCAPS_BLTSTRETCHY | DDFXCAPS_BLTSTRETCHX
|
+ DDFXCAPS_BLTSTRETCHYN | DDFXCAPS_BLTSTRETCHXN |
+ DDFXCAPS_BLTSHRINKY | DDFXCAPS_BLTSHRINKX |
+ DDFXCAPS_BLTSHRINKYN | DDFXCAPS_BLTSHRINKXN
|
+ DDFXCAPS_BLTMIRRORUPDOWN | DDFXCAPS_BLTMIRRORLEFTRIGHT;
+
+ pHalInfo->ddCaps.dwCaps2 = DDCAPS2_NONLOCALVIDMEM | DDCAPS2_NONLOCALVIDMEMCAPS;
+
+ pHalInfo->ddCaps.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_PRIMARYSURFACE |
DDSCAPS_FLIP;
+
+ pHalInfo->ddCaps.dwCKeyCaps = DDCKEYCAPS_SRCBLT | DDCKEYCAPS_SRCBLTCLRSPACE;
+
+ pHalInfo->ddCaps.dwSVBCaps = DDCAPS_BLT;
+ pHalInfo->ddCaps.ddsCaps.dwCaps |= DDSCAPS_LOCALVIDMEM | DDSCAPS_NONLOCALVIDMEM;
/* 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.pvPrimary = ppdev->ScreenPtr;
pHalInfo->vmiData.dwDisplayWidth = ppdev->ScreenWidth;
pHalInfo->vmiData.dwDisplayHeight = ppdev->ScreenHeight;
pHalInfo->vmiData.lDisplayPitch = ppdev->ScreenDelta;
@@ -187,15 +200,26 @@
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;
+ pHalInfo->vmiData.dwOffscreenAlign = 4;
if ( ppdev->BitsPerPixel == 8 )
{
pHalInfo->vmiData.ddpfDisplay.dwFlags |= DDPF_PALETTEINDEXED8;
- }
+ }
+
+ /* FIXME
+ Config the rops we do not doing that yet
+ for we need write the rops table
+ */
+ for(i=0;i<DD_ROP_SPACE;i++ )
+ {
+ // pHALInfo->ddCaps.dwSVBRops[i] = rops[i];
+ // pHALInfo->ddCaps.dwRops[i] = rops[i];
+ }
}
+
+ /* Now fix the memory alloc and other stuff */
+
return TRUE;
}