[ros-diffs] [greatlrd] 21573: Implement surface unlock
greatlrd at svn.reactos.org
greatlrd at svn.reactos.org
Thu Apr 13 08:29:02 CEST 2006
Author: greatlrd
Date: Thu Apr 13 10:29:01 2006
New Revision: 21573
URL: http://svn.reactos.ru/svn/reactos?rev=21573&view=rev
Log:
Implement surface unlock
Modified:
trunk/reactos/dll/directx/ddraw/hal/surface_hal.c
Modified: trunk/reactos/dll/directx/ddraw/hal/surface_hal.c
URL: http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/directx/ddraw/hal/surface_hal.c?rev=21573&r1=21572&r2=21573&view=diff
==============================================================================
--- trunk/reactos/dll/directx/ddraw/hal/surface_hal.c (original)
+++ trunk/reactos/dll/directx/ddraw/hal/surface_hal.c Thu Apr 13 10:29:01 2006
@@ -93,7 +93,7 @@
{
IDirectDrawSurfaceImpl* This = (IDirectDrawSurfaceImpl*)iface;
-
+
DDHAL_LOCKDATA Lock;
if (prect!=NULL)
@@ -115,16 +115,19 @@
if (!DdResetVisrgn(&This->Surf->mPrimaryLocal, NULL))
{
- // derr(L"DirectDrawImpl[%08x]::_clear DdResetVisrgn failed", this);
+ OutputDebugStringA("Here DdResetVisrgn lock");
+ return DDERR_UNSUPPORTED;
}
if (Lock.Lock(&Lock)!= DDHAL_DRIVER_HANDLED)
{
- return DDERR_LOCKEDSURFACES;
+ OutputDebugStringA("Here DDHAL_DRIVER_HANDLED lock");
+ return DDERR_UNSUPPORTED;
}
if (Lock.ddRVal!= DD_OK)
{
+ OutputDebugStringA("Here ddRVal lock");
return Lock.ddRVal;
}
@@ -138,8 +141,33 @@
return DD_OK;
}
HRESULT Hal_DDrawSurface_Unlock(LPDIRECTDRAWSURFACE7 iface, LPRECT pRect)
-{
- DX_STUB;
+{
+ IDirectDrawSurfaceImpl* This = (IDirectDrawSurfaceImpl*)iface;
+
+ DDHAL_UNLOCKDATA unLock;
+ unLock.ddRVal = DDERR_NOTPALETTIZED;
+ unLock.lpDD = &This->owner->mDDrawGlobal;
+ unLock.lpDDSurface = &This->Surf->mPrimaryLocal;
+ unLock.Unlock = This->owner->mCallbacks.HALDDSurface.Unlock;
+
+
+
+ if (!DdResetVisrgn( unLock.lpDDSurface, NULL))
+ {
+ return DDERR_UNSUPPORTED;
+ }
+
+ if (unLock.Unlock(&unLock)!= DDHAL_DRIVER_HANDLED)
+ {
+ return DDERR_UNSUPPORTED;
+ }
+
+ if (unLock.ddRVal!= DD_OK)
+ {
+ return unLock.ddRVal;
+ }
+
+ return DD_OK;
}
HRESULT Hal_DDrawSurface_Flip(LPDIRECTDRAWSURFACE7 iface, LPDIRECTDRAWSURFACE7 override, DWORD dwFlags)
More information about the Ros-diffs
mailing list