2007-10-15 12:38:50 +00:00
|
|
|
/*
|
|
|
|
* COPYRIGHT: See COPYING in the top level directory
|
|
|
|
* PROJECT: ReactOS kernel
|
|
|
|
* PURPOSE: Native driver enumate of dxeng implementation
|
|
|
|
* FILE: subsys/win32k/ntddraw/dxeng.c
|
|
|
|
* PROGRAMER: Magnus olsen (magnus@greatlord.com)
|
|
|
|
* REVISION HISTORY:
|
|
|
|
* 15/10-2007 Magnus Olsen
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <w32k.h>
|
|
|
|
#include <debug.h>
|
|
|
|
|
2007-10-21 18:28:31 +00:00
|
|
|
|
|
|
|
|
2007-10-21 15:11:19 +00:00
|
|
|
ULONG gcEngFuncs = DXENG_INDEX_DxEngLoadImage + 1;
|
|
|
|
DRVFN gaEngFuncs [] =
|
|
|
|
{
|
|
|
|
{0, (PFN) NULL},
|
|
|
|
{DXENG_INDEX_DxEngNUIsTermSrv, (PFN)DxEngNUIsTermSrv},
|
2007-10-21 18:47:16 +00:00
|
|
|
{DXENG_INDEX_DxEngScreenAccessCheck, (PFN)DxEngScreenAccessCheck},
|
2007-10-21 15:11:19 +00:00
|
|
|
{DXENG_INDEX_DxEngRedrawDesktop, (PFN)DxEngRedrawDesktop},
|
|
|
|
{DXENG_INDEX_DxEngDispUniq, (PFN)DxEngDispUniq},
|
2007-10-21 18:47:16 +00:00
|
|
|
{DXENG_INDEX_DxEngIncDispUniq, (PFN)DxEngIncDispUniq},
|
2007-10-21 15:11:19 +00:00
|
|
|
{DXENG_INDEX_DxEngVisRgnUniq, (PFN)DxEngVisRgnUniq},
|
2007-10-21 18:47:16 +00:00
|
|
|
{DXENG_INDEX_DxEngLockShareSem, (PFN)DxEngLockShareSem},
|
|
|
|
{DXENG_INDEX_DxEngUnlockShareSem, (PFN)DxEngUnlockShareSem},
|
2007-10-21 15:11:19 +00:00
|
|
|
{DXENG_INDEX_DxEngEnumerateHdev, (PFN)DxEngEnumerateHdev},
|
2007-10-21 18:47:16 +00:00
|
|
|
{DXENG_INDEX_DxEngLockHdev, (PFN)DxEngLockHdev},
|
|
|
|
{DXENG_INDEX_DxEngUnlockHdev, (PFN)DxEngUnlockHdev},
|
|
|
|
{DXENG_INDEX_DxEngIsHdevLockedByCurrentThread, (PFN)DxEngIsHdevLockedByCurrentThread},
|
|
|
|
{DXENG_INDEX_DxEngReferenceHdev, (PFN)DxEngReferenceHdev},
|
|
|
|
{DXENG_INDEX_DxEngUnreferenceHdev, (PFN)DxEngUnreferenceHdev},
|
2007-10-21 15:11:19 +00:00
|
|
|
{DXENG_INDEX_DxEngGetDeviceGammaRamp, (PFN)DxEngGetDeviceGammaRamp},
|
2007-10-21 18:47:16 +00:00
|
|
|
{DXENG_INDEX_DxEngSetDeviceGammaRamp, (PFN)DxEngSetDeviceGammaRamp},
|
|
|
|
{DXENG_INDEX_DxEngSpTearDownSprites, (PFN)DxEngSpTearDownSprites},
|
|
|
|
{DXENG_INDEX_DxEngSpUnTearDownSprites, (PFN)DxEngSpUnTearDownSprites},
|
|
|
|
{DXENG_INDEX_DxEngSpSpritesVisible, (PFN)DxEngSpSpritesVisible},
|
|
|
|
{DXENG_INDEX_DxEngGetHdevData, (PFN)DxEngGetHdevData},
|
|
|
|
{DXENG_INDEX_DxEngSetHdevData, (PFN)DxEngSetHdevData},
|
|
|
|
{DXENG_INDEX_DxEngCreateMemoryDC, (PFN)DxEngCreateMemoryDC},
|
|
|
|
{DXENG_INDEX_DxEngGetDesktopDC, (PFN)DxEngGetDesktopDC},
|
|
|
|
{DXENG_INDEX_DxEngDeleteDC, (PFN)DxEngDeleteDC},
|
|
|
|
{DXENG_INDEX_DxEngCleanDC, (PFN)DxEngCleanDC},
|
|
|
|
{DXENG_INDEX_DxEngSetDCOwner, (PFN)DxEngSetDCOwner},
|
2007-10-21 17:08:12 +00:00
|
|
|
{DXENG_INDEX_DxEngLockDC, (PFN)DxEngLockDC},
|
|
|
|
{DXENG_INDEX_DxEngUnlockDC, (PFN)DxEngUnlockDC},
|
2007-10-21 18:47:16 +00:00
|
|
|
{DXENG_INDEX_DxEngSetDCState, (PFN)DxEngGetDCState},
|
|
|
|
{DXENG_INDEX_DxEngGetDCState, (PFN)DxEngGetDCState},
|
|
|
|
{DXENG_INDEX_DxEngSelectBitmap, (PFN)DxEngSelectBitmap},
|
|
|
|
{DXENG_INDEX_DxEngSetBitmapOwner, (PFN)DxEngSetBitmapOwner},
|
|
|
|
{DXENG_INDEX_DxEngDeleteSurface, (PFN)DxEngDeleteSurface},
|
|
|
|
{DXENG_INDEX_DxEngGetSurfaceData, (PFN)DxEngGetSurfaceData},
|
|
|
|
{DXENG_INDEX_DxEngAltLockSurface, (PFN)DxEngAltLockSurface},
|
|
|
|
{DXENG_INDEX_DxEngUploadPaletteEntryToSurface, (PFN)DxEngUploadPaletteEntryToSurface},
|
|
|
|
{DXENG_INDEX_DxEngMarkSurfaceAsDirectDraw, (PFN)DxEngMarkSurfaceAsDirectDraw},
|
|
|
|
{DXENG_INDEX_DxEngSelectPaletteToSurface, (PFN)DxEngSelectPaletteToSurface},
|
|
|
|
{DXENG_INDEX_DxEngSyncPaletteTableWithDevice, (PFN)DxEngSyncPaletteTableWithDevice},
|
|
|
|
{DXENG_INDEX_DxEngSetPaletteState, (PFN)DxEngSetPaletteState},
|
|
|
|
{DXENG_INDEX_DxEngGetRedirectionBitmap, (PFN)DxEngGetRedirectionBitmap},
|
|
|
|
{DXENG_INDEX_DxEngLoadImage, (PFN)DxEngLoadImage}
|
2007-10-21 15:11:19 +00:00
|
|
|
};
|
|
|
|
|
2007-10-15 12:38:50 +00:00
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngNUIsTermSrv */
|
|
|
|
/************************************************************************/
|
|
|
|
|
|
|
|
/* Notes : Check see if termal server got a connections or not */
|
|
|
|
BOOL
|
|
|
|
DxEngNUIsTermSrv()
|
|
|
|
{
|
|
|
|
/* FIXME ReactOS does not suport terminal server yet, we can not check if we got a connections or not */
|
2007-10-21 18:28:31 +00:00
|
|
|
UNIMPLEMENTED;
|
2007-10-15 12:38:50 +00:00
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngRedrawDesktop */
|
|
|
|
/************************************************************************/
|
|
|
|
|
|
|
|
/* Notes : it always return TRUE, and it update whole the screen (redaw current desktop) */
|
|
|
|
BOOL
|
|
|
|
DxEngRedrawDesktop()
|
|
|
|
{
|
|
|
|
/* FIXME add redraw code */
|
2007-10-21 18:28:31 +00:00
|
|
|
UNIMPLEMENTED;
|
2007-10-15 12:38:50 +00:00
|
|
|
return TRUE;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngDispUniq */
|
|
|
|
/************************************************************************/
|
|
|
|
|
|
|
|
/* Notes : return the DisplayUniqVisrgn counter from gdishare memory */
|
|
|
|
ULONG
|
|
|
|
DxEngDispUniq()
|
|
|
|
{
|
2007-12-15 09:11:59 +00:00
|
|
|
return GdiHandleTable->flDeviceUniq;
|
2007-10-15 12:38:50 +00:00
|
|
|
}
|
|
|
|
|
2007-12-15 09:11:59 +00:00
|
|
|
ULONG gulVisRgnUniqueness; // Inc count everytime client region is updated.
|
|
|
|
|
2007-10-15 12:38:50 +00:00
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngVisRgnUniq */
|
|
|
|
/************************************************************************/
|
|
|
|
/* Notes : return the VisRgnUniq counter for win32k */
|
|
|
|
ULONG
|
|
|
|
DxEngVisRgnUniq()
|
|
|
|
{
|
2007-12-15 09:11:59 +00:00
|
|
|
return gulVisRgnUniqueness;
|
2007-10-15 12:38:50 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
2007-10-15 13:10:59 +00:00
|
|
|
/* DxEngEnumerateHdev */
|
2007-10-15 12:38:50 +00:00
|
|
|
/************************************************************************/
|
|
|
|
/* Enumate all drivers in win32k */
|
|
|
|
HDEV *
|
2007-10-21 13:31:39 +00:00
|
|
|
DxEngEnumerateHdev(HDEV *hdev)
|
2007-10-15 12:38:50 +00:00
|
|
|
{
|
|
|
|
/* FIXME Enumate all drivers in win32k */
|
2007-10-21 18:28:31 +00:00
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
2007-10-15 12:38:50 +00:00
|
|
|
}
|
|
|
|
|
2007-12-27 18:51:27 +00:00
|
|
|
/*++
|
|
|
|
* @name DxEngGetDeviceGammaRamp
|
|
|
|
* @implemented
|
|
|
|
*
|
|
|
|
* The function DxEngSetDeviceGammaRamp Set Gamma ramp from from dxg.sys
|
|
|
|
|
|
|
|
* @param HDEV hPDev
|
|
|
|
* The hdev
|
|
|
|
*
|
|
|
|
* @param PGAMMARAMP Ramp
|
|
|
|
* to fill in our gama ramp
|
|
|
|
*
|
|
|
|
* @return
|
|
|
|
* This return FALSE or TRUE, FALSE for fail, TRUE for success
|
|
|
|
*
|
|
|
|
* @remarks.
|
|
|
|
* ReactOS does not loop it, only set the gamma once.
|
|
|
|
*
|
|
|
|
*--*/
|
2007-10-15 13:10:59 +00:00
|
|
|
BOOL
|
2007-12-27 18:51:27 +00:00
|
|
|
DxEngGetDeviceGammaRamp(HDEV hPDev, PGAMMARAMP Ramp)
|
2007-10-15 13:10:59 +00:00
|
|
|
{
|
2007-12-27 18:51:27 +00:00
|
|
|
return IntGetDeviceGammaRamp(hPDev, Ramp);
|
2007-10-15 13:10:59 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-10-21 17:08:12 +00:00
|
|
|
/*++
|
|
|
|
* @name DxEngLockDC
|
|
|
|
* @implemented
|
|
|
|
*
|
2007-12-27 18:51:27 +00:00
|
|
|
* The function DxEngLockDC lock a hdc from dxg.sys
|
2007-10-21 17:08:12 +00:00
|
|
|
*
|
|
|
|
* @param HDC hDC
|
|
|
|
* The handle we need want lock
|
|
|
|
*
|
2007-12-27 18:51:27 +00:00
|
|
|
* @return
|
2007-10-21 17:08:12 +00:00
|
|
|
* This api return PDC or NULL depns if it sussess lock the hdc or not
|
2007-10-21 18:28:31 +00:00
|
|
|
*
|
2007-10-21 17:08:12 +00:00
|
|
|
* @remarks.
|
|
|
|
* none
|
|
|
|
*
|
|
|
|
*--*/
|
|
|
|
PDC
|
|
|
|
DxEngLockDC(HDC hDC)
|
|
|
|
{
|
2007-10-21 18:28:31 +00:00
|
|
|
return DC_LockDc(hDC);
|
2007-10-21 17:08:12 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*++
|
|
|
|
* @name DxEngUnlockDC
|
|
|
|
* @implemented
|
|
|
|
*
|
2007-12-27 18:51:27 +00:00
|
|
|
* The function DxEngUnlockDC Unlock a pDC (hdc) from dxg.sys
|
2007-10-21 17:08:12 +00:00
|
|
|
|
|
|
|
* @param PDC pDC
|
|
|
|
* The handle we need unlock
|
|
|
|
*
|
2007-12-27 18:51:27 +00:00
|
|
|
* @return
|
|
|
|
* This api always return TRUE if it sussess or not
|
2007-10-21 18:28:31 +00:00
|
|
|
*
|
2007-10-21 17:08:12 +00:00
|
|
|
* @remarks.
|
|
|
|
* none
|
|
|
|
*
|
|
|
|
*--*/
|
|
|
|
BOOL
|
|
|
|
DxEngUnlockDC(PDC pDC)
|
|
|
|
{
|
|
|
|
DC_UnlockDc(pDC);
|
|
|
|
return TRUE;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-10-21 18:28:31 +00:00
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngCreateMemoryDC */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngCreateMemoryDC(DWORD x1)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngScreenAccessCheck */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngScreenAccessCheck()
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngLockShareSem */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngLockShareSem()
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngUnlockShareSem */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngUnlockShareSem()
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngLockHdev */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngLockHdev(DWORD x1)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngUnlockHdev */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngUnlockHdev(DWORD x1)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngReferenceHdev */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngReferenceHdev(DWORD x1)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngIsHdevLockedByCurrentThread */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngIsHdevLockedByCurrentThread(DWORD x1)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngUnreferenceHdev */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngUnreferenceHdev(DWORD x1)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
2007-12-27 18:51:27 +00:00
|
|
|
|
|
|
|
/*++
|
|
|
|
* @name DxEngSetDeviceGammaRamp
|
|
|
|
* @implemented
|
|
|
|
*
|
|
|
|
* The function DxEngSetDeviceGammaRamp Set Gamma ramp from from dxg.sys
|
|
|
|
|
|
|
|
* @param HDEV hPDev
|
|
|
|
* The hdev
|
|
|
|
*
|
|
|
|
* @param PGAMMARAMP Ramp
|
|
|
|
* to set in our gama ramp
|
|
|
|
*
|
2007-12-29 12:48:49 +00:00
|
|
|
* @param BOOL Test
|
|
|
|
* Testing the gama or not. FALSE for no test, TRUE for testing
|
2007-12-27 18:51:27 +00:00
|
|
|
*
|
|
|
|
* @return
|
|
|
|
* This return FALSE or TRUE, FALSE for fail, TRUE for success
|
|
|
|
*
|
|
|
|
* @remarks.
|
|
|
|
* ReactOS does not loop it, only set the gamma once.
|
|
|
|
*
|
|
|
|
*--*/
|
|
|
|
BOOL
|
2007-12-29 06:39:06 +00:00
|
|
|
DxEngSetDeviceGammaRamp(HDEV hPDev, PGAMMARAMP Ramp, BOOL Test)
|
2007-10-21 18:28:31 +00:00
|
|
|
{
|
2007-12-29 06:39:06 +00:00
|
|
|
return IntSetDeviceGammaRamp(hPDev, Ramp, Test);
|
2007-10-21 18:28:31 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngSpTearDownSprites */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngSpTearDownSprites(DWORD x1, DWORD x2, DWORD x3)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngSpUnTearDownSprites */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngSpUnTearDownSprites(DWORD x1, DWORD x2, DWORD x3)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngSpSpritesVisible */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngSpSpritesVisible(DWORD x1)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngGetHdevData */
|
|
|
|
/************************************************************************/
|
2007-10-24 22:52:13 +00:00
|
|
|
DWORD
|
|
|
|
DxEngGetHdevData(PEDD_DIRECTDRAW_GLOBAL pEDDgpl,
|
|
|
|
DWORD Index)
|
2007-10-21 18:28:31 +00:00
|
|
|
{
|
Merge from branch ReactX to Trunk,
Please make a clean build after this update
Add dxg.sys driver
----------------------------------------------------------------
This driver contains all DirectX graphic APIs called by win32k. Most of them
are stubbed, and the following APIs are implemented:
DxDxgGenericThunk, DxDdIoctl, DriverEntry, DxDdStartupDxGraphics, DxDdCleanupDxGraphics
Add dxgthk.sys driver, which is 100% finished
---------------------------------------------------------
The following APIs are implemented (almost all are forwarders):
DriverEntry, EngAcquireSemaphore, EngAllocMem, EngAllocUserMem,
EngCopyBits, EngCreateBitmap, EngCreatePalette, EngCreateSemaphore,
EngDeletePalette, EngDeleteSemaphore, EngDeleteSurface,
EngFindImageProcAddress, EngFreeMem, EngFreeUserMem,
EngLoadImage, EngLockSurface, EngReleaseSemaphore,
EngSetLastError, EngUnloadImage, EngUnlockSurface
Add dxapi.sys driver
--------------------------------------------------------------
Most of the APIs used by the graphic card's driver or win32k are stubs.
The following APIs are implemented:
DriverEntry, GsDriverEntry, DxApiGetVersion, DxApi.
All APIs which DxApi wraps are stubs.
Changes in win32k
-------------------------------------------------------------------
Move _DC struct to include\reactos\win32k\ntgdihdl.h
--------------------------------------------------------------------------
Implement NtGdiDdCanCreateD3DBuffer, NtGdiD3dContextDestroy,
NtGdiD3dContextDestroyAll, NtGdiDdCreateD3DBuffer, NtGdiDdDestroyD3DBuffer,
NtGdiD3dDrawPrimitives2, NtGdiDdLockD3D, NtGdiD3dValidateTextureStageState,
NtGdiDdUnlockD3D, NtGdiDdCreateSurface, NtGdiDdWaitForVerticalBlank,
NtGdiDdCanCreateSurface, NtGdiDdGetScanLine, NtGdiDdCreateSurfaceEx,
DxDdStartupDxGraphics, NtGdiDdCreateDirectDrawObject, NtGdiDxgGenericThunk,
NtGdiDdGetDriverState, NtGdiDdColorControl, NtGdiDdCreateSurfaceObject,
NtGdiDdCreateSurfaceObject, NtGdiDdDeleteDirectDrawObject, NtGdiDdDeleteSurfaceObject,
NtGdiDdQueryDirectDrawObject, NtGdiDdReenableDirectDrawObject, NtGdiDdGetDriverInfo,
NtGdiDdGetAvailDriverMemory, NtGdiDdSetExclusiveMode, NtGdiDdFlipToGDISurface,
NtGdiDdGetDC, NtGdiDdGetDxHandle, NtGdiDdReleaseDC, NtGdiDdResetVisrgn,
NtGdiDdSetGammaRamp, NtGdiDdDestroySurface, NtGdiDdFlip, NtGdiDdLock, NtGdiDdUnlock,
NtGdiDdBlt, NtGdiDdSetColorKey, NtGdiDdAddAttachedSurface, NtGdiDdGetBltStatus,
NtGdiDdGetFlipStatus, NtGdiDdUpdateOverlay, NtGdiDdSetOverlayPosition,
NtGdiDdAlphaBlt, NtGdiDdAttachSurface, NtGdiDdUnattachSurface,
NtGdiDvpCanCreateVideoPort, NtGdiDvpColorControl, NtGdiDvpCreateVideoPort,
NtGdiDvpDestroyVideoPort, NtGdiDvpFlipVideoPort, NtGdiDvpGetVideoPortBandwidth,
NtGdiDvpGetVideoPortFlipStatus, NtGdiDvpGetVideoPortInputFormats,
NtGdiDvpGetVideoPortLine, NtGdiDvpGetVideoPortOutputFormats,
NtGdiDvpGetVideoPortConnectInfo, NtGdiDvpGetVideoSignalStatus,
NtGdiDvpUpdateVideoPort, NtGdiDvpWaitForVideoPortSync,
NtGdiDvpAcquireNotification, NtGdiDvpReleaseNotification,
NtGdiDvpGetVideoPortField, NtGdiDdBeginMoCompFrame,
NtGdiDdCreateMoComp, NtGdiDdDestroyMoComp,
NtGdiDdEndMoCompFrame, NtGdiDdGetInternalMoCompInfo,
NtGdiDdGetMoCompBuffInfo, NtGdiDdGetMoCompFormats,
NtGdiDdGetMoCompGuids, NtGdiDdQueryMoCompStatus,
NtGdiDdRenderMoComp, HeapVidMemAllocAligned,
VidMemFree, EngAllocPrivateUserMem, EngFreePrivateUserMem,
EngLockDirectDrawSurface, EngUnlockDirectDrawSurface
But all those functions are stubbed in dxg.sys
----------------------------------------------------------------------------
Implemented APIsL
DxEngLockDC, DxEngUnlockDC, DxEngGetDCState, EngDxIoctl
----------------------------------------------------------------------------
Stubbed APIs:
DxEngNUIsTermSrv, DxEngRedrawDesktop, DxEngDispUniq, DxEngVisRgnUniq,
DxEngEnumerateHdev, DxEngGetDeviceGammaRamp, DxEngCreateMemoryDC,
DxEngScreenAccessCheck, DxEngLockShareSem, DxEngUnlockShareSem,
DxEngLockHdev, DxEngUnlockHdev, DxEngReferenceHdev,
DxEngIsHdevLockedByCurrentThread, DxEngUnreferenceHdev,
DxEngSetDeviceGammaRamp, DxEngSpTearDownSprites,
DxEngSpUnTearDownSprites, DxEngSpSpritesVisible,
DxEngGetHdevData, DxEngSetHdevData, DxEngGetDesktopDC,
DxEngDeleteDC, DxEngCleanDC, DxEngSetDCOwner,
DxEngSetDCState, DxEngSelectBitmap,DxEngSetBitmapOwner,
DxEngDeleteSurface, DxEngGetSurfaceData, DxEngAltLockSurface,
DxEngUploadPaletteEntryToSurface, DxEngMarkSurfaceAsDirectDraw,
DxEngSelectPaletteToSurface, DxEngSyncPaletteTableWithDevice,
DxEngSetPaletteState, DxEngGetRedirectionBitmap, DxEngLoadImage,
DxEngIncDispUniq
----------------------------------------------------------------------------
Remember we need the DxEng APIs implemented and HeapVidMemAllocAligned,
VidMemFree, EngAllocPrivateUserMem, EngFreePrivateUserMem,
EngLockDirectDrawSurface, EngUnlockDirectDrawSurface implemented
before it's possible to have full DirectX support at kmode.
svn path=/trunk/; revision=30328
2007-11-10 15:31:49 +00:00
|
|
|
UNIMPLEMENTED;
|
2007-10-24 22:52:13 +00:00
|
|
|
return 0;
|
2007-10-21 18:28:31 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngSetHdevData */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngSetHdevData(DWORD x1, DWORD x2, DWORD x3)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngGetDesktopDC */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngGetDesktopDC(DWORD x1, DWORD x2, DWORD x3)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngDeleteDC */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngDeleteDC(DWORD x1, DWORD x2)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngCleanDC */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngCleanDC(DWORD x1)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngSetDCOwner */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngSetDCOwner(DWORD x1, DWORD x2)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngSetDCState */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngSetDCState(DWORD x1, DWORD x2, DWORD x3)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngGetDCState */
|
|
|
|
/************************************************************************/
|
2008-01-01 18:50:42 +00:00
|
|
|
/* Note type 0 = N/A */
|
|
|
|
/* Note type 1 = Is DC full screen */
|
|
|
|
/* Note type 2 = Get Complexity of visiable region. */
|
|
|
|
/* Note type 3 = Get Driver hdev, which is pPDev. */
|
2008-01-01 01:08:07 +00:00
|
|
|
|
2007-10-24 22:52:13 +00:00
|
|
|
DWORD
|
|
|
|
DxEngGetDCState(HDC hDC,
|
|
|
|
DWORD type)
|
|
|
|
{
|
|
|
|
PDC pDC = DC_LockDc(hDC);
|
2008-01-01 01:08:07 +00:00
|
|
|
DWORD retVal = 0;
|
|
|
|
|
2007-10-24 22:52:13 +00:00
|
|
|
if (pDC)
|
|
|
|
{
|
|
|
|
switch (type)
|
|
|
|
{
|
|
|
|
case 1:
|
2008-01-01 18:50:42 +00:00
|
|
|
retVal = (DWORD) pDC->DC_Flags & DC_FLAG_FULLSCREEN;
|
|
|
|
break;
|
2007-10-24 22:52:13 +00:00
|
|
|
case 2:
|
|
|
|
UNIMPLEMENTED;
|
2008-01-01 18:50:42 +00:00
|
|
|
break;
|
2007-10-24 22:52:13 +00:00
|
|
|
case 3:
|
2008-01-01 18:50:42 +00:00
|
|
|
{ // Return HDEV of this DC.
|
|
|
|
retVal = (DWORD) pDC->pPDev;
|
|
|
|
break;
|
2007-11-12 01:26:32 +00:00
|
|
|
}
|
2007-10-24 22:52:13 +00:00
|
|
|
default:
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
break;
|
|
|
|
}
|
2008-01-01 01:08:07 +00:00
|
|
|
DC_UnlockDc(pDC);
|
2007-10-24 22:52:13 +00:00
|
|
|
}
|
|
|
|
|
2008-01-01 01:08:07 +00:00
|
|
|
return retVal;
|
2007-10-21 18:28:31 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngSelectBitmap */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngSelectBitmap(DWORD x1, DWORD x2)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngSetBitmapOwner */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngSetBitmapOwner(DWORD x1, DWORD x2)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngDeleteSurface */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngDeleteSurface(DWORD x1)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngGetSurfaceData */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngGetSurfaceData(DWORD x1, DWORD x2)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngAltLockSurface */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngAltLockSurface(DWORD x1)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngUploadPaletteEntryToSurface */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngUploadPaletteEntryToSurface(DWORD x1, DWORD x2,DWORD x3, DWORD x4)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngMarkSurfaceAsDirectDraw */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngMarkSurfaceAsDirectDraw(DWORD x1, DWORD x2)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngSelectPaletteToSurface */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngSelectPaletteToSurface(DWORD x1, DWORD x2)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngSyncPaletteTableWithDevice */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngSyncPaletteTableWithDevice(DWORD x1, DWORD x2)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngSetPaletteState */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngSetPaletteState(DWORD x1, DWORD x2, DWORD x3)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngGetRedirectionBitmap */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngGetRedirectionBitmap(DWORD x1)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngLoadImage */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngLoadImage(DWORD x1,DWORD x2)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
2007-10-15 13:10:59 +00:00
|
|
|
|
2007-10-21 18:52:42 +00:00
|
|
|
/************************************************************************/
|
|
|
|
/* DxEngIncDispUniq */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD DxEngIncDispUniq()
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
2007-10-15 12:38:50 +00:00
|
|
|
|