sd/qa/unit/tiledrendering/tiledrendering.cxx | 17 ++++++++++++++++- sd/source/ui/tools/SlideshowLayerRenderer.cxx | 6 +++--- 2 files changed, 19 insertions(+), 4 deletions(-)
New commits: commit 610b6180e51dccc418912dbdc66db475adb57923 Author: Szymon Kłos <[email protected]> AuthorDate: Tue Sep 10 06:29:39 2024 +0200 Commit: Tomaž Vajngerl <[email protected]> CommitDate: Tue Sep 10 11:09:34 2024 +0200 slideshow: lok: correct z-order we need to keep the order correct, especially when we have stacked shapes which are animated and some are non-animated. in case: non-anim anim non-anim anim don't allow to join non-animated layers into one Signed-off-by: Szymon Kłos <[email protected]> Change-Id: Ic5d94478b691a80fd62853946ebedec075963f44 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173116 Reviewed-by: Tomaž Vajngerl <[email protected]> Tested-by: Jenkins CollaboraOffice <[email protected]> diff --git a/sd/qa/unit/tiledrendering/tiledrendering.cxx b/sd/qa/unit/tiledrendering/tiledrendering.cxx index ada3b6582a65..5d6f55143980 100644 --- a/sd/qa/unit/tiledrendering/tiledrendering.cxx +++ b/sd/qa/unit/tiledrendering/tiledrendering.cxx @@ -3598,11 +3598,26 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testSlideshowLayeredRendering_Animati CPPUNIT_ASSERT(rJsonMsg.indexOf(u"\"group\": \"DrawPage\"") >= 0); CPPUNIT_ASSERT(rJsonMsg.indexOf(u"\"index\": 3") >= 0); + CPPUNIT_ASSERT_EQUAL(-1, rJsonMsg.indexOf(u"\"initVisible\"")); + CPPUNIT_ASSERT(rJsonMsg.indexOf(u"\"type\": \"bitmap\"") >= 0); + + debugWriteImageToFile(6, pBuffer, nViewWidth, nViewHeight, rJsonMsg.toUtf8().getStr()); + } + + { + std::vector<sal_uInt8> pBuffer(nViewWidth * nViewHeight * 4); + bool bIsBitmapLayer = false; + OUString rJsonMsg; + CPPUNIT_ASSERT(!pXImpressDocument->renderNextSlideLayer(pBuffer.data(), bIsBitmapLayer, rJsonMsg)); + CPPUNIT_ASSERT(bIsBitmapLayer); + + CPPUNIT_ASSERT(rJsonMsg.indexOf(u"\"group\": \"DrawPage\"") >= 0); + CPPUNIT_ASSERT(rJsonMsg.indexOf(u"\"index\": 4") >= 0); CPPUNIT_ASSERT(rJsonMsg.indexOf(u"\"initVisible\": false") >= 0); CPPUNIT_ASSERT(rJsonMsg.indexOf(u"\"type\": \"animated\"") >= 0); CPPUNIT_ASSERT(rJsonMsg.indexOf(u"\"type\": \"bitmap\"") >= 0); - debugWriteImageToFile(6, pBuffer, nViewWidth, nViewHeight, rJsonMsg.toUtf8().getStr()); + debugWriteImageToFile(7, pBuffer, nViewWidth, nViewHeight, rJsonMsg.toUtf8().getStr()); } { diff --git a/sd/source/ui/tools/SlideshowLayerRenderer.cxx b/sd/source/ui/tools/SlideshowLayerRenderer.cxx index 90d4b9868231..33349eacb0f5 100644 --- a/sd/source/ui/tools/SlideshowLayerRenderer.cxx +++ b/sd/source/ui/tools/SlideshowLayerRenderer.cxx @@ -166,12 +166,12 @@ public: if (mrRenderState.isObjectInAnimation(pObject)) { + // Animated object has to be only one in the render + mrRenderState.mbSkipAllInThisPass = true; + // Animated object cannot be attached to the previous object if (!mrRenderState.mbFirstObjectInPass) return; - - // Animated object has to be only one in the render - mrRenderState.mbSkipAllInThisPass = true; } if (mrRenderState.meStage == RenderStage::Master && hasFields(pObject)
