mirror of
https://github.com/reactos/reactos.git
synced 2025-06-04 17:00:31 +00:00
DxDdStartupDxGraphics
Bugfix : the load order, it try loading vista dxkrnl.sys frist then it try loading dxg.System rember I have not tested vista dxkrnl.sys in reactos at all yet. Bugfix : thx piggworth for notice the hDev was never resive to DxEngLockHdev, it still does not do in some case. we need more invigaste why svn path=/trunk/; revision=33084
This commit is contained in:
parent
09592ecd54
commit
92a93b0559
3 changed files with 36 additions and 20 deletions
|
@ -125,7 +125,8 @@ dll\directx\dplay\dplay.dll 1
|
|||
dll\directx\dplayx\dplayx.dll 1
|
||||
dll\directx\dsound\dsound.dll 1
|
||||
dll\directx\dxdiagn\dxdiagn.dll 1
|
||||
dll\directx\ddraw\ddraw.dll 1
|
||||
windows\ddraw.dll 1
|
||||
windows\dciman32.dll 1
|
||||
dll\directx\d3d8thk\d3d8thk.dll 1
|
||||
dll\directx\devenum\devenum.dll 1
|
||||
dll\directx\ksproxy\ksproxy.ax 1
|
||||
|
@ -307,9 +308,9 @@ drivers\base\null\null.sys 2
|
|||
|
||||
drivers\bus\isapnp\isapnp.sys 2
|
||||
|
||||
drivers\directx\dxapi\dxapi.sys 2
|
||||
drivers\directx\dxg\dxg.sys 2
|
||||
drivers\directx\dxgthk\dxgthk.sys 2
|
||||
windows\dxapi.sys 2
|
||||
windows\dxg.sys 2
|
||||
windows\dxgthk.sys 2
|
||||
|
||||
drivers\filesystems\fs_rec\fs_rec.sys 2
|
||||
drivers\filesystems\msfs\msfs.sys 2
|
||||
|
@ -605,6 +606,17 @@ modules\rostests\winetests\usp10\usp10_winetest.exe 7 o
|
|||
modules\rostests\winetests\uxtheme\uxtheme_winetest.exe 7 optional
|
||||
modules\rostests\winetests\version\version_winetest.exe 7 optional
|
||||
modules\rostests\winetests\wininet\wininet_winetest.exe 7 optional
|
||||
|
||||
modules\rostests\dxtest\ddraw_test\ddraw_test.exe 7 optional
|
||||
modules\rostests\dxtest\win32kdxtest\win32kdxtest.exe 7 optional
|
||||
|
||||
modules\rostests\apitests\gdi32api\gdi32api.exe 7 optional
|
||||
|
||||
modules\rostests\apitests\user32api\user32api.exe 7 optional
|
||||
modules\rostests\apitests\w32knapi\w32knapi.exe 7 optional
|
||||
modules\rostests\apitests\w32kdll\w32kdll_ros\w32kdll.dll 7 optional
|
||||
|
||||
|
||||
modules\wallpaper\lake.bmp 4 optional
|
||||
|
||||
; Native libraries
|
||||
|
|
|
@ -23,7 +23,7 @@ DRVFN gpDxFuncs[DXG_INDEX_DxDdIoctl];
|
|||
HANDLE ghDxGraphics = NULL;
|
||||
ULONG gdwDirectDrawContext;
|
||||
void dump_edd_directdraw_global(EDD_DIRECTDRAW_GLOBAL *pEddgbl);
|
||||
EDD_DIRECTDRAW_GLOBAL eDdirectDraw_Global;
|
||||
EDD_DIRECTDRAW_GLOBAL edd_DdirectDraw_Global;
|
||||
|
||||
|
||||
/************************************************************************/
|
||||
|
@ -54,17 +54,14 @@ DxDdStartupDxGraphics( ULONG ulc1,
|
|||
|
||||
/* Loading the kernel interface of directx for win32k */
|
||||
|
||||
|
||||
ghDxGraphics = EngLoadImage(L"\\SystemRoot\\System32\\drivers\\dxg.sys");
|
||||
|
||||
DPRINT1("Warning: trying loading vista dxkrnl.sys\n");
|
||||
ghDxGraphics = EngLoadImage(L"\\SystemRoot\\System32\\drivers\\dxkrnl.sys");
|
||||
if ( ghDxGraphics == NULL)
|
||||
{
|
||||
DPRINT1("Warning: dxg.sys not found\n");
|
||||
|
||||
DPRINT1("Warning: dxkrnl.sys not found\n");
|
||||
/* try loading vista dx kernel */
|
||||
DPRINT1("Warning: trying loading vista dxkrnl.sys\n");
|
||||
|
||||
ghDxGraphics = EngLoadImage(L"\\SystemRoot\\System32\\drivers\\dxkrnl.sys");
|
||||
DPRINT1("Warning: trying loading xp/2003/reactos dxg.sys\n");
|
||||
ghDxGraphics = EngLoadImage(L"\\SystemRoot\\System32\\drivers\\dxg.sys");
|
||||
}
|
||||
|
||||
if ( ghDxGraphics == NULL)
|
||||
|
@ -117,7 +114,7 @@ DxDdStartupDxGraphics( ULONG ulc1,
|
|||
for (t=0;t<=DXG_INDEX_DxDdIoctl;t++)
|
||||
{
|
||||
gpDxFuncs[lstDrvFN[t].iFunc].iFunc =lstDrvFN[t].iFunc;
|
||||
gpDxFuncs[lstDrvFN[t].iFunc].pfn =lstDrvFN[t].pfn;
|
||||
gpDxFuncs[lstDrvFN[t].iFunc].pfn =lstDrvFN[t].pfn;
|
||||
}
|
||||
|
||||
/* dump sort list for debuging */
|
||||
|
@ -129,7 +126,7 @@ DxDdStartupDxGraphics( ULONG ulc1,
|
|||
for (t=0;t<=DXG_INDEX_DxDdIoctl;t++)
|
||||
{
|
||||
DPRINT1("gpDxFuncs[0x%08lx].iFunc = 0x%08lx\n",t,gpDxFuncs[t].iFunc);
|
||||
DPRINT1("gpDxFuncs[0x%08lx].pfn = 0x%08lx\n",t,gpDxFuncs[t].pfn);
|
||||
DPRINT1("gpDxFuncs[0x%08lx].pfn = 0x%08lx\n",t,gpDxFuncs[t].pfn);
|
||||
}
|
||||
#endif
|
||||
DPRINT1("DirectX interface is activated\n");
|
||||
|
@ -183,10 +180,13 @@ NtGdiDdCreateDirectDrawObject(HDC hdc)
|
|||
return 0;
|
||||
}
|
||||
/* FIXME This should be alloc for each drv and use it from each drv, not global for whole win32k */
|
||||
((PGDIDEVICE)pDC->pPDev)->pEDDgpl = &eDdirectDraw_Global;
|
||||
RtlZeroMemory(&eDdirectDraw_Global,sizeof(EDD_DIRECTDRAW_GLOBAL));
|
||||
DC_UnlockDc(pDC);
|
||||
((PGDIDEVICE)pDC->pPDev)->pEDDgpl = &edd_DdirectDraw_Global;
|
||||
RtlZeroMemory(&edd_DdirectDraw_Global,sizeof(EDD_DIRECTDRAW_GLOBAL));
|
||||
|
||||
/* setup hdev for edd_DdirectDraw_Global xp */
|
||||
edd_DdirectDraw_Global.hDev = (PVOID)pDC->pPDev;
|
||||
edd_DdirectDraw_Global.hPDev = (PVOID)pDC->pPDev;
|
||||
DC_UnlockDc(pDC);
|
||||
|
||||
/* get the pfnDdCreateDirectDrawObject after we load the drv */
|
||||
pfnDdCreateDirectDrawObject = (PGD_DDCREATEDIRECTDRAWOBJECT)gpDxFuncs[DXG_INDEX_DxDdCreateDirectDrawObject].pfn;
|
||||
|
@ -201,7 +201,7 @@ NtGdiDdCreateDirectDrawObject(HDC hdc)
|
|||
DxHandle = pfnDdCreateDirectDrawObject(hdc);
|
||||
|
||||
#if DXDDRAWDEBUG
|
||||
dump_edd_directdraw_global(&eDdirectDraw_Global);
|
||||
dump_edd_directdraw_global(&edd_DdirectDraw_Global);
|
||||
#endif
|
||||
|
||||
return DxHandle;
|
||||
|
|
|
@ -530,7 +530,11 @@ STDCALL
|
|||
DxEngLockHdev(HDEV hDev)
|
||||
{
|
||||
PGDIDEVICE pPDev = (PGDIDEVICE)hDev;
|
||||
PERESOURCE Resource = pPDev->hsemDevLock;
|
||||
PERESOURCE Resource;
|
||||
|
||||
DPRINT1("hDev : 0x%08lx\n",hDev);
|
||||
|
||||
Resource = pPDev->hsemDevLock;
|
||||
|
||||
DPRINT1("ReactX Calling : DxEngLockHdev \n");
|
||||
|
||||
|
|
Loading…
Reference in a new issue