mirror of
https://github.com/isledecomp/isle.git
synced 2024-12-22 14:02:24 -05:00
5f413165cc
* cmake: use imported targets for 3rd party libs * Fix casing of skateboard.h include * cmake: tglrl realtime viewmanager mxgeometry * cmake: spin off some source in static libraries * dx5 for everyone * ci: bump actions/checkout to v4 * move LEGO1/realtime/realtimeview.cpp to lego1 because it exports symbols * add misc library * Add omni library * Return of the .def's * Remove COMPAT_CONST in MxVideoParam::MxVideoParam * Run clang-format * move LEGO1/realtime/realtimeview.cpp to realtime lib * Add 3dmanager library * Rename .def files * Remove incorrect deps to Omni * Remove DLL expor decls * Remove unnecessary library dep from ROI * Remove COMPAT_CONST * Move 3dmanager lib before Omni * Remove mxgeometry lib (`geom` is actually `lego/sources/geom`, which we don't have in our decomp yet) * viewmanager has a dependency on realtime + fix mingw's def * Remove Smacker::Smacker from lego1 link libraries --------- Co-authored-by: Christian Semmler <mail@csemmler.com>
59 lines
1.9 KiB
C++
59 lines
1.9 KiB
C++
#ifndef MXVIDEOMANAGER_H
|
|
#define MXVIDEOMANAGER_H
|
|
|
|
#include "mxdisplaysurface.h"
|
|
#include "mxmediamanager.h"
|
|
#include "mxrect32.h"
|
|
#include "mxregion.h"
|
|
#include "mxvideoparam.h"
|
|
|
|
#include <d3d.h>
|
|
|
|
// VTABLE: LEGO1 0x100dc810
|
|
// SIZE 0x64
|
|
class MxVideoManager : public MxMediaManager {
|
|
public:
|
|
MxVideoManager();
|
|
virtual ~MxVideoManager() override;
|
|
|
|
virtual MxResult Tickle() override; // vtable+0x8
|
|
virtual void Destroy() override; // vtable+0x18
|
|
virtual MxResult VTable0x28(
|
|
MxVideoParam& p_videoParam,
|
|
LPDIRECTDRAW p_pDirectDraw,
|
|
LPDIRECT3D2 p_pDirect3D,
|
|
LPDIRECTDRAWSURFACE p_ddSurface1,
|
|
LPDIRECTDRAWSURFACE p_ddSurface2,
|
|
LPDIRECTDRAWCLIPPER p_ddClipper,
|
|
MxU32 p_frequencyMS,
|
|
MxBool p_createThread
|
|
); // vtable+0x28
|
|
virtual MxResult Create(MxVideoParam& p_videoParam, MxU32 p_frequencyMS, MxBool p_createThread); // vtable+0x2c
|
|
|
|
void InvalidateRect(MxRect32&);
|
|
virtual MxResult RealizePalette(MxPalette*); // vtable+0x30
|
|
virtual void UpdateView(MxU32 p_x, MxU32 p_y, MxU32 p_width, MxU32 p_height); // vtable+0x34
|
|
|
|
MxResult Init();
|
|
void Destroy(MxBool p_fromDestructor);
|
|
void SortPresenterList();
|
|
void UpdateRegion();
|
|
|
|
inline MxVideoParam& GetVideoParam() { return this->m_videoParam; }
|
|
inline LPDIRECTDRAW GetDirectDraw() { return this->m_pDirectDraw; }
|
|
inline MxDisplaySurface* GetDisplaySurface() { return this->m_displaySurface; }
|
|
inline MxRegion* GetRegion() { return this->m_region; }
|
|
|
|
// SYNTHETIC: LEGO1 0x100be280
|
|
// MxVideoManager::`scalar deleting destructor'
|
|
|
|
protected:
|
|
MxVideoParam m_videoParam; // 0x2c
|
|
LPDIRECTDRAW m_pDirectDraw; // 0x50
|
|
LPDIRECT3D2 m_pDirect3D; // 0x54
|
|
MxDisplaySurface* m_displaySurface; // 0x58
|
|
MxRegion* m_region; // 0x5c
|
|
MxBool m_unk0x60; // 0x60
|
|
};
|
|
|
|
#endif // MXVIDEOMANAGER_H
|