drawinglayer/source/primitive2d/graphicprimitivehelper2d.cxx |    6 -
 include/vcl/animate/Animation.hxx                            |    6 -
 vcl/inc/graphic/AnimationContainer.hxx                       |    8 +-
 vcl/source/animate/Animation.cxx                             |   38 +++++------
 vcl/source/bitmap/bitmapfilter.cxx                           |    6 -
 vcl/source/filter/igif/gifread.cxx                           |    2 
 vcl/source/filter/itiff/itiff.cxx                            |    2 
 vcl/source/filter/png/PngImageReader.cxx                     |    2 
 vcl/source/gdi/TypeSerializer.cxx                            |    2 
 vcl/source/gdi/impgraph.cxx                                  |   18 ++---
 10 files changed, 45 insertions(+), 45 deletions(-)

New commits:
commit 35aa7f657c6caf53ab67727c39a27776925fd3b1
Author:     Noel Grandin <[email protected]>
AuthorDate: Wed Aug 13 19:40:43 2025 +0200
Commit:     Noel Grandin <[email protected]>
CommitDate: Mon Sep 1 08:55:37 2025 +0200

    BitmapEx->Bitmap in Animation
    
    now that Bitmap supports transparency
    
    Change-Id: I62ffd37a45b77cf7196d40ee196828bcf62634b8
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189532
    Reviewed-by: Noel Grandin <[email protected]>
    Tested-by: Jenkins

diff --git a/drawinglayer/source/primitive2d/graphicprimitivehelper2d.cxx 
b/drawinglayer/source/primitive2d/graphicprimitivehelper2d.cxx
index a758787540de..8bfa411130de 100644
--- a/drawinglayer/source/primitive2d/graphicprimitivehelper2d.cxx
+++ b/drawinglayer/source/primitive2d/graphicprimitivehelper2d.cxx
@@ -303,9 +303,8 @@ namespace drawinglayer::primitive2d
                         case Disposal::Not:
                         {
                             
maVirtualDevice->DrawBitmapEx(rAnimationFrame.maPositionPixel, 
rAnimationFrame.maBitmap);
-                            AlphaMask aAlphaMask = 
rAnimationFrame.maBitmap.CreateAlphaMask();
 
-                            if (aAlphaMask.IsEmpty())
+                            if (!rAnimationFrame.maBitmap.HasAlpha())
                             {
                                 const Point aEmpty;
                                 const ::tools::Rectangle aRect(aEmpty, 
maVirtualDeviceMask->GetOutputSizePixel());
@@ -314,6 +313,7 @@ namespace drawinglayer::primitive2d
                             }
                             else
                             {
+                                AlphaMask aAlphaMask = 
rAnimationFrame.maBitmap.CreateAlphaMask();
                                 BitmapEx 
aExpandVisibilityMask(aAlphaMask.GetBitmap(), aAlphaMask);
                                 
maVirtualDeviceMask->DrawBitmapEx(rAnimationFrame.maPositionPixel, 
aExpandVisibilityMask);
                             }
@@ -346,7 +346,7 @@ namespace drawinglayer::primitive2d
                         case Disposal::Previous:
                         {
                             
maVirtualDevice->DrawBitmapEx(rAnimationFrame.maPositionPixel, 
rAnimationFrame.maBitmap);
-                            BitmapEx 
aExpandVisibilityMask(rAnimationFrame.maBitmap.CreateAlphaMask().GetBitmap(), 
rAnimationFrame.maBitmap.CreateAlphaMask());
+                            Bitmap 
aExpandVisibilityMask(rAnimationFrame.maBitmap.CreateAlphaMask().GetBitmap(), 
rAnimationFrame.maBitmap.CreateAlphaMask());
                             
maVirtualDeviceMask->DrawBitmapEx(rAnimationFrame.maPositionPixel, 
aExpandVisibilityMask);
                             break;
                         }
diff --git a/include/vcl/animate/Animation.hxx 
b/include/vcl/animate/Animation.hxx
index 6c187c68e884..7900dd6cb94b 100644
--- a/include/vcl/animate/Animation.hxx
+++ b/include/vcl/animate/Animation.hxx
@@ -59,8 +59,8 @@ public:
     const Size& GetDisplaySizePixel() const { return maGlobalSize; }
     void SetDisplaySizePixel(const Size& rSize) { maGlobalSize = rSize; }
 
-    const BitmapEx& GetBitmapEx() const { return maBitmapEx; }
-    void SetBitmapEx(const BitmapEx& rBmpEx) { maBitmapEx = rBmpEx; }
+    const Bitmap& GetBitmap() const { return maBitmap; }
+    void SetBitmap(const Bitmap& rBmp) { maBitmap = rBmp; }
 
     sal_uInt32 GetLoopCount() const { return mnLoopCount; }
     void SetLoopCount(const sal_uInt32 nLoopCount);
@@ -103,7 +103,7 @@ private:
     std::vector<std::unique_ptr<AnimationRenderer>> maRenderers;
 
     Link<Animation*, void> maNotifyLink;
-    BitmapEx maBitmapEx;
+    Bitmap maBitmap;
     Timer maTimer;
     Size maGlobalSize;
     sal_uInt32 mnLoopCount;
diff --git a/vcl/inc/graphic/AnimationContainer.hxx 
b/vcl/inc/graphic/AnimationContainer.hxx
index 69eedd009bf0..ae30eddd9c64 100644
--- a/vcl/inc/graphic/AnimationContainer.hxx
+++ b/vcl/inc/graphic/AnimationContainer.hxx
@@ -39,17 +39,17 @@ public:
 
     Size getPrefSize() const
     {
-        Size aSize = maAnimation.GetBitmapEx().GetPrefSize();
+        Size aSize = maAnimation.GetBitmap().GetPrefSize();
         if (!aSize.Width() || !aSize.Height())
-            aSize = maAnimation.GetBitmapEx().GetSizePixel();
+            aSize = maAnimation.GetBitmap().GetSizePixel();
         return aSize;
     }
 
     MapMode getPrefMapMode() const
     {
-        const Size aSize = maAnimation.GetBitmapEx().GetPrefSize();
+        const Size aSize = maAnimation.GetBitmap().GetPrefSize();
         if (aSize.Width() && aSize.Height())
-            return maAnimation.GetBitmapEx().GetPrefMapMode();
+            return maAnimation.GetBitmap().GetPrefMapMode();
         return {};
     }
 
diff --git a/vcl/source/animate/Animation.cxx b/vcl/source/animate/Animation.cxx
index 6402047deee2..7b065f095c19 100644
--- a/vcl/source/animate/Animation.cxx
+++ b/vcl/source/animate/Animation.cxx
@@ -46,7 +46,7 @@ Animation::Animation()
 }
 
 Animation::Animation(const Animation& rAnimation)
-    : maBitmapEx(rAnimation.maBitmapEx)
+    : maBitmap(rAnimation.maBitmap)
     , maTimer("vcl::Animation")
     , maGlobalSize(rAnimation.maGlobalSize)
     , mnLoopCount(rAnimation.mnLoopCount)
@@ -77,7 +77,7 @@ Animation& Animation::operator=(const Animation& rAnimation)
             maFrames.emplace_back(new AnimationFrame(*i));
 
         maGlobalSize = rAnimation.maGlobalSize;
-        maBitmapEx = rAnimation.maBitmapEx;
+        maBitmap = rAnimation.maBitmap;
         mnLoopCount = rAnimation.mnLoopCount;
         mnFrameIndex = rAnimation.mnFrameIndex;
         mbLoopTerminated = rAnimation.mbLoopTerminated;
@@ -88,7 +88,7 @@ Animation& Animation::operator=(const Animation& rAnimation)
 
 bool Animation::operator==(const Animation& rAnimation) const
 {
-    return maFrames.size() == rAnimation.maFrames.size() && maBitmapEx == 
rAnimation.maBitmapEx
+    return maFrames.size() == rAnimation.maFrames.size() && maBitmap == 
rAnimation.maBitmap
            && maGlobalSize == rAnimation.maGlobalSize
            && std::equal(maFrames.begin(), maFrames.end(), 
rAnimation.maFrames.begin(),
                          [](const std::unique_ptr<AnimationFrame>& pAnim1,
@@ -102,7 +102,7 @@ void Animation::Clear()
     maTimer.Stop();
     mbIsInAnimation = false;
     maGlobalSize = Size();
-    maBitmapEx.SetEmpty();
+    maBitmap.SetEmpty();
     maFrames.clear();
     maRenderers.clear();
 }
@@ -116,7 +116,7 @@ bool Animation::IsTransparent() const
     // as the application (?) does not invalidate on non-transparent
     // graphics due to performance reasons.
 
-    return maBitmapEx.IsAlpha()
+    return maBitmap.HasAlpha()
            || std::any_of(maFrames.begin(), maFrames.end(),
                           [&aRect](const std::unique_ptr<AnimationFrame>& 
pAnim) -> bool {
                               return pAnim->meDisposal == Disposal::Back
@@ -128,7 +128,7 @@ bool Animation::IsTransparent() const
 
 sal_uLong Animation::GetSizeBytes() const
 {
-    return std::accumulate(maFrames.begin(), maFrames.end(), 
GetBitmapEx().GetSizeBytes(),
+    return std::accumulate(maFrames.begin(), maFrames.end(), 
GetBitmap().GetSizeBytes(),
                            [](sal_Int64 nSize, const 
std::unique_ptr<AnimationFrame>& pFrame) {
                                return nSize + pFrame->maBitmap.GetSizeBytes();
                            });
@@ -138,7 +138,7 @@ BitmapChecksum Animation::GetChecksum() const
 {
     SVBT32 aBT32;
     BitmapChecksumOctetArray aBCOA;
-    BitmapChecksum nCrc = GetBitmapEx().GetChecksum();
+    BitmapChecksum nCrc = GetBitmap().GetChecksum();
 
     UInt32ToSVBT32(maFrames.size(), aBT32);
     nCrc = rtl_crc32(nCrc, aBT32, 4);
@@ -321,7 +321,7 @@ void Animation::RenderNextFrameInAllRenderers()
             Stop();
             mbLoopTerminated = true;
             mnFrameIndex = maFrames.size() - 1;
-            maBitmapEx = maFrames[mnFrameIndex]->maBitmap;
+            maBitmap = maFrames[mnFrameIndex]->maBitmap;
             return;
         }
         else
@@ -409,7 +409,7 @@ bool Animation::Insert(const AnimationFrame& rStepBmp)
 
     // As a start, we make the first BitmapEx the replacement BitmapEx
     if (maFrames.size() == 1)
-        maBitmapEx = rStepBmp.maBitmap;
+        maBitmap = rStepBmp.maBitmap;
 
     return true;
 }
@@ -431,7 +431,7 @@ void Animation::Replace(const AnimationFrame& 
rNewAnimationFrame, sal_uInt16 nAn
     if ((!nAnimation && (!mbLoopTerminated || (maFrames.size() == 1)))
         || ((nAnimation == maFrames.size() - 1) && mbLoopTerminated))
     {
-        maBitmapEx = rNewAnimationFrame.maBitmap;
+        maBitmap = rNewAnimationFrame.maBitmap;
     }
 }
 
@@ -461,7 +461,7 @@ void Animation::Convert(BmpConversion eConversion)
         bRet = maFrames[i]->maBitmap.Convert(eConversion);
     }
 
-    maBitmapEx.Convert(eConversion);
+    maBitmap.Convert(eConversion);
 }
 
 bool Animation::ReduceColors(sal_uInt16 nNewColorCount)
@@ -479,7 +479,7 @@ bool Animation::ReduceColors(sal_uInt16 nNewColorCount)
                                     
BitmapColorQuantizationFilter(nNewColorCount));
     }
 
-    BitmapFilter::Filter(maBitmapEx, 
BitmapColorQuantizationFilter(nNewColorCount));
+    BitmapFilter::Filter(maBitmap, 
BitmapColorQuantizationFilter(nNewColorCount));
 
     return bRet;
 }
@@ -491,7 +491,7 @@ bool Animation::Invert()
     if (IsInAnimation() || maFrames.empty())
         return false;
 
-    maBitmapEx.Invert();
+    maBitmap.Invert();
 
     for (auto& pFrame : maFrames)
     {
@@ -532,7 +532,7 @@ void Animation::Mirror(BmpMirrorFlags nMirrorFlags)
         }
     }
 
-    maBitmapEx.Mirror(nMirrorFlags);
+    maBitmap.Mirror(nMirrorFlags);
 }
 
 void Animation::Adjust(short nLuminancePercent, short nContrastPercent, short 
nChannelRPercent,
@@ -551,8 +551,8 @@ void Animation::Adjust(short nLuminancePercent, short 
nContrastPercent, short nC
                                             nChannelGPercent, 
nChannelBPercent, fGamma, bInvert);
     }
 
-    maBitmapEx.Adjust(nLuminancePercent, nContrastPercent, nChannelRPercent, 
nChannelGPercent,
-                      nChannelBPercent, fGamma, bInvert);
+    maBitmap.Adjust(nLuminancePercent, nContrastPercent, nChannelRPercent, 
nChannelGPercent,
+                    nChannelBPercent, fGamma, bInvert);
 }
 
 SvStream& WriteAnimation(SvStream& rOStm, const Animation& rAnimation)
@@ -566,10 +566,10 @@ SvStream& WriteAnimation(SvStream& rOStm, const 
Animation& rAnimation)
 
     // If no BitmapEx was set we write the first Bitmap of
     // the Animation
-    if (rAnimation.GetBitmapEx().GetBitmap().IsEmpty())
+    if (rAnimation.GetBitmap().IsEmpty())
         WriteDIBBitmapEx(rAnimation.Get(0).maBitmap, rOStm);
     else
-        WriteDIBBitmapEx(rAnimation.GetBitmapEx(), rOStm);
+        WriteDIBBitmapEx(rAnimation.GetBitmap(), rOStm);
 
     // Write identifier ( SDANIMA1 )
     rOStm.WriteUInt32(0x5344414e).WriteUInt32(0x494d4931);
@@ -624,7 +624,7 @@ SvStream& ReadAnimation(SvStream& rIStm, Animation& 
rAnimation)
     else
     {
         rIStm.Seek(nStmPos);
-        ReadDIBBitmapEx(rAnimation.maBitmapEx, rIStm);
+        ReadDIBBitmapEx(rAnimation.maBitmap, rIStm);
         nStmPos = rIStm.Tell();
         rIStm.ReadUInt32(nAnimMagic1).ReadUInt32(nAnimMagic2);
 
diff --git a/vcl/source/bitmap/bitmapfilter.cxx 
b/vcl/source/bitmap/bitmapfilter.cxx
index 33a6966213a3..51c9bbce2051 100644
--- a/vcl/source/bitmap/bitmapfilter.cxx
+++ b/vcl/source/bitmap/bitmapfilter.cxx
@@ -56,9 +56,9 @@ bool BitmapFilter::Filter(Animation& rAnimation, BitmapFilter 
const& rFilter)
             bRet = BitmapFilter::Filter(aList[i]->maBitmap, rFilter);
         }
 
-        BitmapEx aBmpEx(rAnimation.GetBitmapEx());
-        BitmapFilter::Filter(aBmpEx, rFilter);
-        rAnimation.SetBitmapEx(aBmpEx);
+        Bitmap aBmp(rAnimation.GetBitmap());
+        BitmapFilter::Filter(aBmp, rFilter);
+        rAnimation.SetBitmap(aBmp);
     }
 
     return bRet;
diff --git a/vcl/source/filter/igif/gifread.cxx 
b/vcl/source/filter/igif/gifread.cxx
index 70969016e122..0501d1b570cd 100644
--- a/vcl/source/filter/igif/gifread.cxx
+++ b/vcl/source/filter/igif/gifread.cxx
@@ -940,7 +940,7 @@ ReadState GIFReader::ReadGIF(ImportOutput& rImportOutput)
 
         if (aPrefSize.Width() && aPrefSize.Height())
         {
-            BitmapEx& rBitmap = 
const_cast<BitmapEx&>(rImportOutput.moAnimation->GetBitmapEx());
+            Bitmap& rBitmap = 
const_cast<Bitmap&>(rImportOutput.moAnimation->GetBitmap());
             rBitmap.SetPrefSize(aPrefSize);
             rBitmap.SetPrefMapMode(MapMode(MapUnit::Map100thMM));
         }
diff --git a/vcl/source/filter/itiff/itiff.cxx 
b/vcl/source/filter/itiff/itiff.cxx
index 185c98d5d68a..92070bbf4250 100644
--- a/vcl/source/filter/itiff/itiff.cxx
+++ b/vcl/source/filter/itiff/itiff.cxx
@@ -342,7 +342,7 @@ bool ImportTiffGraphicImport(SvStream& rTIFF, Graphic& 
rGraphic)
     if (nImages)
     {
         if (nImages == 1)
-            rGraphic = Bitmap(aAnimation.GetBitmapEx());
+            rGraphic = aAnimation.GetBitmap();
         else
             rGraphic = aAnimation;
 
diff --git a/vcl/source/filter/png/PngImageReader.cxx 
b/vcl/source/filter/png/PngImageReader.cxx
index 2d65bab81a8f..82d1827543bd 100644
--- a/vcl/source/filter/png/PngImageReader.cxx
+++ b/vcl/source/filter/png/PngImageReader.cxx
@@ -789,7 +789,7 @@ Bitmap PngImageReader::read()
         if (!aImportOutput.mbIsAnimated)
             return *aImportOutput.moBitmap;
         else
-            return Bitmap(aImportOutput.moAnimation->GetBitmapEx());
+            return aImportOutput.moAnimation->GetBitmap();
     }
     return Bitmap();
 }
diff --git a/vcl/source/gdi/TypeSerializer.cxx 
b/vcl/source/gdi/TypeSerializer.cxx
index 6888f4469acf..0edf74bba537 100644
--- a/vcl/source/gdi/TypeSerializer.cxx
+++ b/vcl/source/gdi/TypeSerializer.cxx
@@ -235,7 +235,7 @@ void TypeSerializer::readGraphic(Graphic& rGraphic)
 
                     // #108077# manually set loaded BmpEx to Animation
                     // (which skips loading its BmpEx if already done)
-                    aAnimation.SetBitmapEx(BitmapEx(aBitmap));
+                    aAnimation.SetBitmap(aBitmap);
                     rGraphic = Graphic(aAnimation);
                 }
                 else
diff --git a/vcl/source/gdi/impgraph.cxx b/vcl/source/gdi/impgraph.cxx
index 29a77867788e..1f8aa8dc788c 100644
--- a/vcl/source/gdi/impgraph.cxx
+++ b/vcl/source/gdi/impgraph.cxx
@@ -109,7 +109,7 @@ ImpGraphic::ImpGraphic(const ImpGraphic& rImpGraphic)
     if (rImpGraphic.mpAnimationContainer)
     {
         mpAnimationContainer = 
std::make_shared<AnimationContainer>(rImpGraphic.mpAnimationContainer->maAnimation);
-        maCachedBitmap = 
Bitmap(mpAnimationContainer->maAnimation.GetBitmapEx());
+        maCachedBitmap = mpAnimationContainer->maAnimation.GetBitmap();
     }
 }
 
@@ -178,7 +178,7 @@ ImpGraphic::ImpGraphic(const 
std::shared_ptr<VectorGraphicData>& rVectorGraphicD
 
 ImpGraphic::ImpGraphic(const Animation& rAnimation)
     : MemoryManaged(true)
-    , maCachedBitmap(rAnimation.GetBitmapEx())
+    , maCachedBitmap(rAnimation.GetBitmap())
     , mpAnimationContainer(std::make_shared<AnimationContainer>(rAnimation))
     , meType(GraphicType::Bitmap)
 {
@@ -214,7 +214,7 @@ ImpGraphic& ImpGraphic::operator=(const ImpGraphic& 
rImpGraphic)
         if (rImpGraphic.mpAnimationContainer)
         {
             mpAnimationContainer = 
std::make_shared<AnimationContainer>(*rImpGraphic.mpAnimationContainer);
-            maCachedBitmap = 
Bitmap(mpAnimationContainer->maAnimation.GetBitmapEx());
+            maCachedBitmap = mpAnimationContainer->maAnimation.GetBitmap();
         }
         else
         {
@@ -342,7 +342,7 @@ void BitmapContainer::createSwapInfo(SwapInfo& rSwapInfo)
 
 void AnimationContainer::createSwapInfo(SwapInfo& rSwapInfo)
 {
-    rSwapInfo.maSizePixel = maAnimation.GetBitmapEx().GetSizePixel();
+    rSwapInfo.maSizePixel = maAnimation.GetBitmap().GetSizePixel();
 
     rSwapInfo.maPrefMapMode = getPrefMapMode();
     rSwapInfo.maPrefSize = getPrefSize();
@@ -570,7 +570,7 @@ Bitmap ImpGraphic::getBitmap(const 
GraphicConversionParameters& rParameters) con
             updateBitmapFromVectorGraphic(rParameters.getSizePixel());
 
         if (mpAnimationContainer)
-            aRetBmp = Bitmap(mpAnimationContainer->maAnimation.GetBitmapEx());
+            aRetBmp = mpAnimationContainer->maAnimation.GetBitmap();
         else if (mpBitmapContainer)
             aRetBmp = mpBitmapContainer->maBitmap;
         else
@@ -854,7 +854,7 @@ void ImpGraphic::setValuesForPrefSize(const Size& rPrefSize)
             // will be lost on copy otherwise
             else if (mpAnimationContainer)
             {
-                
const_cast<BitmapEx&>(mpAnimationContainer->maAnimation.GetBitmapEx()).SetPrefSize(rPrefSize);
+                
const_cast<Bitmap&>(mpAnimationContainer->maAnimation.GetBitmap()).SetPrefSize(rPrefSize);
                 maCachedBitmap.SetPrefSize(rPrefSize);
             }
             else if (mpBitmapContainer)
@@ -953,7 +953,7 @@ void ImpGraphic::setValuesForPrefMapMod(const MapMode& 
rPrefMapMode)
             // will be lost on copy otherwise
             else if (mpAnimationContainer)
             {
-                
const_cast<BitmapEx&>(mpAnimationContainer->maAnimation.GetBitmapEx()).SetPrefMapMode(rPrefMapMode);
+                
const_cast<Bitmap&>(mpAnimationContainer->maAnimation.GetBitmap()).SetPrefMapMode(rPrefMapMode);
                 maCachedBitmap.SetPrefMapMode(rPrefMapMode);
             }
             else if (mpBitmapContainer)
@@ -1388,7 +1388,7 @@ void ImpGraphic::updateFromLoadedGraphic(const 
ImpGraphic* pGraphic)
         if (pGraphic->mpAnimationContainer)
         {
             mpAnimationContainer = 
std::make_shared<AnimationContainer>(*pGraphic->mpAnimationContainer);
-            maCachedBitmap = 
Bitmap(mpAnimationContainer->maAnimation.GetBitmapEx());
+            maCachedBitmap = mpAnimationContainer->maAnimation.GetBitmap();
         }
         else if (pGraphic->mpBitmapContainer)
         {
@@ -1619,7 +1619,7 @@ bool ImpGraphic::swapInGraphic(SvStream& rStream)
                 if (!rStream.GetError())
                 {
                     mpAnimationContainer = 
std::make_shared<AnimationContainer>(aAnimation);
-                    maCachedBitmap = 
Bitmap(mpAnimationContainer->maAnimation.GetBitmapEx());
+                    maCachedBitmap = 
mpAnimationContainer->maAnimation.GetBitmap();
                     bReturn = true;
                 }
             }

Reply via email to