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:
Magnus Olsen 2005-10-29 18:57:45 +00:00
parent 006d0bc6d7
commit d4b6cf2ab1

View file

@ -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;
}