gps/GPSResources/tcpmp/common/overlay/ddrawce.h

259 lines
9.8 KiB
C
Raw Permalink Normal View History

2019-05-01 12:32:35 +00:00
#define DD_OK 0
typedef struct IDirectDraw *LPDIRECTDRAW;
typedef struct IDirectDrawSurface *LPDIRECTDRAWSURFACE;
typedef struct IDirectDrawClipper *LPDIRECTDRAWCLIPPER;
typedef struct IDirectDrawPalette *LPDIRECTDRAWPALETTE;
static const guid IID_IDirectDraw = { 0x9c59509a, 0x39bd, 0x11d1, { 0x8C,0x4A,0x00,0xC0,0x4F,0xD9,0x30,0xC5 }};
typedef struct DDSCAPS
{
DWORD dwCaps;
} DDSCAPS;
typedef DDSCAPS *LPDDSCAPS;
typedef struct DDCAPS
{
DWORD dwSize;
DWORD dwVidMemTotal;
DWORD dwVidMemFree;
DWORD dwVidMemStride;
DDSCAPS ddsCaps;
DWORD dwNumFourCCCodes;
DWORD dwPalCaps;
DWORD dwBltCaps;
DWORD dwCKeyCaps;
DWORD dwAlphaCaps;
DWORD dwRops[8];
DWORD dwOverlayCaps;
DWORD dwMaxVisibleOverlays;
DWORD dwCurrVisibleOverlays;
DWORD dwAlignBoundarySrc;
DWORD dwAlignSizeSrc;
DWORD dwAlignBoundaryDest;
DWORD dwAlignSizeDest;
DWORD dwMinOverlayStretch;
DWORD dwMaxOverlayStretch;
DWORD dwMiscCaps;
} DDCAPS;
typedef DDCAPS *LPDDCAPS;
typedef struct DDCOLORKEY
{
DWORD dwColorSpaceLowValue;
DWORD dwColorSpaceHighValue;
} DDCOLORKEY;
typedef DDCOLORKEY *LPDDCOLORKEY;
typedef struct DDOVERLAYFX
{
DWORD dwSize;
DWORD dwAlphaConstBitDepth;
DWORD dwAlphaConst;
DDCOLORKEY dckDestColorkey;
DDCOLORKEY dckSrcColorkey;
} DDOVERLAYFX;
typedef DDOVERLAYFX *LPDDOVERLAYFX;
typedef struct DDPIXELFORMAT
{
DWORD dwSize;
DWORD dwFlags;
DWORD dwFourCC;
DWORD dwRGBBitCount;
DWORD dwRBitMask;
DWORD dwGBitMask;
DWORD dwBBitMask;
DWORD dwRGBAlphaBitMask;
} DDPIXELFORMAT;
typedef DDPIXELFORMAT *LPDDPIXELFORMAT;
typedef struct DDSURFACEDESC
{
DWORD dwSize;
DWORD dwFlags;
DWORD dwHeight;
DWORD dwWidth;
LONG lPitch;
LONG lXPitch;
DWORD dwBackBufferCount;
DWORD dwRefreshRate;
LPVOID lpSurface;
DDCOLORKEY ddckCKDestOverlay;
DDCOLORKEY ddckCKDestBlt;
DDCOLORKEY ddckCKSrcOverlay;
DDCOLORKEY ddckCKSrcBlt;
DDPIXELFORMAT ddpfPixelFormat;
DDSCAPS ddsCaps;
DWORD dwSurfaceSize;
} DDSURFACEDESC;
typedef DDSURFACEDESC *LPDDSURFACEDESC;
#define DDPF_FOURCC 0x00000004
#define DDPF_RGB 0x00000040
#define DDPF_PALETTEINDEXED 0x00000020
#define DDWAITVB_BLOCKBEGIN 0x00000001
#define DDWAITVB_BLOCKEND 0x00000004
#define DDSD_CAPS 0x00000001
#define DDSD_HEIGHT 0x00000002
#define DDSD_WIDTH 0x00000004
#define DDSD_PITCH 0x00000008
#define DDSD_XPITCH 0x00000010
#define DDSD_BACKBUFFERCOUNT 0x00000020
#define DDSD_PIXELFORMAT 0x00001000
#define DDSCAPS_FLIP 0x00000004
#define DDSCAPS_OVERLAY 0x00000010
#define DDSCAPS_PRIMARYSURFACE 0x00000040
#define DDSCAPS_VIDEOMEMORY 0x00000100
#define DDFXCAPS_BLTARITHSTRETCHY 0x00000020
#define DDFXCAPS_OVERLAYARITHSTRETCHY 0x00040000
#define DDBLT_WAITNOTBUSY 0x01000000
#define DDBLT_WAITVSYNC 0x00000001
#define DDLOCK_WAITNOTBUSY 0x00000008
#define DDBLTCAPS_FOURCCTORGB 0x00000004
#define DDOVERLAYCAPS_CKEYDEST 0x00000200
#define DDOVERLAYCAPS_MIRRORLEFTRIGHT 0x00000010
#define DDOVERLAYCAPS_MIRRORUPDOWN 0x00000020
#define DDOVERLAYCAPS_OVERLAYSUPPORT 0x80000000
#define DDOVER_HIDE 0x00000020
#define DDOVER_KEYDEST 0x00000040
#define DDOVER_SHOW 0x00000400
#define DDOVER_MIRRORLEFTRIGHT 0x00001000
#define DDOVER_MIRRORUPDOWN 0x00002000
#define DDCKEY_DESTOVERLAY 0x00000004
#define DDSCL_NORMAL 0x00000000
#define DDSCL_FULLSCREEN 0x00000001
#define DDERR_SURFACELOST 0x887601C2
#define DDFLIP_WAITNOTBUSY 0x00000008
#define DDENUMRET_CANCEL 0
#define DDENUMRET_OK 1
typedef struct IDirectDrawVMT
{
HRESULT (STDCALL* QueryInterface)(struct IDirectDraw*, const guid*, LPVOID*);
ULONG (STDCALL* AddRef)(struct IDirectDraw*);
ULONG (STDCALL* Release)(struct IDirectDraw*);
HRESULT (STDCALL* CreateClipper)(struct IDirectDraw*, DWORD, LPDIRECTDRAWCLIPPER*, void* );
HRESULT (STDCALL* CreatePalette)(struct IDirectDraw*, DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE*, void* );
HRESULT (STDCALL* CreateSurface)(struct IDirectDraw*, LPDDSURFACEDESC, LPDIRECTDRAWSURFACE*, void*);
HRESULT (STDCALL* EnumDisplayModes)( struct IDirectDraw*, DWORD, LPDDSURFACEDESC, LPVOID, void* );
HRESULT (STDCALL* EnumSurfaces)(struct IDirectDraw*, DWORD, LPDDSURFACEDESC, LPVOID, void* );
HRESULT (STDCALL* FlipToGDISurface)(struct IDirectDraw*);
HRESULT (STDCALL* GetCaps)( struct IDirectDraw*, LPDDCAPS, LPDDCAPS);
HRESULT (STDCALL* GetDisplayMode)( struct IDirectDraw*, LPDDSURFACEDESC);
HRESULT (STDCALL* GetFourCCCodes)(struct IDirectDraw*, LPDWORD, LPDWORD );
HRESULT (STDCALL* GetGDISurface)(struct IDirectDraw*, LPDIRECTDRAWSURFACE*);
HRESULT (STDCALL* GetMonitorFrequency)(struct IDirectDraw*, LPDWORD);
HRESULT (STDCALL* GetScanLine)(struct IDirectDraw*, LPDWORD);
HRESULT (STDCALL* GetVerticalBlankStatus)(struct IDirectDraw*, LPBOOL );
HRESULT (STDCALL* RestoreDisplayMode)(struct IDirectDraw*);
HRESULT (STDCALL* SetCooperativeLevel)(struct IDirectDraw*, HWND, DWORD);
HRESULT (STDCALL* SetDisplayMode)(struct IDirectDraw*, DWORD, DWORD,DWORD);
HRESULT (STDCALL* WaitForVerticalBlank)(struct IDirectDraw*, DWORD, HANDLE);
HRESULT (STDCALL* GetAvailableVidMem)(struct IDirectDraw*, LPDDSCAPS, LPDWORD, LPDWORD);
HRESULT (STDCALL* GetSurfaceFromDC)(struct IDirectDraw*, HDC, LPDIRECTDRAWSURFACE*);
HRESULT (STDCALL* RestoreAllSurfaces)(struct IDirectDraw*);
HRESULT (STDCALL* TestCooperativeLevel)(struct IDirectDraw*);
HRESULT (STDCALL* GetDeviceIdentifier)(struct IDirectDraw*,void*, DWORD );
} IDirectDrawVMT;
typedef struct IDirectDraw
{
IDirectDrawVMT *VMT;
} IDirectDraw;
#define IDirectDraw_QueryInterface(p,a,b) (p)->VMT->QueryInterface(p,a,b)
#define IDirectDraw_Release(p) (p)->VMT->Release(p)
#define IDirectDraw_CreateSurface(p,a,b,c) (p)->VMT->CreateSurface(p,a,b,c)
#define IDirectDraw_GetDisplayMode(p,a) (p)->VMT->GetDisplayMode(p,a)
#define IDirectDraw_SetCooperativeLevel(p,a,b) (p)->VMT->SetCooperativeLevel(p,a,b)
#define IDirectDraw_GetCaps(p,a,b) (p)->VMT->GetCaps(p,a,b)
#define IDirectDraw_WaitForVerticalBlank(p,a,b) (p)->VMT->WaitForVerticalBlank(p,a,b)
typedef HRESULT (FAR PASCAL *LPDDENUMSURFACESCALLBACK)(LPDIRECTDRAWSURFACE, LPDDSURFACEDESC, LPVOID);
typedef struct IDirectDrawSurfaceVMT
{
HRESULT (STDCALL* QueryInterface)(struct IDirectDrawSurface*, void*, LPVOID*);
ULONG (STDCALL* AddRef)(struct IDirectDrawSurface*);
ULONG (STDCALL* Release)(struct IDirectDrawSurface*);
HRESULT (STDCALL* AddOverlayDirtyRect)(struct IDirectDrawSurface*, LPRECT);
HRESULT (STDCALL* Blt)(struct IDirectDrawSurface*, LPRECT,LPDIRECTDRAWSURFACE, LPRECT,DWORD, void*);
HRESULT (STDCALL* EnumAttachedSurfaces)(struct IDirectDrawSurface*, LPVOID,LPDDENUMSURFACESCALLBACK);
HRESULT (STDCALL* EnumOverlayZOrders)(struct IDirectDrawSurface*, DWORD,LPVOID,void*);
HRESULT (STDCALL* Flip)(struct IDirectDrawSurface*, LPDIRECTDRAWSURFACE, DWORD);
HRESULT (STDCALL* GetBltStatus)(struct IDirectDrawSurface*, DWORD);
HRESULT (STDCALL* GetCaps)(struct IDirectDrawSurface*, LPDDSCAPS);
HRESULT (STDCALL* GetClipper)(struct IDirectDrawSurface*, LPDIRECTDRAWCLIPPER*);
HRESULT (STDCALL* GetColorKey)(struct IDirectDrawSurface*, DWORD, LPDDCOLORKEY);
HRESULT (STDCALL* GetDC)(struct IDirectDrawSurface*, HDC*);
HRESULT (STDCALL* GetFlipStatus)(struct IDirectDrawSurface*, DWORD);
HRESULT (STDCALL* GetOverlayPosition)(struct IDirectDrawSurface*, LPLONG, LPLONG );
HRESULT (STDCALL* GetPalette)(struct IDirectDrawSurface*, LPDIRECTDRAWPALETTE*);
HRESULT (STDCALL* GetPixelFormat)(struct IDirectDrawSurface*, LPDDPIXELFORMAT);
HRESULT (STDCALL* GetSurfaceDesc)(struct IDirectDrawSurface*, LPDDSURFACEDESC);
HRESULT (STDCALL* IsLost)(struct IDirectDrawSurface*);
HRESULT (STDCALL* Lock)(struct IDirectDrawSurface*, LPRECT,LPDDSURFACEDESC,DWORD,HANDLE);
HRESULT (STDCALL* ReleaseDC)(struct IDirectDrawSurface*, HDC);
HRESULT (STDCALL* Restore)(struct IDirectDrawSurface*);
HRESULT (STDCALL* SetClipper)(struct IDirectDrawSurface*, LPDIRECTDRAWCLIPPER);
HRESULT (STDCALL* SetColorKey)(struct IDirectDrawSurface*, DWORD, LPDDCOLORKEY);
HRESULT (STDCALL* SetOverlayPosition)(struct IDirectDrawSurface*, LONG, LONG );
HRESULT (STDCALL* SetPalette)(struct IDirectDrawSurface*, LPDIRECTDRAWPALETTE);
HRESULT (STDCALL* Unlock)(struct IDirectDrawSurface*, LPVOID);
HRESULT (STDCALL* UpdateOverlay)(struct IDirectDrawSurface*, LPRECT, LPDIRECTDRAWSURFACE,LPRECT,DWORD, LPDDOVERLAYFX);
HRESULT (STDCALL* UpdateOverlayZOrder)(struct IDirectDrawSurface*, DWORD, LPDIRECTDRAWSURFACE);
HRESULT (STDCALL* GetDDInterface)(struct IDirectDrawSurface*, LPDIRECTDRAW *);
HRESULT (STDCALL* AlphaBlt)(struct IDirectDrawSurface*, LPRECT, LPDIRECTDRAWSURFACE, LPRECT, DWORD, void*);
} IDirectDrawSurfaceVMT;
typedef struct IDirectDrawSurface
{
IDirectDrawSurfaceVMT *VMT;
} IDirectDrawSurface;
#define IDirectDrawSurface_Release(p) (p)->VMT->Release(p)
#define IDirectDrawSurface_Blt(p,a,b,c,d,e) (p)->VMT->Blt(p,a,b,c,d,e)
#define IDirectDrawSurface_GetSurfaceDesc(p,a) (p)->VMT->GetSurfaceDesc(p,a)
#define IDirectDrawSurface_Lock(p,a,b,c,d) (p)->VMT->Lock(p,a,b,c,d)
#define IDirectDrawSurface_Unlock(p,b) (p)->VMT->Unlock(p,b)
#define IDirectDrawSurface_UpdateOverlay(p,a,b,c,d,e) (p)->VMT->UpdateOverlay(p,a,b,c,d,e)
#define IDirectDrawSurface_SetColorKey(p,a,b) (p)->VMT->SetColorKey(p,a,b)
#define IDirectDrawSurface_Restore(p) (p)->VMT->Restore(p)
#define IDirectDrawSurface_Flip(p,a,b) (p)->VMT->Flip(p,a,b)
#define IDirectDrawSurface_EnumAttachedSurfaces(p,a,b) (p)->VMT->EnumAttachedSurfaces(p,a,b)