Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
b97aa396 by Fatih Uzunoglu at 2025-07-28T09:57:40+00:00
qml: expose the texture provider in `ImageExt`

- - - - -


1 changed file:

- modules/gui/qt/widgets/qml/ImageExt.qml


Changes:

=====================================
modules/gui/qt/widgets/qml/ImageExt.qml
=====================================
@@ -26,6 +26,10 @@ import QtQuick
 // NOTE: Extra features are only available with the RHI graphics backend,
 //       particularly when shaders are supported.
 // NOTE: Do not use this type if none of the extra features are used.
+// NOTE: This item is also a texture provider, but for technical reasons, it 
is through an anonymous
+//       item exposed through `textureProviderItem`. Note that, postprocessing 
(any non-image/texture
+//       level manipulation) is not going to be reflected in the texture 
(similar to `Image`). Unless
+//       particularly specified, the extra features of `ImageExt` are 
postprocessing features.
 Item {
     id: root
 
@@ -54,6 +58,19 @@ Item {
     property alias shaderStatus: shaderEffect.status
     property alias cache: image.cache
 
+    // Normally `Image` itself is inherently a texture provider (without 
needing a layer), but
+    // in `ImageExt` case, it is not. Obviously when `Image` is a texture 
provider, postprocess
+    // manipulations (such as, `fillMode`, or `mirror`) would not be reflected 
in the texture.
+    // The same applies here, any postprocessing feature such as rounding, 
background coloring,
+    // outlining, would not be reflected in the texture. Still, we should make 
it possible to
+    // expose a texture provider so that the texture can be accessed. 
Unfortunately QML does
+    // not make it possible, but we can simply provide the `Image` here. I 
purposefully do
+    // not use an alias property, because I do not want to expose the provider 
as an `Image`,
+    // but rather as `Item`.
+    // WARNING: Consumers who downcast this item to `Image` are doing this on 
their own
+    //          discretion. It is discouraged, but not forbidden (or evil).
+    readonly property Item textureProviderItem: image
+
     // Padding represents how much the content is shrunk. For now this is a 
readonly property.
     // Currently it only takes the `softEdgeMax` into calculation, as that's 
what the shader
     // uses to shrink to prevent "hard edges". Note that padding can only be 
calculated properly



View it on GitLab: 
https://code.videolan.org/videolan/vlc/-/commit/b97aa396284a77a959378b00234ef25af283a8e1

-- 
View it on GitLab: 
https://code.videolan.org/videolan/vlc/-/commit/b97aa396284a77a959378b00234ef25af283a8e1
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance
_______________________________________________
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to