[Libreoffice-commits] .: 7 commits - android/experimental basebmp/inc basebmp/source lcms2/makefile.mk odk/examples RepositoryExternal.mk touch/idl touch/InternalUnoApi_touch.mk touch/source vcl/android vcl/headless vigra/README

Tor Lillqvist tml at kemper.freedesktop.org
Thu Jun 7 12:02:00 PDT 2012


 RepositoryExternal.mk                                                                        |   16 ++
 android/experimental/DocumentLoader/src/org/libreoffice/android/examples/DocumentLoader.java |   11 +
 basebmp/inc/basebmp/rgbmaskpixelformats.hxx                                                  |   78 ++++++++--
 basebmp/inc/basebmp/scanlineformats.hxx                                                      |    7 
 basebmp/source/bitmapdevice.cxx                                                              |   22 ++
 lcms2/makefile.mk                                                                            |    4 
 odk/examples/java/DocumentHandling/test/test1.odt                                            |binary
 touch/InternalUnoApi_touch.mk                                                                |    1 
 touch/idl/org/libreoffice/touch/DocumentRenderCallback.idl                                   |   25 ---
 touch/idl/org/libreoffice/touch/XDocument.idl                                                |    8 -
 touch/source/uno/Document.cxx                                                                |   23 ++
 vcl/android/androidinst.cxx                                                                  |    2 
 vcl/headless/svpbmp.cxx                                                                      |   38 ++++
 vcl/headless/svpelement.cxx                                                                  |    5 
 vcl/headless/svpgdi.cxx                                                                      |    5 
 vcl/headless/svpvd.cxx                                                                       |    2 
 vigra/README                                                                                 |    2 
 17 files changed, 181 insertions(+), 68 deletions(-)

New commits:
commit 40c00297deadb5f19020a82520f53d02129f4852
Author: Tor Lillqvist <tlillqvist at suse.com>
Date:   Thu Jun 7 21:52:06 2012 +0300

    Clarify ideas a bit, DocumentRenderCallback service not needed
    
    Change-Id: I0a91a45dace5d2a35daadf1c9233ab68bee8701e

diff --git a/touch/InternalUnoApi_touch.mk b/touch/InternalUnoApi_touch.mk
index bb03402..b74af1a 100644
--- a/touch/InternalUnoApi_touch.mk
+++ b/touch/InternalUnoApi_touch.mk
@@ -25,7 +25,6 @@ $(eval $(call gb_InternalUnoApi_set_include,touch,\
 
 $(eval $(call gb_InternalUnoApi_add_idlfiles,touch,touch/idl/org/libreoffice/touch,\
 	Document \
-	DocumentRenderCallback \
 	XDocument \
 	XDocumentRenderCallback \
 ))
diff --git a/touch/idl/org/libreoffice/touch/DocumentRenderCallback.idl b/touch/idl/org/libreoffice/touch/DocumentRenderCallback.idl
deleted file mode 100644
index 95e7e77..0000000
--- a/touch/idl/org/libreoffice/touch/DocumentRenderCallback.idl
+++ /dev/null
@@ -1,25 +0,0 @@
-// -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
-
-// Copyright 2012 LibreOffice contributors.
-//
-// This Source Code Form is subject to the terms of the Mozilla Public
-// License 2.0. If a copy of the MPL was not distributed with this
-// file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef org_libreoffice_touch_DocumentRenderCallback_idl
-#define org_libreoffice_touch_DocumentRenderCallback_idl
-
-#include <org/libreoffice/touch/XDocumentRenderCallback.idl>
-
-module org { module libreoffice { module touch {
-
-service DocumentRenderCallback: XDocumentRenderCallback
-{
-    create();
-};
-
-}; }; };
-
-#endif
-
-// vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/touch/idl/org/libreoffice/touch/XDocument.idl b/touch/idl/org/libreoffice/touch/XDocument.idl
index bc3d563..254970e 100644
--- a/touch/idl/org/libreoffice/touch/XDocument.idl
+++ b/touch/idl/org/libreoffice/touch/XDocument.idl
@@ -37,10 +37,10 @@ interface XDocument: com::sun::star::uno::XInterface
     // on Android version and/or hardware? TBD. Will the same format be useful
     // also for iOS? TBD.
 
-    // buffer must have an exact number of bytes for a square number of
-    // pixels, At the UNO level buffer is represented as the address of its
-    // bytes, i.e. on Android it must be a "direct" ByteBuffer for that to be
-    // meaningful.
+    // buffer must have an exact number of bytes for a square with each side a
+    // power-of-two number of pixels, At this API level buffer is represented
+    // as the address of its bytes as a 64-bit integer, i.e. on Android it
+    // must be a "direct" ByteBuffer for that to be meaningful.
 
     // listener gets a "reasonable" number of callbacks during the rendering
     // if it takes "significantly" long, and can inerrupt the rendering.
diff --git a/touch/source/uno/Document.cxx b/touch/source/uno/Document.cxx
index 975e9cc..7d41698 100644
--- a/touch/source/uno/Document.cxx
+++ b/touch/source/uno/Document.cxx
@@ -9,6 +9,7 @@
 
 // NOTE: Work in progress, most likely makes little sense
 
+#include <com/sun/star/awt/XBitmap.hpp>
 #include <com/sun/star/awt/XDevice.hpp>
 #include <com/sun/star/awt/XToolkit.hpp>
 #include <com/sun/star/beans/NamedValue.hpp>
@@ -40,10 +41,15 @@ private:
     uno::Reference< uno::XComponentContext > m_rContext;
     uno::Reference< lang::XComponent > m_xComponent;
     uno::Reference< frame::XController > m_xController;
+    uno::Reference< awt::XDevice > m_xDevice;
     uno::Reference< view::XRenderable > m_xRenderable;
 
     beans::PropertyValues m_aRenderProps;
 
+    // XRenderable.getRendererCount() and .render() need an XController in the
+    // properties, at least in the test Java code it seemed that a totally
+    // dummy one works, so try that here, too.
+
     typedef ::cppu::WeakImplHelper1< frame::XController > MyXController_Base;
 
     class MyXController:
@@ -160,9 +166,9 @@ protected:
 
             uno::Reference< awt::XToolkit > toolkit( m_rContext->getServiceManager()->createInstanceWithContext( "com.sun.star.awt.Toolkit", m_rContext ), uno::UNO_QUERY_THROW );
 
-            uno::Reference< awt::XDevice > device( toolkit->createScreenCompatibleDevice( 1024, 1024 ) );
+            m_xDevice = toolkit->createScreenCompatibleDevice( 1024, 1024 );
 
-            m_xRenderable = uno::Reference< view::XRenderable >(m_rContext->getServiceManager()->createInstanceWithContext( "com.sun.star.view.Renderable", m_rContext ), uno::UNO_QUERY_THROW );
+            m_xRenderable = uno::Reference< view::XRenderable >( m_rContext->getServiceManager()->createInstanceWithContext( "com.sun.star.view.Renderable", m_rContext ), uno::UNO_QUERY_THROW );
 
             m_xController = new MyXController();
 
@@ -170,7 +176,7 @@ protected:
             m_aRenderProps[0].Name = "IsPrinter";
             m_aRenderProps[0].Value <<= sal_Bool(true);
             m_aRenderProps[1].Name = "RenderDevice";
-            m_aRenderProps[1].Value <<= device;
+            m_aRenderProps[1].Value <<= m_xDevice;
             m_aRenderProps[2].Name = "View";
             m_aRenderProps[2].Value <<= m_xController;
         }
@@ -197,13 +203,20 @@ protected:
             sal_Int32 y )
         throw ( lang::IllegalArgumentException, uno::RuntimeException)
     {
+        uno::Any selection;
+
         (void) buffer;
         (void) bufferSize;
         (void) listener;
-        (void) pageNo;
         (void) zoomLevel;
         (void) x;
-        (void) y ;
+        (void) y;
+
+        selection <<= m_xComponent;
+
+        m_xRenderable->render( pageNo, selection, m_aRenderProps );
+
+        uno::Reference< awt::XBitmap> bitmap( m_xDevice->createBitmap( 0, 0, 1024, 1024 ) );
     }
 
 };
commit e243a5b462408891c401f88bb3af3a661697f8f4
Author: Tor Lillqvist <tlillqvist at suse.com>
Date:   Thu Jun 7 21:48:54 2012 +0300

    Verify that we do get the RGBX format DIB we expect
    
    Change-Id: I9f44547fbc5e13daa297720dfd814d2192114125

diff --git a/android/experimental/DocumentLoader/src/org/libreoffice/android/examples/DocumentLoader.java b/android/experimental/DocumentLoader/src/org/libreoffice/android/examples/DocumentLoader.java
index 4f027ec..91af731 100644
--- a/android/experimental/DocumentLoader/src/org/libreoffice/android/examples/DocumentLoader.java
+++ b/android/experimental/DocumentLoader/src/org/libreoffice/android/examples/DocumentLoader.java
@@ -188,8 +188,8 @@ public class DocumentLoader
             Bootstrap.dlopen("libswdlo.so");
             Bootstrap.dlopen("libswlo.so");
             
-            // Log.i(TAG, "Sleeping NOW");
-            // Thread.sleep(20000);
+            Log.i(TAG, "Sleeping NOW");
+            Thread.sleep(20000);
 
             XComponentContext xContext = null;
 
@@ -311,6 +311,13 @@ public class DocumentLoader
                 return;
             }
 
+            if (imagebb.getInt(0x36) != 0x000000ff |
+                imagebb.getInt(0x3a) != 0x0000ff00 ||
+                imagebb.getInt(0x3e) != 0x00ff0000) {
+                Log.wtf(TAG, "getDIB() didn't return DIB in RGBX format");
+                return;
+            }
+
             int offset = imagebb.getInt(0x0a);
             int width = imagebb.getInt(0x12);
             int height = imagebb.getInt(0x16);
commit 323f137631da53d4fbb057c1a3847c6b8aa69ab2
Author: Tor Lillqvist <tlillqvist at suse.com>
Date:   Thu Jun 7 21:43:36 2012 +0300

    Use the new THIRTYTWO_BIT_TC_MASK_RGBA format for Android and iOS
    
    Change-Id: I7cc8c5943454edea7fdef50b125d0baa95fc3f8b

diff --git a/vcl/android/androidinst.cxx b/vcl/android/androidinst.cxx
index ac08ac5..c6440c5 100644
--- a/vcl/android/androidinst.cxx
+++ b/vcl/android/androidinst.cxx
@@ -702,7 +702,7 @@ public:
                      sal_uLong           nSalFrameStyle,
                      SystemParentData   *pSysParent )
         : SvpSalFrame( pInstance, pParent, nSalFrameStyle,
-                       true, basebmp::Format::THIRTYTWO_BIT_TC_MASK, // FIXME: Or THIRTYTWO_BIT_TC_MASK_ARGB?
+                       true, basebmp::Format::THIRTYTWO_BIT_TC_MASK_RGBA,
                        pSysParent )
     {
         enableDamageTracker();
diff --git a/vcl/headless/svpbmp.cxx b/vcl/headless/svpbmp.cxx
index f1d8d49..da56217 100644
--- a/vcl/headless/svpbmp.cxx
+++ b/vcl/headless/svpbmp.cxx
@@ -59,8 +59,11 @@ bool SvpSalBitmap::Create( const Size& rSize,
         case 16: nFormat = Format::SIXTEEN_BIT_LSB_TC_MASK; break;
 #endif
         case 24: nFormat = Format::TWENTYFOUR_BIT_TC_MASK; break;
-        // FIXME: Should this for Android be THIRTYTWO_BIT_TC_MASK_ARGB?
+#if defined(ANDROID) || defined(IOS)
+        case 32: nFormat = Format::THIRTYTWO_BIT_TC_MASK_RGBA; break;
+#else
         case 32: nFormat = Format::THIRTYTWO_BIT_TC_MASK; break;
+#endif
     }
     B2IVector aSize( rSize.Width(), rSize.Height() );
     if( aSize.getX() == 0 )
@@ -199,13 +202,40 @@ BitmapBuffer* SvpSalBitmap::AcquireBuffer( bool )
                 nBitCount = 24;
                 pBuf->mnFormat = BMP_FORMAT_24BIT_TC_BGR;
                 break;
-            case Format::THIRTYTWO_BIT_TC_MASK:
+            case Format::THIRTYTWO_BIT_TC_MASK_BGRA:
+                nBitCount = 32;
+                pBuf->mnFormat = BMP_FORMAT_32BIT_TC_MASK;
+#ifdef OSL_BIGENDIAN
+                pBuf->maColorMask = ColorMask( 0x0000ff00, 0x00ff0000, 0xff000000 );
+#else
+                pBuf->maColorMask = ColorMask( 0x00ff0000, 0x0000ff00, 0x000000ff );
+#endif
+                break;
+            case Format::THIRTYTWO_BIT_TC_MASK_ARGB:
+                nBitCount = 32;
+                pBuf->mnFormat = BMP_FORMAT_32BIT_TC_MASK;
+#ifdef OSL_BIGENDIAN
+                pBuf->maColorMask = ColorMask( 0x00ff0000, 0x0000ff00, 0x000000ff );
+#else
+                pBuf->maColorMask = ColorMask( 0x0000ff00, 0x00ff0000, 0xff000000 );
+#endif
+                break;
+            case Format::THIRTYTWO_BIT_TC_MASK_ABGR:
+                nBitCount = 32;
+                pBuf->mnFormat = BMP_FORMAT_32BIT_TC_MASK;
+#ifdef OSL_BIGENDIAN
+                pBuf->maColorMask = ColorMask( 0x000000ff, 0x0000ff00, 0x00ff0000 );
+#else
+                pBuf->maColorMask = ColorMask( 0xff000000, 0x00ff0000, 0x0000ff00 );
+#endif
+                break;
+            case Format::THIRTYTWO_BIT_TC_MASK_RGBA:
                 nBitCount = 32;
                 pBuf->mnFormat = BMP_FORMAT_32BIT_TC_MASK;
 #ifdef OSL_BIGENDIAN
-                pBuf->maColorMask = ColorMask( 0x0000ff, 0x00ff00, 0xff0000 );
+                pBuf->maColorMask = ColorMask( 0xff000000, 0x00ff0000, 0x0000ff00 );
 #else
-                pBuf->maColorMask = ColorMask( 0xff0000, 0x00ff00, 0x0000ff );
+                pBuf->maColorMask = ColorMask( 0x000000ff, 0x0000ff00, 0x00ff0000 );
 #endif
                 break;
 
diff --git a/vcl/headless/svpelement.cxx b/vcl/headless/svpelement.cxx
index 80a47fe..0a623c6 100644
--- a/vcl/headless/svpelement.cxx
+++ b/vcl/headless/svpelement.cxx
@@ -279,7 +279,10 @@ sal_uInt32 SvpElement::getBitCountFromScanlineFormat( sal_Int32 nFormat )
         case Format::TWENTYFOUR_BIT_TC_MASK:
             nBitCount = 24;
             break;
-        case Format::THIRTYTWO_BIT_TC_MASK:
+        case Format::THIRTYTWO_BIT_TC_MASK_BGRA:
+        case Format::THIRTYTWO_BIT_TC_MASK_ARGB:
+        case Format::THIRTYTWO_BIT_TC_MASK_ABGR:
+        case Format::THIRTYTWO_BIT_TC_MASK_RGBA:
             nBitCount = 32;
             break;
         default:
diff --git a/vcl/headless/svpgdi.cxx b/vcl/headless/svpgdi.cxx
index 1d07a2f..cb88e7e 100644
--- a/vcl/headless/svpgdi.cxx
+++ b/vcl/headless/svpgdi.cxx
@@ -116,7 +116,10 @@ void SvpSalGraphics::setDevice( basebmp::BitmapDeviceSharedPtr& rDevice )
         case basebmp::Format::SIXTEEN_BIT_LSB_TC_MASK:
         case basebmp::Format::SIXTEEN_BIT_MSB_TC_MASK:
         case basebmp::Format::TWENTYFOUR_BIT_TC_MASK:
-        case basebmp::Format::THIRTYTWO_BIT_TC_MASK:
+        case basebmp::Format::THIRTYTWO_BIT_TC_MASK_BGRA:
+        case basebmp::Format::THIRTYTWO_BIT_TC_MASK_ARGB:
+        case basebmp::Format::THIRTYTWO_BIT_TC_MASK_ABGR:
+        case basebmp::Format::THIRTYTWO_BIT_TC_MASK_RGBA:
             m_eTextFmt = basebmp::Format::EIGHT_BIT_GREY;
             break;
         default:
diff --git a/vcl/headless/svpvd.cxx b/vcl/headless/svpvd.cxx
index 285eeaf..fb752e6 100644
--- a/vcl/headless/svpvd.cxx
+++ b/vcl/headless/svpvd.cxx
@@ -83,7 +83,7 @@ sal_Bool SvpSalVirtualDevice::SetSize( long nNewDX, long nNewDY )
             case 24: nFormat = Format::TWENTYFOUR_BIT_TC_MASK; break;
             case 32: nFormat = Format::THIRTYTWO_BIT_TC_MASK; break;
 #if defined(ANDROID) || defined(IOS)
-            case 0:  nFormat = Format::THIRTYTWO_BIT_TC_MASK; break;
+            case 0:  nFormat = Format::THIRTYTWO_BIT_TC_MASK_RGBA; break;
 #else
             case 0:  nFormat = Format::TWENTYFOUR_BIT_TC_MASK; break;
 #endif
commit fd3c83d5f2414b2bba7b941609b59452a6d5b1e8
Author: Tor Lillqvist <tlillqvist at suse.com>
Date:   Thu Jun 7 21:39:19 2012 +0300

    Add two new 32bpp formats and add helpful comments
    
    For Android (and perhaps iOS) we need a 32bpp format with channels in
    RGBA order.
    
    Rename the (basebmp-internal) 32bpp PixelFormatTreats_* typedefs so
    that the channel order in their names matches the memory order of the
    channels.
    
    Change-Id: Ia8a74f6d44e0a2cffdf66a05ddf8fc7d6ae2a263

diff --git a/basebmp/inc/basebmp/rgbmaskpixelformats.hxx b/basebmp/inc/basebmp/rgbmaskpixelformats.hxx
index 47f7c2b..b1e65e8 100644
--- a/basebmp/inc/basebmp/rgbmaskpixelformats.hxx
+++ b/basebmp/inc/basebmp/rgbmaskpixelformats.hxx
@@ -231,6 +231,23 @@ template< typename     PixelType,
 
 //-----------------------------------------------------------------------------
 
+// Hopefully this is an understandable plaintext explanation that matches
+// reality...
+
+// BASEBMP_TRUECOLORMASK_LSB_SWAP means that on a big-endian platform, a pixel
+// value when viewed as an integer (16 or 32 bits) has to be byte-swapped for
+// the channels to match the masks. Or equivalently (I think), on a big-endian
+// platform, the masks need to be byte-swapped to be correct.
+
+// I.e. on a litte-endian platform the masks work as such.
+
+// BASEBMP_TRUECOLORMASK_MSB_SWAP means the opposite. The masks work as such
+// on big-endian platforms, on little-endian platforms the pixel needs to be
+// byte-swapped for the masks to work.
+
+// So in a sense these two names are "backward". It sounds to me as if
+// BASEBMP_TRUECOLORMASK_LSB_SWAP would mean "when on LSB, swap" ;)
+
 #ifdef OSL_LITENDIAN
 # define BASEBMP_TRUECOLORMASK_LSB_SWAP false
 # define BASEBMP_TRUECOLORMASK_MSB_SWAP true
@@ -265,25 +282,56 @@ typedef PixelFormatTraitsTemplate_RGBMask<
 BASEBMP_SPECIALIZE_ACCESSORTRAITS(PixelFormatTraits_RGB16_565_LSB::getter_type,
                                   PixelFormatTraits_RGB16_565_LSB::setter_type);
 
-// 32bpp endian-sensitive RGB
+
+// 32bpp formats
+
+// The intent is that the order of channel names in the names of the 32bpp
+// format typedefs below correspond to the order of the channel bytes in
+// memory, if I understand correctly.... I think the point with the below
+// formats is that the channel byte order in memory is the same regardless of
+// platform byte order.
+
+// This one used to be called PixelFormatTraits_RGB32_888.
+
 typedef PixelFormatTraitsTemplate_RGBMask<
     sal_uInt32,
-    0xFF0000,
-    0x00FF00,
-    0x0000FF,
-    BASEBMP_TRUECOLORMASK_LSB_SWAP >            PixelFormatTraits_RGB32_888;
-BASEBMP_SPECIALIZE_ACCESSORTRAITS(PixelFormatTraits_RGB32_888::getter_type,
-                                  PixelFormatTraits_RGB32_888::setter_type);
-
-// 32bpp endian-sensitive BGR
+    0x00FF0000,
+    0x0000FF00,
+    0x000000FF,
+    BASEBMP_TRUECOLORMASK_LSB_SWAP >            PixelFormatTraits_BGRX32_8888;
+BASEBMP_SPECIALIZE_ACCESSORTRAITS(PixelFormatTraits_BGRX32_8888::getter_type,
+                                  PixelFormatTraits_BGRX32_8888::setter_type);
+
+// This one used to be called PixelFormatTraits_BGR32_888.
+
+typedef PixelFormatTraitsTemplate_RGBMask<
+    sal_uInt32,
+    0x00FF0000,
+    0x0000FF00,
+    0x000000FF,
+    BASEBMP_TRUECOLORMASK_MSB_SWAP >            PixelFormatTraits_XRGB32_8888;
+BASEBMP_SPECIALIZE_ACCESSORTRAITS(PixelFormatTraits_XRGB32_8888::getter_type,
+                                  PixelFormatTraits_XRGB32_8888::setter_type);
+
+// The following two ones were added for Android needs and for completeness
+
+typedef PixelFormatTraitsTemplate_RGBMask<
+    sal_uInt32,
+    0xFF000000,
+    0x00FF0000,
+    0x0000FF00,
+    BASEBMP_TRUECOLORMASK_LSB_SWAP >            PixelFormatTraits_XBGR32_8888;
+BASEBMP_SPECIALIZE_ACCESSORTRAITS(PixelFormatTraits_XBGR32_8888::getter_type,
+                                  PixelFormatTraits_XBGR32_8888::setter_type);
+
 typedef PixelFormatTraitsTemplate_RGBMask<
     sal_uInt32,
-    0xFF0000,
-    0x00FF00,
-    0x0000FF,
-    BASEBMP_TRUECOLORMASK_MSB_SWAP >            PixelFormatTraits_BGR32_888;
-BASEBMP_SPECIALIZE_ACCESSORTRAITS(PixelFormatTraits_BGR32_888::getter_type,
-                                  PixelFormatTraits_BGR32_888::setter_type);
+    0xFF000000,
+    0x00FF0000,
+    0x0000FF00,
+    BASEBMP_TRUECOLORMASK_MSB_SWAP >            PixelFormatTraits_RGBX32_8888;
+BASEBMP_SPECIALIZE_ACCESSORTRAITS(PixelFormatTraits_RGBX32_8888::getter_type,
+                                  PixelFormatTraits_RGBX32_8888::setter_type);
 
 } // namespace basebmp
 
diff --git a/basebmp/inc/basebmp/scanlineformats.hxx b/basebmp/inc/basebmp/scanlineformats.hxx
index ee466f2..0b713da 100644
--- a/basebmp/inc/basebmp/scanlineformats.hxx
+++ b/basebmp/inc/basebmp/scanlineformats.hxx
@@ -50,8 +50,13 @@ namespace basebmp { namespace Format
     static const sal_Int32 SIXTEEN_BIT_MSB_TC_MASK      = (sal_Int32)0x0C;
     static const sal_Int32 TWENTYFOUR_BIT_TC_MASK       = (sal_Int32)0x0D;
     static const sal_Int32 THIRTYTWO_BIT_TC_MASK        = (sal_Int32)0x0E;
+    // The order of the channels code letters indicates the order of the
+    // channel bytes in memory, I think
+    static const sal_Int32 THIRTYTWO_BIT_TC_MASK_BGRA   = THIRTYTWO_BIT_TC_MASK;
     static const sal_Int32 THIRTYTWO_BIT_TC_MASK_ARGB   = (sal_Int32)0x0F;
-    static const sal_Int32 MAX                          = (sal_Int32)0x0F;
+    static const sal_Int32 THIRTYTWO_BIT_TC_MASK_ABGR   = (sal_Int32)0x10;
+    static const sal_Int32 THIRTYTWO_BIT_TC_MASK_RGBA   = (sal_Int32)0x11;
+    static const sal_Int32 MAX                          = (sal_Int32)0x11;
 } }
 
 #endif /* INCLUDED_BASEBMP_SCANLINEFORMATS_HXX */
diff --git a/basebmp/source/bitmapdevice.cxx b/basebmp/source/bitmapdevice.cxx
index b3676c6..07a36ce 100644
--- a/basebmp/source/bitmapdevice.cxx
+++ b/basebmp/source/bitmapdevice.cxx
@@ -1862,9 +1862,11 @@ BitmapDeviceSharedPtr createBitmapDeviceImpl( const basegfx::B2IVector&
         16, // SIXTEEN_BIT_LSB_TC_MASK
         16, // SIXTEEN_BIT_MSB_TC_MASK
         24, // TWENTYFOUR_BIT_TC_MASK
-        32, // THIRTYTWO_BIT_TC_MASK
+        32, // THIRTYTWO_BIT_TC_MASK_BGRA
         32, // THIRTYTWO_BIT_TC_MASK_ARGB
-    };
+        32, // THIRTYTWO_BIT_TC_MASK_ABGR
+        32, // THIRTYTWO_BIT_TC_MASK_RGBA
+   };
 
     sal_Int32  nScanlineStride(0);
 
@@ -2004,13 +2006,23 @@ BitmapDeviceSharedPtr createBitmapDeviceImpl( const basegfx::B2IVector&
         // ----------------------------------------------------------------------
         // thirtytwo bit formats
 
-        case Format::THIRTYTWO_BIT_TC_MASK:
-            return createRenderer<PixelFormatTraits_RGB32_888,StdMasks>(
+        case Format::THIRTYTWO_BIT_TC_MASK_BGRA:
+            return createRenderer<PixelFormatTraits_BGRX32_8888,StdMasks>(
                 aBounds, nScanlineFormat, nScanlineStride,
                 pFirstScanline, pMem, pPal, rDamage );
 
         case Format::THIRTYTWO_BIT_TC_MASK_ARGB:
-            return createRenderer<PixelFormatTraits_BGR32_888,StdMasks>(
+            return createRenderer<PixelFormatTraits_XRGB32_8888,StdMasks>(
+                aBounds, nScanlineFormat, nScanlineStride,
+                pFirstScanline, pMem, pPal, rDamage );
+
+        case Format::THIRTYTWO_BIT_TC_MASK_ABGR:
+            return createRenderer<PixelFormatTraits_XBGR32_8888,StdMasks>(
+                aBounds, nScanlineFormat, nScanlineStride,
+                pFirstScanline, pMem, pPal, rDamage );
+
+        case Format::THIRTYTWO_BIT_TC_MASK_RGBA:
+            return createRenderer<PixelFormatTraits_RGBX32_8888,StdMasks>(
                 aBounds, nScanlineFormat, nScanlineStride,
                 pFirstScanline, pMem, pPal, rDamage );
     }
commit 54b69a1f504ce16fd9e436357f4f237b038627e1
Author: Tor Lillqvist <tlillqvist at suse.com>
Date:   Thu Jun 7 21:37:39 2012 +0300

    Add some coloured text
    
    Change-Id: I2b8933294abf07dc9a7bd396e97e3a0ac617b548

diff --git a/odk/examples/java/DocumentHandling/test/test1.odt b/odk/examples/java/DocumentHandling/test/test1.odt
index 66db1c5..e2978da 100644
Binary files a/odk/examples/java/DocumentHandling/test/test1.odt and b/odk/examples/java/DocumentHandling/test/test1.odt differ
commit 7951c3db2b2c99226a356056dc5328e6386c4120
Author: Tor Lillqvist <tlillqvist at suse.com>
Date:   Thu Jun 7 21:33:42 2012 +0300

    Tell what uses this
    
    Change-Id: I59aba3f012f21b33ab55f72852ffe7fc568246bc

diff --git a/vigra/README b/vigra/README
index 165bae4..c24f942 100644
--- a/vigra/README
+++ b/vigra/README
@@ -1 +1,3 @@
 Computer vision library in C++ from [http://hci.iwr.uni-heidelberg.de/vigra/].
+
+Used only by basebmp.
commit bd4d371178f863d09098c3549dc73713423dc560
Author: Tor Lillqvist <tlillqvist at suse.com>
Date:   Wed Jun 6 22:57:56 2012 +0300

    Build lcms2 statically for Android, too.
    
    A quick way to avoid the problem with its name ending with ".so.2"
    which the Android app machinery doesn't like. Plus, one less shared
    library...
    
    Change-Id: I102e29dd13d1be1a134be8c09459259fe8fbe2e1

diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index 7f91d77..323e5bc 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -945,6 +945,21 @@ endef
 
 else # !SYSTEM_LCMS2
 
+ifeq ($(OS),ANDROID)
+
+$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
+	lcms2 \
+))
+
+define gb_LinkTarget__use_lcms2
+$(call gb_LinkTarget_use_static_libraries,$(1),\
+	lcms2 \
+)
+
+endef
+
+else
+
 $(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO, \
 	lcms2 \
 ))
@@ -956,6 +971,7 @@ $(call gb_LinkTarget_use_libraries,$(1),\
 
 endef
 
+endif # ANDROID
 endif # SYSTEM_LCMS2
 
 
diff --git a/lcms2/makefile.mk b/lcms2/makefile.mk
index 6f619bf..b6b571f 100644
--- a/lcms2/makefile.mk
+++ b/lcms2/makefile.mk
@@ -77,7 +77,7 @@ CONFIGURE_FLAGS += \
     --prefix=/@.__________________________________________________$(EXTRPATH)
 .END
 
-.IF "$(OS)" == "IOS"
+.IF "$(OS)" == "IOS" || "$(OS)" == "ANDROID" 
 CONFIGURE_ACTION += --disable-shared
 .ENDIF
 
@@ -89,7 +89,7 @@ OUT2INC+=include$/lcms2*.h
 
 .IF "$(OS)"=="MACOSX"
 OUT2LIB+=src$/.libs$/liblcms2.*.dylib
-.ELIF "$(OS)"=="IOS"
+.ELIF "$(OS)"=="IOS" || "$(OS)" == "ANDROID" 
 OUT2LIB+=src$/.libs$/liblcms2.a
 .ELIF "$(OS)"=="WNT"
 .IF "$(COM)"=="GCC"


More information about the Libreoffice-commits mailing list