slideshow/source/engine/slideview.cxx |   20 ++++++++++----------
 slideshow/source/engine/tools.cxx     |    8 ++++++++
 slideshow/source/inc/tools.hxx        |    4 ++++
 3 files changed, 22 insertions(+), 10 deletions(-)

New commits:
commit e5b18c7d00bd0e60919c1f6f3d63d6dd24c8e0a4
Author:     Mike Kaganski <mike.kagan...@collabora.com>
AuthorDate: Thu Sep 26 12:05:42 2024 +0500
Commit:     Mike Kaganski <mike.kagan...@collabora.com>
CommitDate: Thu Sep 26 14:48:13 2024 +0200

    Make slideshow objects' debugging semi-transparency and shift conditional
    
    It was introduced in commit cfd7bf7f6eeede43027dd72f923b2a8b2920a376
    (INTEGRATION: CWS presfixes12 (1.1.2); FILE ADDED, 2007-07-17); and
    back then, it was guarded by VERBOSE define. The VERBOSE condition
    was replaced by OSL_DEBUG_LEVEL >= 2 condition later in commit
    912e36e911201742633e7c0a0a56f247735ee09c (Remove VERBOSE part 3,
    2012-04-10); and then, it was completely dropped in commit
    e5ec6304149cdcad0d6495b5187c245748b408b5 (stop inclduing
    canvas/verbosetraces.hxx and canvas/debug.hxx, 2015-08-11).
    
    But this code is definitely harmful by default, when an unaware
    developer (like myself) tries to debug an animation problem, and
    suddenly sees a very different problem in the debug build (the shift
    and transparency of objects), which obviously is a new regression in
    master, but it can't be bisected using bibisect repos, which makes
    you to question your sanity, until you realize that it must be some
    debug-only feature.
    
    Thorsten wrote on IRC:
    > the semi-transparency & shifting is needed for actually noticing
    > what's behind (shapes get moved to sprites, then erased from the
    > static canvas, then moved around)
    > so I believe it's useful debugging tools, but of course should not
    > randomly enable for normal dev builds
    
    So use environment variable to control this behavior-changing code.
    
    Change-Id: I493cdde26c95fdde4a5d542a0bdad8e329fdfda8
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173965
    Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com>
    Tested-by: Jenkins

diff --git a/slideshow/source/engine/slideview.cxx 
b/slideshow/source/engine/slideview.cxx
index 8582918b2c4b..dd6a28423f36 100644
--- a/slideshow/source/engine/slideview.cxx
+++ b/slideshow/source/engine/slideview.cxx
@@ -23,6 +23,7 @@
 #include <eventqueue.hxx>
 #include <eventmultiplexer.hxx>
 #include <slideview.hxx>
+#include <tools.hxx>
 #include <delayevent.hxx>
 #include <unoview.hxx>
 
@@ -591,18 +592,17 @@ private:
                 mpSprite->setPriority(
                     maSpriteContainer.getLayerPriority().getMinimum() );
 
+                basegfx::B2DPoint pos(maLayerBoundsPixel.getMinimum());
+                double alpha = 1.0;
 #if defined(DBG_UTIL)
-                mpSprite->movePixel(
-                    basegfx::B2DPoint(maLayerBoundsPixel.getMinimum()) +
-                    basegfx::B2DPoint(10,10) );
-
-                mpSprite->setAlpha(0.5);
-#else
-                mpSprite->movePixel(
-                    basegfx::B2DPoint(maLayerBoundsPixel.getMinimum()) );
-
-                mpSprite->setAlpha(1.0);
+                if (isShowingMoreDebugInfo())
+                {
+                    pos += basegfx::B2DPoint(10, 10);
+                    alpha = 0.5;
+                }
 #endif
+                mpSprite->movePixel(pos);
+                mpSprite->setAlpha(alpha);
                 mpSprite->show();
             }
 
diff --git a/slideshow/source/engine/tools.cxx 
b/slideshow/source/engine/tools.cxx
index 1234b8bae27d..6f19dad8a405 100644
--- a/slideshow/source/engine/tools.cxx
+++ b/slideshow/source/engine/tools.cxx
@@ -776,6 +776,14 @@ namespace slideshow::internal
                 basegfx::fround( aTmpRect.getRange().getX() ) + 1,
                 basegfx::fround( aTmpRect.getRange().getY() ) + 1 );
         }
+
+#if defined(DBG_UTIL)
+bool isShowingMoreDebugInfo()
+{
+    static const bool bMoreInfo = getenv("SLIDESHOW_MORE_DEBUG_INFO") != 
nullptr;
+    return bMoreInfo;
+}
+#endif
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/slideshow/source/inc/tools.hxx b/slideshow/source/inc/tools.hxx
index b3081d9fff37..fe8cc7d6911b 100644
--- a/slideshow/source/inc/tools.hxx
+++ b/slideshow/source/inc/tools.hxx
@@ -77,6 +77,10 @@ namespace slideshow
                 return hash_value(val);
             }
         };
+
+#if defined(DBG_UTIL)
+        bool isShowingMoreDebugInfo();
+#endif
     }
 }
 

Reply via email to