slideshow: add flag to skip animation rendering
Animations currently don't work yet, so skip rendering them by default, or they cause infinite rendering loop in some cases. Change-Id: Iaf6e7d67197e86c21af65ecd3bba656c23fd74eb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174962 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
This commit is contained in:
committed by
Miklos Vajna
parent
0f74a4c2bf
commit
9dd7ad6e26
@@ -165,7 +165,8 @@ public:
|
||||
const uno::Reference<drawing::XDrawPagesSupplier>& rxDrawPagesSupplier,
|
||||
const uno::Reference<animations::XAnimationNode>& rxRootNode,
|
||||
const SlideShowContext& rContext,
|
||||
const std::shared_ptr<LayerManager>& pLayerManager);
|
||||
const std::shared_ptr<LayerManager>& pLayerManager,
|
||||
bool bSkipAnimations);
|
||||
|
||||
void renderNextLayer(unsigned char* pBuffer);
|
||||
|
||||
@@ -225,6 +226,7 @@ private:
|
||||
OUString msLastPlaceholder;
|
||||
|
||||
bool mbIsBitmapLayer;
|
||||
bool mbSkipAnimations = false;
|
||||
OString msLastJsonMessage;
|
||||
};
|
||||
|
||||
@@ -234,8 +236,10 @@ LOKSlideRenderer::LOKSlideRenderer(const Size& rViewSize, const Size& rSlideSize
|
||||
const uno::Reference<drawing::XDrawPagesSupplier>& rxDrawPagesSupplier,
|
||||
const uno::Reference<animations::XAnimationNode>& rxRootNode,
|
||||
const SlideShowContext& rContext,
|
||||
const std::shared_ptr<LayerManager>& pLayerManager) :
|
||||
maDeviceSize(rViewSize),
|
||||
const std::shared_ptr<LayerManager>& pLayerManager,
|
||||
bool bSkipAnimations)
|
||||
|
||||
: maDeviceSize(rViewSize),
|
||||
maSlideSize(rSlideSize),
|
||||
//mbRenderBackground(bRenderBackground),
|
||||
//mbRenderMasterPageObjects(bRenderMasterPageObjects),
|
||||
@@ -255,7 +259,8 @@ LOKSlideRenderer::LOKSlideRenderer(const Size& rViewSize, const Size& rSlideSize
|
||||
mbIsPageNumberVisible(true),
|
||||
mbIsDateTimeVisible(true),
|
||||
mbIsFooterVisible(true),
|
||||
mbIsBitmapLayer(false)
|
||||
mbIsBitmapLayer(false),
|
||||
mbSkipAnimations(bSkipAnimations)
|
||||
{
|
||||
uno::Reference< drawing::XMasterPageTarget > xMasterPageTarget( mxDrawPage, uno::UNO_QUERY );
|
||||
if( xMasterPageTarget.is() )
|
||||
@@ -752,6 +757,9 @@ void LOKSlideRenderer::renderLayerBitmapImpl(VirtualDevice& rDevice)
|
||||
|
||||
void LOKSlideRenderer::collectAnimatedShapes()
|
||||
{
|
||||
if (mbSkipAnimations)
|
||||
return;
|
||||
|
||||
if (!mxRootNode.is())
|
||||
return;
|
||||
|
||||
@@ -1411,7 +1419,8 @@ Size SlideImpl::createLOKSlideRenderer(int nViewWidth, int nViewHeight,
|
||||
bRenderBackground,
|
||||
bRenderMasterPageObjects,
|
||||
mxDrawPage, mxDrawPagesSupplier,
|
||||
mxRootNode, maContext, mpLayerManager);
|
||||
mxRootNode, maContext, mpLayerManager,
|
||||
true);
|
||||
if (mpLOKRenderer)
|
||||
{
|
||||
return mpLOKRenderer->getDeviceSize();
|
||||
|
||||
Reference in New Issue
Block a user