From abcd0e01d40c2aca541d3393b7f93be5809d8701 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Fri, 8 Sep 2023 10:22:31 -0500 Subject: [PATCH] gui: add opacity support to the blit shader This is required to enable opacity layers in Gio. Signed-off-by: Elias Naur --- gio/blit.frag | 3 ++- gio/blit.vert | 3 +++ gio/shaders.go | 10 +++++----- gio/zblit.frag.0.dxbc | Bin 628 -> 700 bytes gio/zblit.frag.0.glsl100es | 3 ++- gio/zblit.frag.0.glsl150 | 3 ++- gio/zblit.frag.0.metallibios | Bin 2679 -> 2807 bytes gio/zblit.frag.0.metallibiossimulator | Bin 3057 -> 3185 bytes gio/zblit.frag.0.metallibmacos | Bin 2695 -> 2839 bytes gio/zblit.frag.0.spirv | Bin 624 -> 648 bytes gio/zblit.frag.1.dxbc | Bin 848 -> 928 bytes gio/zblit.frag.1.glsl100es | 3 ++- gio/zblit.frag.1.glsl150 | 3 ++- gio/zblit.frag.1.metallibios | Bin 2935 -> 3015 bytes gio/zblit.frag.1.metallibiossimulator | Bin 3361 -> 3489 bytes gio/zblit.frag.1.metallibmacos | Bin 2951 -> 3031 bytes gio/zblit.frag.1.spirv | Bin 964 -> 1052 bytes gio/zblit.frag.2.dxbc | Bin 660 -> 748 bytes gio/zblit.frag.2.glsl100es | 3 ++- gio/zblit.frag.2.glsl150 | 3 ++- gio/zblit.frag.2.metallibios | Bin 2711 -> 2823 bytes gio/zblit.frag.2.metallibiossimulator | Bin 3121 -> 3217 bytes gio/zblit.frag.2.metallibmacos | Bin 2775 -> 2871 bytes gio/zblit.frag.2.spirv | Bin 596 -> 700 bytes gio/zblit.vert.0.dxbc | Bin 1184 -> 1312 bytes gio/zblit.vert.0.glsl100es | 3 +++ gio/zblit.vert.0.glsl150 | 3 +++ gio/zblit.vert.0.metallibios | Bin 3044 -> 3268 bytes gio/zblit.vert.0.metallibiossimulator | Bin 3438 -> 3726 bytes gio/zblit.vert.0.metallibmacos | Bin 3092 -> 3300 bytes gio/zblit.vert.0.spirv | Bin 1600 -> 1784 bytes 31 files changed, 28 insertions(+), 12 deletions(-) diff --git a/gio/blit.frag b/gio/blit.frag index a88f4dc..7e022e9 100644 --- a/gio/blit.frag +++ b/gio/blit.frag @@ -5,11 +5,12 @@ precision mediump float; layout(location=0) in highp vec2 vUV; +layout(location=1) in highp float opacity; {{.Header}} layout(location = 0) out vec4 fragColor; void main() { - fragColor = {{.FetchColorExpr}}; + fragColor = opacity*{{.FetchColorExpr}}; } diff --git a/gio/blit.vert b/gio/blit.vert index 83d041f..2009ced 100644 --- a/gio/blit.vert +++ b/gio/blit.vert @@ -12,6 +12,7 @@ layout(push_constant) uniform Block { vec4 transform; vec4 uvTransformR1; vec4 uvTransformR2; + float opacity; } _block; layout(location = 0) in vec2 pos; @@ -19,9 +20,11 @@ layout(location = 0) in vec2 pos; layout(location = 1) in vec2 uv; layout(location = 0) out vec2 vUV; +layout(location = 1) out float opacity; void main() { vec2 p = pos*_block.transform.xy + _block.transform.zw; gl_Position = vec4(transform3x2(windowTransform, vec3(p, 0)), 1); vUV = transform3x2(m3x2(_block.uvTransformR1.xyz, _block.uvTransformR2.xyz), vec3(uv,1)).xy; + opacity = _block.opacity; } diff --git a/gio/shaders.go b/gio/shaders.go index 1166c1c..282e4a0 100644 --- a/gio/shaders.go +++ b/gio/shaders.go @@ -13,7 +13,7 @@ var ( Shader_blit_frag = [...]shader.Sources{ { Name: "blit.frag", - Inputs: []shader.InputLocation{{Name: "vUV", Location: 0, Semantic: "TEXCOORD", SemanticIndex: 0, Type: 0x0, Size: 2}}, + Inputs: []shader.InputLocation{{Name: "vUV", Location: 0, Semantic: "TEXCOORD", SemanticIndex: 0, Type: 0x0, Size: 2}, {Name: "opacity", Location: 1, Semantic: "TEXCOORD", SemanticIndex: 1, Type: 0x0, Size: 1}}, Uniforms: shader.UniformsReflection{ Locations: []shader.UniformLocation{{Name: "_color.color", Type: 0x0, Size: 4, Offset: 112}}, Size: 16, @@ -21,7 +21,7 @@ var ( }, { Name: "blit.frag", - Inputs: []shader.InputLocation{{Name: "vUV", Location: 0, Semantic: "TEXCOORD", SemanticIndex: 0, Type: 0x0, Size: 2}}, + Inputs: []shader.InputLocation{{Name: "vUV", Location: 0, Semantic: "TEXCOORD", SemanticIndex: 0, Type: 0x0, Size: 2}, {Name: "opacity", Location: 1, Semantic: "TEXCOORD", SemanticIndex: 1, Type: 0x0, Size: 1}}, Uniforms: shader.UniformsReflection{ Locations: []shader.UniformLocation{{Name: "_gradient.color1", Type: 0x0, Size: 4, Offset: 96}, {Name: "_gradient.color2", Type: 0x0, Size: 4, Offset: 112}}, Size: 32, @@ -29,7 +29,7 @@ var ( }, { Name: "blit.frag", - Inputs: []shader.InputLocation{{Name: "vUV", Location: 0, Semantic: "TEXCOORD", SemanticIndex: 0, Type: 0x0, Size: 2}}, + Inputs: []shader.InputLocation{{Name: "vUV", Location: 0, Semantic: "TEXCOORD", SemanticIndex: 0, Type: 0x0, Size: 2}, {Name: "opacity", Location: 1, Semantic: "TEXCOORD", SemanticIndex: 1, Type: 0x0, Size: 1}}, Textures: []shader.TextureBinding{{Name: "tex", Binding: 0}}, }, } @@ -79,8 +79,8 @@ var ( Name: "blit.vert", Inputs: []shader.InputLocation{{Name: "pos", Location: 0, Semantic: "TEXCOORD", SemanticIndex: 0, Type: 0x0, Size: 2}, {Name: "uv", Location: 1, Semantic: "TEXCOORD", SemanticIndex: 1, Type: 0x0, Size: 2}}, Uniforms: shader.UniformsReflection{ - Locations: []shader.UniformLocation{{Name: "_block.transform", Type: 0x0, Size: 4, Offset: 0}, {Name: "_block.uvTransformR1", Type: 0x0, Size: 4, Offset: 16}, {Name: "_block.uvTransformR2", Type: 0x0, Size: 4, Offset: 32}}, - Size: 48, + Locations: []shader.UniformLocation{{Name: "_block.transform", Type: 0x0, Size: 4, Offset: 0}, {Name: "_block.uvTransformR1", Type: 0x0, Size: 4, Offset: 16}, {Name: "_block.uvTransformR2", Type: 0x0, Size: 4, Offset: 32}, {Name: "_block.opacity", Type: 0x0, Size: 1, Offset: 48}}, + Size: 52, }, } //go:embed zblit.vert.0.spirv diff --git a/gio/zblit.frag.0.dxbc b/gio/zblit.frag.0.dxbc index 45e8355fe0e3e9b4012265f39006ef1e56946cdd..078c2d3d10a89a3239dda634f834cb1a9aaa2de2 100644 GIT binary patch delta 252 zcmeyuvWL~vCBn&h>OMXt#zU_vcK>7A`>sNA0wV(h!yYCE1~wpV0mKV{_zw_Q03~dI z;vGQjn4f2v02BjZ2B!c24JLYOTgn5OKyCvA1N#P61_ovZ27VxW)dmKJCkudjnHV@g z{3i|n|1&TId$ delta 181 zcmdnP`h~^QCBn(M`Kp}s8ue>6%rEZk&^a!0k&%Icp@fNnfelDo0C5Wtp8;YIpac(4 z+yRIk^YbiSfMOub!1VvW$V5+VC!jnN0|$Qt1H+RA|Nk>E1besyIRNEBSOAD485mgH z`V@dH1_llwPGw+V{-gksVPG%=+V@Fe;xjE)ko63cMH#IpD==zIu3$Vdxra$%asm^} IXyVGbl6!vaS+FjMG>!GtpNz6VJ`P=jNR6eBZe@ zH+P4+6CRqKD;0qN0Uyt8#~Ats0S+|gyvz(s+K$?&|LO2=E8?_EH@-af#6~Mi|FgFL z%vat|j>Se@JT8&sB1TJuaU{}LF~6+uM<_ECeSByzzowur3O8jm0^R#Iq5QjP8Jad__1Z{pr1$yH9RaJ zya@m`c#C5=K8h%XI}&=C@Hbqmb%f79c&YS5xw@#byjIbT(o<7MxrR~hIEM${d7d|P zB8VC3h^8U%=X;6aTkS7G8XD5kNsY)>RLPaD=|y*;ZEaQ#CL`tll@9mx3O2LlaA58U2exT@FoC&z z6o`+)Zn7Fpv-JzQ*=weSMFLFW!#m)pD%k_<5`F?*gV{dN2P zD+Ax^TRIDuoe!c{zliA{OgS2P#5y=U%H@yWOyPf@mX>s}QlVxmRi)>X6LRBd1q7SC7T<;a8xbX` zDOil?L7I}@%-OXUi)BiZK6q+qLtt;9>{rNn(1pR+SkzY26aQ{sa3D=PMJsmFdO#X` z#Xo_J_ z%J`D)L$U4zGvD zEJok);Yw8>Rg^0gMXHJ_9A0^{DV$e<^4Vc{O$jTq`r#huAaQsrfJ}&r#h-c@Bus>H zPsFEN0r<%YJuONg+shbR_1@2I0He@gsL%fiJQiSql*nVbo Viqt?MlmL65(&;Apx{v8U`xl?P>^uMf delta 1063 zcmew^`dviOH^j$@k%0*aA)tJspgq$B&WSt1qqD{SZf+qG6Bmk2+#(LraaK*RfRlmYKM*)MAGoK;!@v+ZnT1iqO~94O zX%e?ni-3`c1&4$;myuJ4#{>}tXSa@}43b7pPdxZ02r3;3a13nhdD#54i$&3mEl`4i zp&95P=@Y6yKn5~SXxLoD_?fZZi9zK6Q;4Hf0}IHxo%7RrL0RS9(7Y#=Sg>?1IBx8W9po$Gg+>@|Ak zC?F#fE$I<087m>(5j*ov%&pndCwzE#e0omz^zd+afh1-}MxKTW`S_iVoh5zq_T3n+ z?qx>14C>AD5;KeRlJj#5GILV(Qd0Bsi*k$OQ!Ex?j@&rq!G^3ettc@!HK{Z$Ewv~*QDZbIlc(W12|6U+B+r17y*eizl!4UIg1!yL9Kwy%QyzxhFsVc$MultGL^-r201?3j%=_c+a?VQ#@8K z=H~U7S#grkYPTG2RXiZ!zcmoctn_eaG(Ixc5Yj!^^-ipoO!^ z$VWgVscC_TFbm5J1&w1Yj+Sa1T$>UPH03xe%$Aufb^hiC_8{g{s}C@2oRaOlflazikN1XyawBKfkz;As zpI!Rq7Ir-BS<*4FGBa~khGwmtoU&ZKOkkXq1UDJH5CR5XQn;G=^l#71R0W!Yz#)^E zmtLBfo*G}4T2u@Sq2MON7a~A)M&GWnO+Oa)?W+QtJ4n5GszS4oL9-D^4=^Uvb3tY@ znE}(=<|GbICLtLhOPIw`M*v8JQlpCT1luxGacnQ<%UE%-oC&0MezKpa1{> diff --git a/gio/zblit.frag.0.metallibiossimulator b/gio/zblit.frag.0.metallibiossimulator index d8d2589dc60a9b11b1dbfe00a2cfe647d3302e81..4268afe2939fe985d5a5123658e9fbdddb5e0d87 100644 GIT binary patch delta 968 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 ZURe=l)&e>hCIZvT>>$oRP4NUb{|i&{<^BKw delta 1095 zcmX|>e@t3e6vr=!41_)qDWYx-C?KiMAuh&c+42O7+G6{ruJZ?pfZ}SV=%C5c*$q_u zwNm$xqR_6{x|TJ|+L~6E)NC51)+vfpk}lRULnERt42?SG;GAP1GFd6xa)V_Via+S^2x84-0RF*DA{|@iQUOp}2{>U2{RCdpOOcr9 zVrCABT^J+I;}yi9+?0u8BQ=4mm!x;y)xE9+4OheX2z!>^7!;C3YQjA{|B)$d<)!%OaU*CHHp2ZG*Z zA6%4#w+_gv z<|N9^Q_cGQlLmcC+M^T(c9-OLSTfmhjIQZ9eNSr+U&^4}3#EBHq01BO3j2$n4rJS3 zc_%S!4;SrUElV* zM_r5FIp1i|yX!8aj@%!aUf4@)u5Pv_86?D$C{pO8b~_25pbBzdQ{ioD_ibjk^&t9}X`_|#fc~@Xh?)-NAzO99N_l^-EM@Jut?G>}tyc*O# z-b&5v%_^8v=F0LyV^Cxs(#}JhF!cKvwCX1Y$Dn6T(2j^tk_kg&hQl%n1rR6<(@I)Z z6AWmBL(?j0s~p-63T^tK6102L zWefTZ&^EA>wkVr`wtGm}5ous%Eg|kX8QP{pYx9^CXjjCKVn>0&ha?I<2OC!qN61a5 kWBy?9cv%3f9C4utQk&EPrZ^lTIQ%6lJ2-F@R{zib1=9w!kpKVy diff --git a/gio/zblit.frag.0.spirv b/gio/zblit.frag.0.spirv index c2a88d2ca7561b2e2028655a0a4a51ec0dbc569d..92f8790e6f188699fc1fcfa7d162a01a00e91438 100644 GIT binary patch literal 648 zcmYk2O-n*y5QQgiUMy_UAXH9gcyZTDdwg>(eG^&^gQ=o!58Mv zoHJ+6o%c;jgG$6+)S?>Q$WJRuFaeilc|3iZ4!<@p!>j8{74=9mp_)ciVxMe$%od+E z4u~4jL?_P=sFKWU#84S_S6_y4=5;-LdtAOR*VJnCSgvOC#pXN1$KY*0g%Nw^J2MUN zb3u&xr@o#se%8GVi+AwnG*)8*ampX;(6K8n) z24e5s=UXNFit@Jwc0W1$hh+D1#=h8n<$9>x!&$X;va@n(#lC}F2izq031=?~+@kh4 ze?nHP--vsA7x(nI&o4}wdb+^*!noSFAM z?|ht7tB&dsm1ssI2JvUTsKP|FA}wM*yPl0dJ|D)D<0BRAs1-srov6nKQGcC3zj?8V z@8Vr_@(duW6}_euC9v!I1jd@j<^1V#@v>Nwt7#HfIE4{w_iLIh@LfqH%y914&28l5 z_SABEnGXvTaaHy%A^5-d2=X1b-g(tB?-4b7Ib+qUk3!7>dVj@yk1Qo-_&$2yFZRtD zXM?C#{wt(H!CBn(MB&Fhq>xpIe)ERb_pPs_Mkdc9bVF5D(0~?UG0OC79yap(!!NkCz z02I#wV#oYE%Q--C5N2Td|37D?ExAL0YD2Gm?tYT32$D&=)-8`0+r$b(jX7O07w}KFazBL5(jw{1YqJU JER*?|odD4SE#v?I delta 175 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 SM7Js2Xx2R}@P-k{K>`38-LZB6 diff --git a/gio/zblit.frag.1.metallibiossimulator b/gio/zblit.frag.1.metallibiossimulator index ef5ac8670e845cefc14a57cf01acb208287eef9d..ee2778b3dc8897a84315427c26b4b3a20ac379be 100644 GIT binary patch delta 915 zcmZ1|wNP5nH^j$@k%5VUg#iK$vQ9CyV_i&Kj(^RO4OrBBe{Hg*nRH&#i%V8K7d zrQ5_gi0$kb2hOb_#y05zY*`x$vo^4$FDS{`P!FUkj6ISQVlx}&I!dNQ$<<^suw_qZ zIjF>D%v0XLUS)8&fvs!<`%*@ko4qxR(4-qpp@suj(P zoey1l5_99wopY}aojbMf&8a8PF5SE1#`)mEvJEDd(>HE6+hMY8(|U7@U0ckz?+k3S zn9yu#p{C<|?x>I6n>A}eh9>Y&e#8|mXao#KVHQUn0U*r^#3qydxP9tdGHwd|IM}w3 z-{B#@8P7riu6l;sJZ(aO0;kNF4+V&{7_}X+P-g28Xi9h}&m*RCLWWr=q?yO@P>+Oy z6Gu~Py~dqDmSP_67G5KkGs(^h|2FgbGNcFyFas?B;pjF6j#k~n0xe8H4iFS7K*Wvs z1e97B7PC&~|9F%^ H2^b0h6)Pl= delta 773 zcmZ1|y--TfH^j$@k%5VUg#iK-Ckom#DohO2P;GQ#T*i>}y3&ZnF!}70xoguma=IO# zkdUG?X?oVAHz%(8ySar(Ok5~7af`T;0uMyDtDj3qXsD-)0E1yod`Y(1tcK*84_W*9 z_A*a=tH8)JnU7JKamQpM#$3jR%?lVmGcql_vjStlb%LYchkZ_fz1SE&YYxEe48G%&Hs1Sqh|ITWxkZ02D5$!M?(q<9vG2vcj1x|`bxL8Fu_HfKs1 z7`)^}q}|y9Qw%z{X!ILu^tS{YNtC$QsxsMuLq*Qm$VfpWH?<@&CoNUi*wDbhP|w)N zQnx%aFD1XccybNL-N^-Gl#ZjW;AkPs2wnPOsW0oU4 zj)u+&X9{GJ6xci#=@_%*8#pVm`8>AaSmI)Alk{Qg!Pcpbk{ynd=7PvYXBBEMxv))< zsF|wDE-hJ*)=<)A-YmdgY;f3st-yiZNNC1_?i)AW+={t%@5HMcr((|BICSor8|S$P zB8g^ZyUnJXY%((6706_=LsiH3+|hMDd3tZp=1x)I?c?&ET%5>VY`vP>TKo4V?a8yf ztBa*o1DaM2#f^7v*t`vFrqyIG z?r1@MU{DIPIO+%hX;vUsnY@kLr=BI_rof$pZ3p>2G4Px5R4rhyV7Sf0#uO-U%8YrD zgGh@}+Xe$=whn=&gopAyqADk3n1y_rc^nV*NGLdQG_}@i+zMpb%mC+(!3g94L7@Uf+=x#=sfD2vWH%V30u$imULFxf&dG~-lm&Hxg7Q!)kQ$%K b*LadS#DFXz<|%6?JM!u=10!~F39m8$$f)v> diff --git a/gio/zblit.frag.1.metallibmacos b/gio/zblit.frag.1.metallibmacos index 5fbd2c268b5b71165def1878e0db441c3de8fda4..4d9913083ce9a11d060752a2dc2af872276ad061 100644 GIT binary patch delta 1205 zcmX|Be@t3e7=4e2uZV!)ngW6yh+-RCO2H@!-J&Q?~MrK8PkHO3U3)*qEdji96I(4t$Xsm{^PY5!2ut&7dFWZQG5JIT$LeD{7Q=R3){ zHRJ^{=|rwH1FS*;C}0;0HqzVR3tP^C_|D8%kJoy(Mt!$dqym2Q->jSF{EyBJCxRCZ zZ85>3yYERPxfEOLK3hK-83-hhmazcv4}uKw*a{N|0R46}r~!e#GVmn``s^ww9*nlv zLJTn1-U+eduuNEB!jdvDZCDThCScSWW{eTGLI)4vV$nV>>NhI@^ld$ixzbuQM=&hAv!Nmz871PjpMmIGZ#0A~p=O{l7|J7~Q^eG2?ctU$^{f zwz@V%tQ1>o3{549xm*d^pNziHP-Cbq3GKViUgvH92siul)-v+ew%H5Gud=QuliB{f zb$Y48FUeA^WE@PC9mJsf8xRI(FE5c_|Ngsc#``RC2WH3Y}J6sMma| zP6{lp_?{OD7T=fSZMVF=uJ63AKs9~F=BodnB43J);1AyCrtL4+DhoCGOX9W~?V%1G zH$lgEsEb>_6NPven^#ht$9|ZANXc@~2HeuEPdF#Ov7SVBjaXVbO*#AItECTa(B#zp zl{Q2V*>jJ}JGo=3PG51cP+y?Gq*WJa%8JY5{6XKU;mUybiq~wLqg*b$Y`@leblbnp zPT)^mw$vDi4{|cSuF2z&WQR*xQL;;<(|oQTe(l}!-$T=*zQy_3 z<mHcZZe%fBDo@&4M32wR-s?lNf%NDmWK%dv$`+ z7kde-{nf10GVX*{um|T#p{U}jPNizc*1Kj7C)7cREzX=EWNs)TH$(8|3&N@_azjQaQxG}vM}{F$@V{4q@uqa8izMBhPMs7BTw-C9Q5YO=Vi5YaF!87>F-Y9rK&Kxf zA{9nX5|TzMsfvMl_NJK%MDYQ%1nC06FL+CAj?7OZN^XB`WpWp4tC?uIB2I@p-iYU+ wv3!*Rlm6LWFCBs|7;)(@7m1T4gWm8e97+WMJJHU!FnWxK$BB!`|L_|B0&BGBt^fc4 delta 1087 zcmcaE-Yzca8{*@{*uccV!~g;969w%V7fcM)Q0?QNEq;T2DxVIoi$HT~S((y_Nvp-L ze(Sv-@G;Qlhy6N#H@6Upi3`OhZV?A+IHNAu!NtJv9|)YB58PAaVPKd)nT0Wvv0-x_ z<7Y<3rpZans*IA8JD3$1117IzR#rHra7;0zL%>NPl!Jjm!A!uwoq?^GWr0D50LNjD zBgRadKQK>btmgze%Sdj9fTW<$gdR>c_hT&1Rmu#i0Sc@d0S6dc0|Z#*912(%7%C+g z7%l+SN-_HgOx(yqrHMH zFEO)7FF8NAATuXbFC{fEzbLmjJ|(j_F)1h2ndP~H_%yZWM&GWnO+Oa)EJ@7F{rgoh zxAt$L&&1S@g_*e&2u*X0m^J70jcDl@spy&AGh-s6XGYAO89DRL^hn9O61T)7Z^g`z zh_1gWa4=G$b?M2SC#LS4IQ3-h#nzK^r(QJV@}6AGIobO6qSMXVzl*rDwHGHI`zGe* z?yRQcdrsBo-J8?8Yu5I3&WyQn^Mds4*>?nvWzIWTIOlldoQ#eK9#alodJ=Qy$)R(% zPThI2@6w$IuU_o9a(3#;g&X$v?mW08fD>rCq;~OQ?aB3zg@OKH3Rg2{4>xn0o)+$Q zxaX~Ik6&AJ?9{6QFC}G8t&};vQ|9bg#+rzZpy5HfRP?n>MhkCltL89rb9J_bp-jk$^p1m9Qo;=C(ao$74d50O9)p_PU)|_{+QpT`i%JK@f z=Y_`_0)d8k&$x3FY|{0ZS#grsN*YE=?nQ|ynW=dt zKKsr+IdtL@Feut49CWsreb~0`vh87Ki+P_dQ}P~6Ihbsb_CciY@tj6x%M62-0uy!K zHVMuLK7CRjDzl5do2wTCLyB3_nS1hMZ?I zjE)rCJ5b4-At|_#+4_dF^$thtJ}a%|(rk0a*=kR-wGU^<IeX7HXv4UXLupX*eb~&WX!;FjKe{I4F74iUwCZ8WmZ> w6J&~cyb5@YSiFss5;zW)i5$#f7G{uSIl{oe4Ac|drqIx=dsyHABanjx0Bvf*i~s-t diff --git a/gio/zblit.frag.1.spirv b/gio/zblit.frag.1.spirv index 88128fce32f978574e5c6e997bbf72ee72d836c7..5fae77523c3986e5257f781664e35556fd32c088 100644 GIT binary patch literal 1052 zcmZ9J$w~uJ5JjJf?L5!3tbA{dzy24=S3!5Q5;~@tV;Cd2Uy1c$DzO^2Td;8leMnXOjsu`uO8!KMR z)tZTZFbEdF7+P~Q!OJK29Z(p-cGg5N);%@L&*$}*dJ|ub_tYEZO11St9ED-xQnUO} zeXO-`nK0$_E7tA&an6@;yWSNsYY2DGf5j2=IOF@xZ7AW}-&3Nm{z?+1v2z%E=LLD^ z$j(K_3nE^ky)Vm8+F-jecefod-(63Bs#lO}iUXPZcT->I%p$vS)Q zwO5_Js;XL9>y7A&{^*OxJOjw8<-c~=RD=Dkufe$IzTJE{etCLnlgsrJ8|~)p<6Y~W6gP=8zfrgO z!|A2uw$k1~>Z^yJ%{Auh>Ho!LG{~LjYT(3tsjMPSsGXbF$*-Afkk=qLFqQy1;s;9wv9We}t&k|Kmv={bBG z`K*~BSL3;|#y68!qo;Y`IrOSVUkgBfkXNx@26|ry_VlgSGp45ZNE&q+?zOi9+*=3w RbAAC1IFo^m{7C`A&H!ozImMNMf%6l?#CLL*K*zAd zWZn26s+LJXXgdZ5#^4ag5Rij__A`KVf&iGkS(A~Sk=F&t1v;I91Bfjq7cvP?4q##t S1NjhHF_6o^!ZJCC$q4{{XD-G7 delta 204 zcmaFEI)&BKCBn&hyS?njhO-Te!#RIP%@4bFi;;nWVG0ui0~?UG0OBP;EC3Yj0b(7X zcmfbR=I2?a0L4L=f$9H$n~9#fjLZ|uWo3bim>4+t8yFa#H2nY1z!2==5(HA^0K}3L z4{A^R!DH*nz`*%QK>#Siz~CkTrRyLxLjr`hV_;wm4si@A0jdF72nS4)8yU4HPhfm7 Rc@LAqO%cdvWbl+=U|c zj6Rc3GMg!C9$|PYFiV-^8OMPH3C9R7p;MAwnhv=N3ar-*m^St>Fl?4!X=kkG0BSXo zn;{@6=rf^*Q_cMti*uA~08?v#m@-4ELxB#X5(7ge(7N?NbyCbe0@F1YsS2z%+PQO! zxw%$(azYQc;3yW<=6Sf)cGB6X^4UwNPQ$k{f#B^y%34tkKiOrj)!G)&J z6cO`HtuIN;xpU~!lbB=oZauhk<5bLvQ+Mt?x%F({iA&E89l3GpMC;O%JA3wSJ-Bq^ z)SWY0&t9zE+In$e?bMyEog1f4R+ICf#*sXHJeBtS-- zn7VV~)RVOrTTjlNdeM-}dvY=7Wb5CHPS-bU|1RRr)?S==?3SYUcW+MX zu36jDIWy+Q%?r}EXUi5XaU-GVCu=U2dDO4TzYfrMT6vO?!}WICWNORU7EMfhp+W*?ipRR)>g^e(Gs%# z_2xS^Y&6+rqnDUjq*sz!QBqozIt66fjeExqy|{Gm&b~``PMrF%0%Yo$)~yFOP8D3N zeR%Qe$=Z_@9~**g9ZQv1ZX`P{=4{eUNzMs59DTg(Mr_FwG`Ke_7BusolrTBRta?!?*WdVZ`T{W1ER~!O~PjU-;=4P&H(F_ibvecsD%>2AyCKCGgXgfKTxnG=jRq==A_2w7nA^%7YDPMMlhRc2m`ewsfm|e0~@&jlwH6Hxf)0t zb2P{tc_@=6!noO&gO4dh5GW?h;;174q}hOYNmc?&!wn9Gqk;@f$_yfD3?65Iq6`em mY~2D)2^V}gH_5abo-yP(ZG1vNppCb&CQZ7F;RIL-oB#kcHmXYi delta 935 zcmZn{n=UHk8{*@{$iM`I5HOuZ&Dg{&Svxog->{;QjSQdi}dRYgm?q zWWSlHFr6phyXC*_{%&p|5)&7SP23_5(s5Qza0Vv>!+#)faz1cRk%xgHc`^%QJY(19 z6h>Ai4h078fLwz%#>s`ul5$!g>pUeG7?^>yaGQgK8jp)2NUT$Vfk9^S8fFDXm&s?D z%_J3%XtZCDaWrseU^~olC}={!xd0!=EM`XK%_=PIjP>k5Ek<%Pcq9dVCiHNsxgTS3 zj#3TaNHt^%U;!Cd3AAD^kd|Wh5tzE$aErmt^*c@W8a;CqkdcX&^oW*>m5}a;op~qb z)@KSZVXrVGNWAvW_gL3MS98k^|=L^ zIjMRnsd@QDxyA7*nZ=1oIjK($U3wC8?B1;hmu{SjIdkaQi+#5ay|}RN)SW{|Zk+O9 zgJ^~5Oe;#vO-(9IOG_<^PfIOH&WKOV0~yf+GUCapJ10&(+4thmlXItDNVG0JxwGZu z+}evz4^FM!*}8S=MT6w}YVO606@{m%Jr`0d|MpbuTG+88K6-C*Ui7~8?F)*SHK%)K z%#FzCnbLQ|XGzD%%1+<4)5ua}+jc|q86sL>cckW(q!!hHYL@`)u!;dY*nSpe?6kBBX)A zX}HVCW|!4YBS|AU<89jwti&el++b$0%}AcFB()+2WXH2Zw;tR$^`zoV>(+xCr=ApC zsC{^LR&(;?*$O&`SP~`GIJgZRBf2;bCHV*lB^+MBdb`cxhCxQm_C^Vl^|u8Cq??kQ z6LKv2);SBM-V~T~u&sVcvea`&1=U*%GA>=o6baJ2)^=p~GCyYn)!PP38l~18Yc*)%XKZYpd)Ak8pH@yzS*~6tF#1Y@nG9ZlyqXlQW1v44G5CN()`gV3pUei^CS*MCL3T@U=U_;)DZyEpk%ouD}klq1_wiv^L$%>pAkXHDC;WGnFWX$&`9XCdXI}Y5 z6N~vSoPmM)Pb-4_-P}SXCN314xJ6uP0yjjrtDj3qXsD-)0D}ng#;dCt&CcwR4X}9_ z|I2FPTLs3N$$X5;jI$;iF~&1?ZJxx)!o<$Jf#E7!vclxK%o0wkc-s^ixC0nHB^Vf( zf#wOfIY_ASxFmv%?o?o4kO$I6N*Qa6i3gsHVh z-OcTUpi#;dt2em}4BbZTM~_W(6p{2%(mj>T<6WpTsfqV=BSWx@w?bHIQE_H|-egM- z6$x`A0|kxT)RM%Uv{YSVLjwatJ)n@D@#JcbyW*wAsYMz&`N?^PnrS)ti6!|3iOHEI zm6Ibllj;>@l{wBDG+hu-=I}Lan!upU(QA140qcDpW(kf&180LX1{L!p&Nv9nQ)e?~ zIm**$=v;87Kp{zit#gxsF-xw2vl3hHX9v$M9>yvO7kv1q1bCY^KZ=|#(ZDz@rQ6Ke ziS4#3Tf&3_Z*%64Yy|@BMFxir*zye6jf7?_=)Q5|&16X~erv%K3wZnzlQ(A66T=xp0UnbR0wV3ajX%ztNia@e1gR@j zfFvR#J^`f`hIZD;hTIB_+>?X2l?And(x9{i0<1vnHMx!3n?nr95@MdRYVu8PEmlaJ Iu<@t@0Kk3l0RR91 delta 673 zcmbOzxluyUH^j$@k%5VUg#iK#Ckom#8cYn-P-U86@A~u3*ZMx&Lkl0xREP;<*l%^A zc~OG@q@V-F?wSAm-P}SXCN314xJ6vafE%LQ)z2j)G}O~YfPpQ|cj8|E=ckIg&T>t^ zl)^RftpcOSWIje^#>UA;jPZ<}nj~PB4=!5 zq@a>4X$t|2o;TL$6Id~15E{G^|a2gz5 zzx!M5&Irsn$m4n3V`D&j`BJA%FV@Si+|F4% zb$)o{vv-``LQhV;T?LL^1iGsouqR}S%>wx0ta8;TAn3q zd-QsEkF4{_(|dcCH${z&P3_oIH#Rnwr67s3Yu2QyvDHJwj-{%lc6<nTe|%3o~=65GqQ{EYeHP z&n?KzN!3eBEG~)9O)SZXPt8kA%1L!@Nl%n)S$cA3&)%&Emu{T8bH>Tmty4R%&YU^* zWbMqU7kld$)=pe{wzYHPR9?Y(ZGjQ9=5)u*l#ZNvM?7}Mok&U9#T!g4ryK0ttiQ`< z$0q&l8@3rqrRC%&mYAd*y7VOG(35lf?i{*xY6j5Qxx9Nf?mfwyI4@mN?nS5E%b9H) z{H~fhzUPkm=)GC9_Dt_P?X$e=`ue=@#>|xAx_x_wv=7(R4fR0dHyWAmGP1M-`J*7U zsJI|Cxg@hJ)#S{Ldxu`6SlkGWhMiM*n|ru=xEshVt#5O6dVsOEZ>Aft6lv-KQj z+m^$YQx5CjaJD>g*k;LL>m7%uFi0AEs zI7iS2VzT84XNx(`)*MrstuGv&(!jg9h(nRdSrC|(g;^YR1b{Rf5R14obo4SzkYZfH vC}hkalE%OR%pO3X%+@8~!?{VoP4J8%Pq)bl0fA25#+o$gK86z$7m5M^k_DP7 delta 956 zcmdlkc3o7+H^j$@v4M$!i2(wxb4?VoWBR~3F-ToifUn@xhks_h(+lS&-+FNC*_=?T z?yv>#nOV=AUSE8x+uGmFEkt7CLa~Wk#6ddFstI1;WMKFY1WwKe?kVyxFceN^VT@+% z*qp$~%w)-NfGI?}Cy_yH!L0@XkScoy9tFm$Y>PP>SXTgT_mp5@Uc_hT&1QK|+^0UWG>EFj}5fmW;q(o)Pm0#kPzZZX)oey7RaO^U~q zYz{aX@HahpaO0H2ty3=!-Eeqw>dCW9_wG2PB_$*z#iXSaIRt_IQk8aM6}c|jbIb=O)W{xah|X|qQy0WEiW;%NG~}*w;(eoRWBtqFTW_aI6ft_ zI58DaSF}L<_q0hwBj)j@IR0vITjF>g&^o?lg z7^&!)-7{k%qGv|Tof$dv&h$vhyArp=BX7mbkchr1@Gw%Mb?M3aohPR5oH+Gl?ZwuU zbEjT3&t$%PyC_U=5m zB!ClWx}uU5*v-YNI| zpxld-J6e{W+<9T@!;4o>P7MS(FtJ*id$D(Q@o%qUW$nX@g+L)9evR#Tm|M>}p8j=y z>wMaJj)RQrV@=Up!`rv^OgnR|P=_pVUxedD}-?}%BG@3PCt9j!R@ z03R3X@#|(Z6n-qg19u4VLrzT5r$ksO{v>f7llfeJ>0ozLlzNZiPz8I)V zxamBc!1w6^+qVF|PX_!iKk&UXP*rdXfC#=3;ColV_f>%Jc>v%31pcQA{GTWAy??+L z%#?gYgzu#Sf1Ux~`wM&@Ch)xhD)_+n!2x0de=wU%qMHH4kY@_~4-5F-25|DdbKnnV zGG<`dypKbX$pDy97=&3Ibp(JkD48B{WANx@xWdpW$-txxyJ Jz<C2msP9j`9Ei diff --git a/gio/zblit.frag.2.spirv b/gio/zblit.frag.2.spirv index efa380be3ec94aaaa3813a213165743646669df1..c80b9d0e4e0db1511f3a3fd94935ba16ef1c4a29 100644 GIT binary patch literal 700 zcmYk2OHTqp5QLi@7ElyK1T-cF^iDVkF)@1auorGbJ#T!4L|ua$qkn?m>&3+ShT*YE zZ+BH!*UYqw&dO#5t6IelZSgfM5@X^@J}2YJxc`|y_Rog{6g6{Rh^DT&qB8N8PTy&4 zDXNMC#h$eEbcibF{YDy$#cs~TVwiiLr7t(xYc^Aj2A}LBeVFDy!cKl>`O~+r@&CHL zvqU_ze2HeLPdr*+Jiy!+EgpPmsZTvx2;-@Y(@+#P*W883MBVD=3+()Q8u7C!F$D<)RH5{u7{g8PCwlRa`C7|)ghzk5xw Z19pi9ejd0^;PJZFDeMRCPq(;G`~%_z9&`Wz literal 596 zcmY+A&r3p45QQh7PfaT|qlh51_Tr)>h}yJx8+TEyg?kU?Q!XAaGqyD;1uk7{siwgMwZMQbxC#w=xbqLN+{wR@BYus7yNUgB!v+2a4@nrv diff --git a/gio/zblit.vert.0.dxbc b/gio/zblit.vert.0.dxbc index 5ad9601ff05e52b311afe25c7e871d05c6bb7447..4bf7b8b5ea0fd437fc1830a119929cac21670aa1 100644 GIT binary patch delta 488 zcmZ3$xq!>lCBn%$Rq5oTC0YC#y~-9-?|)))U}RumP+(hNkBm)DBTb}~hAePCNjOwhZ3=GUp zlOq|GgxH)E1i%tp4G;y)lS>)j^Kt>jV3xB^E@ZN2WSzW`Nt-cb@?9orRvn;}&E!TV z@yR00BK1HgFvI|{0}#W&9w-B3HqdPh7ohwHKpG^5F8&oLrhrA93uu!8P#k0j$Q&7{ zqvDft@{_aUONtWnCigQtD?<7C1&PU-C6x@TSFZ;85abGL h40r|(APxXx7yyZZ05cCn9HtW{&cY20$jOB)`T!FAO3(lR delta 328 zcmZ3$wSd#pCBn%$m_b1EZ8y_7{>68j4@-TW$;iOKuz-bufelDo0I>{EAcl#7;RX=@ zVP;_P0LnS$=ULtX%7HKg)4%^KCVI+?GBbd*LIF@Pkb!}fWn!&4D+|Mg1uPSHMym51 zU||qh@c%ypL$HTSkOfe=15l42P)j5O1B+Xq0$4NiWLHM@$rX&!lUFmov52Gi=*lT%m%7y~9}vM8|d07GH&M;3hmK%_ix diff --git a/gio/zblit.vert.0.glsl100es b/gio/zblit.vert.0.glsl100es index 61dee04..908f4e5 100644 --- a/gio/zblit.vert.0.glsl100es +++ b/gio/zblit.vert.0.glsl100es @@ -11,6 +11,7 @@ struct Block vec4 transform; vec4 uvTransformR1; vec4 uvTransformR2; + float opacity; }; uniform Block _block; @@ -18,6 +19,7 @@ uniform Block _block; attribute vec2 pos; varying vec2 vUV; attribute vec2 uv; +varying float opacity; vec3 transform3x2(m3x2 t, vec3 v) { @@ -33,5 +35,6 @@ void main() m3x2 param_2 = m3x2(_block.uvTransformR1.xyz, _block.uvTransformR2.xyz); vec3 param_3 = vec3(uv, 1.0); vUV = transform3x2(param_2, param_3).xy; + opacity = _block.opacity; } diff --git a/gio/zblit.vert.0.glsl150 b/gio/zblit.vert.0.glsl150 index eba9f1a..ffb2070 100644 --- a/gio/zblit.vert.0.glsl150 +++ b/gio/zblit.vert.0.glsl150 @@ -11,6 +11,7 @@ struct Block vec4 transform; vec4 uvTransformR1; vec4 uvTransformR2; + float opacity; }; uniform Block _block; @@ -18,6 +19,7 @@ uniform Block _block; in vec2 pos; out vec2 vUV; in vec2 uv; +out float opacity; vec3 transform3x2(m3x2 t, vec3 v) { @@ -33,5 +35,6 @@ void main() m3x2 param_2 = m3x2(_block.uvTransformR1.xyz, _block.uvTransformR2.xyz); vec3 param_3 = vec3(uv, 1.0); vUV = transform3x2(param_2, param_3).xy; + opacity = _block.opacity; } diff --git a/gio/zblit.vert.0.metallibios b/gio/zblit.vert.0.metallibios index 2450ec9455392171d0fc3cd4457f84b6f069b002..348facefa60c6a091e0d532f4efb58477f68f9e4 100644 GIT binary patch delta 1546 zcmYjRdr%W+5Wj>Y1Wd;8Xt*R`4~57}dW5$+OhPnJ12$lIbik4{1Yv|g6MPiQBqW5v zHdqiN0dcA*DQK}MisFNkfDFVy2`UW{Ggw2U6sBrt=pW3qy-=s)-h6xCw~ya`x3{|v z|51uh20uLo17OkTKN=-8`y^wBH#KK%4@vC__m;q1>o;c)m+^F?y=O@EiiB-^`t69D{!QVM(69z+0uS1m!9atzS_EoL2qRTx_| zZZL+{((4AN=fwaccr2n}0!Q&ovo}1!Jk_jk@S)4|16V9I344YGvO`DlFGy4lq+kGD zB}CBdtzdcGNy74=J)}AzXrOSQ4i?CSF#SaEFhYX>5APH1EQITo_jEghl(J=D|~o z;i=_|o^uf`Y~cx-O!cwQ?=1b55B=EM-d2y?wMFu54rfHOxAjZd^Kk-=J>nvMe@xa$97zC(dy%aZkuD3CGstWKQbH zqGol|a(Pr^)aqm-4+ZruJTo)M(^XEy%9jcy zvf>J9c~*4U@=CYEIPWy0slQybk*~Um^EH-5gSKX}>o@HiFEpfQ%dYj#N2-W*FA;Z_ zY`vZPI6@ROx)wjcdCAqRmY0<)7x2DyuiD_m5zrtHqT}~Rvnn;7DcE#Uhe){q`-0n1 zovFT-pk!DPU2P?frWB3{a3xJR8s114hl%mv!}?(>DS$=@&Lr#S1n{Z1$aMYItl(lB zGLPBfFyKOn-Qh&@a2DBVyP(5lx7AYeOhy5%J652IZQ2>{;`cYWJUJmz6?^;w(T7rG zqw-4yINC2Bf1xVKrKhu6|2=npO5NAl=$m7mo(KecR}G7YVm9L^d0ydIQJhegse zro=0~#HhyJmEVb{T=o(Z;!(x($aeXlrc0*RdQjf~GyVgtT!8kLFUX1{x!&k<6ayxO zBM(c`gy7vKlW-#47*)Z95jTVbDB%YAHo&hKNHYUwR?(+=iw*QdBY4kd!X}ulV3PCRQi`B6<8?r?ion`784YfxY9J^DuQYVxxX9-Md=MV@h#F~Z zsFerR!BAvbA3;W#R^Vg=!?24j;GPk_qujx`cb3J}VW^|%hQMfIIZ>p5Kmx?V(Agu}2$DH9XgPZS_PKe3i%jt85YSWI*pyJmcT N{f<2M&FJQR`WK7pb;SSx delta 1320 zcmYjReN0nV6u)gB@Yd2(2HrNcqSSD?0v7rS+S)8IN zP;8hh3aeG5GXtE?WpjL#2!%;#sRhbMD47!+W6Ur@j4{qc{DURidyYSLZtl4s=bqm= z=l*hUfV;wp%R8h}FaVQk|H(>BOWXnGa&*gwJCmI=;#)%X-d(TlSH8=Uq`cQznEti& z9M6Bg+1E$Bc-r(qR@Nb`r6ZxGk3)M*D`Ur_0r-a!g>qym2?3zXnZz(NYCRVi8w}=% z&*@;{49t0ph0C)gU=(H&4ml`qX3bD54OLfT*)4F#rP8$YZHc*N~`>@OF8ncf_kCx_$c*ZuSvwF~)B!zOtx(;O393 z5JcsebT|+=hc>tmAGS_z?y26NEN1(W23s^eg_k6?Jgw!SdXENIm6WT^oMjUz;5cE&2oVp=|d5Jq=YFvtIkD!Jw}? zYS35fjvduk&=3w9;&I5jvKD$ey!2>o`O(_I&(p4nj_x~6Uf(xFbgt79<=nT?IcZDV zsER31yQT@QCuHqZ3e)pul2uP0Pwx8Rmcv%;ioen=&EyR9d!>VY85ul-sZvudRnN>1 zw=b>Et<5bh!e_5fc;{UcVb>pLu6up=!UZ(8riLGLEw{#M*~qa7(nhbHC|oTRaJS0 z46Vbnv|f;9m*yWfpiK-+U6gp-Fng7Jxa)Vj=9RUPS7eADk37-dG6KD!)p^P-#u~x* zx-^SO7qidpj%z35WwIez@nvbRIAbuC748`T2_aI*=_@^e9b52V509LtBNi&!WO89)%0qtIWKP^}*UpL1(78;xx# zJPBwB^633nL68Sfi2R#V+rtKcL<4VAaKMd(Z3TD;SJuiCik@*xv5Vsk;D8Mw1=Awv zLWWga0w=-jC~ms1u`a0r$6nWW!veM)tuJYA^@*oM@=b92Bxluy>i~j=n3j4SK diff --git a/gio/zblit.vert.0.metallibiossimulator b/gio/zblit.vert.0.metallibiossimulator index 6b4960b491a6aa72119530f567dfbaecddea114d..f0edc06afe84a4649558aacf19631a91140bde8c 100644 GIT binary patch delta 1283 zcmXw2eN0nV6ux#^aey-Id+f9Ib2yZ4-X za_&99$$GNWDlHXy2*3aV^U{+XN?Q-RB%$i1%DwMB{b%Osq&;Z+;O{T$Ui9~#INJJr z?WrfH4Xy*%JM{Y3OePB%I+__8UXWZvb3tM^#1j=mpdbhpWj@0 zH}vbPuvx;Zp*(n@h&MwH2!y|c{)J#}l)oaPpe+8Lh^pAC1yKy9gACY>F|kzYI@1$6 zxj!x6TPJ7P00H;0h(UD?dqBucB&Pu_Jk^EZwohW1i39H3z{ z2PIT92__dZ#4I><^-;HyK|nYGeGYB-A@1}kmJSDkOHHQ9RE_Psajqs8e5^?v8xOI= zMpUaFi;zi6Iy#5eVTW{;o(#0cSWea2+ubeBHeQ1*A&WIMrE0Z%>K#q?<=P^eE?OZ_ zE3~`^JGST@x4m8Ea5lCT6*M`V^&Y3IzOlvA!7md3?zPnkw+ll1XE6nKKPo#i3O5WVAH~iQec}kQ3hqDF?zt~LbXT~7fE{|S&SiU4BAW^%rS!0A`>`zP?hv; z%u4kY<7F{j)SCD%m#9@WGh3RiX#Yj}4*rqUd`LRrJE8XCt3?5HCx=#FitB?D zaeeC!x`RVgbe%@@@JTd7HV_$q43Vc;@{BJJjgc|>Q6%Tj2yT$g`4*=qy5tkPgfW;k z;ww#j-?}X`d&ZYF<6HR*c05bSo-DKaS2Q$+ce-2lC{8yPx{Df<)*i_!Z59=;33T7w ze)gua`%J96t#4M+CNAgQ7Yg|!<$K&&O0M(R=&iXo?vCD{{%Lf2>Z@O-=6<~O{e6@8 z;q1xtx{^;WTv|P%`~2d$;x$)>i!WWSLQ4ijudGq3E2qcKR`i_3oqbnRcxlo$uT7}# zLWETl@mauJ6PV)Ww!%bEiHUBObT#yj%Q%LjMYIX{sr_CBNN)mVF%V;|WdAn<5Vh*| zOCHd-0Y_mEzXrio!r${#FCg%k1|Um_nYVGWw<;Nln_%h>0N#4tQnN}gJo!$ix3#Us z<@DIwJXB+IeS1wytIJ`h426Z1MbEMek+Q=Sa|3}I@-cHbmk3Ag_6OiZXCa=GKQBCTUej3_VNHAlp?^SbRgKj><*4p@`f-pNXsC$m-}0w3YFx?&0+u z>Jp4j+}7LS#-ZZGPCW2eHz}WwvYWu%_;y+#O-s@L47bVF{bR#6}Q8f5Jj(>bjPj6XG=zWETa1Km$!Ok+%<=<9&E8l*Avy6{*<*yI4S6 c;-}Z~ckpUxFTYG8Pnd72O%mmTm)kGZe|`;@hyVZp delta 992 zcmX|9ZA@EL7(Vy*a(ilT*)0~hEfsDl-AKlk%e@Vbfvly_ItyDNOd%mzO8~Qk!LTgE zkENe;;JUebX#^V+*kUvq%?2|VHnlBKu$BtMm1!sza*Ne+-#N+FpmKc%k|3 zr@{Nrp!Eb_g_NTyl(!)Rhr#vz#>GMfB`%Ycc>F@R672c zUzRKMP=m|i45{@u_EQd!0OVyo$yfmH#HN`s8VWsJfMK*?&Vu<7vk15aJBFO4*PEJo zfY8DY3UDvsp3Cbf09`pnEPySYB$e`(O99DlOB^%x=xnf=L2dTDcEg+o{|nK_b4Bk! z1$s8H$827ev%TLoq|N~FT&beOf^QTklMzZ<@v?8a9)|R-BZat7&v(I!QjTTm%9DK~ zj)DHZeOxueRPX25+I^!Z278A_oqPyh;g3pwb!lOM@kR(OB&xj;g%*m1jMBoSkkK4r zC;d^v!z|Kx4}){0j~a_oNs{ESWx`YK8>Yu+8BWo4i2_|Cz3;HMRUn%i#X| zYbPgY*~KTUywf3d)_o+c+xuvCFCVtP>MYUOeBs#U-R^j1E4!Iae38liu$j4auh6Xg z&Mn)@PF&U37T;iN7ucI^XdOQ#?Q$IwZt_XYSVan}Lcmf#_}~IqFR=peHOxUDSh2xm zr-+1DKZrvEiTyr=xnl$vSGsHA;kS0HIN*<~a{4Y1R{;_;{$1?8COnUkT*{3GVPeDC zMki>K+fdZGb7+;R3`&rPyIAakeub?6-Zd80`037v78bWMJ*S`s7X2H%6fF->>PF~2 z>#FFxN;rvi8g~*=dyZ^)m^gk8SB%YmMdD>Dn=o3W?9Hf6k&mOaY37U;KSz4)cgiGc zET%RUUysthjq&LJr-+T!D-7mjwzGMW0aF%}E5R@gfJku4=9A@q@FpLUX%GoNFVo6P e1hq^+F7gB%dz*Gfg(~ugml4WDb*w~gCUCXw3lJm%a{_l}5Imd#m zqKu4er5vpF1N?x0$7(a&K}c%f`$=TyUJN zaiV6wLXnL$cZW8Qgn0q;X^fd*0C?>ka?G(3MFoKMmME|U1cuLns2|8|=_j$2IRaps z;>T^00-sW(^9@?*5f$v8oktEXCU-f43@bTu0Z@Ygz+YZWI7tb&?d*wxuk!8ok;JhmW0ugd zp|Ufv;FiCwA3TU-=8LgtG4z5(p_}#BsD0O(I8C&fua)JTpBHF_YzSgIpDQ4U-0!q(-_ zXi*k+{K}=c77RbhtU9+B$DNy@irdd<9BsUbQ$cxXDSW?my?D&kk{_ABNlQ$`o z5q+GCMAF&>H{KfW$MwR;JfzzfC9!yD>Jz^>u$E zOuVk=r+ikVDc4lu)tbUswc2Z5t<&NKn&Jv=p{7!;-WlOu@fcNR*C`qzt``V#SDI;2 zX+l&3!%VpZ+Ysfssdrrl*>=$Zfv8X#<8_!mcz1qKY2NP>&$-<3QOA=c<4sN6e&Cb@USM&v0s6FWe+^uu@~o-FzX8V-X+JsWn=X2}i~ft0{=0+z+zojg^rt%d1~;8z zWCSJKh}02+*+-ICh-BBar3)D{U`ewCa~YG&PN(!uCy!5C9Ehx8t7yZ-2th?IFO=_Zk^3_Q=s688})J~+c5)E;p-EXK#sTR^M zW#HN{7#QZKmwR9DcCsuU_U<9xDZCwCD{U`;p{CWGdTvt;0NVNOU>A=hJvIoEW$q1)+ZZ)&h!!uSa;X1}Uv4Z>9^b7d09fgq*U>3ilvAbu1M^27PKvHg<^|RHgJp<+r`&HYf#V$E{k)f z$b$~0vN8&^iVH9?S>`q!5Mkm5lqq(VNjJ12Yy1J7e~2+=!6jzdUYXlYa__nMPQLFu z=OlL?^Pos!i9VNBM+bE9Po%UWuhZbxVo_T6pHhTS<-y=gR)5!qEl(r(kx!qV-2KAu z<{J0J1H+eZYPBV3YY(S&fJ+gAdB~$g0REyPS2G&nvjG@xb^XmWj7~$_`WU!6 zUk3aTUE)%MQs^#Pc~oS1eEtU{MGo;<2-E`$8glKZ1q1-xD~BaIz^Y|-OPX+q;>cVQ zi2(E?%zZS60sv^aTXbBce)g<597AGo#*1DUL-cM}f>3vfsj;R>=tX#3DHK=CjAK&u z11JC?DyK5^aQg-6fModVVfn>x_$+}KluMqgzkNF#P|pVLkB8L{0`t*OWKM0j5`@)k zuc%QMQ3c0%I2hReAGZBrXl^p{FuKhNHA^N4W|UxY3T^u>RT_66!PFA0J(kLv^zyyc z?^agX(kpCx_SRI_?x?7&wOFfcnuZ0O+adfdW9d4p^HOQl%E{6_nc-+ZT6#Om5nd|I z$}=W+ntaBSzB1ojXBqY@I?FAaHG5IhP1sU~HuhZ^4!2*K zZohNr;>`5e%=Es`PpoazSPt@P$t{)?$|+g+{?g{oc*D{H=X$Bu?^;~vdc&!w916U1 zH#<#66Bd8r)i3zLka+5`_*(M1WZzl2f;)76SpMz6h7GCqs=W@&ez|!n{9Sh>8oE!d z$0=Gdm|ZZK*PPj4JiV|cW@0r6bq42?_9)As)4d`toN8RG7Q50HuP&~=dh87Q<4Bp$ z(5ZU7F)CRJ-gjjv!k~116$sBXx=;@7@y3KEhRX8W#-uQq3MOO_CtNc zzKhbHwiUG}WCz=Jm%p`Bm&T1|?OYPx5I*leJ=L-`Jy<>Upzy20t@ftNZ1xztV9-s| zNSHG5%r=&OJRT07EosIiZAFm6LAc}C9TMW`=5m(SI6+|K0-GZzj;1A{)&rbOW3MgA zi58sya0QPoT}g~}WTD78hAOO44dtjt7>ZvQDi6u?GE@zIMbPiT(Vnx+EJ736rgjGPET`l~gA!HYs z3r*sQT6Q8|MCPMXQNt*^*V4jI4G=ASbSidD5F>Yf4%O9XL|~Q~E26X}M-xefvpbi} rajp@N2qkeBhok5KSjocJ57{xXZnB#ig0A#d<0SA_LtQwdwP)4ek9zOx diff --git a/gio/zblit.vert.0.spirv b/gio/zblit.vert.0.spirv index 4f762bb753de992453071dddac2c8917efb0dbfa..e35fd2d18379e7fca9bc0e0909c9cfa8a595265e 100644 GIT binary patch delta 367 zcmX@W^MjX{nMs+Qfq{{Mn}LI&W+JaCBiBS{MaI~PiI;`h7+4v!7#J9sfjGY)F*&oO zaS=~V@CxHpeM#j9!iEP5M zML>Z-APxuO00uS&pydpuK%57}MUyA839Ep3APfSGKy1gr%-{v2qk;G@P{aa=0WrKD ASpWb4 -- 2.45.2