24void MxSmkPresenter::Init()
42 if (!p_fromDestructor) {
86 while (cursor.
Next(rect)) {
87 invalidateRect = *rect;
[AI] Represents an 8bpp or high color device-independent bitmap (DIB) and provides operations for bit...
MxBITMAPINFO * GetBitmapInfo() const
[AI] Retrieves the pointer to the underlying MxBITMAPINFO struct (header and palette).
virtual MxPalette * CreatePalette()
[AI] Allocates or clones the current palette for the bitmap.
virtual MxResult SetSize(MxS32 p_width, MxS32 p_height, MxPalette *p_palette, MxBool)
[AI] Allocates the bitmap to a specified width and height, attaches a palette, and configures bit dep...
MxU8 * GetImage() const
[AI] Retrieves the pointer to the image pixel data.
void Enter()
[AI] Acquires/gains entry to the critical section or mutex, blocking if not available.
void Leave()
[AI] Releases/leaves the critical section or mutex.
MxU8 * GetData()
[AI] Returns a pointer to the start of the data payload. [AI]
[AI] Encapsulates a DirectDraw 8-bit (256 color) palette for use with DirectX rendering.
MxPoint32 GetLocation() const
[AI] Returns the presenter's screen location (in pixels).
MxDSAction * m_action
[AI] The associated action currently being presented by this presenter.
MxCriticalSection m_criticalSection
[AI] Thread synchronization for presenter state and data.
[AI] Cursor for iterating lists of MxRect32 pointers.
[AI] List for pointers to MxRect32 rectangles.
[AI] Rectangle using 32-bit signed integer coordinates.
[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.
void LoadHeader(MxStreamChunk *p_chunk) override
[AI] Loads the Smacker header information from a stream chunk.
MxResult AddToManager() override
[AI] Registers this presenter instance with the video presentation manager.
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...
virtual MxResult RealizePalette(MxPalette *p_palette)
[AI] Applies (realizes) the palette to both MxVideoParam and hardware palette, and updates the displa...
void InvalidateRect(MxRect32 &p_rect)
[AI] Invalidates a rectangular region in the display; marks it for redraw on next tick.
MxBitmap * m_frameBitmap
Bitmap for current video frame. [AI].
MxResult AddToManager() override
Adds this presenter to the global video manager.
void Destroy() override
Destroys internal resources for the presenter.
#define DECOMP_SIZE_ASSERT(T, S)
#define NULL
[AI] Null pointer value (C/C++ semantics).
MxVideoManager * MVideoManager()
[AI] Returns the video manager used for video/cutscene presenter management.
[AI] Represents a bitmap information header plus a 256-color palette, matching the layout for 8-bit D...
static MxResult LoadFrame(MxBITMAPINFO *p_bitmapInfo, MxU8 *p_bitmapData, MxSmk *p_mxSmk, MxU8 *p_chunkData, MxBool p_paletteChanged, MxRect32List *p_list)
[AI] Decompresses and loads a single Smacker frame into a bitmap buffer, updating palette if needed.
MxU8 * m_frameTypes
[AI] Array of frame types, one entry per frame.
static void Destroy(MxSmk *p_mxSmk)
[AI] Cleans up and deallocates all resources associated with this MxSmk.
static MxResult LoadHeader(MxU8 *p_data, MxSmk *p_mxSmk)
[AI] Loads the SMK header and initializes decoding structures for a Smacker video.
SmackTag m_smackTag
[AI] Metadata block from the Smacker file header.