mirror of
https://github.com/DxWnd/DxWnd.reloaded
synced 2024-12-30 09:25:35 +01:00
144 lines
10 KiB
C
144 lines
10 KiB
C
#include <dxdiag.h>
|
|
|
|
typedef HRESULT (WINAPI *DirectDrawCreate_Type)(GUID *, LPDIRECTDRAW *, IUnknown *);
|
|
typedef HRESULT (WINAPI *DirectDrawCreateEx_Type)(GUID *, LPDIRECTDRAW *, REFIID, IUnknown *);
|
|
typedef HRESULT (WINAPI *DirectDrawEnumerateA_Type)(LPDDENUMCALLBACKA, LPVOID);
|
|
typedef HRESULT (WINAPI *DirectDrawEnumerateExA_Type)(LPDDENUMCALLBACKEXA, LPVOID, DWORD);
|
|
typedef HRESULT (WINAPI *DirectDrawEnumerateW_Type)(LPDDENUMCALLBACKW, LPVOID);
|
|
typedef HRESULT (WINAPI *DirectDrawEnumerateExW_Type)(LPDDENUMCALLBACKEXW, LPVOID, DWORD);
|
|
typedef HRESULT (WINAPI *DirectDrawCreateClipper_Type)(DWORD, LPDIRECTDRAWCLIPPER *, IUnknown *);
|
|
typedef void (WINAPI *HandleDDThreadLock_Type)(void);
|
|
|
|
typedef HDC (WINAPI *GDIGetDC_Type)(HWND);
|
|
typedef int (WINAPI *GDIReleaseDC_Type)(HWND, HDC);
|
|
|
|
// COM generic types
|
|
typedef HRESULT (WINAPI *QueryInterface_Type)(void *, REFIID, LPVOID *);
|
|
|
|
// DirectDraw
|
|
// STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;
|
|
typedef ULONG (WINAPI *AddRefD_Type)(LPDIRECTDRAW);
|
|
typedef ULONG (WINAPI *ReleaseD_Type)(LPDIRECTDRAW);
|
|
/*** IDirectDraw methods ***/
|
|
typedef ULONG (WINAPI *Compact_Type)(LPDIRECTDRAW);
|
|
typedef HRESULT (WINAPI *CreateClipper_Type)(LPDIRECTDRAW, DWORD, LPDIRECTDRAWCLIPPER FAR* , IUnknown FAR*);
|
|
typedef HRESULT (WINAPI *CreatePalette_Type)(LPDIRECTDRAW, DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE *, IUnknown *);
|
|
typedef HRESULT (WINAPI *CreateSurface1_Type)(LPDIRECTDRAW, DDSURFACEDESC *, LPDIRECTDRAWSURFACE *, void *);
|
|
typedef HRESULT (WINAPI *CreateSurface2_Type)(LPDIRECTDRAW, DDSURFACEDESC2 *, LPDIRECTDRAWSURFACE *, void *);
|
|
typedef HRESULT (WINAPI *CreateSurface_Type)(LPDIRECTDRAW, DDSURFACEDESC2 *, LPDIRECTDRAWSURFACE *, void *);
|
|
typedef HRESULT (WINAPI *DuplicateSurface_Type)(LPDIRECTDRAW, LPDIRECTDRAWSURFACE, LPDIRECTDRAWSURFACE FAR *);
|
|
typedef HRESULT (WINAPI *DuplicateSurface4_Type)(LPDIRECTDRAW, LPDIRECTDRAWSURFACE4, LPDIRECTDRAWSURFACE4 FAR *);
|
|
typedef HRESULT (WINAPI *DuplicateSurface7_Type)(LPDIRECTDRAW, LPDIRECTDRAWSURFACE7, LPDIRECTDRAWSURFACE7 FAR *);
|
|
typedef HRESULT (WINAPI *EnumDisplayModes1_Type)(LPDIRECTDRAW, DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK);
|
|
typedef HRESULT (WINAPI *EnumDisplayModes4_Type)(LPDIRECTDRAW, DWORD, LPDDSURFACEDESC2, LPVOID, LPDDENUMMODESCALLBACK2);
|
|
typedef HRESULT (WINAPI *EnumSurfaces1_Type)(LPDIRECTDRAW, DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMSURFACESCALLBACK);
|
|
typedef HRESULT (WINAPI *EnumSurfaces4_Type)(LPDIRECTDRAW, DWORD, LPDDSURFACEDESC2, LPVOID, LPDDENUMSURFACESCALLBACK2);
|
|
typedef HRESULT (WINAPI *FlipToGDISurface_Type)(LPDIRECTDRAW);
|
|
typedef HRESULT (WINAPI *GetCapsD_Type)(LPDIRECTDRAW, LPDDCAPS, LPDDCAPS);
|
|
typedef HRESULT (WINAPI *GetDisplayMode_Type)(LPDIRECTDRAW, LPDDSURFACEDESC);
|
|
typedef HRESULT (WINAPI *GetDisplayMode4_Type)(LPDIRECTDRAW, LPDDSURFACEDESC2);
|
|
typedef HRESULT (WINAPI *GetFourCCCodes_Type)(LPDIRECTDRAW, LPDWORD, LPDWORD);
|
|
typedef HRESULT (WINAPI *GetGDISurface_Type)(LPDIRECTDRAW, LPDIRECTDRAWSURFACE *);
|
|
typedef HRESULT (WINAPI *GetMonitorFrequency_Type)(LPDIRECTDRAW, LPDWORD);
|
|
typedef HRESULT (WINAPI *GetScanLine_Type)(LPDIRECTDRAW, LPDWORD);
|
|
typedef HRESULT (WINAPI *GetVerticalBlankStatus_Type)(LPDIRECTDRAW, LPBOOL);
|
|
typedef HRESULT (WINAPI *Initialize_Type)(LPDIRECTDRAW, GUID FAR *);
|
|
typedef HRESULT (WINAPI *RestoreDisplayMode_Type)(LPDIRECTDRAW);
|
|
typedef HRESULT (WINAPI *SetCooperativeLevel_Type)(void *, HWND, DWORD);
|
|
typedef HRESULT (WINAPI *SetDisplayMode2_Type)(LPDIRECTDRAW, DWORD, DWORD, DWORD, DWORD, DWORD);
|
|
typedef HRESULT (WINAPI *SetDisplayMode1_Type)(LPDIRECTDRAW, DWORD, DWORD, DWORD);
|
|
typedef HRESULT (WINAPI *WaitForVerticalBlank_Type)(LPDIRECTDRAW, DWORD, HANDLE);
|
|
typedef HRESULT (WINAPI *GetAvailableVidMem_Type)(LPDIRECTDRAW, LPDDSCAPS, LPDWORD, LPDWORD);
|
|
typedef HRESULT (WINAPI *GetAvailableVidMem4_Type)(LPDIRECTDRAW, LPDDSCAPS2, LPDWORD, LPDWORD);
|
|
typedef HRESULT (WINAPI *GetSurfaceFromDC_Type)(LPDIRECTDRAW, HDC, LPDIRECTDRAWSURFACE*);
|
|
typedef HRESULT (WINAPI *RestoreAllSurfaces_Type)(LPDIRECTDRAW);
|
|
typedef HRESULT (WINAPI *TestCooperativeLevel_Type)(LPDIRECTDRAW);
|
|
typedef HRESULT (WINAPI *GetDeviceIdentifier_Type)(LPDIRECTDRAW, LPDDDEVICEIDENTIFIER, DWORD);
|
|
typedef HRESULT (WINAPI *GetScanLine_Type)(LPDIRECTDRAW, LPDWORD);
|
|
typedef HRESULT (WINAPI *StartModeTest_Type)(LPDIRECTDRAW, LPSIZE, DWORD, DWORD);
|
|
typedef HRESULT (WINAPI *EvaluateMode_Type)(LPDIRECTDRAW, DWORD, DWORD *);
|
|
|
|
// DirectDrawSurface
|
|
typedef ULONG (WINAPI *AddRefS_Type)(LPDIRECTDRAWSURFACE);
|
|
typedef HRESULT (WINAPI *ReleaseS_Type)(LPDIRECTDRAWSURFACE);
|
|
typedef HRESULT (WINAPI *AddAttachedSurface_Type)(LPDIRECTDRAWSURFACE, LPDIRECTDRAWSURFACE);
|
|
typedef HRESULT (WINAPI *AddOverlayDirtyRect_Type)(LPDIRECTDRAWSURFACE, LPRECT);
|
|
typedef HRESULT (WINAPI *Blt_Type)(LPDIRECTDRAWSURFACE, LPRECT, LPDIRECTDRAWSURFACE, LPRECT, DWORD, LPDDBLTFX);
|
|
typedef HRESULT (WINAPI *BltBatch_Type)(LPDIRECTDRAWSURFACE, LPDDBLTBATCH, DWORD, DWORD);
|
|
typedef HRESULT (WINAPI *BltFast_Type)(LPDIRECTDRAWSURFACE, DWORD, DWORD, LPDIRECTDRAWSURFACE, LPRECT, DWORD);
|
|
typedef HRESULT (WINAPI *DeleteAttachedSurface_Type)(LPDIRECTDRAWSURFACE, DWORD, LPDIRECTDRAWSURFACE);
|
|
typedef HRESULT (WINAPI *EnumAttachedSurfaces_Type)(LPDIRECTDRAWSURFACE, LPVOID, LPDDENUMSURFACESCALLBACK);
|
|
typedef HRESULT (WINAPI *EnumOverlayZOrders_Type)(LPDIRECTDRAWSURFACE, DWORD, LPVOID, LPDDENUMSURFACESCALLBACK);
|
|
typedef HRESULT (WINAPI *Flip_Type)(LPDIRECTDRAWSURFACE, LPDIRECTDRAWSURFACE, DWORD);
|
|
typedef HRESULT (WINAPI *GetAttachedSurface_Type)(LPDIRECTDRAWSURFACE, DDSCAPS *, LPDIRECTDRAWSURFACE *);
|
|
typedef HRESULT (WINAPI *GetBltStatus_Type)(LPDIRECTDRAWSURFACE, DWORD);
|
|
typedef HRESULT (WINAPI *GetCapsS_Type)(LPDIRECTDRAWSURFACE, LPDDSCAPS);
|
|
typedef HRESULT (WINAPI *GetCaps2S_Type)(LPDIRECTDRAWSURFACE, LPDDSCAPS2);
|
|
typedef HRESULT (WINAPI *GetClipper_Type)(LPDIRECTDRAWSURFACE, LPDIRECTDRAWCLIPPER FAR*);
|
|
typedef HRESULT (WINAPI *GetColorKey_Type)(LPDIRECTDRAWSURFACE, DWORD, LPDDCOLORKEY);
|
|
typedef HRESULT (WINAPI *GetDC_Type) (LPDIRECTDRAWSURFACE, HDC FAR *);
|
|
typedef HRESULT (WINAPI *GetFlipStatus_Type)(LPDIRECTDRAWSURFACE, DWORD);
|
|
typedef HRESULT (WINAPI *GetOverlayPosition_Type)(LPDIRECTDRAWSURFACE, LPLONG, LPLONG);
|
|
typedef HRESULT (WINAPI *GetPalette_Type)(LPDIRECTDRAWSURFACE, LPDIRECTDRAWPALETTE *);
|
|
typedef HRESULT (WINAPI *GetPixelFormat_Type)(LPDIRECTDRAWSURFACE, LPDDPIXELFORMAT);
|
|
typedef HRESULT (WINAPI *GetSurfaceDesc_Type)(LPDIRECTDRAWSURFACE, LPDDSURFACEDESC);
|
|
typedef HRESULT (WINAPI *GetSurfaceDesc2_Type)(LPDIRECTDRAWSURFACE2, LPDDSURFACEDESC2);
|
|
typedef HRESULT (WINAPI *InitializeC_Type)(LPDIRECTDRAWCLIPPER, LPDIRECTDRAW, DWORD);
|
|
typedef HRESULT (WINAPI *IsLost_Type)(LPDIRECTDRAWSURFACE);
|
|
typedef HRESULT (WINAPI *Lock_Type)(LPDIRECTDRAWSURFACE, LPRECT, LPDDSURFACEDESC, DWORD, HANDLE);
|
|
typedef HRESULT (WINAPI *ReleaseDC_Type)(LPDIRECTDRAWSURFACE, HDC);
|
|
typedef HRESULT (WINAPI *Restore_Type)(LPDIRECTDRAWSURFACE);
|
|
typedef HRESULT (WINAPI *SetClipper_Type)(LPDIRECTDRAWSURFACE, LPDIRECTDRAWCLIPPER);
|
|
typedef HRESULT (WINAPI *SetColorKey_Type)(LPDIRECTDRAWSURFACE, DWORD, LPDDCOLORKEY);
|
|
typedef HRESULT (WINAPI *SetOverlayPosition_Type)(LPDIRECTDRAWSURFACE, LONG, LONG);
|
|
typedef HRESULT (WINAPI *SetPalette_Type)(LPDIRECTDRAWSURFACE, LPDIRECTDRAWPALETTE);
|
|
typedef HRESULT (WINAPI *Unlock1_Type)(LPDIRECTDRAWSURFACE, LPVOID);
|
|
typedef HRESULT (WINAPI *Unlock4_Type)(LPDIRECTDRAWSURFACE, LPRECT);
|
|
typedef HRESULT (WINAPI *UpdateOverlay_Type)(LPDIRECTDRAWSURFACE, LPRECT, LPDIRECTDRAWSURFACE, LPRECT, DWORD, LPDDOVERLAYFX);
|
|
typedef HRESULT (WINAPI *UpdateOverlayDisplay_Type) (LPDIRECTDRAWSURFACE, DWORD);
|
|
typedef HRESULT (WINAPI *UpdateOverlayZOrder_Type)(LPDIRECTDRAWSURFACE, DWORD, LPDIRECTDRAWSURFACE);
|
|
typedef HRESULT (WINAPI *SetSurfaceDesc_Type)(LPDIRECTDRAWSURFACE, LPDDSURFACEDESC, DWORD);
|
|
|
|
// DirectDrawClipper
|
|
typedef HRESULT (WINAPI *AddRefC_Type)(LPDIRECTDRAWCLIPPER);
|
|
typedef HRESULT (WINAPI *ReleaseC_Type)(LPDIRECTDRAWCLIPPER);
|
|
typedef HRESULT (WINAPI *GetClipList_Type)(LPDIRECTDRAWCLIPPER, LPRECT, LPRGNDATA, LPDWORD);
|
|
typedef HRESULT (WINAPI *SetClipList_Type)(LPDIRECTDRAWCLIPPER, LPRGNDATA, DWORD);
|
|
typedef HRESULT (WINAPI *GetHWnd_Type)(LPDIRECTDRAWCLIPPER, HWND FAR *);
|
|
typedef HRESULT (WINAPI *IsClipListChanged_Type)(LPDIRECTDRAWCLIPPER, BOOL FAR *);
|
|
typedef HRESULT (WINAPI *SetHWnd_Type)(LPDIRECTDRAWCLIPPER, DWORD, HWND);
|
|
|
|
// DirectDraw Palette
|
|
/*** IUnknown methods ***/
|
|
typedef HRESULT (WINAPI *QueryInterfaceP_Type)(void *, REFIID, LPVOID *);
|
|
typedef HRESULT (WINAPI *AddRefP_Type)(LPDIRECTDRAWPALETTE);
|
|
typedef HRESULT (WINAPI *ReleaseP_Type)(LPDIRECTDRAWPALETTE);
|
|
/*** IDirectDrawPalette methods ***/
|
|
typedef HRESULT (WINAPI *GetCapsP_Type)(LPDIRECTDRAWPALETTE, LPDWORD);
|
|
typedef HRESULT (WINAPI *GetEntries_Type)(LPDIRECTDRAWPALETTE, DWORD, DWORD, DWORD, LPPALETTEENTRY);
|
|
// STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, DWORD, LPPALETTEENTRY) PURE;
|
|
typedef HRESULT (WINAPI *SetEntries_Type)(LPDIRECTDRAWPALETTE, DWORD, DWORD, DWORD, LPPALETTEENTRY);
|
|
|
|
//
|
|
// GammaRamp
|
|
typedef HRESULT (WINAPI *GammaRamp_Type)(LPDIRECTDRAWSURFACE, DWORD, LPDDGAMMARAMP);
|
|
|
|
// extern procedures
|
|
|
|
extern void HookTexture(LPVOID *, int);
|
|
extern int Set_dwSize_From_Surface();
|
|
|
|
extern void SetBltTransformations(int);
|
|
extern HRESULT WINAPI PrimaryBlt(int, Blt_Type, LPDIRECTDRAWSURFACE, LPRECT, LPDIRECTDRAWSURFACE, LPRECT, LPDDBLTFX);
|
|
extern HRESULT WINAPI PrimaryNoBlt(int, Blt_Type, LPDIRECTDRAWSURFACE, LPRECT, LPDIRECTDRAWSURFACE, LPRECT, LPDDBLTFX);
|
|
extern HRESULT WINAPI PrimaryStretchBlt(int, Blt_Type, LPDIRECTDRAWSURFACE, LPRECT, LPDIRECTDRAWSURFACE, LPRECT, LPDDBLTFX);
|
|
extern HRESULT WINAPI PrimaryFastBlt(int, Blt_Type, LPDIRECTDRAWSURFACE, LPRECT, LPDIRECTDRAWSURFACE, LPRECT, LPDDBLTFX);
|
|
extern HRESULT WINAPI PrimaryBilinearBlt(int, Blt_Type, LPDIRECTDRAWSURFACE, LPRECT, LPDIRECTDRAWSURFACE, LPRECT, LPDDBLTFX);
|
|
|
|
typedef HRESULT (WINAPI *EmuBlt_Type)(int, Blt_Type, LPDIRECTDRAWSURFACE, LPRECT, LPDIRECTDRAWSURFACE, LPRECT, DWORD, LPVOID);
|
|
typedef HRESULT (WINAPI *RevBlt_Type)(int, Blt_Type, LPDIRECTDRAWSURFACE, LPRECT, LPDIRECTDRAWSURFACE, LPRECT);
|
|
typedef HRESULT (WINAPI *PrimaryBlt_Type)(int, Blt_Type, LPDIRECTDRAWSURFACE, LPRECT, LPDIRECTDRAWSURFACE, LPRECT, LPDDBLTFX);
|
|
|
|
extern EmuBlt_Type pEmuBlt;
|
|
extern RevBlt_Type pRevBlt;
|