mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-23 00:14:22 +00:00
Finish Bitmap (#458)
* Finish Bitmap * Add missing vtable annotations * Fixes --------- Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
@@ -44,10 +44,26 @@ public:
|
||||
__declspec(dllexport) virtual MxLong Read(const char* p_filename); // vtable+24
|
||||
|
||||
// FUNCTION: LEGO1 0x1004e0d0
|
||||
virtual int VTable0x28(int) { return -1; };
|
||||
virtual int VTable0x28(int) { return -1; }; // vtable+28
|
||||
|
||||
virtual void VTable0x2c(int, int, int, int, int, int, int);
|
||||
virtual void VTable0x30(int, int, int, int, int, int, int);
|
||||
virtual void BitBlt(
|
||||
MxBitmap* p_src,
|
||||
MxS32 p_left,
|
||||
MxS32 p_top,
|
||||
MxS32 p_right,
|
||||
MxS32 p_bottom,
|
||||
MxS32 p_width,
|
||||
MxS32 p_height
|
||||
); // vtable+2c
|
||||
virtual void BitBltTransparent(
|
||||
MxBitmap* p_src,
|
||||
MxS32 p_left,
|
||||
MxS32 p_top,
|
||||
MxS32 p_right,
|
||||
MxS32 p_bottom,
|
||||
MxS32 p_width,
|
||||
MxS32 p_height
|
||||
); // vtable+30
|
||||
__declspec(dllexport) virtual MxPalette* CreatePalette(); // vtable+34
|
||||
virtual void ImportPalette(MxPalette* p_palette); // vtable+38
|
||||
virtual MxResult SetBitDepth(MxBool); // vtable+3c
|
||||
@@ -92,6 +108,26 @@ public:
|
||||
return -GetBmiStride();
|
||||
}
|
||||
|
||||
inline MxLong GetLine(MxS32 p_top)
|
||||
{
|
||||
MxS32 height;
|
||||
if (m_bmiHeader->biCompression == BI_RGB_TOPDOWN || m_bmiHeader->biHeight < 0)
|
||||
height = p_top;
|
||||
else
|
||||
height = GetBmiHeightAbs() - p_top - 1;
|
||||
return GetBmiStride() * height;
|
||||
}
|
||||
|
||||
inline MxU8* GetStart(MxS32 p_left, MxS32 p_top)
|
||||
{
|
||||
if (m_bmiHeader->biCompression == BI_RGB)
|
||||
return GetLine(p_top) + m_data + p_left;
|
||||
else if (m_bmiHeader->biCompression == BI_RGB_TOPDOWN)
|
||||
return m_data;
|
||||
else
|
||||
return GetLine(0) + m_data;
|
||||
}
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100bc9f0
|
||||
// MxBitmap::`scalar deleting destructor'
|
||||
|
||||
|
Reference in New Issue
Block a user