1. About DDDRAW.DLL is part of HX's Win32 emulation. It will be loaded by DPMILD32 instead of the Win32 DirectDraw dll DDRAW.DLL. DDDRAW.DLL requires VESA linear frame buffer (LFB) to work. The DirectDraw emulation has to work without hardware acceleration, so it cannot be as fast as in windows. But for 2D graphics this should be no problem. 2. DirectDraw Functions Interfaces implemented are: - IDirectDraw - IDirectDraw2 - IDirectDraw4 - IDirectDraw7 - IDirectDrawSurface - IDirectDrawSurface2 - IDirectDrawSurface3 - IDirectDrawSurface4 - IDirectDrawSurface7 - IDirectDrawPalette - IDirectDrawClipper But even if the interfaces are implemented, this doesn't mean that all methods are implemented as well. Especially all new methods introduced with IDirectDraw4, IDirectDraw7, IDirectDrawSurface4 and IDirectDrawSurface7 will return error "not implemented". 3. History 2006/09/14: Version 2.5 þ DirectDrawEnumerateEx added 2006/06/14: Version 2.4 þ bugfix: IDirectDrawPalette::SetEntries may have written beyond the palette table 2006/04/21: Version 2.3 þ IDirectDraw4 and IDirectDrawSurface4 implemented (dummy) þ IDirectDraw7 and IDirectDrawSurface7 implemented (dummy) 2006/02/24: Version 2.2 þ IDirectDrawSurface::GetDDInterface implemented. þ IDirectDrawSurface::Initialize now returns DDERR_ALREADYINITIALIZED. 2006/02/06: Version 2.1 þ IDirectDrawSurface::GetColorKey/SetColorKey now return DD_OK. But colorkeys still are ignored in DDDRAW. þ bugfix: IDirectDrawSurface::GetDC didn't work for off-video surfaces. þ bugfix: IDirectDrawSurface::GetDC always returned DC for current primary surface memory. þ bugfix: IDirectDrawSurface::Flip with triple buffers didn't work þ IDirectDrawSurface::GetFlipStatus now calls GetVesaFlipStatus. þ bugfix: video mode wasn't restored for IDirectDraw2 objects if SetCooperativeLevel was set back to normal. þ video mode automatically restored if directdraw object is released. 2006/01/22: Version 2.0 þ call DisableThreadLibraryCalls in DllMain þ bugfix: IDirectDrawSurface::Flip didn't work with more than one backbuffer. þ bugfix: IDirectDrawPalette::GetCaps returned wrong value þ bugfix: IDirectDrawSurface::GetPixelFormat didn't set correct flags for 8-bit palette modes. þ DllGetClassObject added to make DDDRAW.DLL COM compatible. þ DirectDrawEnumerateA added 2006/01/02: Version 1.9 þ bugfix: Restoring video state didn't always work. 2005/12/20: Version 1.8 þ IDirectDrawSurface::Blt speed optimisation for P4 CPUs. þ bugfix: creating a surface with flag DDSCAPS_OFFSCREENPLAIN set allocated the surface memory in video memory. Now this is only done for DDSCAPS_VIDEOMEMORY. þ IDirectDrawSurface::Blt speed optimisation for CPUs < P4. þ bugfix: IDirectDrawSurface::Blt colorfill didn't work for 24 bpp þ IDirectDrawSurface::IsLost implemented 2005/12/07: Version 1.7 þ IDirectDrawSurface::BltFast implemented þ bugfix: USER32 function address "SendMessage" was not found (correct name is "SendMessageA") þ IDirectDrawSurface:GetSurfaceDesc returns lpSurface. 2005/11/24: Version 1.6 þ bugfix: IDirectDrawSurface::Flip didn't work as expected þ bugfix: the mouse cursor wasn't shown on flipping surfaces. þ IDirectDrawSurface::GetFlipStatus implemented þ bugfix: hiding mouse cursor didn't work for GUI apps þ bugfix: IDirectDraw2::GetAvailableVidMem returned wrong values. 2005/11/18: Version 1.5 þ IDirectDraw::GetGDISurface implemented þ IDirectDrawSurface::GetPixelFormat implemented þ IDirectDrawSurface::Blt now works with DDBLT_COLORFILL þ bugfix: destroying a DirectDraw object may have deactivated the mouse. 2005/11/01: Version 1.4 þ IDirectDraw::EnumDisplayModes: only enum gfx modes with LFB support þ bugfix: use ChangeDisplaySettingsA to change video mode if a GUI app is running. þ bugfix: IDirectSurface:GetCaps wrote to a wrong address 2005/10/24: Version 1.3 þ IDirectDrawSurface2, IDirectDrawSurface3, IDirectDrawClipper implemented. þ DDDRAW.DLL linked dynamically with VESA32. 2005/09/25: Version 1.2 þ DDDRAW.DLL now linked statically with VESA32. þ IDirectDrawSurface: methods Blt, Flip, GetAttachedSurface, EnumAttachedSurfaces, DeleteAttachedSurface, GetSurfaceDesc, GetDC, ReleaseDC implemented. IDirectDraw2: methods GetAvailableVideoMemory implemented. 2005/06/14: Version 1.1 þ IDirectDraw::RestoreDisplayMode now uses VESA save/restore state functions. þ IDirectDraw::GetCaps implemented þ IDirectDraw::GetCurrentMode implemented þ IDirectDraw::EnumDisplayModes implemented 2005/06/07: Version 1.0 4. Copyright DDDRAW.DLL is part of HX DOS extender. This extender is freeware. View HXRT.TXT for licence details. Japheth (mail@japheth.de)