[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