mirror of
https://github.com/isledecomp/isle.git
synced 2024-11-22 15:48:09 -05:00
lego1: Add MxDisplaySurface class members and some functions (#95)
* Add MxDisplaySurface class members and some functions * Add size assert * style
This commit is contained in:
parent
ff13dc691c
commit
932baa2a87
3 changed files with 152 additions and 3 deletions
|
@ -103,6 +103,7 @@ add_library(lego1 SHARED
|
|||
LEGO1/mxdirectdraw.cpp
|
||||
LEGO1/mxdiskstreamcontroller.cpp
|
||||
LEGO1/mxdiskstreamprovider.cpp
|
||||
LEGO1/mxdisplaysurface.cpp
|
||||
LEGO1/mxdsaction.cpp
|
||||
LEGO1/mxdsanim.cpp
|
||||
LEGO1/mxdschunk.cpp
|
||||
|
|
136
LEGO1/mxdisplaysurface.cpp
Normal file
136
LEGO1/mxdisplaysurface.cpp
Normal file
|
@ -0,0 +1,136 @@
|
|||
#include "mxdisplaysurface.h"
|
||||
|
||||
DECOMP_SIZE_ASSERT(MxDisplaySurface, 0xac);
|
||||
|
||||
// OFFSET: LEGO1 0x100ba500
|
||||
MxDisplaySurface::MxDisplaySurface()
|
||||
{
|
||||
this->Reset();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100ba5a0
|
||||
MxDisplaySurface::~MxDisplaySurface()
|
||||
{
|
||||
this->Clear();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100ba610
|
||||
void MxDisplaySurface::Reset()
|
||||
{
|
||||
this->m_ddSurface1 = NULL;
|
||||
this->m_ddSurface2 = NULL;
|
||||
this->m_ddClipper = NULL;
|
||||
this->m_16bitPal = NULL;
|
||||
this->m_initialized = FALSE;
|
||||
memset(&this->m_surfaceDesc, 0, sizeof(this->m_surfaceDesc));
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100ba790
|
||||
MxResult MxDisplaySurface::Init(MxVideoParam &p_videoParam, LPDIRECTDRAWSURFACE p_ddSurface1, LPDIRECTDRAWSURFACE p_ddSurface2, LPDIRECTDRAWCLIPPER p_ddClipper)
|
||||
{
|
||||
MxResult result = SUCCESS;
|
||||
|
||||
this->m_videoParam = p_videoParam;
|
||||
this->m_ddSurface1 = p_ddSurface1;
|
||||
this->m_ddSurface2 = p_ddSurface2;
|
||||
this->m_ddClipper = p_ddClipper;
|
||||
this->m_initialized = FALSE;
|
||||
|
||||
memset(&this->m_surfaceDesc, 0, sizeof(this->m_surfaceDesc));
|
||||
this->m_surfaceDesc.dwSize = sizeof(this->m_surfaceDesc);
|
||||
|
||||
if (this->m_ddSurface2->GetSurfaceDesc(&this->m_surfaceDesc))
|
||||
result = FAILURE;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100ba7f0 STUB
|
||||
MxResult MxDisplaySurface::Create(MxVideoParam *p_videoParam)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100baa90
|
||||
void MxDisplaySurface::Clear()
|
||||
{
|
||||
if (this->m_initialized) {
|
||||
if (this->m_ddSurface2)
|
||||
this->m_ddSurface2->Release();
|
||||
|
||||
if (this->m_ddSurface1)
|
||||
this->m_ddSurface1->Release();
|
||||
|
||||
if (this->m_ddClipper)
|
||||
this->m_ddClipper->Release();
|
||||
}
|
||||
|
||||
if (this->m_16bitPal)
|
||||
delete this->m_16bitPal;
|
||||
|
||||
this->Reset();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100baae0 STUB
|
||||
void MxDisplaySurface::SetPalette(MxPalette *p_palette)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100bc200 STUB
|
||||
void MxDisplaySurface::vtable24(undefined4, undefined4, undefined4, undefined4, undefined4, undefined4, undefined4, undefined4)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100bacc0 STUB
|
||||
MxBool MxDisplaySurface::vtable28(undefined4, undefined4, undefined4, undefined4, undefined4, undefined4, undefined4)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100bc630 STUB
|
||||
MxBool MxDisplaySurface::vtable2c(undefined4, undefined4, undefined4, undefined4, undefined4, undefined4, undefined4, undefined4, MxBool)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100bb1d0 STUB
|
||||
MxBool MxDisplaySurface::vtable30(undefined4, undefined4, undefined4, undefined4, undefined4, undefined4, undefined4, MxBool)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100bb850 STUB
|
||||
undefined4 MxDisplaySurface::vtable34(undefined4, undefined4, undefined4, undefined4, undefined4, undefined4)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100bba50 STUB
|
||||
void MxDisplaySurface::Display(undefined4, undefined4, undefined4, undefined4, undefined4, undefined4)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100bbc10
|
||||
void MxDisplaySurface::GetDC(HDC *p_hdc)
|
||||
{
|
||||
if (this->m_ddSurface2 && !this->m_ddSurface2->GetDC(p_hdc))
|
||||
return;
|
||||
|
||||
*p_hdc = NULL;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100bbc40
|
||||
void MxDisplaySurface::ReleaseDC(HDC p_hdc)
|
||||
{
|
||||
if (this->m_ddSurface2 && p_hdc)
|
||||
this->m_ddSurface2->ReleaseDC(p_hdc);
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100bbc60 STUB
|
||||
undefined4 MxDisplaySurface::vtable44(undefined4, undefined4*, undefined4, undefined4)
|
||||
{
|
||||
return 0;
|
||||
}
|
|
@ -10,13 +10,16 @@
|
|||
#include "decomp.h"
|
||||
|
||||
// VTABLE 0x100dc768
|
||||
// SIZE 0xac
|
||||
class MxDisplaySurface : public MxCore
|
||||
{
|
||||
public:
|
||||
MxDisplaySurface();
|
||||
virtual ~MxDisplaySurface() override;
|
||||
|
||||
virtual MxResult Init(MxVideoParam *p_videoParam, LPDIRECTDRAWSURFACE p_surface1, LPDIRECTDRAWSURFACE p_surface2, LPDIRECTDRAWCLIPPER p_clipper);
|
||||
void Reset();
|
||||
|
||||
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);
|
||||
|
@ -26,9 +29,18 @@ class MxDisplaySurface : public MxCore
|
|||
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 undefined4 vtable3c(undefined4*);
|
||||
virtual undefined4 vtable40(undefined4);
|
||||
virtual void GetDC(HDC *p_hdc);
|
||||
virtual void ReleaseDC(HDC p_hdc);
|
||||
virtual undefined4 vtable44(undefined4, undefined4*, undefined4, undefined4);
|
||||
|
||||
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
|
||||
|
|
Loading…
Reference in a new issue