#ifndef MXDISPLAYSURFACE_H #define MXDISPLAYSURFACE_H #include "decomp.h" #include "mxbitmap.h" #include "mxcore.h" #include "mxpalette.h" #include "mxvideoparam.h" #include // VTABLE 0x100dc768 // SIZE 0xac class MxDisplaySurface : public MxCore { public: MxDisplaySurface(); virtual ~MxDisplaySurface() override; void Reset(); void FUN_100ba640(); virtual MxResult Init( MxVideoParam& p_videoParam, LPDIRECTDRAWSURFACE p_ddSurface1, LPDIRECTDRAWSURFACE p_ddSurface2, LPDIRECTDRAWCLIPPER p_ddClipper ); virtual MxResult Create(MxVideoParam& p_videoParam); virtual void Clear(); virtual void SetPalette(MxPalette* p_palette); virtual void vtable24( LPDDSURFACEDESC, MxBitmap*, undefined4, undefined4, undefined4, undefined4, undefined4, undefined4 ); virtual MxBool vtable28(undefined4, undefined4, undefined4, undefined4, undefined4, undefined4, undefined4); virtual MxBool vtable2c( LPDDSURFACEDESC, MxBitmap*, undefined4, undefined4, undefined4, undefined4, undefined4, undefined4, MxBool ); virtual MxBool vtable30(undefined4, undefined4, undefined4, undefined4, undefined4, undefined4, undefined4, MxBool); virtual undefined4 vtable34(undefined4, undefined4, undefined4, undefined4, undefined4, undefined4); virtual void Display(undefined4, undefined4, undefined4, undefined4, undefined4, undefined4); virtual void GetDC(HDC* p_hdc); virtual void ReleaseDC(HDC p_hdc); virtual LPDIRECTDRAWSURFACE vtable44(MxBitmap*, undefined4*, undefined4, undefined4); inline LPDIRECTDRAWSURFACE GetDirectDrawSurface1() { return this->m_ddSurface1; } inline LPDIRECTDRAWSURFACE GetDirectDrawSurface2() { return this->m_ddSurface2; } private: MxVideoParam m_videoParam; LPDIRECTDRAWSURFACE m_ddSurface1; LPDIRECTDRAWSURFACE m_ddSurface2; LPDIRECTDRAWCLIPPER m_ddClipper; MxBool m_initialized; DDSURFACEDESC m_surfaceDesc; MxU16* m_16bitPal; }; #endif // MXDISPLAYSURFACE_H