[ros-diffs] [greatlrd] 18864: Implement Hal GetAvailableVidMem and is it working in windows

greatlrd at svn.reactos.com greatlrd at svn.reactos.com
Sun Oct 30 02:07:15 CET 2005


Implement Hal GetAvailableVidMem  and is it working in windows
Modified: trunk/reactos/lib/ddraw/hal/ddraw.c
Modified: trunk/reactos/lib/ddraw/main/ddraw.c
Modified: trunk/reactos/lib/ddraw/rosdraw.h
Modified: trunk/reactos/lib/ddraw/soft/ddraw.c
  _____  

Modified: trunk/reactos/lib/ddraw/hal/ddraw.c
--- trunk/reactos/lib/ddraw/hal/ddraw.c	2005-10-29 23:40:05 UTC (rev
18863)
+++ trunk/reactos/lib/ddraw/hal/ddraw.c	2005-10-30 01:06:56 UTC (rev
18864)
@@ -354,3 +354,33 @@

 	if(This->DirectDrawGlobal.lpD3DGlobalDriverData)
 		HeapFree(GetProcessHeap(), 0,
(PVOID)This->DirectDrawGlobal.lpD3DGlobalDriverData);
 }
+
+
+HRESULT Hal_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 iface,
LPDDSCAPS2 ddscaps,
+				   LPDWORD total, LPDWORD free)
+{
+	IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
+	
+	DDHAL_GETAVAILDRIVERMEMORYDATA  mem;
+
+	if
(!(This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous.dwFlags &
DDHAL_MISCCB32_GETAVAILDRIVERMEMORY)) 
+	{
+		return DDERR_NODRIVERSUPPORT;
+	}
+
+	mem.lpDD = &This->DirectDrawGlobal;	
+	if
(This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous.GetAvailDriverMemo
ry(&mem) != DDHAL_DRIVER_HANDLED)
+	{
+	   return DDERR_NODRIVERSUPPORT;
+	}
+
+
+	ddscaps->dwCaps = mem.DDSCaps.dwCaps;
+	ddscaps->dwCaps2 = mem.ddsCapsEx.dwCaps2;
+    ddscaps->dwCaps3 = mem.ddsCapsEx.dwCaps3;
+	ddscaps->dwCaps4 = mem.ddsCapsEx.dwCaps4;
+	*total = mem.dwTotal;
+	*free = mem.dwFree;
+
+	return mem.ddRVal;
+}
  _____  

Modified: trunk/reactos/lib/ddraw/main/ddraw.c
--- trunk/reactos/lib/ddraw/main/ddraw.c	2005-10-29 23:40:05 UTC
(rev 18863)
+++ trunk/reactos/lib/ddraw/main/ddraw.c	2005-10-30 01:06:56 UTC
(rev 18864)
@@ -352,7 +352,8 @@

     DDCOLORKEY    ddckCKSrcOverlay;
     DDCOLORKEY    ddckCKSrcBlt;
 	*/
-
+    
+	
 
RtlCopyMemory(&pDDSD->ddpfPixelFormat,&This->DirectDrawGlobal.vmiData.dd
pfDisplay,sizeof(DDPIXELFORMAT));
 
RtlCopyMemory(&pDDSD->ddsCaps,&This->DirectDrawGlobal.ddCaps,sizeof(DDCO
RECAPS));
 	
@@ -412,9 +413,18 @@
 
 HRESULT WINAPI Main_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 iface,
LPDDSCAPS2 ddscaps,
 				   LPDWORD total, LPDWORD free)
-{
-     
-   	DX_STUB;
+{	
+	DWORD ret;
+
+     if((ret = Hal_DirectDraw_GetAvailableVidMem
(iface,ddscaps,total,free)) == DD_OK)
+		return ret;
+
+	if((ret = Hel_DirectDraw_GetAvailableVidMem
(iface,ddscaps,total,free)) == DD_OK)
+		return ret;
+
+
+	return DDERR_NOTINITIALIZED;
+
 }
 
HRESULT WINAPI Main_DirectDraw_GetSurfaceFromDC(LPDIRECTDRAW7 iface, HDC
hdc,
  _____  

Modified: trunk/reactos/lib/ddraw/rosdraw.h
--- trunk/reactos/lib/ddraw/rosdraw.h	2005-10-29 23:40:05 UTC (rev
18863)
+++ trunk/reactos/lib/ddraw/rosdraw.h	2005-10-30 01:06:56 UTC (rev
18864)
@@ -88,10 +88,18 @@

 HRESULT Hal_DirectDraw_SetCooperativeLevel (LPDIRECTDRAW7 iface);
 VOID Hal_DirectDraw_Release (LPDIRECTDRAW7 iface);
 
+HRESULT Hal_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 iface,
LPDDSCAPS2 ddscaps,
+				   LPDWORD total, LPDWORD free);
+
+
 HRESULT Hel_DirectDraw_Initialize (LPDIRECTDRAW7 iface);
 HRESULT Hel_DirectDraw_SetCooperativeLevel (LPDIRECTDRAW7 iface);
 VOID Hel_DirectDraw_Release (LPDIRECTDRAW7 iface);
 
+HRESULT Hel_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 iface,
LPDDSCAPS2 ddscaps,
+				   LPDWORD total, LPDWORD free);
+
+
 /*********** Macros ***********/
 
 #define DX_STUB \
  _____  

Modified: trunk/reactos/lib/ddraw/soft/ddraw.c
--- trunk/reactos/lib/ddraw/soft/ddraw.c	2005-10-29 23:40:05 UTC
(rev 18863)
+++ trunk/reactos/lib/ddraw/soft/ddraw.c	2005-10-30 01:06:56 UTC
(rev 18864)
@@ -24,3 +24,10 @@

 VOID Hel_DirectDraw_Release (LPDIRECTDRAW7 iface) 
 {
 }
+
+
+HRESULT Hel_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 iface,
LPDDSCAPS2 ddscaps,
+				   LPDWORD total, LPDWORD free)	
+{
+	DX_STUB;
+}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.reactos.org/pipermail/ros-diffs/attachments/20051030/05d88520/attachment.html


More information about the Ros-diffs mailing list