[vlc-commits] [Git][videolan/vlc][master] 2 commits: qml: allow fine tuning effective texture change behavior in `DualKawaseBlur::scheduleUpdate()`

Steve Lhomme (@robUx4) gitlab at videolan.org
Tue Apr 28 12:57:49 UTC 2026



Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
0653c8c7 by Fatih Uzunoglu at 2026-04-28T12:06:41+00:00
qml: allow fine tuning effective texture change behavior in `DualKawaseBlur::scheduleUpdate()`

- - - - -
70d62910 by Fatih Uzunoglu at 2026-04-28T12:06:41+00:00
qml: transient turn on live instead of once-off update on texture change in Player blur effect

It appears that Qt has a bug where immediately scheduling an update on texture change
does not provide the layer to be correct in certain cases. This change is a workaround
for that issue.

- - - - -


2 changed files:

- modules/gui/qt/player/qml/Player.qml
- modules/gui/qt/widgets/qml/DualKawaseBlur.qml


Changes:

=====================================
modules/gui/qt/player/qml/Player.qml
=====================================
@@ -323,6 +323,8 @@ FocusScope {
                     // video memory, depending on the excess content in the last layer:
                     viewportRect: Qt.rect((width - parent.width) / 2, (height - parent.height) / 2, parent.width, parent.height)
 
+                    funcOnNextEffectureTextureChange: liveTimer.transientTurnOnLive
+
                     TextureProviderIndirection {
                         id: textureProviderIndirection
 


=====================================
modules/gui/qt/widgets/qml/DualKawaseBlur.qml
=====================================
@@ -164,14 +164,23 @@ Item {
                 // If source texture is not valid, update will be requeued in `scheduleUpdate()`.
                 // That being said, a non-valid source texture should have (-1) as comparison key,
                 // which we already checked here.
-                root.scheduleUpdate()
+
+                if (root.funcOnNextEffectureTextureChange) {
+                    root.funcOnNextEffectureTextureChange()
+                }
             }
         }
     }
 
+    // This is not respected when `live` is true, it is only for the `scheduleUpdate(true)` calls.
+    property var funcOnNextEffectureTextureChange: function() {
+        root.scheduleUpdate()
+    }
+
     // When `onNextEffectiveTextureChange` is set, the update is scheduled automatically when the effective
     // texture changes, which is when the texture itself changes or the texture remains the same but
     // the sub-rect changes (such as, the new texture is a different part of the same atlas texture).
+    // This behavior can be fine-tuned with the property `funcOnNextEffectureTextureChange`.
     function scheduleUpdate(onNextEffectiveTextureChange /* : bool */ = false) {
         if (live)
             return // no-op



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/1b97942bcbb80754c6a884e51758d0875d3930a5...70d629101d298b217f8fe21050f8a57a6b632881

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/1b97942bcbb80754c6a884e51758d0875d3930a5...70d629101d298b217f8fe21050f8a57a6b632881
You're receiving this email because of your account on code.videolan.org.




More information about the vlc-commits mailing list