1#ifndef MXDISPLAYSURFACE_H
2#define MXDISPLAYSURFACE_H
146 virtual void GetDC(HDC* p_hdc);
195 MxU8*& p_surfaceData,
212 MxU8 CountTotalBitsSetTo1(
MxU32 p_param);
216 MxU8 CountContiguousBitsSetTo1(
MxU32 p_param);
[AI] Represents an 8bpp or high color device-independent bitmap (DIB) and provides operations for bit...
[AI] Base virtual class for all Mindscape engine (Mx) objects.
Provides a DirectDraw-based drawing surface for blitting bitmaps, managing palette,...
LPDIRECTDRAWSURFACE FUN_100bc8b0(MxS32 width, MxS32 height)
[AI] Creates a 16-bit DirectDraw surface of specified size, either in video or system memory.
static LPDIRECTDRAWSURFACE CopySurface(LPDIRECTDRAWSURFACE p_src)
[AI] Creates a deep copy of the provided surface (new DirectDraw surface with same content).
~MxDisplaySurface() override
[AI] Destroys the display surface and releases DirectDraw objects and resources.
LPDIRECTDRAWSURFACE GetDirectDrawSurface1()
[AI] Returns the primary DirectDraw surface (front buffer).
virtual MxResult Create(MxVideoParam &p_videoParam)
[AI] Creates DirectDraw surfaces and initializes based on the desired video mode.
virtual void SetPalette(MxPalette *p_palette)
[AI] Sets the palette used for the primary and secondary DirectDraw surfaces.
void ClearScreen()
[AI] Fills the current back buffer with black (clears the display area). [AI]
virtual void GetDC(HDC *p_hdc)
[AI] Acquires a Win32 device context (DC) for the back buffer surface, for GDI drawing.
virtual void VTable0x34(MxU8 *p_pixels, MxS32 p_bpp, MxS32 p_width, MxS32 p_height, MxS32 p_x, MxS32 p_y)
[AI] Directly writes an array of pixel data into the back surface at the given rectangle.
MxDisplaySurface()
[AI] Constructs the display surface and initializes all members.
virtual void Destroy()
[AI] Releases all DirectDraw surfaces and resources held by this object.
virtual void VTable0x24(LPDDSURFACEDESC p_desc, MxBitmap *p_bitmap, MxS32 p_left, MxS32 p_top, MxS32 p_right, MxS32 p_bottom, MxS32 p_width, MxS32 p_height)
[AI] Draws a bitmap onto a surface described by p_desc, scaling to the specified rectangle.
virtual MxResult Init(MxVideoParam &p_videoParam, LPDIRECTDRAWSURFACE p_ddSurface1, LPDIRECTDRAWSURFACE p_ddSurface2, LPDIRECTDRAWCLIPPER p_ddClipper)
[AI] Initializes the surface object with given video parameters, DirectDraw surfaces,...
LPDIRECTDRAWSURFACE GetDirectDrawSurface2()
[AI] Returns the secondary DirectDraw surface (back buffer).
static LPDIRECTDRAWSURFACE CreateCursorSurface()
[AI] Creates and draws a 16x16 cursor DirectDraw surface.
virtual void VTable0x30(MxBitmap *p_bitmap, MxS32 p_left, MxS32 p_top, MxS32 p_right, MxS32 p_bottom, MxS32 p_width, MxS32 p_height, MxBool p_RLE)
[AI] Draws a bitmap with optional transparency (RLE), outputting to active back surface.
virtual void VTable0x28(MxBitmap *p_bitmap, MxS32 p_left, MxS32 p_top, MxS32 p_right, MxS32 p_bottom, MxS32 p_width, MxS32 p_height)
[AI] Draws a bitmap onto the back surface, specified by coordinates and output size.
virtual void VTable0x2c(LPDDSURFACEDESC p_desc, MxBitmap *p_bitmap, MxS32 p_left, MxS32 p_top, MxS32 p_right, MxS32 p_bottom, MxS32 p_width, MxS32 p_height, MxBool p_RLE)
[AI] Draws a bitmap with optional transparency (RLE) onto the output surface.
virtual void ReleaseDC(HDC p_hdc)
[AI] Releases a device context (DC) previously acquired for the back surface.
virtual void Display(MxS32 p_left, MxS32 p_top, MxS32 p_left2, MxS32 p_top2, MxS32 p_width, MxS32 p_height)
[AI] Presents the back buffer contents to the front buffer or window.
void DrawTransparentRLE(MxU8 *&p_bitmapData, MxU8 *&p_surfaceData, MxU32 p_bitmapSize, MxS32 p_width, MxS32 p_height, MxLong p_pitch, MxU8 p_bpp)
[AI] Performs RLE-based transparent drawing from an RLE-compressed bitmap into the given surface.
MxVideoParam & GetVideoParam()
[AI] Gets the video parameter configuration (mode/resolution/etc) in use by this surface.
virtual LPDIRECTDRAWSURFACE VTable0x44(MxBitmap *p_bitmap, undefined4 *p_ret, undefined4 p_doNotWriteToSurface, undefined4 p_transparent)
[AI] Allocates a DirectDraw surface for a bitmap to allow hardware blitting/transparency.
[AI] Encapsulates a DirectDraw 8-bit (256 color) palette for use with DirectX rendering.
[AI] Video parameter configuration for display and rendering, encapsulates resolution,...
struct _DDSURFACEDESC FAR * LPDDSURFACEDESC
struct IDirectDrawClipper FAR * LPDIRECTDRAWCLIPPER
struct IDirectDrawSurface FAR * LPDIRECTDRAWSURFACE