Fixed DRIVER_FUNCTIONS this struct are being passdown to ms dxg.sys and it access it direcly so we need it match eacly windows xp/2003 layout

Fixed DRIVER_BuildDDIFunctions it now setup all api from the drv to DRIVER_FUNCTIONS struct. it is update to windows 2003, we can now use all hw acc api that exists in the drv.
we do not doing that yet. 



svn path=/trunk/; revision=33217
This commit is contained in:
Magnus Olsen 2008-05-01 16:36:42 +00:00
parent 99eaa62157
commit fdc64df76a
5 changed files with 162 additions and 127 deletions

View file

@ -337,6 +337,7 @@ typedef struct _DRIVEROBJ {
#define INDEX_DrvOffset 6L #define INDEX_DrvOffset 6L
#define INDEX_DrvResetPDEV 7L #define INDEX_DrvResetPDEV 7L
#define INDEX_DrvDisableDriver 8L #define INDEX_DrvDisableDriver 8L
#define INDEX_DrvUnknown1 9L
#define INDEX_DrvCreateDeviceBitmap 10L #define INDEX_DrvCreateDeviceBitmap 10L
#define INDEX_DrvDeleteDeviceBitmap 11L #define INDEX_DrvDeleteDeviceBitmap 11L
#define INDEX_DrvRealizeBrush 12L #define INDEX_DrvRealizeBrush 12L
@ -348,6 +349,7 @@ typedef struct _DRIVEROBJ {
#define INDEX_DrvBitBlt 18L #define INDEX_DrvBitBlt 18L
#define INDEX_DrvCopyBits 19L #define INDEX_DrvCopyBits 19L
#define INDEX_DrvStretchBlt 20L #define INDEX_DrvStretchBlt 20L
#define INDEX_DrvUnknown2 21L
#define INDEX_DrvSetPalette 22L #define INDEX_DrvSetPalette 22L
#define INDEX_DrvTextOut 23L #define INDEX_DrvTextOut 23L
#define INDEX_DrvEscape 24L #define INDEX_DrvEscape 24L
@ -362,8 +364,10 @@ typedef struct _DRIVEROBJ {
#define INDEX_DrvStartPage 33L #define INDEX_DrvStartPage 33L
#define INDEX_DrvEndDoc 34L #define INDEX_DrvEndDoc 34L
#define INDEX_DrvStartDoc 35L #define INDEX_DrvStartDoc 35L
#define INDEX_DrvUnknown3 36L
#define INDEX_DrvGetGlyphMode 37L #define INDEX_DrvGetGlyphMode 37L
#define INDEX_DrvSynchronize 38L #define INDEX_DrvSynchronize 38L
#define INDEX_DrvUnknown4 39L
#define INDEX_DrvSaveScreenBits 40L #define INDEX_DrvSaveScreenBits 40L
#define INDEX_DrvGetModes 41L #define INDEX_DrvGetModes 41L
#define INDEX_DrvFree 42L #define INDEX_DrvFree 42L
@ -387,6 +391,7 @@ typedef struct _DRIVEROBJ {
#define INDEX_DrvEnableDirectDraw 60L #define INDEX_DrvEnableDirectDraw 60L
#define INDEX_DrvDisableDirectDraw 61L #define INDEX_DrvDisableDirectDraw 61L
#define INDEX_DrvQuerySpoolType 62L #define INDEX_DrvQuerySpoolType 62L
#define INDEX_DrvUnknown5 63L
#define INDEX_DrvIcmCreateColorTransform 64L #define INDEX_DrvIcmCreateColorTransform 64L
#define INDEX_DrvIcmDeleteColorTransform 65L #define INDEX_DrvIcmDeleteColorTransform 65L
#define INDEX_DrvIcmCheckBitmapBits 66L #define INDEX_DrvIcmCheckBitmapBits 66L
@ -3622,6 +3627,7 @@ typedef DHPDEV
IN LPWSTR pwszDeviceName, IN LPWSTR pwszDeviceName,
IN HANDLE hDriver); IN HANDLE hDriver);
#endif #endif
typedef HSURF typedef HSURF
(APIENTRY *PFN_DrvEnableSurface)( (APIENTRY *PFN_DrvEnableSurface)(
IN DHPDEV dhpdev); IN DHPDEV dhpdev);

View file

@ -140,7 +140,7 @@ typedef struct _EDD_DIRECTDRAW_GLOBAL
/* 0x034 */ VIDEOMEMORY *pvmList; // 0x034 <-- verified to match Windows XP, pvmList /* 0x034 */ VIDEOMEMORY *pvmList; // 0x034 <-- verified to match Windows XP, pvmList
/* 0x038 */ DWORD dwNumFourCC; /* 0x038 */ DWORD dwNumFourCC;
/* 0x03C */ PDWORD pdwFourCC; /* 0x03C */ PDWORD pdwFourCC;
/* 0x040 */ DD_HALINFO ddHalInfo; /* 0x040 */ DD_HALINFO ddHalInfo; // 0x040 <-- verified to match Windows XP, ddHalInfo
/* 0x1E0 */ ULONG unk_1e0[46]; /* 0x1E0 */ ULONG unk_1e0[46];
/* 0x298 */ DD_CALLBACKS ddCallbacks; // 0x298 <-- verified to match Windows XP, ddCallbacks /* 0x298 */ DD_CALLBACKS ddCallbacks; // 0x298 <-- verified to match Windows XP, ddCallbacks
/* 0x2C0 */ DD_SURFACECALLBACKS ddSurfaceCallbacks; // 0x2C4 <-- verified to match Windows XP, ddSurfaceCallbacks /* 0x2C0 */ DD_SURFACECALLBACKS ddSurfaceCallbacks; // 0x2C4 <-- verified to match Windows XP, ddSurfaceCallbacks

View file

@ -531,7 +531,6 @@ typedef VOID (NTAPI *PGD_SYNCHRONIZESURFACE)(SURFOBJ*, RECTL *, FLONG);
// //
typedef struct _DRIVER_FUNCTIONS typedef struct _DRIVER_FUNCTIONS
{ {
PGD_ENABLEDRIVER EnableDriver; //ReactOS Extra
PGD_ENABLEPDEV EnablePDEV; PGD_ENABLEPDEV EnablePDEV;
PGD_COMPLETEPDEV CompletePDEV; PGD_COMPLETEPDEV CompletePDEV;
PGD_DISABLEPDEV DisablePDEV; PGD_DISABLEPDEV DisablePDEV;
@ -541,7 +540,7 @@ typedef struct _DRIVER_FUNCTIONS
PGD_OFFSET Offset; PGD_OFFSET Offset;
PGD_RESETPDEV ResetPDEV; PGD_RESETPDEV ResetPDEV;
PGD_DISABLEDRIVER DisableDriver; PGD_DISABLEDRIVER DisableDriver;
PVOID Unknown0; PVOID Unknown1;
PGD_CREATEDEVICEBITMAP CreateDeviceBitmap; PGD_CREATEDEVICEBITMAP CreateDeviceBitmap;
PGD_DELETEDEVICEBITMAP DeleteDeviceBitmap; PGD_DELETEDEVICEBITMAP DeleteDeviceBitmap;
PGD_REALIZEBRUSH RealizeBrush; PGD_REALIZEBRUSH RealizeBrush;
@ -553,7 +552,7 @@ typedef struct _DRIVER_FUNCTIONS
PGD_BITBLT BitBlt; PGD_BITBLT BitBlt;
PGD_COPYBITS CopyBits; PGD_COPYBITS CopyBits;
PGD_STRETCHBLT StretchBlt; PGD_STRETCHBLT StretchBlt;
PVOID Unknown1; PVOID Unknown2;
PGD_SETPALETTE SetPalette; PGD_SETPALETTE SetPalette;
PGD_TEXTOUT TextOut; PGD_TEXTOUT TextOut;
PGD_ESCAPE Escape; PGD_ESCAPE Escape;
@ -568,10 +567,10 @@ typedef struct _DRIVER_FUNCTIONS
PGD_STARTPAGE StartPage; PGD_STARTPAGE StartPage;
PGD_ENDDOC EndDoc; PGD_ENDDOC EndDoc;
PGD_STARTDOC StartDoc; PGD_STARTDOC StartDoc;
PVOID Unknown2; PVOID Unknown3;
PGD_GETGLYPHMODE GetGlyphMode; PGD_GETGLYPHMODE GetGlyphMode;
PGD_SYNCHRONIZE Synchronize; PGD_SYNCHRONIZE Synchronize;
PVOID Unknown3; PVOID Unknown4;
PGD_SAVESCREENBITS SaveScreenBits; PGD_SAVESCREENBITS SaveScreenBits;
PGD_GETMODES GetModes; PGD_GETMODES GetModes;
PGD_FREE Free; PGD_FREE Free;
@ -595,7 +594,7 @@ typedef struct _DRIVER_FUNCTIONS
PGD_ENABLEDIRECTDRAW EnableDirectDraw; PGD_ENABLEDIRECTDRAW EnableDirectDraw;
PGD_DISABLEDIRECTDRAW DisableDirectDraw; PGD_DISABLEDIRECTDRAW DisableDirectDraw;
PGD_QUERYSPOOLTYPE QuerySpoolType; PGD_QUERYSPOOLTYPE QuerySpoolType;
PVOID Unknown4; PVOID Unknown5;
PFN_DrvIcmCreateColorTransform IcmCreateColorTransform; PFN_DrvIcmCreateColorTransform IcmCreateColorTransform;
PFN_DrvIcmDeleteColorTransform IcmDeleteColorTransform; PFN_DrvIcmDeleteColorTransform IcmDeleteColorTransform;
PFN_DrvIcmCheckBitmapBits IcmCheckBitmapBits; PFN_DrvIcmCheckBitmapBits IcmCheckBitmapBits;
@ -605,9 +604,7 @@ typedef struct _DRIVER_FUNCTIONS
PFN_DrvPlgBlt PlgBlt; PFN_DrvPlgBlt PlgBlt;
PGD_ALPHABLEND AlphaBlend; PGD_ALPHABLEND AlphaBlend;
PVOID SynthesizeFont; PVOID SynthesizeFont;
PVOID Unknown5;
PVOID GetSynthesizedFontFiles; PVOID GetSynthesizedFontFiles;
PVOID Unknown6;
PGD_TRANSPARENTBLT TransparentBlt; PGD_TRANSPARENTBLT TransparentBlt;
PFN_DrvQueryPerBandInfo QueryPerBandInfo; PFN_DrvQueryPerBandInfo QueryPerBandInfo;
PFN_DrvQueryDeviceSupport QueryDeviceSupport; PFN_DrvQueryDeviceSupport QueryDeviceSupport;
@ -626,7 +623,10 @@ typedef struct _DRIVER_FUNCTIONS
PFN_DrvResetDevice ResetDevice; PFN_DrvResetDevice ResetDevice;
PVOID Reserved9; PVOID Reserved9;
PVOID Reserved10; PVOID Reserved10;
PVOID Reserved11; PVOID Reserved11; /* 92 */
/* ReactOS specify */
PGD_ENABLEDRIVER EnableDriver; //ReactOS Extra
} DRIVER_FUNCTIONS, *PDRIVER_FUNCTIONS; } DRIVER_FUNCTIONS, *PDRIVER_FUNCTIONS;
#endif #endif

View file

@ -31,6 +31,7 @@
/* #define TRACE_DRV_CALLS to get a log of all calls into the display driver. */ /* #define TRACE_DRV_CALLS to get a log of all calls into the display driver. */
#undef TRACE_DRV_CALLS #undef TRACE_DRV_CALLS
typedef struct _GRAPHICS_DRIVER typedef struct _GRAPHICS_DRIVER
{ {
PWSTR Name; PWSTR Name;
@ -391,7 +392,6 @@ BOOL DRIVER_BuildDDIFunctions(PDRVENABLEDATA DED,
PDRIVER_FUNCTIONS DF) PDRIVER_FUNCTIONS DF)
{ {
BEGIN_FUNCTION_MAP(); BEGIN_FUNCTION_MAP();
DRIVER_FUNCTION(EnablePDEV); DRIVER_FUNCTION(EnablePDEV);
DRIVER_FUNCTION(CompletePDEV); DRIVER_FUNCTION(CompletePDEV);
DRIVER_FUNCTION(DisablePDEV); DRIVER_FUNCTION(DisablePDEV);
@ -401,6 +401,7 @@ BOOL DRIVER_BuildDDIFunctions(PDRVENABLEDATA DED,
DRIVER_FUNCTION(Offset); DRIVER_FUNCTION(Offset);
DRIVER_FUNCTION(ResetPDEV); DRIVER_FUNCTION(ResetPDEV);
DRIVER_FUNCTION(DisableDriver); DRIVER_FUNCTION(DisableDriver);
DRIVER_FUNCTION(Unknown1);
DRIVER_FUNCTION(CreateDeviceBitmap); DRIVER_FUNCTION(CreateDeviceBitmap);
DRIVER_FUNCTION(DeleteDeviceBitmap); DRIVER_FUNCTION(DeleteDeviceBitmap);
DRIVER_FUNCTION(RealizeBrush); DRIVER_FUNCTION(RealizeBrush);
@ -410,10 +411,9 @@ BOOL DRIVER_BuildDDIFunctions(PDRVENABLEDATA DED,
DRIVER_FUNCTION(StrokeAndFillPath); DRIVER_FUNCTION(StrokeAndFillPath);
DRIVER_FUNCTION(Paint); DRIVER_FUNCTION(Paint);
DRIVER_FUNCTION(BitBlt); DRIVER_FUNCTION(BitBlt);
DRIVER_FUNCTION(TransparentBlt);
DRIVER_FUNCTION(CopyBits); DRIVER_FUNCTION(CopyBits);
DRIVER_FUNCTION(StretchBlt); DRIVER_FUNCTION(StretchBlt);
DRIVER_FUNCTION(StretchBltROP); DRIVER_FUNCTION(Unknown2);
DRIVER_FUNCTION(SetPalette); DRIVER_FUNCTION(SetPalette);
DRIVER_FUNCTION(TextOut); DRIVER_FUNCTION(TextOut);
DRIVER_FUNCTION(Escape); DRIVER_FUNCTION(Escape);
@ -428,8 +428,10 @@ BOOL DRIVER_BuildDDIFunctions(PDRVENABLEDATA DED,
DRIVER_FUNCTION(StartPage); DRIVER_FUNCTION(StartPage);
DRIVER_FUNCTION(EndDoc); DRIVER_FUNCTION(EndDoc);
DRIVER_FUNCTION(StartDoc); DRIVER_FUNCTION(StartDoc);
DRIVER_FUNCTION(Unknown3);
DRIVER_FUNCTION(GetGlyphMode); DRIVER_FUNCTION(GetGlyphMode);
DRIVER_FUNCTION(Synchronize); DRIVER_FUNCTION(Synchronize);
DRIVER_FUNCTION(Unknown4);
DRIVER_FUNCTION(SaveScreenBits); DRIVER_FUNCTION(SaveScreenBits);
DRIVER_FUNCTION(GetModes); DRIVER_FUNCTION(GetModes);
DRIVER_FUNCTION(Free); DRIVER_FUNCTION(Free);
@ -452,11 +454,36 @@ BOOL DRIVER_BuildDDIFunctions(PDRVENABLEDATA DED,
DRIVER_FUNCTION(EnableDirectDraw); DRIVER_FUNCTION(EnableDirectDraw);
DRIVER_FUNCTION(DisableDirectDraw); DRIVER_FUNCTION(DisableDirectDraw);
DRIVER_FUNCTION(QuerySpoolType); DRIVER_FUNCTION(QuerySpoolType);
DRIVER_FUNCTION(Unknown5);
DRIVER_FUNCTION(IcmCreateColorTransform);
DRIVER_FUNCTION(IcmDeleteColorTransform);
DRIVER_FUNCTION(IcmCheckBitmapBits);
DRIVER_FUNCTION(IcmSetDeviceGammaRamp); DRIVER_FUNCTION(IcmSetDeviceGammaRamp);
DRIVER_FUNCTION(GradientFill); DRIVER_FUNCTION(GradientFill);
DRIVER_FUNCTION(SynchronizeSurface); DRIVER_FUNCTION(StretchBltROP);
DRIVER_FUNCTION(PlgBlt);
DRIVER_FUNCTION(AlphaBlend); DRIVER_FUNCTION(AlphaBlend);
DRIVER_FUNCTION(SynthesizeFont);
DRIVER_FUNCTION(GetSynthesizedFontFiles);
DRIVER_FUNCTION(TransparentBlt);
DRIVER_FUNCTION(QueryPerBandInfo);
DRIVER_FUNCTION(QueryDeviceSupport);
DRIVER_FUNCTION(Reserved1);
DRIVER_FUNCTION(Reserved2);
DRIVER_FUNCTION(Reserved3);
DRIVER_FUNCTION(Reserved4);
DRIVER_FUNCTION(Reserved5);
DRIVER_FUNCTION(Reserved6);
DRIVER_FUNCTION(Reserved7);
DRIVER_FUNCTION(Reserved8);
DRIVER_FUNCTION(DeriveSurface);
DRIVER_FUNCTION(QueryGlyphAttrs);
DRIVER_FUNCTION(Notify);
DRIVER_FUNCTION(SynchronizeSurface);
DRIVER_FUNCTION(ResetDevice);
DRIVER_FUNCTION(Reserved9);
DRIVER_FUNCTION(Reserved10);
DRIVER_FUNCTION(Reserved11);
END_FUNCTION_MAP(); END_FUNCTION_MAP();
return TRUE; return TRUE;

View file

@ -737,6 +737,8 @@ DxEngCleanDC(HDC hdc)
/************************************************************************/ /************************************************************************/
BOOL STDCALL DxEngSetDCOwner(HGDIOBJ hObject, DWORD OwnerMask) BOOL STDCALL DxEngSetDCOwner(HGDIOBJ hObject, DWORD OwnerMask)
{ {
DPRINT1("ReactX Calling : DxEngSetDCOwner \n");
return IntGdiSetDCOwnerEx( hObject, OwnerMask, FALSE); return IntGdiSetDCOwnerEx( hObject, OwnerMask, FALSE);
} }