summaryrefslogtreecommitdiff
path: root/drawinglayer
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2018-05-30 11:11:21 +0200
committerMichael Meeks <michael.meeks@collabora.com>2018-05-30 23:10:56 +0200
commit63e65d1743264dfa26d2aba615d71978e65784e8 (patch)
tree9233430edb0b3a1d5b7a3aa9bab2f6b36469add2 /drawinglayer
parented9f0e3bc2b5b205aba9475d3bcb314dcb76ce5d (diff)
dont use GetMask in GeoTexSvxBitmapEx
part of the process of making Bitmap's internals be private to vcl Change-Id: I3784c14be1572d4df64b9cbdb5adcebdd1b274fd Reviewed-on: https://gerrit.libreoffice.org/55050 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Tested-by: Michael Meeks <michael.meeks@collabora.com>
Diffstat (limited to 'drawinglayer')
-rw-r--r--drawinglayer/source/texture/texture3d.cxx100
1 files changed, 18 insertions, 82 deletions
diff --git a/drawinglayer/source/texture/texture3d.cxx b/drawinglayer/source/texture/texture3d.cxx
index 0dac447ccf50..0573c3e4b3f5 100644
--- a/drawinglayer/source/texture/texture3d.cxx
+++ b/drawinglayer/source/texture/texture3d.cxx
@@ -64,39 +64,22 @@ namespace drawinglayer
const BitmapEx& rBitmapEx,
const basegfx::B2DRange& rRange)
: maBitmapEx(rBitmapEx),
- maTransparence(),
maTopLeft(rRange.getMinimum()),
maSize(rRange.getRange()),
mfMulX(0.0),
mfMulY(0.0),
- mbIsAlpha(false),
- mbIsTransparent(maBitmapEx.IsTransparent())
+ mbIsAlpha(false)
{
- // #121194# Todo: use alpha channel, too (for 3d)
- maBitmap = maBitmapEx.GetBitmap();
-
- if(mbIsTransparent)
+ if(maBitmapEx.IsTransparent())
{
if(maBitmapEx.IsAlpha())
{
mbIsAlpha = true;
- maTransparence = rBitmapEx.GetAlpha().GetBitmap();
- }
- else
- {
- maTransparence = rBitmapEx.GetMask();
}
-
- mpReadTransparence = Bitmap::ScopedReadAccess(maTransparence);
}
- mpReadBitmap = Bitmap::ScopedReadAccess(maBitmap);
- SAL_WARN_IF(!mpReadBitmap, "drawinglayer", "GeoTexSvxBitmapEx: Got no read access to Bitmap");
- if (mpReadBitmap)
- {
- mfMulX = static_cast<double>(mpReadBitmap->Width()) / maSize.getX();
- mfMulY = static_cast<double>(mpReadBitmap->Height()) / maSize.getY();
- }
+ mfMulX = static_cast<double>(maBitmapEx.GetSizePixel().Width()) / maSize.getX();
+ mfMulY = static_cast<double>(maBitmapEx.GetSizePixel().Height()) / maSize.getY();
if(maSize.getX() <= 1.0)
{
@@ -113,60 +96,20 @@ namespace drawinglayer
{
}
- sal_uInt8 GeoTexSvxBitmapEx::impGetTransparence(sal_Int32 rX, sal_Int32 rY) const
+ sal_uInt8 GeoTexSvxBitmapEx::impGetTransparence(sal_Int32 nX, sal_Int32 nY) const
{
- switch(maBitmapEx.GetTransparentType())
- {
- case TransparentType::NONE:
- {
- break;
- }
- case TransparentType::Color:
- {
- const BitmapColor aBitmapColor(mpReadBitmap->GetColor(rY, rX));
-
- if(maBitmapEx.GetTransparentColor() == aBitmapColor.GetColor())
- {
- return 255;
- }
-
- break;
- }
- case TransparentType::Bitmap:
- {
- OSL_ENSURE(mpReadTransparence, "OOps, transparence type Bitmap, but no read access created in the constructor (?)");
- const BitmapColor aBitmapColor(mpReadTransparence->GetPixel(rY, rX));
-
- if(mbIsAlpha)
- {
- return aBitmapColor.GetIndex();
- }
- else
- {
- if(0x00 != aBitmapColor.GetIndex())
- {
- return 255;
- }
- }
- break;
- }
- }
-
- return 0;
+ return maBitmapEx.GetTransparency(nX, nY);
}
bool GeoTexSvxBitmapEx::impIsValid(const basegfx::B2DPoint& rUV, sal_Int32& rX, sal_Int32& rY) const
{
- if(mpReadBitmap)
- {
- rX = static_cast<sal_Int32>((rUV.getX() - maTopLeft.getX()) * mfMulX);
+ rX = static_cast<sal_Int32>((rUV.getX() - maTopLeft.getX()) * mfMulX);
- if(rX >= 0 && rX < mpReadBitmap->Width())
- {
- rY = static_cast<sal_Int32>((rUV.getY() - maTopLeft.getY()) * mfMulY);
+ if(rX >= 0 && rX < maBitmapEx.GetSizePixel().Width())
+ {
+ rY = static_cast<sal_Int32>((rUV.getY() - maTopLeft.getY()) * mfMulY);
- return (rY >= 0 && rY < mpReadBitmap->Height());
- }
+ return (rY >= 0 && rY < maBitmapEx.GetSizePixel().Height());
}
return false;
@@ -179,7 +122,7 @@ namespace drawinglayer
if(impIsValid(rUV, nX, nY))
{
const double fConvertColor(1.0 / 255.0);
- const BitmapColor aBMCol(mpReadBitmap->GetColor(nY, nX));
+ const ::Color aBMCol(maBitmapEx.GetPixelColor(nX, nY));
const basegfx::BColor aBSource(
static_cast<double>(aBMCol.GetRed()) * fConvertColor,
static_cast<double>(aBMCol.GetGreen()) * fConvertColor,
@@ -187,10 +130,10 @@ namespace drawinglayer
rBColor = aBSource;
- if(mbIsTransparent)
+ if(maBitmapEx.IsTransparent())
{
// when we have a transparence, make use of it
- const sal_uInt8 aLuminance(impGetTransparence(nX, nY));
+ const sal_uInt8 aLuminance = aBMCol.GetTransparency();
rfOpacity = (static_cast<double>(0xff - aLuminance) * (1.0 / 255.0));
}
@@ -211,7 +154,7 @@ namespace drawinglayer
if(impIsValid(rUV, nX, nY))
{
- if(mbIsTransparent)
+ if(maBitmapEx.IsTransparent())
{
// this texture has an alpha part, use it
const sal_uInt8 aLuminance(impGetTransparence(nX, nY));
@@ -222,8 +165,7 @@ namespace drawinglayer
else
{
// this texture is a color bitmap used as transparence map
- const BitmapColor aBMCol(mpReadBitmap->GetColor(nY, nX));
- const Color aColor(aBMCol.GetRed(), aBMCol.GetGreen(), aBMCol.GetBlue());
+ const ::Color aColor(maBitmapEx.GetPixelColor(nY, nX));
rfOpacity = (static_cast<double>(0xff - aColor.GetLuminance()) * (1.0 / 255.0));
}
@@ -296,18 +238,12 @@ namespace drawinglayer
void GeoTexSvxBitmapExTiled::modifyBColor(const basegfx::B2DPoint& rUV, basegfx::BColor& rBColor, double& rfOpacity) const
{
- if(mpReadBitmap)
- {
- GeoTexSvxBitmapEx::modifyBColor(impGetCorrected(rUV), rBColor, rfOpacity);
- }
+ GeoTexSvxBitmapEx::modifyBColor(impGetCorrected(rUV), rBColor, rfOpacity);
}
void GeoTexSvxBitmapExTiled::modifyOpacity(const basegfx::B2DPoint& rUV, double& rfOpacity) const
{
- if(mpReadBitmap)
- {
- GeoTexSvxBitmapEx::modifyOpacity(impGetCorrected(rUV), rfOpacity);
- }
+ GeoTexSvxBitmapEx::modifyOpacity(impGetCorrected(rUV), rfOpacity);
}
} // end of namespace texture
} // end of namespace drawinglayer