From acbc891fc07823aa3e7b83360196ef1c4f15f3c6 Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Thu, 7 May 2026 21:09:07 +1000 Subject: [PATCH] chore: replace OpacityMask with MultiEffect Mask MultiEffect used to do a hard cutoff and not work with soft masks, but since Qt 6.10 (or 6.11) it works correctly, so we don't need the custom mask anymore --- assets/shaders/fade.frag | 26 ------------------ assets/shaders/fade.frag.qsb | Bin 1659 -> 0 bytes assets/shaders/opacitymask.frag | 19 ------------- assets/shaders/opacitymask.frag.qsb | Bin 1337 -> 0 bytes components/effects/OpacityMask.qml | 9 ------ .../workspaces/SpecialWorkspaces.qml | 2 +- modules/lock/Media.qml | 2 +- modules/sidebar/NotifActionList.qml | 2 +- 8 files changed, 3 insertions(+), 57 deletions(-) delete mode 100644 assets/shaders/fade.frag delete mode 100644 assets/shaders/fade.frag.qsb delete mode 100644 assets/shaders/opacitymask.frag delete mode 100644 assets/shaders/opacitymask.frag.qsb delete mode 100644 components/effects/OpacityMask.qml diff --git a/assets/shaders/fade.frag b/assets/shaders/fade.frag deleted file mode 100644 index a6cdf70d..00000000 --- a/assets/shaders/fade.frag +++ /dev/null @@ -1,26 +0,0 @@ -#version 440 - -layout(location = 0) in vec2 qt_TexCoord0; -layout(location = 0) out vec4 fragColor; - -layout(std140, binding = 0) uniform buf { - mat4 qt_Matrix; - float qt_Opacity; - float fadeMargin; -}; - -layout(binding = 1) uniform sampler2D source; - -void main() { - vec4 tex = texture(source, qt_TexCoord0); - float factor = 1.0; - float margin = 0.1; - - if (qt_TexCoord0.y < margin) { - factor = qt_TexCoord0.y / margin; - } else if (qt_TexCoord0.y > (1.0 - margin)) { - factor = (1.0 - qt_TexCoord0.y) / margin; - } - - fragColor = tex * factor * qt_Opacity; -} diff --git a/assets/shaders/fade.frag.qsb b/assets/shaders/fade.frag.qsb deleted file mode 100644 index 888e4c10654840ca4da53af2441f2396360300b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1659 zcmV->288(l02j`9ob6caZ_`#3|1}Q^hVg#0u?roL(h{7K7HFCRYqx;}>O?CxEvh2d zv4gk74z|;^LY*e<%RX)2_P0#?8`yuc?|VqorgQIcdgF#i2YYDZN{M}r&-?z)@l62i z0+0hR1mHLxAx0fbaIl6s1PBnK0TVz50RG^G0gDVAgo_Xsno_wX)s^|@s_wuFx^U%P z9aGZhZA~UC&8ztC!9t7>9@YTtW{I1c^#0`LFsm$}0}D1h#8_vSHo8ncXuy%4 zLNwvQXQlb4De1}VL4*KZgs|ZNC~)TV?4{QZzBV>l`Jb|xkzumG8#^(_+ylr+kGru$ zUO%|Ic()kEjbeF{s*Am{s4A*`7?x?#r)_zZEe-&fl*P8 zhUNG7_D9JReSmrN{4mEtI%CMm>rrX#%Nq%O9KerHo>Y$@hZCF|tudxgYW7a`+L78I zgSVMq<`x|0IEbEP-f`q`ou5&iPV-(|XFIB%IaD~WX|_T14D%?qD#td&u@OD1#dd>b z$=($5@;+%risKh#B#tV)PrI~usZK{y^f9KZ$jSZK%X>jI)%zgV`Xl6}+#!}B{w%W6 z{vp0U!gZ(nV_frF$jf@Z$#zb%ZHoUb<|j1u2kCu}Jl9;w5dUXndzk$VIr)q*eSvd6 zqxl*c;OiacC-gb?^)>R6KF>1ev|NbyD>BkA`M99@C=Bp1%KU`B$UeSeA7fk};{U)o zj85Tg*@N-euie9M>fCe#a25smYS#89l`B0UkG* zFGg0KF!BOlluXm;gpTb=>Y>+s*b#0ku;R)Vw&%wc!-(RrYsX@x>l%*@A%tjKaalZy z>-VfU^wuhpCoK?jp<~%zysmRytKrt`DWC$B#uIlb`O7S?3~tD8rxiIV^#Pt{MWIwQ#ihid^4PD|=b6R(&5WiZ z*o;DbH(T}hL#sJ&#a7K+CM#6wi)?jNT%PXlyj1)5IbjB-lcN3Wt=0A$I*EsvX zt=J|t0S~ce^ITy5o@CC=)>*4l_K-Vk$_VJeC0|T$zC-zF$ zb)8TGVp@bw(~Dv!EUcKxK8C^P^|tkC5Gq8K*UIFg-ov1n79Gp}EO6b(i3@iB+lnPQ zn3QOFi|8g=)1t-oQ3c?ocPhp#G=CUVr<2Zs4Jm5gIpJmNZ5#CEB0&^ zN*eI`vwqZbdoF%>=l+BGTo^=A{f^)1#$37q*2J_}dhg@8g@ya`rb=jljfHNUGNQQ^ z(_-;KeaQ-&PRu4`^N~QkuLD_A^`I(1QB|dos>chSH{9(XINbltiNoFItH6EbZCOvX z<<>1%6LbrlL=;<1r|!{xvblYrs_GKOe)J}hF*X!qfNNzTkc1M_IYm7=tp((SaN=(0 zrwnZ9Q-^-$CVw5!uibA)Jl}408;+Q1JF(TOM{%R&t;`ym{K#uJF4I@>;jCeFBRW_6 zR@;d>mhA|sHR#men^73(qh9?Z0kPK3-(pY*pFD#M!F+ zSC5}w+S2o;PLOKO=N<^OmJL*=Qmf|Ww(rat` F26KRpUEcrz diff --git a/assets/shaders/opacitymask.frag b/assets/shaders/opacitymask.frag deleted file mode 100644 index 94a80b8a..00000000 --- a/assets/shaders/opacitymask.frag +++ /dev/null @@ -1,19 +0,0 @@ -#version 440 - -layout(location = 0) in vec2 qt_TexCoord0; -layout(location = 0) out vec4 fragColor; - -layout(std140, binding = 0) uniform buf { - // qt_Matrix and qt_Opacity must always be both present - // if the built-in vertex shader is used. - mat4 qt_Matrix; - float qt_Opacity; -}; - -layout(binding = 1) uniform sampler2D source; -layout(binding = 2) uniform sampler2D maskSource; - -void main() -{ - fragColor = texture(source, qt_TexCoord0.st) * (texture(maskSource, qt_TexCoord0.st).a) * qt_Opacity; -} diff --git a/assets/shaders/opacitymask.frag.qsb b/assets/shaders/opacitymask.frag.qsb deleted file mode 100644 index 7bf97c280f5b98e09f7e83c6dc2c678d7901e9ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1337 zcmV-91;+XS01%LPoZVM#Pa8)N9@`KXLtdaHAx%gwp^fYoxyEs-s1Aq<(l$~e+8Cvk zEOa`~XLG^6bME$tQN&;9$Nq+X>Hq7Os-4-L^R3S|L8>ZMJ#_eH_L*m9pPk*a0bmXQ zX7JA7y#jARfC>BHzyNl@$G-qtP{FY*-tZS+FySJCC1_)S1sxgOmEns1gQ1t;5F!kx zClemQ20ra-n5?8%^}WOt0;yfB5@4PY+Zy^>{IJX+d(g)q8$$$~a?0(vwrLmTT!0X# z5n(nPRRJjSBr=l%mZ67PLO6!T#GveX*)Dor;?Gv%%KethuH~tydH4t(vUd^lQJM1? zLZ9EgXuK$gqE)UvrWJ)NkdrtXy9#-!1>HT%^~gUbIY`W$^yi5KpU8igbC7)*KkqY7 zY(LP(7gP9U#%DD z9M4Hr==ladk=O>_HxZv_@n@uO29*YhC4ZgmIriPcrvl^CtrFX}5lPKkV7>+R&odv{ zm)S@8uQFej@z)?;JB25Ek$rLeGRI#>dxhsh*B5Nx;(AxmzQc2&`Q2sh?{H4acb9Xo zGC$e(*hl;Z^JkdffTS-d{sCi&?<-uREF}AnYWM>^w9cF8B@M3d{5N^-OFX}y5S5o} zrZ7ud%yph~9CITTbCWUT{}Fvu%O~uo8h&BiZRV%3Z_r1zukn2EGe5w!A`bN9!TcSSZc0F_! zLJ>r^Fb<=3;eEltt7nOt@m82GEfKhby7Wl~a_;pl+ZCtv!Wo7}p4;|=9>p5wqYcfY z5`D3u6IFkhcTM2A5!(7 zX-darHPJLDY}BCb1X7Bxjlk)+p>TrYVI{6H@ZXs|>kZZ@wX6+ll)@b9j8T~C*l)K( zM-=T!Nf(}xTucgDE2-7kkK5&`%CN=S>-7lYZKx$^2unDIsX!*Liw+J6JkFX3H^RIz z#+(2rvQq$dpCw$IHPIJe9~f%^?%Bo<&tJVZcLF~Q&F5Y}5^+C_2Vv&@XFu=k?Y-Kq zD7hwZ>_s9)qLqXUjo0SB6?7cI6tWWuU`}sGC2v_NQ%tEn-kphN!;ojSxW9Be@^MR2C? zNBYXLknG3o?`y7SccYeLJncEc>YDf!yXziq6%v2w_F7-kzw*%*9$X=v<(}1ZLKM(3 zWYna$_;B}L=!E2OsFj1R3UNPmecMaIiMr=_T59!F zj0y2u3P#4OdT_9A*uICRCnx)m+6l+isV2)>AHI)T>L?hVFU@9rrcS|WCq{zZkl6TO zP*e>xNDTHeUyMm;(m3KO4PRgJgz4Ti-k+%j@>4w)?@Yx})CyQfZOZ3tOpZvEGafbh vMWQvdulkr8c~+LqZ