mirror of
https://github.com/reactos/reactos.git
synced 2024-12-27 09:34:43 +00:00
Setup the hal inisate bit more. and commect the code. We still does not insate hal right yet.
svn path=/trunk/; revision=18854
This commit is contained in:
parent
006d0bc6d7
commit
d4b6cf2ab1
1 changed files with 191 additions and 23 deletions
|
@ -23,9 +23,7 @@ HRESULT Hal_DirectDraw_Initialize (LPDIRECTDRAW7 iface)
|
|||
if(!DdCreateDirectDrawObject (&This->DirectDrawGlobal, This->hdc))
|
||||
return DDERR_INVALIDPARAMS;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* alloc all the space */
|
||||
This->DirectDrawGlobal.lpDDCBtmp = (LPDDHAL_CALLBACKS)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(DDHAL_CALLBACKS));
|
||||
This->DirectDrawGlobal.lpD3DHALCallbacks = (ULONG_PTR)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY, sizeof(D3DHAL_CALLBACKS));
|
||||
|
@ -40,6 +38,7 @@ HRESULT Hal_DirectDraw_Initialize (LPDIRECTDRAW7 iface)
|
|||
This->HalInfo.lpDDPaletteCallbacks = &This->DirectDrawGlobal.lpDDCBtmp->HALDDPalette;
|
||||
This->HalInfo.lpDDSurfaceCallbacks = &This->DirectDrawGlobal.lpDDCBtmp->HALDDSurface;
|
||||
|
||||
/* FIXME The insate is not right we need the info that the three NULL return */
|
||||
|
||||
/* query all kinds of infos from the driver */
|
||||
if(!DdQueryDirectDrawObject (
|
||||
|
@ -59,7 +58,11 @@ HRESULT Hal_DirectDraw_Initialize (LPDIRECTDRAW7 iface)
|
|||
return 1;
|
||||
}
|
||||
|
||||
/* ms wants us to call that function twice */
|
||||
/* FIXME The insate is not right we need the info that the three NULL return and use it here*/
|
||||
|
||||
/* Fixme shall we selected the pixel type before we call the DdQueryDirectDrawObject second time
|
||||
and fill in more info ?? */
|
||||
|
||||
This->HalInfo.vmiData.pvmList = HeapAlloc(GetProcessHeap(), 0, sizeof(VIDMEM) * This->HalInfo.vmiData.dwNumHeaps);
|
||||
This->DirectDrawGlobal.lpdwFourCC = HeapAlloc(GetProcessHeap(), 0, sizeof(DWORD) * This->HalInfo.ddCaps.dwNumFourCCCodes);
|
||||
This->DirectDrawGlobal.lpZPixelFormats = HeapAlloc(GetProcessHeap(), 0, sizeof(DDPIXELFORMAT) * This->DirectDrawGlobal.dwNumZPixelFormats);
|
||||
|
@ -83,33 +86,27 @@ HRESULT Hal_DirectDraw_Initialize (LPDIRECTDRAW7 iface)
|
|||
return 1;
|
||||
}
|
||||
|
||||
/* Copy HalInfo to DirectDrawGlobal */
|
||||
|
||||
/* have not check where it should go into yet
|
||||
LPDDHAL_DDCALLBACKS lpDDCallbacks;
|
||||
LPDDHAL_DDSURFACECALLBACKS lpDDSurfaceCallbacks;
|
||||
LPDDHAL_DDPALETTECALLBACKS lpDDPaletteCallbacks;
|
||||
*/
|
||||
|
||||
/* Copy HalInfo to DirectDrawGlobal (Not complete)*/
|
||||
|
||||
RtlCopyMemory(&This->DirectDrawGlobal.vmiData,&This->HalInfo.vmiData,sizeof(VIDMEMINFO));
|
||||
RtlCopyMemory(&This->DirectDrawGlobal.ddCaps,&This->HalInfo.ddCaps,sizeof(DDCORECAPS));
|
||||
This->DirectDrawGlobal.dwMonitorFrequency = This->HalInfo.dwMonitorFrequency;
|
||||
|
||||
/* have not check where it should go into yet
|
||||
LPDDHAL_GETDRIVERINFO GetDriverInfo;
|
||||
This->HalInfo.GetDriverInfo datatype LPDDHAL_GETDRIVERINFO
|
||||
*/
|
||||
|
||||
This->DirectDrawGlobal.dwModeIndex = This->HalInfo.dwModeIndex;
|
||||
|
||||
/* have not check where it should go into yet
|
||||
LPDWORD lpdwFourCC;
|
||||
This->HalInfo.lpdwFourCC datatype LPDWORD
|
||||
*/
|
||||
|
||||
This->DirectDrawGlobal.dwNumModes = This->HalInfo.dwNumModes;
|
||||
This->DirectDrawGlobal.lpModeInfo = This->HalInfo.lpModeInfo;
|
||||
|
||||
/* have not check where it should go into yet
|
||||
DWORD dwFlags;
|
||||
This->HalInfo.dwFlags data type DWORD
|
||||
*/
|
||||
|
||||
/* Unsure which of these two for lpPDevice
|
||||
|
@ -120,17 +117,188 @@ HRESULT Hal_DirectDraw_Initialize (LPDIRECTDRAW7 iface)
|
|||
This->DirectDrawGlobal.hInstance = This->HalInfo.hInstance;
|
||||
|
||||
/* have not check where it should go into yet
|
||||
ULONG_PTR lpD3DGlobalDriverData;
|
||||
ULONG_PTR lpD3DHALCallbacks;
|
||||
LPDDHAL_DDEXEBUFCALLBACKS lpDDExeBufCallbacks;
|
||||
This->lpD3DGlobalDriverData datatype ULONG_PTR
|
||||
This->lpD3DHALCallbacks datatype ULONG_PTR
|
||||
*/
|
||||
|
||||
RtlCopyMemory(&This->DirectDrawGlobal.lpDDCBtmp->HALDDExeBuf,&This->HalInfo.lpDDExeBufCallbacks,sizeof(DDHAL_DDEXEBUFCALLBACKS));
|
||||
|
||||
|
||||
This->DirectDrawGlobal.lpDDCBtmp->HALDD = This->DirectDrawGlobal.lpDDCBtmp->cbDDCallbacks;
|
||||
This->DirectDrawGlobal.lpDDCBtmp->HALDDSurface = This->DirectDrawGlobal.lpDDCBtmp->cbDDSurfaceCallbacks;
|
||||
This->DirectDrawGlobal.lpDDCBtmp->HALDDExeBuf = This->DirectDrawGlobal.lpDDCBtmp->cbDDExeBufCallbacks;
|
||||
This->DirectDrawGlobal.lpDDCBtmp->HALDDPalette = This->DirectDrawGlobal.lpDDCBtmp->cbDDPaletteCallbacks;
|
||||
|
||||
/************************************************************************/
|
||||
/* Set up the rest of the callbacks all callbacks we get back from */
|
||||
/* gdi32.dll is user mode */
|
||||
/************************************************************************/
|
||||
|
||||
/* Todo add a check see if HalInfo.GetDriverInfo is supported or not */
|
||||
|
||||
DDHAL_GETDRIVERINFODATA DriverInfo;
|
||||
memset(&DriverInfo,0, sizeof(DDHAL_GETDRIVERINFODATA));
|
||||
DriverInfo.dwSize = sizeof(DDHAL_GETDRIVERINFODATA);
|
||||
|
||||
/* Get ColorControlCallbacks */
|
||||
DriverInfo.guidInfo = GUID_ColorControlCallbacks;
|
||||
DriverInfo.lpvData = &This->DirectDrawGlobal.lpDDCBtmp->HALDDColorControl;
|
||||
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDCOLORCONTROLCALLBACKS);
|
||||
This->HalInfo.GetDriverInfo( &DriverInfo);
|
||||
|
||||
|
||||
/* Get the GUID_D3DCallbacks callback */
|
||||
|
||||
/* Problem with include files
|
||||
DDHAL_DDMISCELLANEOUSCALLBACKS misc;
|
||||
DriverInfo.guidInfo = GUID_D3DCallbacks;
|
||||
DriverInfo.lpvData = &misc;
|
||||
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS);
|
||||
This->HalInfo.GetDriverInfo( &DriverInfo);*/
|
||||
|
||||
/* Get the D3DCallbacks2 */
|
||||
/* do we need alloc memmory for This->DirectDrawGlobal.lpD3DHALCallbacks2 */
|
||||
DriverInfo.guidInfo = GUID_D3DCallbacks2;
|
||||
DriverInfo.lpvData = &This->DirectDrawGlobal.lpD3DHALCallbacks2;
|
||||
DriverInfo.dwExpectedSize = sizeof(D3DHAL_CALLBACKS2);
|
||||
This->HalInfo.GetDriverInfo( &DriverInfo);
|
||||
|
||||
|
||||
/* Get the D3DCallbacks3 */
|
||||
/*
|
||||
DriverInfo.guidInfo = GUID_D3DCallbacks3;
|
||||
DriverInfo.lpvData = &misc;
|
||||
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS);
|
||||
This->HalInfo.GetDriverInfo( &DriverInfo);
|
||||
*/
|
||||
|
||||
/* Get the misc callback */
|
||||
/* Problem with include files
|
||||
DriverInfo.guidInfo = GUID_D3DCaps;
|
||||
DriverInfo.lpvData = &misc;
|
||||
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS);
|
||||
This->HalInfo.GetDriverInfo( &DriverInfo);
|
||||
*/
|
||||
|
||||
/* Get the D3DExtendedCaps */
|
||||
/*
|
||||
DriverInfo.guidInfo = GUID_D3DExtendedCaps;
|
||||
DriverInfo.lpvData = &misc;
|
||||
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS);
|
||||
This->HalInfo.GetDriverInfo( &DriverInfo);
|
||||
*/
|
||||
|
||||
/* Get the D3DParseUnknownCommandCallback */
|
||||
/*
|
||||
DriverInfo.guidInfo = GUID_D3DParseUnknownCommandCallback;
|
||||
DriverInfo.lpvData = &misc;
|
||||
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS);
|
||||
This->HalInfo.GetDriverInfo( &DriverInfo);
|
||||
*/
|
||||
|
||||
/* Get the GetHeapAlignment */
|
||||
/*
|
||||
DriverInfo.guidInfo = GUID_GetHeapAlignment;
|
||||
DriverInfo.lpvData = &misc;
|
||||
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS);
|
||||
This->HalInfo.GetDriverInfo( &DriverInfo);
|
||||
*/
|
||||
|
||||
/* Get the KernelCallbacks */
|
||||
DriverInfo.guidInfo = GUID_KernelCallbacks;
|
||||
DriverInfo.lpvData = &This->DirectDrawGlobal.lpDDCBtmp->HALDDKernel;
|
||||
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDKERNELCALLBACKS);
|
||||
This->HalInfo.GetDriverInfo( &DriverInfo);
|
||||
|
||||
|
||||
/* Get the KernelCaps */
|
||||
/*
|
||||
DriverInfo.guidInfo = GUID_KernelCaps;
|
||||
DriverInfo.lpvData = &misc;
|
||||
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS);
|
||||
This->HalInfo.GetDriverInfo( &DriverInfo);
|
||||
*/
|
||||
|
||||
/* Get the MiscellaneousCallbacks */
|
||||
DriverInfo.guidInfo = GUID_MiscellaneousCallbacks;
|
||||
DriverInfo.lpvData = &This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous;
|
||||
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS);
|
||||
This->HalInfo.GetDriverInfo( &DriverInfo);
|
||||
|
||||
|
||||
/* Get the Miscellaneous2Callbacks */
|
||||
/*
|
||||
DriverInfo.guidInfo = GUID_Miscellaneous2Callbacks;
|
||||
DriverInfo.lpvData = &misc;
|
||||
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS);
|
||||
This->HalInfo.GetDriverInfo( &DriverInfo);
|
||||
*/
|
||||
|
||||
/* Get the MotionCompCallbacks */
|
||||
|
||||
DriverInfo.guidInfo = GUID_MotionCompCallbacks;
|
||||
DriverInfo.lpvData = &This->DirectDrawGlobal.lpDDCBtmp->HALDDMotionComp;
|
||||
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMOTIONCOMPCALLBACKS);
|
||||
This->HalInfo.GetDriverInfo( &DriverInfo);
|
||||
|
||||
|
||||
/* Get the NonLocalVidMemCaps */
|
||||
/*
|
||||
DriverInfo.guidInfo = GUID_NonLocalVidMemCaps;
|
||||
DriverInfo.lpvData = &misc;
|
||||
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS);
|
||||
This->HalInfo.GetDriverInfo( &DriverInfo);
|
||||
*/
|
||||
|
||||
/* Get the NTCallbacks */
|
||||
/*
|
||||
DriverInfo.guidInfo = GUID_NTCallbacks;
|
||||
DriverInfo.lpvData = &misc;
|
||||
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS);
|
||||
This->HalInfo.GetDriverInfo( &DriverInfo);
|
||||
*/
|
||||
|
||||
/* Get the NTPrivateDriverCaps */
|
||||
/*
|
||||
DriverInfo.guidInfo = GUID_NTPrivateDriverCaps;
|
||||
DriverInfo.lpvData = &misc;
|
||||
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS);
|
||||
This->HalInfo.GetDriverInfo( &DriverInfo);
|
||||
*/
|
||||
|
||||
/* Get the UpdateNonLocalHeap */
|
||||
/*
|
||||
DriverInfo.guidInfo = GUID_UpdateNonLocalHeap;
|
||||
DriverInfo.lpvData = &misc;
|
||||
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS);
|
||||
This->HalInfo.GetDriverInfo( &DriverInfo);
|
||||
*/
|
||||
|
||||
/* Get the VideoPortCallbacks */
|
||||
/* Problem with include files
|
||||
DriverInfo.guidInfo = GUID_VideoPortCallbacks;
|
||||
DriverInfo.lpvData = &This->DirectDrawGlobal.lpDDCBtmp->HALDDVideoPort;
|
||||
DriverInfo.dwExpectedSize = sizeof(HALDDVideoPort);
|
||||
This->HalInfo.GetDriverInfo( &DriverInfo);
|
||||
*/
|
||||
|
||||
|
||||
/* Get the VideoPortCaps */
|
||||
/*
|
||||
DriverInfo.guidInfo = GUID_VideoPortCaps;
|
||||
DriverInfo.lpvData = &misc;
|
||||
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS);
|
||||
This->HalInfo.GetDriverInfo( &DriverInfo);
|
||||
*/
|
||||
|
||||
/* Get the ZPixelFormats */
|
||||
/*
|
||||
DriverInfo.guidInfo = GUID_ZPixelFormats;
|
||||
DriverInfo.lpvData = &misc;
|
||||
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS);
|
||||
This->HalInfo.GetDriverInfo( &DriverInfo);
|
||||
*/
|
||||
|
||||
|
||||
/* FIXME add setup for one call ot get memmory */
|
||||
|
||||
|
||||
/* now all insate of HAL is done and we hopply do not have forget anything*/
|
||||
|
||||
return DD_OK;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue