mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 10:04:49 +00:00
Properly synchronize with GPU
svn path=/trunk/; revision=13444
This commit is contained in:
parent
90b5ddc462
commit
78a54aa150
3 changed files with 18 additions and 0 deletions
|
@ -97,6 +97,8 @@ typedef LONG (STDCALL *PGD_QUERYSPOOLTYPE)(DHPDEV, LPWSTR);
|
|||
|
||||
typedef BOOL (STDCALL *PGD_GRADIENTFILL)(SURFOBJ*, CLIPOBJ*, XLATEOBJ*, TRIVERTEX*, ULONG, PVOID, ULONG, RECTL*, POINTL*, ULONG);
|
||||
|
||||
typedef VOID (STDCALL *PGD_SYNCHRONIZESURFACE)(SURFOBJ*, RECTL *, FLONG);
|
||||
|
||||
typedef struct _DRIVER_FUNCTIONS
|
||||
{
|
||||
PGD_ENABLEDRIVER EnableDriver;
|
||||
|
@ -158,6 +160,7 @@ typedef struct _DRIVER_FUNCTIONS
|
|||
PGD_DISABLEDIRECTDRAW DisableDirectDraw;
|
||||
PGD_QUERYSPOOLTYPE QuerySpoolType;
|
||||
PGD_GRADIENTFILL GradientFill;
|
||||
PGD_SYNCHRONIZESURFACE SynchronizeSurface;
|
||||
} DRIVER_FUNCTIONS, *PDRIVER_FUNCTIONS;
|
||||
|
||||
BOOL DRIVER_RegisterDriver(LPCWSTR Name, PGD_ENABLEDRIVER EnableDriver);
|
||||
|
|
|
@ -123,6 +123,20 @@ IntEngEnter(PINTENG_ENTER_LEAVE EnterLeave,
|
|||
*OutputObj = DestObj;
|
||||
}
|
||||
|
||||
if (NULL != *OutputObj
|
||||
&& 0 != (((BITMAPOBJ*) *OutputObj)->flHooks & HOOK_SYNCHRONIZE))
|
||||
{
|
||||
if (NULL != GDIDEVFUNCS(*OutputObj).SynchronizeSurface)
|
||||
{
|
||||
GDIDEVFUNCS(*OutputObj).SynchronizeSurface(*OutputObj, DestRect, 0);
|
||||
}
|
||||
else if (STYPE_BITMAP == (*OutputObj)->iType
|
||||
&& NULL != GDIDEVFUNCS(*OutputObj).Synchronize)
|
||||
{
|
||||
GDIDEVFUNCS(*OutputObj).Synchronize((*OutputObj)->dhpdev, DestRect);
|
||||
}
|
||||
}
|
||||
|
||||
EnterLeave->DestObj = DestObj;
|
||||
EnterLeave->OutputObj = *OutputObj;
|
||||
EnterLeave->ReadOnly = ReadOnly;
|
||||
|
|
|
@ -239,6 +239,7 @@ BOOL DRIVER_BuildDDIFunctions(PDRVENABLEDATA DED,
|
|||
DRIVER_FUNCTION(DisableDirectDraw);
|
||||
DRIVER_FUNCTION(QuerySpoolType);
|
||||
DRIVER_FUNCTION(GradientFill);
|
||||
DRIVER_FUNCTION(SynchronizeSurface);
|
||||
|
||||
END_FUNCTION_MAP();
|
||||
|
||||
|
|
Loading…
Reference in a new issue