Isle
Loading...
Searching...
No Matches
mxsmkpresenter.h
Go to the documentation of this file.
1#ifndef MXSMKPRESENTER_H
2#define MXSMKPRESENTER_H
3
4#include "decomp.h"
5#include "mxsmk.h"
6#include "mxvideopresenter.h"
7
8// VTABLE: LEGO1 0x100dc348
9// SIZE 0x720
20public:
26
31 ~MxSmkPresenter() override;
32
38 static const char* HandlerClassName()
39 {
40 // STRING: LEGO1 0x10101e38
41 return "MxSmkPresenter";
42 }
43
48 const char* ClassName() const override // vtable+0x0c
49 {
50 return HandlerClassName();
51 }
52
59 MxBool IsA(const char* p_name) const override // vtable+0x10
60 {
61 return !strcmp(p_name, MxSmkPresenter::ClassName()) || MxVideoPresenter::IsA(p_name);
62 }
63
68 MxResult AddToManager() override;
69
74 void Destroy() override;
75
81 void LoadHeader(MxStreamChunk* p_chunk) override;
82
87 void CreateBitmap() override;
88
94 void LoadFrame(MxStreamChunk* p_chunk) override;
95
100 void RealizePalette() override;
101
106 virtual void VTable0x88(); // vtable+0x88
107
108 // SYNTHETIC: LEGO1 0x100b3850
109 // MxSmkPresenter::`scalar deleting destructor'
110
111private:
116 void Init();
117
123 void Destroy(MxBool p_fromDestructor);
124
125protected:
127 MxSmk m_mxSmk; // 0x64
128
131};
132
133#endif // MXSMKPRESENTER_H
[AI] Presenter for rendering .SMK (Smacker) video media within the game engine.
~MxSmkPresenter() override
[AI] Destructor.
MxSmk m_mxSmk
[AI] Smacker file decoding context holding header, palette, frame types, and decode buffers.
MxSmkPresenter()
[AI] Constructs an MxSmkPresenter and initializes member variables.
void LoadFrame(MxStreamChunk *p_chunk) override
[AI] Loads and renders a Smacker video frame from a stream chunk.
void CreateBitmap() override
[AI] Allocates and prepares the bitmap for a Smacker video frame.
const char * ClassName() const override
[AI] Returns the class name for this object.
void LoadHeader(MxStreamChunk *p_chunk) override
[AI] Loads the Smacker header information from a stream chunk.
MxBool IsA(const char *p_name) const override
[AI] Run-time type check.
MxResult AddToManager() override
[AI] Registers this presenter instance with the video presentation manager.
static const char * HandlerClassName()
[AI] Returns the human-readable handler class name for this presenter type.
virtual void VTable0x88()
[AI] Virtual function for custom frame or looping logic for Smacker video playback.
void RealizePalette() override
[AI] Realizes (uploads) the color palette for the current frame bitmap.
void Destroy() override
[AI] Cleans up and destroys the resources used by this presenter.
MxU32 m_currentFrame
[AI] Current frame index within the Smacker stream.
[AI] Represents a streamable chunk of data, typically sourced from a media buffer and designed for no...
Definition: mxstreamchunk.h:19
Derived video presenter responsible for displaying video frames using DirectDraw surfaces.
MxBool IsA(const char *p_name) const override
Determines if this object is or derives from a class with the given name.
#define override
Definition: compat.h:21
MxU8 MxBool
[AI]
Definition: mxtypes.h:124
MxLong MxResult
[AI]
Definition: mxtypes.h:106
unsigned int MxU32
[AI]
Definition: mxtypes.h:32
[AI] The MxSmk struct encapsulates all data required to decode and display a Smacker (SMK) video stre...
Definition: mxsmk.h:77