diff --git a/canvas/inc/canvas/base/graphicdevicebase.hxx b/canvas/inc/canvas/base/graphicdevicebase.hxx index 0f1ebaf65d9e..045c04d81e6d 100644 --- a/canvas/inc/canvas/base/graphicdevicebase.hxx +++ b/canvas/inc/canvas/base/graphicdevicebase.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: graphicdevicebase.hxx,v $ - * $Revision: 1.7 $ + * $Revision: 1.8 $ * * This file is part of OpenOffice.org. * @@ -50,7 +50,7 @@ namespace canvas /** Helper template base class for XGraphicDevice implementations. This base class provides partial implementations of the - XGraphicDevice-related interface, such as XBufferController, + XGraphicDevice-related interface, such as XParametricPolyPolygon2DFactory and XColorSpace. This template basically interposes itself between the full @@ -69,7 +69,6 @@ namespace canvas
         Example:
         typedef ::cppu::WeakComponentImplHelper5< ::com::sun::star::rendering::XGraphicDevice,
-                                                  ::com::sun::star::rendering::XBufferController,
                                                   ::com::sun::star::rendering::XColorSpace,
                                                   ::com::sun::star::rendering::XPropertySet,
                                                   ::com::sun::star::lang::XServiceInfo,
@@ -118,7 +117,7 @@ namespace canvas
     {
     public:
         typedef Base              BaseType;
-        typedef DeviceHelper      HelperType;
+        typedef DeviceHelper      DeviceHelperType;
         typedef Mutex             MutexType;
         typedef UnambiguousBase   UnambiguousBaseType;
         typedef GraphicDeviceBase ThisType;
@@ -131,6 +130,9 @@ namespace canvas
             mbDumpScreenContent(false)
         {
             maPropHelper.initProperties( PropertySetHelper::MakeMap
+                                         ("HardwareAcceleration",
+                                          boost::bind(&DeviceHelper::isAccelerated,
+                                                      boost::ref(maDeviceHelper)))
                                          ("DeviceHandle",
                                           boost::bind(&DeviceHelper::getDeviceHandle,
                                                       boost::ref(maDeviceHelper)))
@@ -161,12 +163,14 @@ namespace canvas
         // XGraphicDevice
         virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBufferController > SAL_CALL getBufferController(  ) throw (::com::sun::star::uno::RuntimeException)
         {
-            return this;
+            return ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBufferController >();
         }
 
         virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XColorSpace > SAL_CALL getDeviceColorSpace(  ) throw (::com::sun::star::uno::RuntimeException)
         {
-            return this;
+            MutexType aGuard( BaseType::m_aMutex );
+
+            return maDeviceHelper.getColorSpace();
         }
 
         virtual ::com::sun::star::geometry::RealSize2D SAL_CALL getPhysicalResolution(  ) throw (::com::sun::star::uno::RuntimeException)
@@ -264,110 +268,42 @@ namespace canvas
             return maDeviceHelper.enterFullScreenMode( bEnter );
         }
 
-
-        // XBufferController
-        virtual ::sal_Int32 SAL_CALL createBuffers( ::sal_Int32 nBuffers ) throw (::com::sun::star::lang::IllegalArgumentException,
-                                                                                  ::com::sun::star::uno::RuntimeException)
-        {
-            tools::verifyRange( nBuffers, (sal_Int32)1 );
-
-            MutexType aGuard( BaseType::m_aMutex );
-
-            return maDeviceHelper.createBuffers( nBuffers );
-        }
-
-        virtual void SAL_CALL destroyBuffers(  ) throw (::com::sun::star::uno::RuntimeException)
-        {
-            MutexType aGuard( BaseType::m_aMutex );
-
-            maDeviceHelper.destroyBuffers();
-        }
-
-        virtual ::sal_Bool SAL_CALL showBuffer( ::sal_Bool bUpdateAll ) throw (::com::sun::star::uno::RuntimeException)
-        {
-            MutexType aGuard( BaseType::m_aMutex );
-
-            return maDeviceHelper.showBuffer( bUpdateAll );
-        }
-
-        virtual ::sal_Bool SAL_CALL switchBuffer( ::sal_Bool bUpdateAll ) throw (::com::sun::star::uno::RuntimeException)
-        {
-            MutexType aGuard( BaseType::m_aMutex );
-
-            return maDeviceHelper.switchBuffer( bUpdateAll );
-        }
-
-
-        // XColorSpace
-        virtual ::sal_Int8 SAL_CALL getRenderingIntent(  ) throw (::com::sun::star::uno::RuntimeException)
-        {
-            MutexType aGuard( BaseType::m_aMutex );
-
-            // Dummy for now
-            return 0;
-        }
-
-        virtual ::com::sun::star::rendering::ColorProfile SAL_CALL getICCProfile(  ) throw (::com::sun::star::uno::RuntimeException)
-        {
-            MutexType aGuard( BaseType::m_aMutex );
-
-            // Dummy for now
-            return ::com::sun::star::rendering::ColorProfile();
-        }
-
-        virtual ::rtl::OUString SAL_CALL getName(  ) throw (::com::sun::star::uno::RuntimeException)
-        {
-            MutexType aGuard( BaseType::m_aMutex );
-
-            // Dummy for now
-            return ::rtl::OUString();
-        }
-
-        virtual ::com::sun::star::rendering::ColorSpaceType SAL_CALL getType(  ) throw (::com::sun::star::uno::RuntimeException)
-        {
-            MutexType aGuard( BaseType::m_aMutex );
-
-            // Dummy for now
-            return 0;
-        }
-
-
         // XParametricPolyPolygon2DFactory
-        virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createLinearHorizontalGradient( const ::com::sun::star::uno::Sequence< double >& leftColor, const ::com::sun::star::uno::Sequence< double >& rightColor ) throw (::com::sun::star::lang::IllegalArgumentException,
+        virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createLinearHorizontalGradient( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< double > >& colors, const ::com::sun::star::uno::Sequence< double >& stops ) throw (::com::sun::star::lang::IllegalArgumentException,
                                                                                                                                                                                                                                                                                     ::com::sun::star::uno::RuntimeException)
         {
             return ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D >(
                 ParametricPolyPolygon::createLinearHorizontalGradient( this,
-                                                                       leftColor,
-                                                                       rightColor ) );
+                                                                       colors,
+                                                                       stops ) );
         }
 
-        virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createAxialHorizontalGradient( const ::com::sun::star::uno::Sequence< double >& middleColor, const ::com::sun::star::uno::Sequence< double >& endColor ) throw (::com::sun::star::lang::IllegalArgumentException,
+        virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createAxialHorizontalGradient( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< double > >& colors, const ::com::sun::star::uno::Sequence< double >& stops ) throw (::com::sun::star::lang::IllegalArgumentException,
                                                                                                                                                                                                                                                                                    ::com::sun::star::uno::RuntimeException)
         {
             return ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D >(
                 ParametricPolyPolygon::createAxialHorizontalGradient( this,
-                                                                      middleColor,
-                                                                      endColor ) );
+                                                                      colors,
+                                                                      stops ) );
         }
 
-        virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createEllipticalGradient( const ::com::sun::star::uno::Sequence< double >& centerColor, const ::com::sun::star::uno::Sequence< double >& endColor, const ::com::sun::star::geometry::RealRectangle2D& boundRect ) throw (::com::sun::star::lang::IllegalArgumentException,
+        virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createEllipticalGradient( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< double > >& colors, const ::com::sun::star::uno::Sequence< double >& stops, const ::com::sun::star::geometry::RealRectangle2D& boundRect ) throw (::com::sun::star::lang::IllegalArgumentException,
                                                                                                                                                                                                                                                                                                                                             ::com::sun::star::uno::RuntimeException)
         {
             return ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D >(
                 ParametricPolyPolygon::createEllipticalGradient( this,
-                                                                 centerColor,
-                                                                 endColor,
+                                                                 colors,
+                                                                 stops,
                                                                  boundRect ) );
         }
 
-        virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createRectangularGradient( const ::com::sun::star::uno::Sequence< double >& centerColor, const ::com::sun::star::uno::Sequence< double >& endColor, const ::com::sun::star::geometry::RealRectangle2D& boundRect ) throw (::com::sun::star::lang::IllegalArgumentException,
+        virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createRectangularGradient( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< double > >& colors, const ::com::sun::star::uno::Sequence< double >& stops, const ::com::sun::star::geometry::RealRectangle2D& boundRect ) throw (::com::sun::star::lang::IllegalArgumentException,
                                                                                                                                                                                                                                                                                                                                              ::com::sun::star::uno::RuntimeException)
         {
             return ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D >(
                 ParametricPolyPolygon::createRectangularGradient( this,
-                                                                  centerColor,
-                                                                  endColor,
+                                                                  colors,
+                                                                  stops,
                                                                   boundRect ) );
         }
 
@@ -499,9 +435,9 @@ namespace canvas
             rAny >>= mbDumpScreenContent;
         }
 
-        HelperType         maDeviceHelper;
-        PropertySetHelper  maPropHelper;
-        bool               mbDumpScreenContent;
+        DeviceHelperType  maDeviceHelper;
+        PropertySetHelper maPropHelper;
+        bool              mbDumpScreenContent;
 
     private:
         GraphicDeviceBase( const GraphicDeviceBase& );