isle/LEGO1/mxdisplaysurface.h
Ramen2X 8e87b5b4c8
MxTransitionManager::Tickle() & FUN_1004bcf0 (#168)
* implement MxTransitionManager::Tickle()

* improved accuracy of MxTransitionManager::Tickle

* implement MxTransitionManager::FUN_1004bcf0

* improved accuracy of FUN_1004bcf0

* move/rename stubbed transition methods

---------

Co-authored-by: MattKC <34096995+itsmattkc@users.noreply.github.com>
2023-10-05 18:51:34 -04:00

51 lines
1.9 KiB
C++

#ifndef MXDISPLAYSURFACE_H
#define MXDISPLAYSURFACE_H
#include <ddraw.h>
#include "mxcore.h"
#include "mxpalette.h"
#include "mxvideoparam.h"
#include "decomp.h"
// 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, undefined4, undefined4, undefined4, undefined4, undefined4, undefined4, undefined4);
virtual MxBool vtable28(undefined4, undefined4, undefined4, undefined4, undefined4, undefined4, undefined4);
virtual MxBool vtable2c(LPDDSURFACEDESC, undefined4, 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 undefined4 vtable44(undefined4, 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