You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
3.1 KiB
107 lines
3.1 KiB
typedef struct _DDCOLORKEY { |
|
DWORD dwColorSpaceLowValue; |
|
DWORD dwColorSpaceHighValue; |
|
} DDCOLORKEY; |
|
|
|
typedef struct _DDSCAPS { |
|
DWORD dwCaps; |
|
} DDSCAPS, *LPDDSCAPS; |
|
|
|
typedef struct _DDPIXELFORMAT { |
|
DWORD dwSize; |
|
DWORD dwFlags; |
|
DWORD dwFourCC; |
|
union { |
|
DWORD dwRGBBitCount; |
|
DWORD dwYUVBitCount; |
|
DWORD dwZBufferBitDepth; |
|
DWORD dwAlphaBitDepth; |
|
}; |
|
union { |
|
DWORD dwRBitMask; |
|
DWORD dwYBitMask; |
|
}; |
|
union { |
|
DWORD dwGBitMask; |
|
DWORD dwUBitMask; |
|
}; |
|
union { |
|
DWORD dwBBitMask; |
|
DWORD dwVBitMask; |
|
}; |
|
union { |
|
DWORD dwRGBAlphaBitMask; |
|
DWORD dwYUVAlphaBitMask; |
|
DWORD dwRGBZBitMask; |
|
DWORD dwYUVZBitMask; |
|
}; |
|
} DDPIXELFORMAT, *LPDDPIXELFORMAT; |
|
|
|
typedef struct _DDSURFACEDESC { |
|
DWORD dwSize; |
|
DWORD dwFlags; |
|
DWORD dwHeight; |
|
DWORD dwWidth; |
|
union { |
|
LONG lPitch; |
|
DWORD dwLinearSize; |
|
}; |
|
DWORD dwBackBufferCount; |
|
union { |
|
DWORD dwMipMapCount; |
|
DWORD dwZBufferBitDepth; |
|
DWORD dwRefreshRate; |
|
}; |
|
DWORD dwAlphaBitDepth; |
|
DWORD dwReserved; |
|
LPVOID lpSurface; |
|
DDCOLORKEY ddckCKDestOverlay; |
|
DDCOLORKEY ddckCKDestBlt; |
|
DDCOLORKEY ddckCKSrcOverlay; |
|
DDCOLORKEY ddckCKSrcBlt; |
|
DDPIXELFORMAT ddpfPixelFormat; |
|
DDSCAPS ddsCaps; |
|
} DDSURFACEDESC, *LPDDSURFACEDESC; |
|
|
|
typedef struct IDirectDrawPalette *LPDIRECTDRAWPALETTE; |
|
typedef struct IDirectDrawSurface *LPDIRECTDRAWSURFACE; |
|
typedef struct IDirectDraw *LPDIRECTDRAW; |
|
|
|
// No methods are actually used |
|
DECLARE_INTERFACE_(IDirectDrawPalette, IUnknown) |
|
{ |
|
// clang-format off |
|
STDMETHOD(GetCaps)(THIS_ LPDWORD lpdwCaps) PURE; |
|
STDMETHOD(GetEntries)(THIS_ DWORD dwFlags, DWORD dwBase, DWORD dwNumEntries, LPPALETTEENTRY lpEntries) PURE; |
|
STDMETHOD(SetEntries)(THIS_ DWORD dwFlags, DWORD dwStartingEntry, DWORD dwCount, LPPALETTEENTRY lpEntries) PURE; |
|
// clang-format on |
|
}; |
|
|
|
DECLARE_INTERFACE_(IDirectDrawSurface, IUnknown) |
|
{ |
|
// clang-format off |
|
STDMETHOD(BltFast)(THIS_ DWORD dwX, DWORD dwY, LPDIRECTDRAWSURFACE lpDDSrcSurface, LPRECT lpSrcRect, DWORD dwTrans) PURE; |
|
STDMETHOD(GetCaps)(THIS_ LPDDSCAPS lpDDSCaps) PURE; |
|
STDMETHOD(GetDC)(THIS_ HDC *lphDC) PURE; |
|
STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT lpDDPixelFormat) PURE; |
|
STDMETHOD(IsLost)(THIS) PURE; |
|
STDMETHOD(Lock)(THIS_ LPRECT lpDestRect, LPDDSURFACEDESC lpDDSurfaceDesc, DWORD dwFlags, HANDLE hEvent) PURE; |
|
STDMETHOD(ReleaseDC)(THIS_ HDC hDC) PURE; |
|
STDMETHOD(Restore)(THIS) PURE; |
|
STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE lpDDPalette) PURE; |
|
STDMETHOD(Unlock)(THIS_ LPVOID lpSurfaceData) PURE; |
|
// clang-format off |
|
}; |
|
|
|
typedef void *LPDDCAPS; |
|
DECLARE_INTERFACE_(IDirectDraw,IUnknown) |
|
{ |
|
// clang-format off |
|
STDMETHOD(CreatePalette)(THIS_ DWORD dwFlags, LPPALETTEENTRY lpColorTable, LPDIRECTDRAWPALETTE *lplpDDPalette, IUnknown *pUnkOuter) PURE; |
|
STDMETHOD(CreateSurface)(THIS_ LPDDSURFACEDESC lpDDSurfaceDesc, LPDIRECTDRAWSURFACE *lplpDDSurface, IUnknown *pUnkOuter) PURE; |
|
STDMETHOD(SetCooperativeLevel)(THIS_ HWND hWnd, DWORD dwFlags) PURE; |
|
STDMETHOD(SetDisplayMode)(THIS_ DWORD dwWidth, DWORD dwHeight, DWORD dwBPP) PURE; |
|
STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD dwFlags, HANDLE hEvent) PURE; |
|
// clang-format on |
|
}; |
|
|
|
|