Merge from branch ReactX to Trunk,
authorMagnus Olsen <magnus@greatlord.com>
Sat, 10 Nov 2007 15:31:49 +0000 (15:31 +0000)
committerMagnus Olsen <magnus@greatlord.com>
Sat, 10 Nov 2007 15:31:49 +0000 (15:31 +0000)
commit759c0dde2a0dd32d296e9082e692611c82daa5a2
tree692541d20d0108a6203f989dda1897f5d6084b09
parent6ec1d71d50566e6b1dc47ce4691952b55fae9d97
parentd05c0eadf6ac03769365330584439ea02c2441c5
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
16 files changed:
reactos/boot/bootdata/packages/reactos.dff
reactos/drivers/directx/dxapi/dxapi_driver.h
reactos/drivers/directx/dxapi/main.c
reactos/drivers/directx/dxg/main.c
reactos/include/ddk/d3dnthal.h
reactos/include/ddk/ddkmapi.h
reactos/include/psdk/ntgdi.h
reactos/include/reactos/drivers/directx/dxeng.h
reactos/include/reactos/win32k/ntgdihdl.h
reactos/subsystems/win32/win32k/include/dc.h
reactos/subsystems/win32/win32k/include/driver.h
reactos/subsystems/win32/win32k/ntddraw/dxeng.c
reactos/subsystems/win32/win32k/objects/gdiobj.c
reactos/subsystems/win32/win32k/stubs/stubs.c
reactos/subsystems/win32/win32k/win32k.def
reactos/subsystems/win32/win32k/win32k.rbuild