Index: core/src/fxge/dib/fx_dib_main.cpp |
diff --git a/core/src/fxge/dib/fx_dib_main.cpp b/core/src/fxge/dib/fx_dib_main.cpp |
index 4922373ec04beeada94203e486c5841a8e068328..ab4c170af5f73a9f55b07823da42489f6c7af6af 100644 |
--- a/core/src/fxge/dib/fx_dib_main.cpp |
+++ b/core/src/fxge/dib/fx_dib_main.cpp |
@@ -42,6 +42,7 @@ FX_DWORD ArgbEncode(int a, FX_COLORREF rgb) { |
return FXARGB_MAKE(a, FXSYS_GetRValue(rgb), FXSYS_GetGValue(rgb), |
FXSYS_GetBValue(rgb)); |
} |
+ |
CFX_DIBSource::CFX_DIBSource() { |
m_bpp = 0; |
m_AlphaFlag = 0; |
@@ -50,15 +51,26 @@ CFX_DIBSource::CFX_DIBSource() { |
m_pPalette = NULL; |
m_pAlphaMask = NULL; |
} |
+ |
CFX_DIBSource::~CFX_DIBSource() { |
FX_Free(m_pPalette); |
delete m_pAlphaMask; |
} |
+ |
+uint8_t* CFX_DIBSource::GetBuffer() const { |
+ return NULL; |
+} |
+ |
+FX_BOOL CFX_DIBSource::SkipToScanline(int line, IFX_Pause* pPause) const { |
+ return FALSE; |
+} |
+ |
CFX_DIBitmap::CFX_DIBitmap() { |
m_bExtBuf = FALSE; |
m_pBuffer = NULL; |
m_pPalette = NULL; |
} |
+ |
#define _MAX_OOM_LIMIT_ 12000000 |
FX_BOOL CFX_DIBitmap::Create(int width, |
int height, |
@@ -113,6 +125,7 @@ FX_BOOL CFX_DIBitmap::Create(int width, |
} |
return TRUE; |
} |
+ |
FX_BOOL CFX_DIBitmap::Copy(const CFX_DIBSource* pSrc) { |
if (m_pBuffer) { |
return FALSE; |
@@ -127,24 +140,34 @@ FX_BOOL CFX_DIBitmap::Copy(const CFX_DIBSource* pSrc) { |
} |
return TRUE; |
} |
+ |
CFX_DIBitmap::~CFX_DIBitmap() { |
- if (!m_bExtBuf) { |
+ if (!m_bExtBuf) |
FX_Free(m_pBuffer); |
- } |
- m_pBuffer = NULL; |
+ |
+ m_pBuffer = nullptr; |
} |
+ |
+uint8_t* CFX_DIBitmap::GetBuffer() const { |
+ return m_pBuffer; |
+} |
+ |
+const uint8_t* CFX_DIBitmap::GetScanline(int line) const { |
+ return m_pBuffer ? m_pBuffer + line * m_Pitch : nullptr; |
+} |
+ |
void CFX_DIBitmap::TakeOver(CFX_DIBitmap* pSrcBitmap) { |
- if (!m_bExtBuf) { |
+ if (!m_bExtBuf) |
FX_Free(m_pBuffer); |
- } |
+ |
FX_Free(m_pPalette); |
delete m_pAlphaMask; |
m_pBuffer = pSrcBitmap->m_pBuffer; |
m_pPalette = pSrcBitmap->m_pPalette; |
m_pAlphaMask = pSrcBitmap->m_pAlphaMask; |
- pSrcBitmap->m_pBuffer = NULL; |
- pSrcBitmap->m_pPalette = NULL; |
- pSrcBitmap->m_pAlphaMask = NULL; |
+ pSrcBitmap->m_pBuffer = nullptr; |
+ pSrcBitmap->m_pPalette = nullptr; |
+ pSrcBitmap->m_pAlphaMask = nullptr; |
m_bpp = pSrcBitmap->m_bpp; |
m_bExtBuf = pSrcBitmap->m_bExtBuf; |
m_AlphaFlag = pSrcBitmap->m_AlphaFlag; |
@@ -152,6 +175,7 @@ void CFX_DIBitmap::TakeOver(CFX_DIBitmap* pSrcBitmap) { |
m_Height = pSrcBitmap->m_Height; |
m_Pitch = pSrcBitmap->m_Pitch; |
} |
+ |
CFX_DIBitmap* CFX_DIBSource::Clone(const FX_RECT* pClip) const { |
FX_RECT rect(0, 0, m_Width, m_Height); |
if (pClip) { |