#ifndef MXDISPLAYSURFACE_H #define MXDISPLAYSURFACE_H #include "decomp.h" #include "mxbitmap.h" #include "mxcore.h" #include "mxpalette.h" #include "mxvideoparam.h" #include // VTABLE: LEGO1 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 VTable0x24( LPDDSURFACEDESC, MxBitmap*, undefined4, undefined4, undefined4, undefined4, undefined4, undefined4 ); virtual MxBool VTable0x28( MxBitmap* p_bitmap, MxS32 p_left, MxS32 p_top, MxS32 p_right, MxS32 p_bottom, MxS32 p_width, MxS32 p_height ); virtual MxBool VTable0x2c( LPDDSURFACEDESC, MxBitmap*, undefined4, undefined4, undefined4, undefined4, undefined4, undefined4, MxBool ); virtual MxBool VTable0x30( MxBitmap* p_bitmap, MxS32 p_left, MxS32 p_top, MxS32 p_right, MxS32 p_bottom, MxS32 p_width, MxS32 p_height, MxBool ); virtual undefined4 VTable0x34(undefined4, undefined4, undefined4, undefined4, undefined4, undefined4); virtual void Display(MxS32 p_left, MxS32 p_top, MxS32 p_left2, MxS32 p_top2, MxS32 p_width, MxS32 p_height); virtual void GetDC(HDC* p_hdc); virtual void ReleaseDC(HDC p_hdc); virtual LPDIRECTDRAWSURFACE VTable0x44(MxBitmap*, undefined4*, undefined4, undefined4); inline LPDIRECTDRAWSURFACE GetDirectDrawSurface1() { return this->m_ddSurface1; } inline LPDIRECTDRAWSURFACE GetDirectDrawSurface2() { return this->m_ddSurface2; } inline MxVideoParam& GetVideoParam() { return this->m_videoParam; } 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