Author: greatlrd Date: Sun Jul 16 15:46:30 2006 New Revision: 23072
URL: http://svn.reactos.org/svn/reactos?rev=23072&view=rev Log: Start adding basic directdraw hal 2d interface, so we have a directdraw hal interface to test with, for vmware server does not come with directdraw interface for the the driver. for now everthing is stubed.
Added: trunk/reactos/drivers/video/displays/framebuf/dd.c (with props) trunk/reactos/drivers/video/displays/framebuf/ddenable.c (with props) Modified: trunk/reactos/drivers/video/displays/framebuf/enable.c trunk/reactos/drivers/video/displays/framebuf/framebuf.h trunk/reactos/drivers/video/displays/framebuf/framebuf.rbuild
Added: trunk/reactos/drivers/video/displays/framebuf/dd.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/video/displays/fram... ============================================================================== --- trunk/reactos/drivers/video/displays/framebuf/dd.c (added) +++ trunk/reactos/drivers/video/displays/framebuf/dd.c Sun Jul 16 15:46:30 2006 @@ -1,0 +1,24 @@ +/* + * ReactOS Generic Framebuffer display driver directdraw interface + * + * Copyright (C) 2006 Magnus Olsen + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +/* Here we put in all 2d api for directdraw and redirect some of them to GDI api */ + +#include "framebuf.h" +
Propchange: trunk/reactos/drivers/video/displays/framebuf/dd.c ------------------------------------------------------------------------------ svn:eol-style = native
Added: trunk/reactos/drivers/video/displays/framebuf/ddenable.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/video/displays/fram... ============================================================================== --- trunk/reactos/drivers/video/displays/framebuf/ddenable.c (added) +++ trunk/reactos/drivers/video/displays/framebuf/ddenable.c Sun Jul 16 15:46:30 2006 @@ -1,0 +1,82 @@ +/* + * ReactOS Generic Framebuffer display driver directdraw interface + * + * Copyright (C) 2006 Magnus Olsen + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#include "framebuf.h" + +VOID DDKAPI +DrvDisableDirectDraw( IN DHPDEV dhpdev) +{ + PPDEV ppdev = (PPDEV)dhpdev; + ppdev->bDDInitialized = FALSE; + /* Add Clean up code here if we need it + when we shout down directx interface */ +} + +BOOL DDKAPI +DrvEnableDirectDraw( + IN DHPDEV dhpdev, + OUT DD_CALLBACKS *pCallBacks, + OUT DD_SURFACECALLBACKS *pSurfaceCallBacks, + OUT DD_PALETTECALLBACKS *pPaletteCallBacks) +{ + PPDEV ppdev = (PPDEV)dhpdev; + + if (ppdev->bDDInitialized == TRUE) + { + return TRUE; + } + + if (pCallBacks !=NULL) + { + memset(pCallBacks,0,sizeof(DD_CALLBACKS)); + + /* FILL pCallBacks with hal stuff */ + } + + if (pSurfaceCallBacks !=NULL) + { + memset(pSurfaceCallBacks,0,sizeof(DD_SURFACECALLBACKS)); + + /* FILL pSurfaceCallBacks with hal stuff */ + } + + if (pPaletteCallBacks !=NULL) + { + memset(pPaletteCallBacks,0,sizeof(DD_PALETTECALLBACKS)); + + /* FILL pPaletteCallBacks with hal stuff */ + } + + ppdev->bDDInitialized = TRUE; + return ppdev->bDDInitialized; +} + +BOOL DDKAPI +DrvGetDirectDrawInfo( + IN DHPDEV dhpdev, + OUT DD_HALINFO *pHalInfo, + OUT DWORD *pdwNumHeaps, + OUT VIDEOMEMORY *pvmList, + OUT DWORD *pdwNumFourCCCodes, + OUT DWORD *pdwFourCC) +{ + return FALSE; +} +
Propchange: trunk/reactos/drivers/video/displays/framebuf/ddenable.c ------------------------------------------------------------------------------ svn:eol-style = native
Modified: trunk/reactos/drivers/video/displays/framebuf/enable.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/video/displays/fram... ============================================================================== --- trunk/reactos/drivers/video/displays/framebuf/enable.c (original) +++ trunk/reactos/drivers/video/displays/framebuf/enable.c Sun Jul 16 15:46:30 2006 @@ -31,7 +31,12 @@ {INDEX_DrvGetModes, (PFN)DrvGetModes}, {INDEX_DrvSetPalette, (PFN)DrvSetPalette}, {INDEX_DrvSetPointerShape, (PFN)DrvSetPointerShape}, - {INDEX_DrvMovePointer, (PFN)DrvMovePointer} + {INDEX_DrvMovePointer, (PFN)DrvMovePointer}, + {INDEX_DrvGetDirectDrawInfo, (PFN) DrvGetDirectDrawInfo }, + {INDEX_DrvEnableDirectDraw, (PFN) DrvEnableDirectDraw }, + {INDEX_DrvDisableDirectDraw, (PFN) DrvDisableDirectDraw } + + };
/*
Modified: trunk/reactos/drivers/video/displays/framebuf/framebuf.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/video/displays/fram... ============================================================================== --- trunk/reactos/drivers/video/displays/framebuf/framebuf.h (original) +++ trunk/reactos/drivers/video/displays/framebuf/framebuf.h Sun Jul 16 15:46:30 2006 @@ -52,7 +52,7 @@ PVOID ScreenPtr; HPALETTE DefaultPalette; PALETTEENTRY *PaletteEntries; - + #ifdef EXPERIMENTAL_MOUSE_CURSOR_SUPPORT VIDEO_POINTER_ATTRIBUTES PointerAttributes; XLATEOBJ *PointerXlateObject; @@ -61,12 +61,38 @@ HSURF PointerSaveSurface; POINTL PointerHotSpot; #endif + + /* DirectX Support */ + BOOL bDDInitialized; } PDEV, *PPDEV;
#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
#define DEVICE_NAME L"framebuf" #define ALLOC_TAG TAG('F','B','U','F') + +VOID STDCALL +DrvDisableDirectDraw( + IN DHPDEV dhpdev); + + +BOOL STDCALL +DrvEnableDirectDraw( + IN DHPDEV dhpdev, + OUT DD_CALLBACKS *pCallBacks, + OUT DD_SURFACECALLBACKS *pSurfaceCallBacks, + OUT DD_PALETTECALLBACKS *pPaletteCallBacks); + + +BOOL STDCALL +DrvGetDirectDrawInfo( + IN DHPDEV dhpdev, + OUT DD_HALINFO *pHalInfo, + OUT DWORD *pdwNumHeaps, + OUT VIDEOMEMORY *pvmList, + OUT DWORD *pdwNumFourCCCodes, + OUT DWORD *pdwFourCC); +
DHPDEV STDCALL DrvEnablePDEV( @@ -157,4 +183,7 @@ IN ULONG iStart, IN ULONG cColors);
+ + #endif /* FRAMEBUF_H */ +
Modified: trunk/reactos/drivers/video/displays/framebuf/framebuf.rbuild URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/video/displays/fram... ============================================================================== --- trunk/reactos/drivers/video/displays/framebuf/framebuf.rbuild (original) +++ trunk/reactos/drivers/video/displays/framebuf/framebuf.rbuild Sun Jul 16 15:46:30 2006 @@ -9,5 +9,7 @@ <file>pointer.c</file> <file>screen.c</file> <file>surface.c</file> + <file>ddenable.c</file> + <file>dd.c</file> <file>framebuf.rc</file> </module>