16void LegoFlcTexturePresenter::Init()
32 strcpy(extraCopy, pp);
33 strcat(extraCopy,
".gif");
46 m_rectCount = *(
MxS32*) data;
47 data +=
sizeof(
MxS32);
50 data += m_rectCount *
sizeof(
MxRect32);
66 if (m_texture !=
NULL && m_rectCount != 0) {
T * Get(const char *p_name)
Retrieve the element mapped to the given name, or nullptr if missing.
[AI] Presenter for rendering FLC animation frames as textures in the LEGO engine.
void LoadFrame(MxStreamChunk *p_chunk) override
[AI] Decodes an FLC animation frame from a chunk, extracting both dirty rects and animation data.
void StartingTickle() override
[AI] Called on transition to 'Starting' tickle state.
void PutFrame() override
[AI] Uploads the newly decoded FLC frame to the associated LegoTextureInfo, updating the active textu...
LegoResult FUN_10066010(const LegoU8 *p_bits)
[AI] Updates the pixel bits for the current surface/texture with the provided bitmap data.
MxBITMAPINFO * GetBitmapInfo() const
[AI] Retrieves the pointer to the underlying MxBITMAPINFO struct (header and palette).
MxU8 * GetImage() const
[AI] Retrieves the pointer to the image pixel data.
void GetExtra(MxU16 &p_extraLength, char *&p_extraData)
[AI] Retrieves the extra data and its length for this action.
MxU8 * GetData()
[AI] Returns a pointer to the start of the data payload. [AI]
FLIC_HEADER * m_flcHeader
[AI] Internal cached FLIC header for video decoding and playback.
MxDSAction * m_action
[AI] The associated action currently being presented by this presenter.
virtual void StartingTickle()
[AI] Handles actions required when first starting presentation. Advances to streaming state.
[AI] Rectangle using 32-bit signed integer coordinates.
[AI] Represents a streamable chunk of data, typically sourced from a media buffer and designed for no...
MxBitmap * m_frameBitmap
Bitmap for current video frame. [AI].
#define DECOMP_SIZE_ASSERT(T, S)
void DecodeFLCFrame(LPBITMAPINFOHEADER p_bitmapHeader, BYTE *p_pixelData, FLIC_HEADER *p_flcHeader, FLIC_FRAME *p_flcFrame, BYTE *p_decodedColorMap)
[AI] Decodes a single FLIC (FLI/FLC) animation frame and updates the pixel data and palette.
#define NULL
[AI] Null pointer value (C/C++ semantics).
LegoTextureContainer * TextureContainer()
[AI] Accessor for the texture container used for global texture management. [AI]
[AI] Structure describing the header of a FLIC animation frame, used to organize frame subchunks and ...
BITMAPINFOHEADER m_bmiHeader
[AI] Standard DIB bitmap header (size 0x28 bytes).