[ros-diffs] [greatlrd] 18871: implement Hal GetScanLine

greatlrd at svn.reactos.com greatlrd at svn.reactos.com
Sun Oct 30 09:41:30 CET 2005


implement Hal GetScanLine
Modified: trunk/reactos/lib/ddraw/hal/ddraw.c
Modified: trunk/reactos/lib/ddraw/main/ddraw.c
Modified: trunk/reactos/lib/ddraw/main/surface.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-30 08:10:43 UTC (rev
18870)
+++ trunk/reactos/lib/ddraw/hal/ddraw.c	2005-10-30 08:41:19 UTC (rev
18871)
@@ -410,3 +410,26 @@

 
 	return WaitVectorData.ddRVal;
 }
+
+HRESULT Hal_DirectDraw_GetScanLine(LPDIRECTDRAW7 iface, LPDWORD
lpdwScanLine)
+{
+	IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
+
+    DDHAL_GETSCANLINEDATA GetScan;
+
+	if
(!(This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous.dwFlags &
DDHAL_CB32_GETSCANLINE)) 
+	{
+		return DDERR_NODRIVERSUPPORT;
+	}
+
+	GetScan.lpDD = &This->DirectDrawGlobal;
+    GetScan.ddRVal = DDERR_NOTPALETTIZED;
+
+	if
(This->DirectDrawGlobal.lpDDCBtmp->HALDD.GetScanLine(&GetScan) !=
DDHAL_DRIVER_HANDLED)
+	{
+	   return DDERR_NODRIVERSUPPORT;
+	}
+
+	*lpdwScanLine = GetScan.ddRVal;
+	return  GetScan.ddRVal;
+}
  _____  

Modified: trunk/reactos/lib/ddraw/main/ddraw.c
--- trunk/reactos/lib/ddraw/main/ddraw.c	2005-10-30 08:10:43 UTC
(rev 18870)
+++ trunk/reactos/lib/ddraw/main/ddraw.c	2005-10-30 08:41:19 UTC
(rev 18871)
@@ -391,7 +391,15 @@

 
 HRESULT WINAPI Main_DirectDraw_GetScanLine(LPDIRECTDRAW7 iface, LPDWORD
lpdwScanLine)
 {
-	DX_STUB;
+	DWORD ret;
+
+	if((ret = Hal_DirectDraw_GetScanLine( iface,  lpdwScanLine)) ==
DD_OK)
+		return ret;
+
+	if((ret = Hel_DirectDraw_GetScanLine( iface,  lpdwScanLine)) ==
DD_OK)
+		return ret;
+
+	return DDERR_NOTINITIALIZED;   	
 }
 
 HRESULT WINAPI Main_DirectDraw_GetVerticalBlankStatus(LPDIRECTDRAW7
iface, LPBOOL status)
@@ -407,7 +415,6 @@
 HRESULT WINAPI Main_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7
iface, DWORD dwFlags,
 
HANDLE h)
 {
-
     DWORD ret;
 
     if((ret = Hal_DirectDraw_WaitForVerticalBlank( iface,  dwFlags, h))
== DD_OK)
  _____  

Modified: trunk/reactos/lib/ddraw/main/surface.c
--- trunk/reactos/lib/ddraw/main/surface.c	2005-10-30 08:10:43 UTC
(rev 18870)
+++ trunk/reactos/lib/ddraw/main/surface.c	2005-10-30 08:41:19 UTC
(rev 18871)
@@ -81,7 +81,7 @@

 	CreateData.lplpSList = pLocal;	
 	
 	/* this is the call we were waiting for */
-	if(CreateData.CreateSurface(&CreateData) ==
DDHAL_DRIVER_NOTHANDLED)
+
if(This->owner->DirectDrawGlobal.lpDDCBtmp->HALDD.CreateSurface(&CreateD
ata) == DDHAL_DRIVER_NOTHANDLED)
 		return DDERR_INVALIDPARAMS;
 	
 	if(CreateData.ddRVal != DD_OK)
  _____  

Modified: trunk/reactos/lib/ddraw/rosdraw.h
--- trunk/reactos/lib/ddraw/rosdraw.h	2005-10-30 08:10:43 UTC (rev
18870)
+++ trunk/reactos/lib/ddraw/rosdraw.h	2005-10-30 08:41:19 UTC (rev
18871)
@@ -94,6 +94,7 @@

 HRESULT Hal_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7 iface, DWORD
dwFlags,
 					HANDLE h); 
 
+HRESULT Hal_DirectDraw_GetScanLine(LPDIRECTDRAW7 iface, LPDWORD
lpdwScanLine);
 
 
 HRESULT Hel_DirectDraw_Initialize (LPDIRECTDRAW7 iface);
@@ -106,8 +107,10 @@
 HRESULT Hel_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7 iface, DWORD
dwFlags,
 					HANDLE h); 
 
+HRESULT Hel_DirectDraw_GetScanLine(LPDIRECTDRAW7 iface, LPDWORD
lpdwScanLine);
 
 
+
 /*********** Macros ***********/
 
 #define DX_STUB \
  _____  

Modified: trunk/reactos/lib/ddraw/soft/ddraw.c
--- trunk/reactos/lib/ddraw/soft/ddraw.c	2005-10-30 08:10:43 UTC
(rev 18870)
+++ trunk/reactos/lib/ddraw/soft/ddraw.c	2005-10-30 08:41:19 UTC
(rev 18871)
@@ -37,3 +37,8 @@

 {
 	DX_STUB;
 }
+
+HRESULT Hel_DirectDraw_GetScanLine(LPDIRECTDRAW7 iface, LPDWORD
lpdwScanLine)
+{
+	DX_STUB;
+}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.reactos.org/pipermail/ros-diffs/attachments/20051030/388565db/attachment.html


More information about the Ros-diffs mailing list