2023-06-11 21:03:54 -04:00
|
|
|
#ifndef MXVIDEOMANAGER_H
|
|
|
|
#define MXVIDEOMANAGER_H
|
|
|
|
|
2023-07-21 21:28:13 -04:00
|
|
|
#include "mxdisplaysurface.h"
|
2023-09-19 23:00:34 -04:00
|
|
|
#include "mxregion.h"
|
2023-08-28 06:01:45 -04:00
|
|
|
#include "mxmediamanager.h"
|
2023-06-24 13:09:46 -04:00
|
|
|
#include "mxvideoparam.h"
|
|
|
|
|
2023-06-29 04:10:08 -04:00
|
|
|
// VTABLE 0x100dc810
|
|
|
|
// SIZE 0x64
|
2023-08-28 06:01:45 -04:00
|
|
|
class MxVideoManager : public MxMediaManager
|
2023-06-11 21:03:54 -04:00
|
|
|
{
|
|
|
|
public:
|
2023-10-14 14:46:00 -04:00
|
|
|
virtual ~MxVideoManager() override;
|
2023-06-29 04:10:08 -04:00
|
|
|
|
2023-10-07 14:05:45 -04:00
|
|
|
virtual MxResult Tickle() override; // vtable+0x8
|
2023-10-14 14:46:00 -04:00
|
|
|
virtual void Destroy() override; // vtable+0x18
|
2023-10-14 15:33:11 -04:00
|
|
|
virtual MxResult vtable0x28(
|
|
|
|
MxVideoParam& p_videoParam,
|
|
|
|
LPDIRECTDRAW p_pDirectDraw,
|
|
|
|
LPDIRECTDRAWSURFACE p_pDDSurface,
|
|
|
|
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
|
2023-06-29 04:10:08 -04:00
|
|
|
|
2023-06-11 21:03:54 -04:00
|
|
|
__declspec(dllexport) void InvalidateRect(MxRect32 &);
|
2023-10-14 15:31:30 -04:00
|
|
|
__declspec(dllexport) virtual MxResult RealizePalette(MxPalette *); // vtable+0x30
|
2023-06-24 13:09:46 -04:00
|
|
|
|
|
|
|
MxVideoManager();
|
|
|
|
|
2023-09-19 23:00:34 -04:00
|
|
|
MxResult Init();
|
2023-10-14 14:46:00 -04:00
|
|
|
void Destroy(MxBool p_fromDestructor);
|
2023-09-19 23:00:34 -04:00
|
|
|
void SortPresenterList();
|
|
|
|
void UpdateRegion();
|
2023-06-24 13:09:46 -04:00
|
|
|
|
|
|
|
inline MxVideoParam& GetVideoParam() { return this->m_videoParam; }
|
2023-07-16 01:51:24 -04:00
|
|
|
inline LPDIRECTDRAW GetDirectDraw() { return this->m_pDirectDraw; }
|
2023-09-29 12:09:46 -04:00
|
|
|
inline MxDisplaySurface *GetDisplaySurface() { return this->m_displaySurface; }
|
2023-10-08 16:00:59 -04:00
|
|
|
protected:
|
2023-06-24 13:09:46 -04:00
|
|
|
MxVideoParam m_videoParam;
|
2023-07-16 01:51:24 -04:00
|
|
|
LPDIRECTDRAW m_pDirectDraw;
|
2023-09-19 23:00:34 -04:00
|
|
|
LPDIRECTDRAWSURFACE m_pDDSurface;
|
2023-07-21 21:28:13 -04:00
|
|
|
MxDisplaySurface *m_displaySurface;
|
2023-09-19 23:00:34 -04:00
|
|
|
MxRegion *m_region;
|
2023-06-24 13:09:46 -04:00
|
|
|
MxBool m_unk60;
|
2023-06-11 21:03:54 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // MXVIDEOMANAGER_H
|