1#ifndef MXVIDEOPRESENTER_H
2#define MXVIDEOPRESENTER_H
118 return "MxVideoPresenter";
[AI] Represents an 8bpp or high color device-independent bitmap (DIB) and provides operations for bit...
MxLong GetBmiHeightAbs() const
[AI] Returns the absolute value of the bitmap's height.
MxU8 * GetStart(MxS32 p_left, MxS32 p_top) const
[AI] Returns a pointer to the starting address of the pixel data at the specified coordinates.
MxLong GetBmiWidth() const
[AI] Fetches the width (in pixels) encoded in this bitmap's header.
[AI] Represents a streamable chunk of data, typically sourced from a media buffer and designed for no...
Opaque mask used for efficient hit testing against video transparency.
MxS32 IsHit(MxU32 p_x, MxU32 p_y)
Checks whether the specified local coordinate is visible in the mask.
MxS32 GetHeight() const
[AI] Height of the alpha mask in pixels.
MxS32 GetWidth() const
[AI] Width of the alpha mask in pixels.
virtual ~AlphaMask()
Frees the bitmask memory.
Derived video presenter responsible for displaying video frames using DirectDraw surfaces.
virtual void LoadHeader(MxStreamChunk *p_chunk)
Loads and processes header information from a video stream chunk.
MxBool IsHit(MxS32 p_x, MxS32 p_y) override
Determines if a point is inside the non-transparent region of frame/alpha.
MxBitmap * GetBitmap()
Returns the frame bitmap currently used for this presenter.
BYTE GetBit0()
Gets internal miscellaneous state flags (bits 0-4).
virtual MxBool VTable0x7c()
Checks if this presenter has either a video frame bitmap or alpha mask available.
void StartingTickle() override
Advance logic for the "starting" tickle state (frame setup).
const char * ClassName() const override
Returns the run-time class name of this presenter instance.
void FreezingTickle() override
Advance logic for the "freezing" tickle state (sustain after playback).
MxS32 PrepareRects(RECT &p_rectDest, RECT &p_rectSrc)
Utility function to adjust source/dest rectangles to stay within allowed bounds.
MxBitmap * m_frameBitmap
Bitmap for current video frame. [AI].
virtual MxS32 GetHeight()
Returns the height of the current bitmap or alpha mask in pixels.
void ReadyTickle() override
Advance logic for the "ready" tickle state.
virtual MxS32 GetWidth()
Returns the width of the current bitmap or alpha mask in pixels.
void EndAction() override
Signals the end of the current playback action.
virtual undefined VTable0x74()
Unknown/potentially format-specific method (VTable0x74).
virtual void RealizePalette()
Loads or establishes the palette for display from the current video format or media.
MxLong m_unk0x60
Last freeze time/start of sustain interval. [AI].
FlagBitfield m_flags
Miscellaneous flags for object and UI state. [AI].
~MxVideoPresenter() override
Destroys the MxVideoPresenter, releasing owned resources and unregistering from the manager.
virtual void NextFrame()
Advances video playback to the next frame, handling decoding and playback progression.
virtual void CreateBitmap()
Allocates and sets up the display bitmap for video frame data.
AlphaMask * GetAlphaMask()
Returns this presenter's alpha mask for hit testing.
void SetBit0(BOOL p_e)
Sets internal miscellaneous state flags.
static const char * HandlerClassName()
Returns the class name string for this presenter type.
MxBool IsA(const char *p_name) const override
Determines if this object is or derives from a class with the given name.
LPDIRECTDRAWSURFACE m_unk0x58
DirectDraw surface for hardware video rendering. [AI].
void StreamingTickle() override
Advance logic for the "streaming" tickle state (typical video playback).
virtual void PutFrame()
Presents the current frame using the chosen output mechanism (e.g., blitting to screen).
virtual void LoadFrame(MxStreamChunk *p_chunk)
Loads and processes frame data from a video stream chunk.
MxS16 m_unk0x5c
Loop/advance/frame decode counter. [AI].
virtual LPDIRECTDRAWSURFACE VTable0x78()
Retrieves the DirectDraw surface used for hardware-accelerated rendering.
void RepeatingTickle() override
Advance logic for the "repeating" tickle state (media looping).
MxResult PutData() override
Writes the frame to the display device if appropriate.
MxU8 * GetBitmapStart(MxS32 p_left, MxS32 p_top)
Provides a pointer to the start of frame bitmap data at a given coordinate.
AlphaMask * m_alpha
Alpha mask for hit testing. May be null. [AI].
MxVideoPresenter()
Constructs a new MxVideoPresenter and initializes internal state.
MxResult AddToManager() override
Adds this presenter to the global video manager.
void Destroy() override
Destroys internal resources for the presenter.
struct IDirectDrawSurface FAR * LPDIRECTDRAWSURFACE
#define NULL
[AI] Null pointer value (C/C++ semantics).
[AI] Union that provides a convenient bit field view of a byte for flag manipulation.
MxU8 m_bit0
[AI] Least significant bit of the flag byte.