include/vcl/salbtype.hxx | 67 ++++++++++++++++++++++------------------------- 1 file changed, 32 insertions(+), 35 deletions(-)
New commits: commit bb6031fbe14b1f4b2e2ca98f97e93efe3519baa7 Author: Caolán McNamara <caol...@redhat.com> Date: Tue Sep 15 21:23:28 2015 +0100 move CalcMaskShift to ColorMaskElement Change-Id: I6ed7e9bfea8b4500724866214fabd179fba20f20 Reviewed-on: https://gerrit.libreoffice.org/18636 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/include/vcl/salbtype.hxx b/include/vcl/salbtype.hxx index 547d9a2..4e0b4cd 100644 --- a/include/vcl/salbtype.hxx +++ b/include/vcl/salbtype.hxx @@ -194,6 +194,35 @@ struct VCL_DLLPUBLIC ColorMaskElement , mnOr(0) { } + bool CalcMaskShift(ColorMaskElement &rElem) const + { + if (rElem.mnMask == 0) + return true; + + // from which bit starts the mask? + int nShift = 31; + + while( nShift >= 0 && !( rElem.mnMask & ( 1 << nShift ) ) ) + --nShift; + + rElem.mnShift = nShift - 7; + int nLen = 0; + + // XXX determine number of bits set => walk right until null + while( nShift >= 0 && ( rElem.mnMask & ( 1 << nShift ) ) ) + { + nShift--; + nLen++; + } + + if (nLen > 8) // mask length must be 8 bits or less + return false; + + rElem.mnOrShift = 8 - nLen; + rElem.mnOr = static_cast<sal_uInt8>( ( 0xFF >> nLen ) << rElem.mnOrShift ); + + return true; + } }; // - ColorMask - @@ -204,8 +233,6 @@ class VCL_DLLPUBLIC ColorMask ColorMaskElement maB; sal_uInt32 mnAlphaChannel; - SAL_DLLPRIVATE inline bool ImplCalcMaskShift(ColorMaskElement &rOut) const; - public: inline ColorMask( sal_uInt32 nRedMask = 0, @@ -581,39 +608,9 @@ inline ColorMask::ColorMask( sal_uInt32 nRedMask, , maB(nBlueMask) , mnAlphaChannel(nAlphaChannel) { - ImplCalcMaskShift(maR); - ImplCalcMaskShift(maG); - ImplCalcMaskShift(maB); -} - -inline bool ColorMask::ImplCalcMaskShift(ColorMaskElement &rElem) const -{ - if (rElem.mnMask == 0) - return true; - - // from which bit starts the mask? - int nShift = 31; - - while( nShift >= 0 && !( rElem.mnMask & ( 1 << nShift ) ) ) - --nShift; - - rElem.mnShift = nShift - 7; - int nLen = 0; - - // XXX determine number of bits set => walk right until null - while( nShift >= 0 && ( rElem.mnMask & ( 1 << nShift ) ) ) - { - nShift--; - nLen++; - } - - if (nLen > 8) // mask length must be 8 bits or less - return false; - - rElem.mnOrShift = 8 - nLen; - rElem.mnOr = static_cast<sal_uInt8>( ( 0xFF >> nLen ) << rElem.mnOrShift ); - - return true; + maR.CalcMaskShift(maR); + maG.CalcMaskShift(maG); + maB.CalcMaskShift(maB); } inline sal_uInt32 ColorMask::GetRedMask() const
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits