From fe54b39afdd08ece2a68c61be6e78c7b7cc8bee7 Mon Sep 17 00:00:00 2001 From: Jeeves Date: Thu, 12 Jun 2025 06:59:22 -0600 Subject: [PATCH] improve game icon --- .gitignore | 1 + icon-normal-3.png | Bin 0 -> 4932 bytes src/main.zig | 13 ++++++------- src/shaders/icon.fs | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) create mode 100644 icon-normal-3.png diff --git a/.gitignore b/.gitignore index 8454e44..f2b3048 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ zig-out/ /docgen_tmp/ # Temporary project-specific things +qgl/ vsh/ dumped/ menu/ diff --git a/icon-normal-3.png b/icon-normal-3.png new file mode 100644 index 0000000000000000000000000000000000000000..70b85793e84ab2c16942ddf568e1c6368a01d95e GIT binary patch literal 4932 zcmeAS@N?(olHy`uVBq!ia0y~yV2EH~V6fm|V_;yYOtjBqU|?*?baoE#baqxKD9TUE z%t>Wn(3n^|(bnUzgGAf?Wm(-JGH(&1$@!UEPZx zL=}8U-}vgmqcy9WS1WM*YuLf<*QFQqsN8d*Yfrh%_Ye2J@4HjW&e6+tdCj^=hs(Lf zbA38)-dQD4<;t&Qa#&*G%+xcUL0tPDzm{X%cmHVRwEDaA7yF-$=Hci#viXcb?jznu zFMV%6*yAsgsv48wVKrjp7I&|NI9|WjhADT(?W(l^Dmk|ZD@>MP=5Ax z^lO>r{0?nZQ+F})@ilH#N?reZkM*6K+v~HV{{CikUsyDC?J@Q<3=9lxN#5=*4F4Gz z7#NJzYd$kDFmM)lL>4nJa0`PlBg3pY5)2Fs>?NMQuIw+_czBf6Vz)2kVqg$-^mK6y zskrrYPHvCN@z`VYtKQFhd3WZ`yPsqAX8-6heUkdHd$>&p02?#dG)0e7Wx5*~|X6U)SGC-f`mFzOUB3AHUA_6}%@T z@@&P%Bt3;Pjf8!|s~-KFb!r}$%by#+qv!vYk8yolo4x<%s{>c_cylX)Gp$O&wQ_d+@1N7- z%nsQ9++V(b?L674B^&GRPIOBb+xnHQNu}wGbH||uYtDD95)6Dy;(Sg|CRjD|C9?$b zZ*^n;nkKz92`L^#A1m4QBp=BCKIdMybmp1*mk!T2S( zXVm*7wCUx-xctR8BaX#<=85_${=WKg^uHhcdQu+_+28-WZ05nQ{<3e*oMxUIuGp0> zxa9JLZDCpmPH&nlov?ko*U2-X3yL|WIUp1pj)jg&(WMhH0yk84b+7d`Z@!w@GMBCCpGZj5YL+;p~jG0*Bil0hpS@t`=zVLm%z56rMy!ubfn|uGXrSp}qpKpJ~ zt|zTV_Rt!}$SaC_*cR`7Fm3MLg=uk9wk>22*ve9*)s}H&K?cKeql&Nt2M;wr2w?iA z@Pli^`Uh186-+i3GAuTl7TFIb3)Jl8ySmz0)%1i;i^Q!N;`TY{nxGWSdnLl%06m`HEa}1gOG3;TP!?Jl3%j=&k<+olkDotcvJYudN?d#1Om{vTc~%qUh_Qar=|?A6Ow zJ-mu@8Pz%4E*(A=|0wQ4=J)FvFD~A2{`>s!k#8?UbNH(zl=+erjy>Gl(&~85NhMOY zvtx7R;6o{iiNfm5tg-*;&lZr~0$rMgo0?fQ$StFxRkMdyid zN$srZ0@4@$Fv?BG0xVR(bLyE*>V1h+ML_oYc`qixeHy( zesb@?uLSvqy_T!?wtdM8-g{)7RO35_YQt0e8m!mPF)I|{+~IZf-0Ww+oWIN55ia<0 z;r*VtD&dSv0xH@E#It$BCElnu?)ke*(uPIG^GTfIcQ%)2Kjt;GUgtiQt+8HV)lI3{ z6(4qV9rR{ji_KEbA!nf!P%ix=zjB@Z`VRr_%*{*0lk)T}FQ zwmiZtw+laXd*qg^ZM5~Dw1RDyVuE*7V)%hcUjm)kxpP(CsI%zGB60)y|2H ze7|n|)JaNAZrDAC^U;~`H z?(Kh7-Y?AcOxlsVz)R?ba&nD9WFGbzTV((=%IR-24V$Ct{dv@i8m z3JbmZkQ^=ND_`JZzi7+3G6(<=2U>&jmh-G7mI_g?8`I z?>}H>wvQ(_$%H$fsV(k?mFvC{~ESC@r2VZnOzci}1xS*8RvSeS4*h376=C6;}^P3!Vw#jcS>2 z$H5@1ZpPd2ty_-PwHfc4Bf_O2uyQfOzu;+sPWmgf96flHZ*4eX=h<|FbGl&TqB-$e%N|y)+FO|VF?QP4#C76k4BSE7X%?<(jQavp(#37^ zHZQEIZM$$RBQ;k>N@w9bz4}i_Ht+xUQF~%h|Nfun>(@?8>;G}5S(;7H(&BkS&)fX_ zw`OR|@s*@bx*_wT!qhcRBU|9G=BGM8vtv>xnkP0dkh!I{LNxZw673y&@iBY+{(Sf{ zb(WjXYw>+sQqJ3Kp0rLu@7l!OEa#pp6kR>1v}*z9(;IldMtQ`q+CFdX;;CzrtYYi@ZWi~) zygd0~X8n&J*Q;KBy1#X@>6guVM$(6O@!Xr%pn^*Tt!mHkdF)Oo|FnaSt=J z*pS{PkuVRf}{daik<^2utAI}CkX z6{|K`UUVtCWth88L0sjbn{Lx&D<$`=1J(~Wom3MkkiM3X)3b6*ci5h;l_ft>sDAI@h?r{#SM3u1_boR*3F(6wj19yh~)Cm&xzVU1$HEJDgg>&8ejNyT0oD>dJ~= z@0xjnyo5q|o8C@TIQCmFfGe;DBKfN!1^z`}lM^`Ut zbs2^kGCp~`*^Qksnzzj56Gytr^QH2)nD5U>@mY08cjdw7($@^;Zn^ks{eo$_wO>r* z>p$GN%J$=p@ch$kH$TO`y~nkyP}=jFb0T|z-Tf_HoqsEem-|Q7tj}qBqNulL#`F+T z4fp>F`9eEPwy^O#id|Z2;3^;N$!@$i)a21q^}Ii~bu_NiO&vBV|>lJM*MS7#l?_$&J}U3#%7jxve=H*GCmBNq2y-r zV$s!j*VWsv@NX(Ek9n*5O()*!>dUM7D^C{O>tG1dC{Q~n(VXx!r=aF)Z`lD>27jJD zi#5+b2>9yh_Hi6n;F$W~FG5=W&{C#D=@(p^qHeh^-rqIztLhc@=kInsoX!8|K^FU; zN89CI@m(t3zW(d9oZb7oDlWLj9Vv+ZQ?V({2qoGtTUt|eUq%ai?60Q z?ch13W)LYJSTAaPSJmXY_KV2KEI zQ`qKQ;1KydEu_Jc`x#e3x?-&T+viCP*+Lal4|R(iN!c2Fum6hI>Y_(%cVsqsBz!8p z^4N6Ct>+is%z4?~ym|Y-6Wi_OevrQqBJAWkYABE05BrgnP`F8o7DT zsdjK09NRYS|H;Ncwr9o#)1AaPL(CZTFYPl}Uwt@e!qxZlicGI~I!|s{v1i6lqq>9B z?{gGe?(kLo#A5XNpo;93>){upqL1YK?wQ*azw0Zn|NZ~^JKUn5pDBOz?2h!l#yNM@ zWVWa{@PwzFXs%=r*r|2+L|9Cb!F0zPj3pPHXKcIJ6JD^OoG9fJJWCXhX4K1 zX%K2J6~*|L;i1ir%?aBWa@gXQBvf+EJ367+F62^cWd7oNagNEAf@`mC&b(6pa@+ih zZ~xXmkjmFi|Nr$(%N|wTZ?DB)w2^$>6X{#ez)4Ye94k|uh=6v7Re~}9Q5J!k>Jo{V7OE55$%vF`9;A| z;=90C>kc+;|CdQWpUj^B|Ihx1qL=>t-Ea5VKi~G#!N-O59}MDO?`>Wrb|{0(ZjG}f zv!B5!xA*0o7*H>&B*-Se_lf3EayzAvYHt{_aqrS6pY zj90v!hw<2M(Z^ly+01Hh{dn@x`d9pmNB;wN+x~K}eXw literal 0 HcmV?d00001 diff --git a/src/main.zig b/src/main.zig index e32b3e9..e6ac84a 100644 --- a/src/main.zig +++ b/src/main.zig @@ -21,8 +21,7 @@ pub fn main() !void { defer crossmenu.deinit(); const game_column = try crossmenu.appendColumn(.{ - .icon = raylib.LoadTexture("icon-mask.png"), - .normal = raylib.LoadTexture("icon-normal-2.png"), + .icon = raylib.LoadTexture("icon-normal-3.png"), .title = "Game", }); @@ -273,18 +272,18 @@ pub const Column = struct { pub const Options = struct { icon: raylib.Texture2D, - normal: ?raylib.Texture2D = null, title: []const u8, }; pub fn init(allocator: Allocator, options: Options) Column { raylib.SetTextureFilter(options.icon, raylib.TEXTURE_FILTER_BILINEAR); + raylib.SetTextureWrap(options.icon, raylib.TEXTURE_WRAP_CLAMP); return .{ .items = .init(allocator), .icon = .{ .texture = options.icon, - .normal = options.normal, + .is_normal_map = true, }, .title = .{ .string = options.title, @@ -627,7 +626,8 @@ pub const BoundingBox = struct { pub const Image = struct { box: BoundingBox = undefined, texture: raylib.Texture2D, - normal: ?raylib.Texture2D = null, + // normal: ?raylib.Texture2D = null, + is_normal_map: bool = false, mode: Mode = .fit, align_h: Align = .center, @@ -664,8 +664,7 @@ pub const Image = struct { raylib.MAROON, ); } else { - if (self.normal) |n| { - raylib.SetShaderValueTexture(icon_shader, raylib.GetShaderLocation(icon_shader, "textureNormal"), n); + if (self.is_normal_map) { raylib.BeginShaderMode(icon_shader); defer raylib.EndShaderMode(); raylib.DrawTextureEx(self.texture, position, 0, scale, raylib.WHITE); diff --git a/src/shaders/icon.fs b/src/shaders/icon.fs index a83e8fd..693a8dd 100644 --- a/src/shaders/icon.fs +++ b/src/shaders/icon.fs @@ -4,7 +4,7 @@ in vec2 fragTexCoord; in vec4 fragColor; uniform sampler2D texture0; -uniform sampler2D textureNormal; +// uniform sampler2D textureNormal; uniform vec3 lightDir; uniform vec4 lightColor; @@ -15,7 +15,7 @@ out vec4 finalColor; void main() { float d = length(lightDir); - vec3 n = normalize(texture(textureNormal, fragTexCoord).xyz); + vec3 n = normalize(texture(texture0, fragTexCoord).xyz); vec3 l = normalize(lightDir); vec3 diffuse = lightColor.rgb * lightColor.a * max(dot(n, l), 0.0); @@ -25,5 +25,5 @@ void main() { vec3 final = diffuse.rgb * intensity; - finalColor = vec4(final, texture(texture0, fragTexCoord).a * 0.93); + finalColor = vec4(final, texture(texture0, fragTexCoord).a); }