Author: alg
Date: Mon Nov 12 18:02:48 2012
New Revision: 1408383

URL: http://svn.apache.org/viewvc?rev=1408383&view=rev
Log:
Added more tests for BitmapEx Mask/Alpha format

Modified:
    incubator/ooo/branches/alg/aw080/main/vcl/source/gdi/alpha.cxx
    incubator/ooo/branches/alg/aw080/main/vcl/source/gdi/bitmapex.cxx
    incubator/ooo/branches/alg/aw080/main/vcl/source/gdi/bmpfast.cxx
    incubator/ooo/branches/alg/aw080/main/vcl/source/gdi/outdev2.cxx
    incubator/ooo/branches/alg/aw080/main/vcl/source/gdi/outmap.cxx

Modified: incubator/ooo/branches/alg/aw080/main/vcl/source/gdi/alpha.cxx
URL: 
http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/vcl/source/gdi/alpha.cxx?rev=1408383&r1=1408382&r2=1408383&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/vcl/source/gdi/alpha.cxx (original)
+++ incubator/ooo/branches/alg/aw080/main/vcl/source/gdi/alpha.cxx Mon Nov 12 
18:02:48 2012
@@ -90,8 +90,14 @@ const Bitmap& AlphaMask::ImplGetBitmap()
 
 void AlphaMask::ImplSetBitmap( const Bitmap& rBitmap )
 {
-    DBG_ASSERT( ( 8 == rBitmap.GetBitCount() ) && rBitmap.HasGreyPalette(), 
"AlphaMask::ImplSetBitmap: invalid bitmap" );
-       *(Bitmap*) this = rBitmap;
+    *(Bitmap*) this = rBitmap;
+
+#ifdef DBG_UTIL
+    if((8 != rBitmap.GetBitCount()) || !rBitmap.HasGreyPalette())
+    {
+        OSL_ENSURE(false, "AlphaMask::ImplSetBitmap: invalid bitmap");
+    }
+#endif
 }
 
 // 
-----------------------------------------------------------------------------

Modified: incubator/ooo/branches/alg/aw080/main/vcl/source/gdi/bitmapex.cxx
URL: 
http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/vcl/source/gdi/bitmapex.cxx?rev=1408383&r1=1408382&r2=1408383&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/vcl/source/gdi/bitmapex.cxx (original)
+++ incubator/ooo/branches/alg/aw080/main/vcl/source/gdi/bitmapex.cxx Mon Nov 
12 18:02:48 2012
@@ -160,11 +160,19 @@ BitmapEx::BitmapEx( const Bitmap& rBmp, 
         aMask.Scale(rBmp.GetSizePixel());
     }
 
+    if( !!aMask && aMask.GetBitCount() > 8 )
+    {
+        OSL_TRACE("BitmapEx: forced alpha to 8bit grey");
+        aMask.Convert(BMP_CONVERSION_8BIT_GREYS);
+    }
+
     // #i75531# the workaround below can go when
     // X11SalGraphics::drawAlphaBitmap()'s render acceleration
     // can handle the bitmap depth mismatch directly 
     if( aBitmap.GetBitCount() < aMask.GetBitCount() )
+    {
         aBitmap.Convert( BMP_CONVERSION_24BIT );
+    }
 }
 
 // ------------------------------------------------------------------

Modified: incubator/ooo/branches/alg/aw080/main/vcl/source/gdi/bmpfast.cxx
URL: 
http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/vcl/source/gdi/bmpfast.cxx?rev=1408383&r1=1408382&r2=1408383&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/vcl/source/gdi/bmpfast.cxx (original)
+++ incubator/ooo/branches/alg/aw080/main/vcl/source/gdi/bmpfast.cxx Mon Nov 12 
18:02:48 2012
@@ -677,8 +677,12 @@ bool ImplBlendToBitmap( TrueColorPixelPt
     BitmapBuffer& rDstBuffer, const BitmapBuffer& rSrcBuffer,
     const BitmapBuffer& rMskBuffer )
 {
-    //DBG_ASSERT( rMskBuffer.mnFormat == MSKFMT, "FastBmp BlendImage: wrong 
MSKFMT" );
-    DBG_ASSERT( rMskBuffer.mnFormat == BMP_FORMAT_8BIT_PAL, "FastBmp 
BlendImage: unusual MSKFMT" );
+#ifdef DBG_UTIL
+    if(rMskBuffer.mnFormat != BMP_FORMAT_8BIT_PAL && rMskBuffer.mnFormat != 
BMP_FORMAT_8BIT_TC_MASK)
+    {
+        OSL_ENSURE(false, "FastBmp BlendImage: unusual MSKFMT");
+    }
+#endif
 
     const int nSrcLinestep = rSrcBuffer.mnScanlineSize;
     int nMskLinestep = rMskBuffer.mnScanlineSize;

Modified: incubator/ooo/branches/alg/aw080/main/vcl/source/gdi/outdev2.cxx
URL: 
http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/vcl/source/gdi/outdev2.cxx?rev=1408383&r1=1408382&r2=1408383&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/vcl/source/gdi/outdev2.cxx (original)
+++ incubator/ooo/branches/alg/aw080/main/vcl/source/gdi/outdev2.cxx Mon Nov 12 
18:02:48 2012
@@ -2023,9 +2023,12 @@ void OutputDevice::ImplDrawAlpha( const 
             BitmapReadAccess*  pP = ( (Bitmap&) rBmp ).AcquireReadAccess();
             BitmapReadAccess*  pA = ( (AlphaMask&) rAlpha 
).AcquireReadAccess();
 
-            DBG_ASSERT( pA->GetScanlineFormat() == BMP_FORMAT_8BIT_PAL ||
-                        pA->GetScanlineFormat() == BMP_FORMAT_8BIT_TC_MASK, 
-                        "OutputDevice::ImplDrawAlpha(): non-8bit alpha no 
longer supported!" );
+#ifdef DBG_UTIL
+            if(pA->GetScanlineFormat() != BMP_FORMAT_8BIT_PAL && 
pA->GetScanlineFormat() != BMP_FORMAT_8BIT_TC_MASK)
+            {
+                OSL_ENSURE(false, "OutputDevice::ImplDrawAlpha(): non-8bit 
alpha no longer supported!");
+            }
+#endif
 
             // #i38887# reading from screen may sometimes fail
             if( aBmp.ImplGetImpBitmap() )

Modified: incubator/ooo/branches/alg/aw080/main/vcl/source/gdi/outmap.cxx
URL: 
http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/vcl/source/gdi/outmap.cxx?rev=1408383&r1=1408382&r2=1408383&view=diff
==============================================================================
--- incubator/ooo/branches/alg/aw080/main/vcl/source/gdi/outmap.cxx (original)
+++ incubator/ooo/branches/alg/aw080/main/vcl/source/gdi/outmap.cxx Mon Nov 12 
18:02:48 2012
@@ -2248,17 +2248,29 @@ long* OutputDevice::LogicToLogic( long* 
 
 // -----------------------------------------------------------------------
 
-#define CHEKCMAPUNITSFORSTATIC( aMapA, aMapB ) \
-    OSL_ENSURE((MAP_PIXEL == aMapA && MAP_PIXEL != aMapB) && (MAP_PIXEL != 
aMapA && MAP_PIXEL == aMapB), \
-    "Caution: When using the static LogicToLogic methods to convert between 
pixels and logic sizes, \
-    not the correct system DPI is used, but a DPI of 75 is guessed. To use the 
correct DPI, use e.g. \
-    the OutputDevice from Application::GetDefaultDevice() (!)");
+#ifdef DBG_UTIL
+void CheckMapUnitsForStatic(MapUnit aMapA, MapUnit aMapB)
+{
+    if(aMapA != aMapB)
+    {
+        if((MAP_PIXEL == aMapA && MAP_PIXEL != aMapB) || (MAP_PIXEL != aMapA 
&& MAP_PIXEL == aMapB))
+        {
+            OSL_ENSURE(false, \
+            "Caution: When using the static LogicToLogic methods to convert 
between pixels and logic sizes,/n\
+            not the correct system DPI is used, but a DPI of 75 is guessed. To 
use the correct DPI, use e.g./n\
+            the OutputDevice from Application::GetDefaultDevice() (!)");
+        }
+    }
+}
+#endif
 
 Point OutputDevice::LogicToLogic( const Point& rPtSource,
                                                                  const 
MapMode& rMapModeSource,
                                                                  const 
MapMode& rMapModeDest )
 {
-    CHEKCMAPUNITSFORSTATIC(rMapModeSource.GetMapUnit(), 
rMapModeDest.GetMapUnit())
+#ifdef DBG_UTIL
+    CheckMapUnitsForStatic(rMapModeSource.GetMapUnit(), 
rMapModeDest.GetMapUnit());
+#endif
        if ( rMapModeSource == rMapModeDest )
                return rPtSource;
 
@@ -2295,7 +2307,9 @@ Size OutputDevice::LogicToLogic( const S
                                                                 const MapMode& 
rMapModeSource,
                                                                 const MapMode& 
rMapModeDest )
 {
-    CHEKCMAPUNITSFORSTATIC(rMapModeSource.GetMapUnit(), 
rMapModeDest.GetMapUnit())
+#ifdef DBG_UTIL
+    CheckMapUnitsForStatic(rMapModeSource.GetMapUnit(), 
rMapModeDest.GetMapUnit());
+#endif
        if ( rMapModeSource == rMapModeDest )
                return rSzSource;
 
@@ -2330,7 +2344,9 @@ basegfx::B2DPolygon OutputDevice::LogicT
                                                 const MapMode& rMapModeSource,
                                                 const MapMode& rMapModeDest )
 {
-    CHEKCMAPUNITSFORSTATIC(rMapModeSource.GetMapUnit(), 
rMapModeDest.GetMapUnit())
+#ifdef DBG_UTIL
+    CheckMapUnitsForStatic(rMapModeSource.GetMapUnit(), 
rMapModeDest.GetMapUnit());
+#endif
        if ( rMapModeSource == rMapModeDest )
                return rPolySource;
 
@@ -2376,7 +2392,9 @@ basegfx::B2DPolyPolygon OutputDevice::Lo
                                                     const MapMode& 
rMapModeSource,
                                                     const MapMode& 
rMapModeDest )
 {
-    CHEKCMAPUNITSFORSTATIC(rMapModeSource.GetMapUnit(), 
rMapModeDest.GetMapUnit())
+#ifdef DBG_UTIL
+    CheckMapUnitsForStatic(rMapModeSource.GetMapUnit(), 
rMapModeDest.GetMapUnit());
+#endif
        if ( rMapModeSource == rMapModeDest )
                return rPolySource;
 
@@ -2422,7 +2440,9 @@ Rectangle OutputDevice::LogicToLogic( co
                                                                          const 
MapMode& rMapModeSource,
                                                                          const 
MapMode& rMapModeDest )
 {
-    CHEKCMAPUNITSFORSTATIC(rMapModeSource.GetMapUnit(), 
rMapModeDest.GetMapUnit())
+#ifdef DBG_UTIL
+    CheckMapUnitsForStatic(rMapModeSource.GetMapUnit(), 
rMapModeDest.GetMapUnit());
+#endif
        if ( rMapModeSource == rMapModeDest )
                return rRectSource;
 
@@ -2471,7 +2491,9 @@ long OutputDevice::LogicToLogic( long nL
        if ( eUnitSource == eUnitDest )
                return nLongSource;
 
-    CHEKCMAPUNITSFORSTATIC(eUnitSource, eUnitDest)
+#ifdef DBG_UTIL
+    CheckMapUnitsForStatic(eUnitSource, eUnitDest);
+#endif
        ENTER2( eUnitSource, eUnitDest );
        ENTER3( eUnitSource, eUnitDest );
 
@@ -2498,7 +2520,9 @@ basegfx::B2DHomMatrix OutputDevice::GetT
 
 double OutputDevice::GetFactorLogicToLogic(MapUnit eUnitSource, MapUnit 
eUnitDest)
 {
-    CHEKCMAPUNITSFORSTATIC(eUnitSource, eUnitDest)
+#ifdef DBG_UTIL
+    CheckMapUnitsForStatic(eUnitSource, eUnitDest);
+#endif
        if ( eUnitSource == eUnitDest )
                return 1.0;
 


Reply via email to