canvas/source/opengl/ogl_spritedevicehelper.cxx | 2 officecfg/registry/data/org/openoffice/Office/Canvas.xcu | 23 +--- postprocess/Rdb_services.mk | 3 slideshow/source/engine/pointersymbol.cxx | 73 +++++---------- slideshow/source/engine/pointersymbol.hxx | 20 ++-- slideshow/source/engine/slideshowimpl.cxx | 17 --- slideshow/source/engine/waitsymbol.hxx | 1 7 files changed, 53 insertions(+), 86 deletions(-)
New commits: commit f448d677bcaa9ad68876ea292d93978f729335a0 Author: Thorsten Behrens <[email protected]> Date: Tue Oct 8 12:25:11 2013 +0200 oglcanvas: cleanup canvas services, demote oglcanvas a bit. Remove long-dead service instances, demote oglcanvas to be below cairocanvas (we're not quite mature yet). Change-Id: Ie6051895fd93a1a518eaa4fb4f71b62bff330a83 diff --git a/officecfg/registry/data/org/openoffice/Office/Canvas.xcu b/officecfg/registry/data/org/openoffice/Office/Canvas.xcu index 266e4d2..8851827 100644 --- a/officecfg/registry/data/org/openoffice/Office/Canvas.xcu +++ b/officecfg/registry/data/org/openoffice/Office/Canvas.xcu @@ -31,50 +31,37 @@ <value oor:separator=",">com.sun.star.comp.rendering.BitmapCanvas.GDI+, com.sun.star.comp.rendering.Canvas.GDI+, com.sun.star.comp.rendering.Canvas.Cairo, - com.sun.star.comp.rendering.Canvas.GL, - com.sun.star.comp.rendering.Canvas.Java, com.sun.star.comp.rendering.Canvas.VCL </value> </prop> <prop oor:name="AcceleratedImplementations" oor:type="oor:string-list"> - <value oor:separator=",">com.sun.star.comp.rendering.Canvas.GL, - com.sun.star.comp.rendering.Canvas.Java - </value> + <value oor:separator=","/> </prop> <prop oor:name="AntialiasingImplementations" oor:type="oor:string-list"> <value oor:separator=",">com.sun.star.comp.rendering.BitmapCanvas.GDI+, com.sun.star.comp.rendering.Canvas.GDI+, - com.sun.star.comp.rendering.Canvas.Cairo, - com.sun.star.comp.rendering.Canvas.GL, - com.sun.star.comp.rendering.Canvas.Java + com.sun.star.comp.rendering.Canvas.Cairo </value> </prop> </node> <node oor:name="com.sun.star.rendering.SpriteCanvas" oor:op="replace"> <prop oor:name="PreferredImplementations" oor:type="oor:string-list"> <value oor:separator=",">com.sun.star.comp.rendering.SpriteCanvas.DX9, - com.sun.star.comp.rendering.SpriteCanvas.DX5, - com.sun.star.comp.rendering.SpriteCanvas.OGL, com.sun.star.comp.rendering.SpriteCanvas.Cairo, - com.sun.star.comp.rendering.SpriteCanvas.GL, - com.sun.star.comp.rendering.SpriteCanvas.Java, + com.sun.star.comp.rendering.SpriteCanvas.OGL, com.sun.star.comp.rendering.SpriteCanvas.VCL </value> </prop> <prop oor:name="AcceleratedImplementations" oor:type="oor:string-list"> <value oor:separator=",">com.sun.star.comp.rendering.SpriteCanvas.DX9, - com.sun.star.comp.rendering.SpriteCanvas.DX5, com.sun.star.comp.rendering.SpriteCanvas.Cairo, - com.sun.star.comp.rendering.SpriteCanvas.GL, - com.sun.star.comp.rendering.SpriteCanvas.Java + com.sun.star.comp.rendering.SpriteCanvas.OGL </value> </prop> <prop oor:name="AntialiasingImplementations" oor:type="oor:string-list"> <value oor:separator=",">com.sun.star.comp.rendering.SpriteCanvas.DX9, - com.sun.star.comp.rendering.SpriteCanvas.DX5, com.sun.star.comp.rendering.SpriteCanvas.Cairo, - com.sun.star.comp.rendering.SpriteCanvas.GL, - com.sun.star.comp.rendering.SpriteCanvas.Java + com.sun.star.comp.rendering.SpriteCanvas.OGL </value> </prop> </node> commit d9b2328c5447a505f11fd0a47d375174abcbd2c1 Author: Thorsten Behrens <[email protected]> Date: Tue Oct 8 12:23:59 2013 +0200 slideshow: remove cruft, align formatting. Change-Id: I119cf2461f4a77057cdbc19349561cd24991e2dd diff --git a/slideshow/source/engine/slideshowimpl.cxx b/slideshow/source/engine/slideshowimpl.cxx index 43c5aaa..4c59b25 100644 --- a/slideshow/source/engine/slideshowimpl.cxx +++ b/slideshow/source/engine/slideshowimpl.cxx @@ -1712,14 +1712,6 @@ sal_Bool SlideShowImpl::setProperty( beans::PropertyValue const& rProperty ) return false; // TODO(F3): Forward to slides! -// if( bOldValue != mbImageAnimationsAllowed ) -// { -// if( mbImageAnimationsAllowed ) -// maEventMultiplexer.notifyIntrinsicAnimationsEnabled(); -// else -// maEventMultiplexer.notifyIntrinsicAnimationsDisabled(); -// } - return true; } @@ -1800,10 +1792,10 @@ sal_Bool SlideShowImpl::setProperty( beans::PropertyValue const& rProperty ) { bool visible; if (!(rProperty.Value >>= visible)) - { return false; - } + mpPointerSymbol->setVisible(visible); + return true; } if ( rProperty.Name == "PointerPosition") @@ -1812,12 +1804,11 @@ sal_Bool SlideShowImpl::setProperty( beans::PropertyValue const& rProperty ) if (! (rProperty.Value >>= pos)) return false; - // std::cerr<<"Received pos at :(" << pos.X << ","<<pos.Y << ")" << std::endl; mpPointerSymbol->viewsChanged(pos); + return true; } - if (rProperty.Name.equalsAsciiL( - RTL_CONSTASCII_STRINGPARAM("NoSlideTransitions") )) + if (rProperty.Name == "NoSlideTransitions" ) { return (rProperty.Value >>= mbNoSlideTransitions); } commit eff346b78c3a0bd9855dfa9b4dc92cfbf7a9ee27 Author: Thorsten Behrens <[email protected]> Date: Tue Oct 8 12:22:23 2013 +0200 oglcanvas: XCanvas != XBitmap kill another instance This crept in from gsoc, some whitespace / formatting alignment with slideshow conventions, added doxygen class mission statement. Change-Id: Ie9837fc437d9827dc8fa6b1c25a3f46a638bac51 diff --git a/slideshow/source/engine/pointersymbol.cxx b/slideshow/source/engine/pointersymbol.cxx index 0516431..9ff5892 100644 --- a/slideshow/source/engine/pointersymbol.cxx +++ b/slideshow/source/engine/pointersymbol.cxx @@ -28,8 +28,7 @@ #include <basegfx/vector/b2dvector.hxx> #include <com/sun/star/rendering/XCanvas.hpp> -#include <com/sun/star/geometry/IntegerSize2D.hpp> -#include "com/sun/star/uno/Reference.hxx" +#include <com/sun/star/presentation/XSlideShowView.hpp> #include "pointersymbol.hxx" #include "eventmultiplexer.hxx" @@ -47,9 +46,9 @@ const sal_Int32 LEFT_BORDER_SPACE = 10; const sal_Int32 LOWER_BORDER_SPACE = 10; PointerSymbolSharedPtr PointerSymbol::create( const uno::Reference<rendering::XBitmap>& xBitmap, - ScreenUpdater& rScreenUpdater, - EventMultiplexer& rEventMultiplexer, - const UnoViewContainer& rViewContainer ) + ScreenUpdater& rScreenUpdater, + EventMultiplexer& rEventMultiplexer, + const UnoViewContainer& rViewContainer ) { PointerSymbolSharedPtr pRet( new PointerSymbol( xBitmap, @@ -62,11 +61,12 @@ PointerSymbolSharedPtr PointerSymbol::create( const uno::Reference<rendering::XB } PointerSymbol::PointerSymbol( uno::Reference<rendering::XBitmap> const & xBitmap, - ScreenUpdater& rScreenUpdater, - const UnoViewContainer& rViewContainer ) : + ScreenUpdater& rScreenUpdater, + const UnoViewContainer& rViewContainer ) : mxBitmap(xBitmap), maViews(), mrScreenUpdater( rScreenUpdater ), + maPos(), mbVisible(false) { std::for_each( rViewContainer.begin(), @@ -102,35 +102,14 @@ void PointerSymbol::setVisible( const bool bVisible ) } } -basegfx::B2DPoint PointerSymbol::calcSpritePos( UnoViewSharedPtr const & rView ) const +basegfx::B2DPoint PointerSymbol::calcSpritePos(UnoViewSharedPtr const & rView) const { - const uno::Reference<rendering::XBitmap> xBitmap( rView->getCanvas()->getUNOCanvas(), - uno::UNO_QUERY_THROW ); - const geometry::IntegerSize2D realSize( xBitmap->getSize() ); - - return basegfx::B2DPoint( - // pos.X pos.Y are given in 0..1, beginning from the upper left corner of the currentSlide. - std::min<sal_Int32>( 0, LEFT_BORDER_SPACE ), - std::max<sal_Int32>( 0, realSize.Height * 1 - mxBitmap->getSize().Height - - LOWER_BORDER_SPACE ) ); -} - -basegfx::B2DPoint PointerSymbol::calcSpritePos( - UnoViewSharedPtr const & rView, const ::com::sun::star::geometry::RealPoint2D pos) const -{ - const uno::Reference<rendering::XBitmap> xBitmap( rView->getCanvas()->getUNOCanvas(), - uno::UNO_QUERY_THROW ); - const geometry::IntegerSize2D realSize( xBitmap->getSize() ); - + const awt::Rectangle aViewArea( rView->getUnoView()->getCanvasArea() ); const geometry::IntegerSize2D realTranslationOffset ( rView->getTranslationOffset() ); - - basegfx::B2DPoint newPos( - realTranslationOffset.Width + (realSize.Width - 2 * realTranslationOffset.Width) * pos.X, - realTranslationOffset.Height + (realSize.Height - 2 * realTranslationOffset.Height) * pos.Y); - - - return newPos; + return basegfx::B2DPoint( + realTranslationOffset.Width + ((aViewArea.Width - aViewArea.X) - 2 * realTranslationOffset.Width) * maPos.X, + realTranslationOffset.Height + ((aViewArea.Height - aViewArea.Y) - 2 * realTranslationOffset.Height) * maPos.Y); } void PointerSymbol::viewAdded( const UnoViewSharedPtr& rView ) @@ -215,20 +194,26 @@ void PointerSymbol::viewsChanged() } } -void PointerSymbol::viewsChanged(const ::com::sun::star::geometry::RealPoint2D pos) +void PointerSymbol::viewsChanged(const geometry::RealPoint2D pos) { - // reposition sprites on all views - ViewsVecT::const_iterator aIter( maViews.begin() ); - ViewsVecT::const_iterator const aEnd ( maViews.end() ); - while( aIter != aEnd ) + if( pos.X != maPos.X || pos.Y != maPos.Y ) { - if( aIter->second ) { - aIter->second->movePixel( - calcSpritePos( aIter->first, pos )); - mrScreenUpdater.notifyUpdate(); - mrScreenUpdater.commitUpdates(); + maPos = pos; + + // reposition sprites on all views + ViewsVecT::const_iterator aIter( maViews.begin() ); + ViewsVecT::const_iterator const aEnd ( maViews.end() ); + while( aIter != aEnd ) + { + if( aIter->second ) + { + aIter->second->movePixel( + calcSpritePos( aIter->first )); + mrScreenUpdater.notifyUpdate(); + mrScreenUpdater.commitUpdates(); + } + ++aIter; } - ++aIter; } } diff --git a/slideshow/source/engine/pointersymbol.hxx b/slideshow/source/engine/pointersymbol.hxx index 77309e7..706f312 100644 --- a/slideshow/source/engine/pointersymbol.hxx +++ b/slideshow/source/engine/pointersymbol.hxx @@ -34,15 +34,16 @@ namespace internal { class EventMultiplexer; typedef boost::shared_ptr<class PointerSymbol> PointerSymbolSharedPtr; +/// On-screen 'laser pointer' from the Impress remote control class PointerSymbol : public ViewEventHandler, - private ::boost::noncopyable + private ::boost::noncopyable { public: static PointerSymbolSharedPtr create( const ::com::sun::star::uno::Reference< - ::com::sun::star::rendering::XBitmap>& xBitmap, - ScreenUpdater& rScreenUpdater, - EventMultiplexer& rEventMultiplexer, - const UnoViewContainer& rViewContainer ); + ::com::sun::star::rendering::XBitmap>& xBitmap, + ScreenUpdater& rScreenUpdater, + EventMultiplexer& rEventMultiplexer, + const UnoViewContainer& rViewContainer ); /** Shows the pointer symbol. */ @@ -58,9 +59,9 @@ public: private: PointerSymbol( const ::com::sun::star::uno::Reference< - ::com::sun::star::rendering::XBitmap>& xBitmap, - ScreenUpdater& rScreenUpdater, - const UnoViewContainer& rViewContainer ); + ::com::sun::star::rendering::XBitmap>& xBitmap, + ScreenUpdater& rScreenUpdater, + const UnoViewContainer& rViewContainer ); // ViewEventHandler virtual void viewAdded( const UnoViewSharedPtr& rView ); @@ -68,8 +69,6 @@ private: virtual void viewChanged( const UnoViewSharedPtr& rView ); virtual void viewsChanged(); - - ::basegfx::B2DPoint calcSpritePos( UnoViewSharedPtr const & rView, const ::com::sun::star::geometry::RealPoint2D pos ) const; ::basegfx::B2DPoint calcSpritePos( UnoViewSharedPtr const & rView ) const; template <typename func_type> @@ -91,6 +90,7 @@ private: ViewsVecT maViews; ScreenUpdater& mrScreenUpdater; + ::com::sun::star::geometry::RealPoint2D maPos; bool mbVisible; }; diff --git a/slideshow/source/engine/waitsymbol.hxx b/slideshow/source/engine/waitsymbol.hxx index d1d4778..655ceb1 100644 --- a/slideshow/source/engine/waitsymbol.hxx +++ b/slideshow/source/engine/waitsymbol.hxx @@ -39,6 +39,7 @@ namespace internal { class EventMultiplexer; typedef boost::shared_ptr<class WaitSymbol> WaitSymbolSharedPtr; +/// On-screen 'hour glass' for when slideshow is unresponsive class WaitSymbol : public ViewEventHandler, private ::boost::noncopyable { commit 1aae965d44c813d35ca791b7e731d43fc81c58fe Author: Thorsten Behrens <[email protected]> Date: Tue Oct 8 10:59:38 2013 +0200 oglcanvas: ship comp registration, return device window. Change-Id: I6c7e9416f908fd3b903eaef82492c1f4445b4e0c diff --git a/canvas/source/opengl/ogl_spritedevicehelper.cxx b/canvas/source/opengl/ogl_spritedevicehelper.cxx index f83f8a8..4f03bb7 100644 --- a/canvas/source/opengl/ogl_spritedevicehelper.cxx +++ b/canvas/source/opengl/ogl_spritedevicehelper.cxx @@ -956,7 +956,7 @@ namespace oglcanvas uno::Any SpriteDeviceHelper::getDeviceHandle() const { - return uno::Any(); + return uno::makeAny( reinterpret_cast< sal_Int64 >(mpChildWindow.get()) ); } uno::Any SpriteDeviceHelper::getSurfaceHandle() const diff --git a/postprocess/Rdb_services.mk b/postprocess/Rdb_services.mk index 964f1fc..98bff53 100644 --- a/postprocess/Rdb_services.mk +++ b/postprocess/Rdb_services.mk @@ -183,6 +183,9 @@ $(eval $(call gb_Rdb_add_components,services,\ canvas/source/directx/directx9canvas \ canvas/source/directx/gdipluscanvas \ ) \ + $(if $(ENABLE_OPENGL_CANVAS), \ + canvas/source/opengl/oglcanvas \ + ) \ $(if $(ENABLE_GCONF), \ shell/source/backends/gconfbe/gconfbe1 \ ) \ _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
