13 #include <com/sun/star/lang/NoSupportException.hpp>
14 #include <osl/mutex.hxx>
27 const uno::Reference< uno::XComponentContext >& ) :
28 maArguments(aArguments)
32 void SpriteCanvas::initialize()
35 if( !maArguments.hasElements() )
38 SAL_INFO(
"canvas.ogl",
"SpriteCanvas::initialize called" );
48 maArguments[3].getValueTypeClass() == uno::TypeClass_INTERFACE,
49 "OpenGL SpriteCanvas::initialize: wrong number of arguments, or wrong types" );
51 uno::Reference< awt::XWindow > xParentWindow;
52 maArguments[3] >>= xParentWindow;
55 throw lang::NoSupportException(
56 "Parent window not VCL window, or canvas out-of-process!",
nullptr);
59 maArguments[1] >>= aRect;
62 maDeviceHelper.init( *pParentWindow,
65 maCanvasHelper.init( *
this, maDeviceHelper );
66 maArguments.realloc(0);
69 void SpriteCanvas::disposeThis()
71 ::osl::MutexGuard aGuard(
m_aMutex );
74 SpriteCanvasBaseT::disposeThis();
79 ::osl::MutexGuard aGuard(
m_aMutex );
84 return mbIsVisible && SpriteCanvasBaseT::showBuffer( bUpdateAll );
89 ::osl::MutexGuard aGuard(
m_aMutex );
94 return mbIsVisible && SpriteCanvasBaseT::switchBuffer( bUpdateAll );
97 uno::Reference< rendering::XAnimatedSprite > SAL_CALL SpriteCanvas::createSpriteFromAnimation(
98 const uno::Reference< rendering::XAnimation >& )
100 return uno::Reference< rendering::XAnimatedSprite >();
103 uno::Reference< rendering::XAnimatedSprite > SAL_CALL SpriteCanvas::createSpriteFromBitmaps(
104 const uno::Sequence< uno::Reference< rendering::XBitmap > >& ,
107 return uno::Reference< rendering::XAnimatedSprite >();
110 uno::Reference< rendering::XCustomSprite > SAL_CALL SpriteCanvas::createCustomSprite(
111 const geometry::RealSize2D& spriteSize )
113 return uno::Reference< rendering::XCustomSprite >(
117 uno::Reference< rendering::XSprite > SAL_CALL SpriteCanvas::createClonedSprite(
118 const uno::Reference< rendering::XSprite >& )
120 return uno::Reference< rendering::XSprite >();
125 ::osl::MutexGuard aGuard(
m_aMutex );
126 return maDeviceHelper.showBuffer(mbIsVisible, bUpdateAll);
129 OUString SAL_CALL SpriteCanvas::getServiceName( )
131 return "com.sun.star.rendering.SpriteCanvas.OGL";
134 void SpriteCanvas::show( const ::rtl::Reference< CanvasCustomSprite >& xSprite )
136 ::osl::MutexGuard aGuard(
m_aMutex );
137 maDeviceHelper.show(xSprite);
140 void SpriteCanvas::hide( const ::rtl::Reference< CanvasCustomSprite >& xSprite )
142 ::osl::MutexGuard aGuard(
m_aMutex );
143 maDeviceHelper.hide(xSprite);
146 void SpriteCanvas::renderRecordedActions()
const
148 maCanvasHelper.renderRecordedActions();
154 extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
156 css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any>
const& args)
static VclPtr< vcl::Window > GetWindow(const css::uno::Reference< css::awt::XWindow > &rxWindow)
SpriteCanvas(const css::uno::Sequence< css::uno::Any > &aArguments, const css::uno::Reference< css::uno::XComponentContext > &rxContext)
#define ENSURE_ARG_OR_THROW(c, m)
Product of this component's factory.
#define SAL_INFO(area, stream)
SAL_DLLPUBLIC_EXPORT css::uno::XInterface * com_sun_star_comp_rendering_SpriteCanvas_OGL_get_implementation(css::uno::XComponentContext *context, css::uno::Sequence< css::uno::Any > const &args)
static bool supportsOpenGL()