sd/qa/unit/tiledrendering/tiledrendering.cxx | 12 ++++++------ sd/source/ui/inc/SlideshowLayerRenderer.hxx | 2 +- sd/source/ui/tools/SlideshowLayerRenderer.cxx | 8 ++++++-- sd/source/ui/unoidl/unomodel.cxx | 3 +-- 4 files changed, 14 insertions(+), 11 deletions(-)
New commits: commit bd3ac9a9546101904eacfb79f707b1b76c413800 Author: Marco Cecchetti <[email protected]> AuthorDate: Tue Nov 5 18:37:15 2024 +0100 Commit: Tomaž Vajngerl <[email protected]> CommitDate: Mon Nov 11 10:19:40 2024 +0100 slideshow: set isBitmapLayer correctly For a layer placeholder the flag should be set to false. Change-Id: I54c426bf491e681e411e70edba745d74f447a04a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176167 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Tomaž Vajngerl <[email protected]> diff --git a/sd/qa/unit/tiledrendering/tiledrendering.cxx b/sd/qa/unit/tiledrendering/tiledrendering.cxx index 08fd4521bf49..f78c8d09e296 100644 --- a/sd/qa/unit/tiledrendering/tiledrendering.cxx +++ b/sd/qa/unit/tiledrendering/tiledrendering.cxx @@ -3558,10 +3558,10 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testSlideshowLayeredRendering_SlideNu { std::vector<sal_uInt8> pBuffer(nViewWidth * nViewHeight * 4); - bool bIsBitmapLayer = false; + bool bIsBitmapLayer = true; OUString aJson; CPPUNIT_ASSERT(!pXImpressDocument->renderNextSlideLayer(pBuffer.data(), bIsBitmapLayer, aJson)); - CPPUNIT_ASSERT(bIsBitmapLayer); + CPPUNIT_ASSERT(!bIsBitmapLayer); debugWriteImageToFile(1, pBuffer, nViewWidth, nViewHeight, aJson.toUtf8().getStr()); @@ -3580,10 +3580,10 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testSlideshowLayeredRendering_SlideNu { std::vector<sal_uInt8> pBuffer(nViewWidth * nViewHeight * 4); - bool bIsBitmapLayer = false; + bool bIsBitmapLayer = true; OUString aJson; CPPUNIT_ASSERT(!pXImpressDocument->renderNextSlideLayer(pBuffer.data(), bIsBitmapLayer, aJson)); - CPPUNIT_ASSERT(bIsBitmapLayer); + CPPUNIT_ASSERT(!bIsBitmapLayer); debugWriteImageToFile(2, pBuffer, nViewWidth, nViewHeight, aJson.toUtf8().getStr()); @@ -3602,10 +3602,10 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testSlideshowLayeredRendering_SlideNu { std::vector<sal_uInt8> pBuffer(nViewWidth * nViewHeight * 4); - bool bIsBitmapLayer = false; + bool bIsBitmapLayer = true; OUString aJson; CPPUNIT_ASSERT(!pXImpressDocument->renderNextSlideLayer(pBuffer.data(), bIsBitmapLayer, aJson)); - CPPUNIT_ASSERT(bIsBitmapLayer); + CPPUNIT_ASSERT(!bIsBitmapLayer); debugWriteImageToFile(3, pBuffer, nViewWidth, nViewHeight, aJson.toUtf8().getStr()); diff --git a/sd/source/ui/inc/SlideshowLayerRenderer.hxx b/sd/source/ui/inc/SlideshowLayerRenderer.hxx index 01e9374e9244..446f0091544e 100644 --- a/sd/source/ui/inc/SlideshowLayerRenderer.hxx +++ b/sd/source/ui/inc/SlideshowLayerRenderer.hxx @@ -173,7 +173,7 @@ public: * The properties of the layer are written to the input string in JSON format. * * @returns false, if nothing was rendered and rendering is done */ - bool render(unsigned char* pBuffer, OString& rJsonMsg); + bool render(unsigned char* pBuffer, bool& bIsBitmapLayer, OString& rJsonMsg); }; } // end of namespace sd diff --git a/sd/source/ui/tools/SlideshowLayerRenderer.cxx b/sd/source/ui/tools/SlideshowLayerRenderer.cxx index bb83542ef4d8..7ca9a4566cc9 100644 --- a/sd/source/ui/tools/SlideshowLayerRenderer.cxx +++ b/sd/source/ui/tools/SlideshowLayerRenderer.cxx @@ -770,7 +770,7 @@ void SlideshowLayerRenderer::writeJSON(OString& rJsonMsg, RenderPass const& rRen maRenderState.incrementIndex(); } -bool SlideshowLayerRenderer::render(unsigned char* pBuffer, OString& rJsonMsg) +bool SlideshowLayerRenderer::render(unsigned char* pBuffer, bool& bIsBitmapLayer, OString& rJsonMsg) { // We want to render one pass (one iteration through objects) @@ -784,6 +784,8 @@ bool SlideshowLayerRenderer::render(unsigned char* pBuffer, OString& rJsonMsg) createViewAndDraw(aRenderContext, &aRedirector); aRedirector.finalizeRenderPasses(); + bIsBitmapLayer = true; + // Write JSON for the Background layer writeBackgroundJSON(rJsonMsg); @@ -796,7 +798,9 @@ bool SlideshowLayerRenderer::render(unsigned char* pBuffer, OString& rJsonMsg) auto const& rRenderPass = maRenderState.maRenderPasses.front(); maRenderState.meStage = rRenderPass.meStage; - if (!rRenderPass.mbPlaceholder) // no need to render if placehodler + + bIsBitmapLayer = !rRenderPass.mbPlaceholder; + if (bIsBitmapLayer) // no need to render if placehodler { RenderPassObjectRedirector aRedirector(maRenderState, rRenderPass); createViewAndDraw(aRenderContext, &aRedirector); diff --git a/sd/source/ui/unoidl/unomodel.cxx b/sd/source/ui/unoidl/unomodel.cxx index 227fd0c67764..84892602365c 100644 --- a/sd/source/ui/unoidl/unomodel.cxx +++ b/sd/source/ui/unoidl/unomodel.cxx @@ -4657,12 +4657,11 @@ bool SdXImpressDocument::renderNextSlideLayer(unsigned char* pBuffer, bool& bIsB return bDone; OString sMsg; - bool bOK = mpSlideshowLayerRenderer->render(pBuffer, sMsg); + bool bOK = mpSlideshowLayerRenderer->render(pBuffer, bIsBitmapLayer, sMsg); if (bOK) { rJsonMsg = OUString::fromUtf8(sMsg); - bIsBitmapLayer = true; bDone = false; }
