From 3e32a14264bebf65af335a4b8e145f6bc43d419d Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Fri, 15 Dec 2023 19:16:28 +0100 Subject: [PATCH] using a rgbswap for the moment --- playground/parrots/BlurringNode.cpp | 4 ++ playground/parrots/main.cpp | 41 +++++++++++------- playground/parrots/shaders.qrc | 2 + .../parrots/shaders/rgbswap-vulkan.frag | 18 ++++++++ playground/parrots/shaders/rgbswap.frag.qsb | Bin 0 -> 1208 bytes playground/parrots/shaders/vulkan2qsb.sh | 1 + 6 files changed, 50 insertions(+), 16 deletions(-) create mode 100644 playground/parrots/shaders/rgbswap-vulkan.frag create mode 100644 playground/parrots/shaders/rgbswap.frag.qsb diff --git a/playground/parrots/BlurringNode.cpp b/playground/parrots/BlurringNode.cpp index 66fdbf5a..620ab8a1 100644 --- a/playground/parrots/BlurringNode.cpp +++ b/playground/parrots/BlurringNode.cpp @@ -63,7 +63,11 @@ namespace to the quickeffects module. */ setShaderFileName( VertexStage, ":/shaders/blur.vert.qsb" ); +#if 0 setShaderFileName( FragmentStage, ":/shaders/blur.frag.qsb" ); +#else + setShaderFileName( FragmentStage, ":/shaders/rgbswap.frag.qsb" ); +#endif } bool updateUniformData( RenderState& state, diff --git a/playground/parrots/main.cpp b/playground/parrots/main.cpp index 644dbcb8..4bd75f3a 100644 --- a/playground/parrots/main.cpp +++ b/playground/parrots/main.cpp @@ -13,6 +13,7 @@ #include #include #include +#include #include #include @@ -22,6 +23,17 @@ #include "Overlay.h" +class Image : public QskGraphicLabel +{ + public: + Image( QQuickItem* parent = nullptr ) + : QskGraphicLabel( parent ) + { + const QImage image( ":/images/parrots.jpg" ); + setGraphic( QskGraphic::fromImage( image ) ); + } +}; + class ForegroundItem : public QskLinearBox { public: @@ -31,10 +43,7 @@ class ForegroundItem : public QskLinearBox setMargins( 20 ); #if 1 - auto label = new QskGraphicLabel( this ); - - const QImage image( ":/images/parrots.jpg" ); - label->setGraphic( QskGraphic::fromImage( image ) ); + auto label = new Image( this ); label->setSizePolicy( QskSizePolicy::Fixed, QskSizePolicy::Fixed ); label->setLayoutAlignmentHint( Qt::AlignCenter ); label->setObjectName( "miniParrots" ); @@ -86,16 +95,15 @@ class BackgroundItem : public QskControl BackgroundItem( QQuickItem* parent = nullptr ) : QskControl( parent ) { - m_label = new QskGraphicLabel( this ); - m_label->setFillMode( QskGraphicLabel::Stretch ); + setObjectName( "background" ); - const QImage image( ":/images/parrots.jpg" ); - m_label->setGraphic( QskGraphic::fromImage( image ) ); +#if 1 + m_label = new Image( this ); + m_label->setFillMode( QskGraphicLabel::Stretch ); + m_label->setObjectName( "parrots" ); +#endif startTimer( 20 ); - - setObjectName( "background" ); - m_label->setObjectName( "parrots" ); } protected: @@ -127,11 +135,12 @@ class BackgroundItem : public QskControl labelRect.adjust( margin, margin, -margin, -margin ); labelRect.translate( margin * x, margin * y ); - m_label->setGeometry( labelRect ); + if ( m_label ) + m_label->setGeometry( labelRect ); } private: - QskGraphicLabel* m_label; + QskGraphicLabel* m_label = nullptr; }; class MainView : public QskControl @@ -146,8 +155,8 @@ class MainView : public QskControl #if 0 { auto box = new QskBox( m_background ); - box->setGeometry( 0, 0, 600, 400 ); - box->setFillGradient( Qt::darkRed ); + box->setGeometry( 20, 20, 600, 400 ); + box->setFillGradient( QskRgb::SaddleBrown ); box->setObjectName( "redBox" ); } #endif @@ -158,7 +167,7 @@ class MainView : public QskControl { auto box = new QskBox( m_background ); box->setGeometry( 50, 50, 400, 200 ); - box->setFillGradient( Qt::darkBlue ); + box->setFillGradient( QskRgb::PaleGreen ); box->setObjectName( "blueBox" ); } #endif diff --git a/playground/parrots/shaders.qrc b/playground/parrots/shaders.qrc index b1f60720..98ade156 100644 --- a/playground/parrots/shaders.qrc +++ b/playground/parrots/shaders.qrc @@ -6,5 +6,7 @@ shaders/blur.vert.qsb shaders/blur.frag.qsb + + shaders/rgbswap.frag.qsb diff --git a/playground/parrots/shaders/rgbswap-vulkan.frag b/playground/parrots/shaders/rgbswap-vulkan.frag new file mode 100644 index 00000000..f53a2139 --- /dev/null +++ b/playground/parrots/shaders/rgbswap-vulkan.frag @@ -0,0 +1,18 @@ +#version 440 + +layout( location = 0 ) in vec2 coord; +layout( location = 0 ) out vec4 fragColor; + +layout( binding = 1 ) uniform sampler2D source; + +layout( std140, binding = 0 ) uniform buf +{ + mat4 matrix; + float opacity; +} ubuf; + +void main() +{ + vec4 c = texture( source, coord ); + fragColor = c.yzxw * ubuf.opacity;; +} diff --git a/playground/parrots/shaders/rgbswap.frag.qsb b/playground/parrots/shaders/rgbswap.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..85e03f2079cd46512deb7928307f422963594302 GIT binary patch literal 1208 zcmV;p1V{S-01eD|oXuBXZyQArU;jx>u4x+z4oTCN4Uv!ykujEw5U!)31Zbs7L3LD+ zjCH!4*Uo``XWi|k4pqJak9;S-3XeSTf?#HM?rw8&+B_h{MR&I|JHPq!+u1#bF}BPY zE5luY+hQ&Y;4frDkcx1#zv*HNE`;1=BQST^nC$~_qQKhW8=*JYF^d7t*jw;U#s`KK zX0XDh;9i1TkIg~8NppLK-D)zp4e@7S?t-yoXB22J$>^%9pyEUTjv!Effu%I#JFKG0!h7m? zzQ!|FWynZL=_}|1Mz`Rd#7N{V@`Ezs9vbsiLw*AC291}Lyp+n@sZFMF1$;WPlx0x>DEDBr@6A?Tl2h5 zF%W-`Vr>xqp2}J4svzGdE->E5BtJ0XKO|f9_Zh55k!4!}bNCZ9OXM55Tc&)vAR`C2 zss1k2ewXU|4p0@fM%o7TyWnw|bX{7THS&1~&x+zu>((g8qLIs&;1lzGpK5$SevV^9$Bv}4%gI?ZG42@yrUEf&V!lbdh)DeodYQLy-^TO5yfM87%J^M za;CG12wMj{3gXZeU~uY$XP!Uir^0P!_PxnB; z(nzap>gj2lWQTW`zdG++(fS%)GhFUK2@SLJgIwcWaUvQ`6zJZ;=2=py&=HwCCevRz WY{CB&xo&%{Eh9OPQP)4UaqvhBx?K?f literal 0 HcmV?d00001 diff --git a/playground/parrots/shaders/vulkan2qsb.sh b/playground/parrots/shaders/vulkan2qsb.sh index 4b53dc70..ef1f0727 100755 --- a/playground/parrots/shaders/vulkan2qsb.sh +++ b/playground/parrots/shaders/vulkan2qsb.sh @@ -7,3 +7,4 @@ function qsbcompile { qsbcompile blur-vulkan.vert qsbcompile blur-vulkan.frag +qsbcompile rgbswap-vulkan.frag