diff options
Diffstat (limited to 'include/vcl/bitmapaccess.hxx')
-rw-r--r-- | include/vcl/bitmapaccess.hxx | 36 |
1 files changed, 30 insertions, 6 deletions
diff --git a/include/vcl/bitmapaccess.hxx b/include/vcl/bitmapaccess.hxx index 4e9c44f81578..051beb8a2b13 100644 --- a/include/vcl/bitmapaccess.hxx +++ b/include/vcl/bitmapaccess.hxx @@ -25,11 +25,10 @@ #include <vcl/salbtype.hxx> #include <vcl/bitmap.hxx> -// - Access functions - typedef BitmapColor (*FncGetPixel)(ConstScanline pScanline, long nX, const ColorMask& rMask); typedef void (*FncSetPixel)(Scanline pScanline, long nX, const BitmapColor& rBitmapColor, const ColorMask& rMask); -// - BitmapInfoAccess - + class VCL_DLLPUBLIC BitmapInfoAccess { friend class BitmapReadAccess; @@ -86,7 +85,7 @@ protected: BitmapInfoAccess(Bitmap& rBitmap, BitmapAccessMode nMode); }; -// - BitmapReadAccess - + class VCL_DLLPUBLIC BitmapReadAccess : public BitmapInfoAccess { friend class BitmapWriteAccess; @@ -181,7 +180,7 @@ protected: BitmapReadAccess(Bitmap& rBitmap, BitmapAccessMode nMode); }; -// - BitmapWriteAccess - + class VCL_DLLPUBLIC BitmapWriteAccess : public BitmapReadAccess { public: @@ -233,22 +232,25 @@ private: } }; -// - Inlines - + inline bool BitmapInfoAccess::operator!() const { return mpBuffer == nullptr; } + inline long BitmapInfoAccess::Width() const { return mpBuffer ? mpBuffer->mnWidth : 0L; } + inline long BitmapInfoAccess::Height() const { return mpBuffer ? mpBuffer->mnHeight : 0L; } + inline bool BitmapInfoAccess::IsTopDown() const { assert(mpBuffer && "Access is not valid!"); @@ -256,11 +258,13 @@ inline bool BitmapInfoAccess::IsTopDown() const return mpBuffer && (BMP_SCANLINE_ADJUSTMENT(mpBuffer->mnFormat) == BMP_FORMAT_TOP_DOWN); } + inline bool BitmapInfoAccess::IsBottomUp() const { return !IsTopDown(); } + inline sal_uLong BitmapInfoAccess::GetScanlineFormat() const { assert(mpBuffer && "Access is not valid!"); @@ -268,6 +272,7 @@ inline sal_uLong BitmapInfoAccess::GetScanlineFormat() const return mpBuffer ? BMP_SCANLINE_FORMAT(mpBuffer->mnFormat) : 0UL; } + inline sal_uLong BitmapInfoAccess::GetScanlineSize() const { assert(mpBuffer && "Access is not valid!"); @@ -275,6 +280,7 @@ inline sal_uLong BitmapInfoAccess::GetScanlineSize() const return mpBuffer ? mpBuffer->mnScanlineSize : 0UL; } + inline sal_uInt16 BitmapInfoAccess::GetBitCount() const { assert(mpBuffer && "Access is not valid!"); @@ -282,6 +288,7 @@ inline sal_uInt16 BitmapInfoAccess::GetBitCount() const return mpBuffer ? mpBuffer->mnBitCount : 0; } + inline BitmapColor BitmapInfoAccess::GetBestMatchingColor(const BitmapColor& rBitmapColor) { if (HasPalette()) @@ -290,6 +297,7 @@ inline BitmapColor BitmapInfoAccess::GetBestMatchingColor(const BitmapColor& rBi return rBitmapColor; } + inline bool BitmapInfoAccess::HasPalette() const { assert(mpBuffer && "Access is not valid!"); @@ -297,6 +305,7 @@ inline bool BitmapInfoAccess::HasPalette() const return mpBuffer && !!mpBuffer->maPalette; } + inline const BitmapPalette& BitmapInfoAccess::GetPalette() const { assert(mpBuffer && "Access is not valid!"); @@ -304,6 +313,7 @@ inline const BitmapPalette& BitmapInfoAccess::GetPalette() const return mpBuffer->maPalette; } + inline sal_uInt16 BitmapInfoAccess::GetPaletteEntryCount() const { assert(HasPalette() && "Bitmap has no palette!"); @@ -311,6 +321,7 @@ inline sal_uInt16 BitmapInfoAccess::GetPaletteEntryCount() const return HasPalette() ? mpBuffer->maPalette.GetEntryCount() : 0; } + inline const BitmapColor& BitmapInfoAccess::GetPaletteColor( sal_uInt16 nColor ) const { assert(mpBuffer && "Access is not valid!"); @@ -319,13 +330,13 @@ inline const BitmapColor& BitmapInfoAccess::GetPaletteColor( sal_uInt16 nColor ) return mpBuffer->maPalette[nColor]; } + inline const BitmapColor& BitmapInfoAccess::GetBestPaletteColor(const BitmapColor& rBitmapColor) const { return GetPaletteColor(GetBestPaletteIndex(rBitmapColor)); } - inline ColorMask& BitmapInfoAccess::GetColorMask() const { assert(mpBuffer && "Access is not valid!"); @@ -333,6 +344,7 @@ inline ColorMask& BitmapInfoAccess::GetColorMask() const return mpBuffer->maColorMask; } + inline Scanline BitmapReadAccess::GetBuffer() const { assert(mpBuffer && "Access is not valid!"); @@ -340,6 +352,7 @@ inline Scanline BitmapReadAccess::GetBuffer() const return mpBuffer ? mpBuffer->mpBits : nullptr; } + inline Scanline BitmapReadAccess::GetScanline(long nY) const { assert(mpBuffer && mpScanBuf && "Access is not valid!"); @@ -348,6 +361,7 @@ inline Scanline BitmapReadAccess::GetScanline(long nY) const return mpScanBuf[nY]; } + inline BitmapColor BitmapReadAccess::GetPixel(long nY, long nX) const { assert(mpBuffer && mpScanBuf && "Access is not valid!"); @@ -357,11 +371,13 @@ inline BitmapColor BitmapReadAccess::GetPixel(long nY, long nX) const return mFncGetPixel(mpScanBuf[nY], nX, maColorMask ); } + inline sal_uInt8 BitmapReadAccess::GetPixelIndex(long nY, long nX) const { return GetPixel(nY, nX).GetBlueOrIndex(); } + inline BitmapColor BitmapReadAccess::GetPixelFromData(const sal_uInt8* pData, long nX) const { assert(pData && "Access is not valid!"); @@ -369,6 +385,7 @@ inline BitmapColor BitmapReadAccess::GetPixelFromData(const sal_uInt8* pData, lo return mFncGetPixel( pData, nX, maColorMask ); } + inline void BitmapReadAccess::SetPixelOnData(sal_uInt8* pData, long nX, const BitmapColor& rBitmapColor) { assert(pData && "Access is not valid!"); @@ -376,6 +393,7 @@ inline void BitmapReadAccess::SetPixelOnData(sal_uInt8* pData, long nX, const Bi mFncSetPixel(pData, nX, rBitmapColor, maColorMask); } + inline BitmapColor BitmapReadAccess::GetColor(long nY, long nX) const { if (HasPalette()) @@ -384,11 +402,13 @@ inline BitmapColor BitmapReadAccess::GetColor(long nY, long nX) const return GetPixel(nY, nX); } + inline sal_uInt8 BitmapReadAccess::GetLuminance(long nY, long nX) const { return GetColor(nY, nX).GetLuminance(); } + inline void BitmapWriteAccess::SetPalette(const BitmapPalette& rPalette) { assert(mpBuffer && "Access is not valid!"); @@ -396,6 +416,7 @@ inline void BitmapWriteAccess::SetPalette(const BitmapPalette& rPalette) mpBuffer->maPalette = rPalette; } + inline void BitmapWriteAccess::SetPaletteEntryCount(sal_uInt16 nCount) { assert(mpBuffer && "Access is not valid!"); @@ -403,6 +424,7 @@ inline void BitmapWriteAccess::SetPaletteEntryCount(sal_uInt16 nCount) mpBuffer->maPalette.SetEntryCount(nCount); } + inline void BitmapWriteAccess::SetPaletteColor(sal_uInt16 nColor, const BitmapColor& rBitmapColor) { assert(mpBuffer && "Access is not valid!"); @@ -411,6 +433,7 @@ inline void BitmapWriteAccess::SetPaletteColor(sal_uInt16 nColor, const BitmapCo mpBuffer->maPalette[nColor] = rBitmapColor; } + inline void BitmapWriteAccess::SetPixel(long nY, long nX, const BitmapColor& rBitmapColor) { assert(mpBuffer && "Access is not valid!"); @@ -420,6 +443,7 @@ inline void BitmapWriteAccess::SetPixel(long nY, long nX, const BitmapColor& rBi mFncSetPixel(mpScanBuf[nY], nX, rBitmapColor, maColorMask); } + inline void BitmapWriteAccess::SetPixelIndex(long nY, long nX, sal_uInt8 cIndex) { SetPixel(nY, nX, BitmapColor(cIndex)); |