From 1fdcc41801a456dcd423102d85d5f68d6ddea213 Mon Sep 17 00:00:00 2001 From: Gryfenfer Date: Sat, 21 Jan 2023 12:13:59 +0100 Subject: [PATCH] start menu --- CMakeLists.txt | 1 + assets/img/start.png | Bin 0 -> 14877 bytes src/main.c | 39 +++++++++++++++++++++------------------ src/menu.c | 43 +++++++++++++++++++++++++++++++++++++++++++ src/menu.h | 10 ++++++++++ src/text.c | 5 +++-- 6 files changed, 78 insertions(+), 20 deletions(-) create mode 100644 assets/img/start.png create mode 100644 src/menu.c create mode 100644 src/menu.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 01ac60f..1550d40 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,6 +23,7 @@ set(SRC src/main.c src/renderer.c src/text.c + src/menu.c ) # add the executable diff --git a/assets/img/start.png b/assets/img/start.png new file mode 100644 index 0000000000000000000000000000000000000000..95500e8fcbb4866e479584465882e48eed1b7c29 GIT binary patch literal 14877 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�?;9NTNPlET3_KqT@v z225-V#!#JbZ%B$Ic-y`*anG&wvAnzd zC7*N~Bz!j4_7xZzlzTXfcyBCC_j%4W@_!jmIL)T#wdOou&1{aoTHdP^6W~`y*92)l z=5s5zG$W6xkNJv7pvlU3=adJ4H5uw$?zv#Ggqnu#QrEfZIxc)qs?2f?i`_6=?5IcYlW%ln$+@z`zMz!8 zb*R`swzgI)=hU+!r<^BKlOF+XsVlVY)fJ#A84x`fC*|My<lhxsF0$$OdgRR|ToItt+tNOjEAIBCyE%2M+;76h7P zQ~ZkPL_Z&?Un3XSDg&3?E$2_)Xmu@ZVnm8g0}{&xcovhBycAl=*5>;1qhw8e{n+7Y z!m1G}HpD!Wj!eBsIFfv1DL8^$y!`x{bGKCH*ti7*nr6!uiO+2t*d$$kA|BBZ=u=?Z z`{gvphtaDpnc6uCAE%swFp)cROs0nKss$WLOI>Xh?f1&lByKUvj%-~&yUbvyDC}#Q z(*49_fBYM~qRHls{Wtd%IgHeo?MvjKj>{|N%EXA+)cdS`o0DJpH(?04Cnt zU3>O1TI*o9DgE2EWwxE!@n@d>pb+NZ4IMMHBoEO64{RG$4y%#THev5x&$)8v76R}| zJkGx6)Lw%QfLbmi0@~@@%J#Wb-_<5$zj2P+F()+neT9u9j#|h;UAM?3|>5 zVpwl1O^|{4<*xR53Uq&Qo}xAKh~zi;qSiq9Z8gQq!;_0re@w?C^nzkNa2q^emJBZ> z5DzbJ9z^&NuU6Ji#J;B^^la-qR%damQulBY8s#ic$}t(hrdh6--Y&3os5xbB>e}n9 zwbF7|!0c`$e=O?HkiwhnE&7v;c~T;vtcS z9u_N0t;*&Ay>%T~1~E2JMA9=dej@yW%J67$tf`6Jb2`VeKX&USv*GPRLsyaPa>$)L zc@A$OPwFx$@BRDt(@>2YfZgW8*Q^ot!xQJC_aSF~psxd2qv(W-x@2bVq&z&~=;1q+ zi?}&cbSzgo^z6(aH|tPsK>;5b89``~J2*HvO*Y3j-gguLYqkjU$4rO9yHV@@eCfb&aL|EFfRDwu-sZ#iR z9}CLVzMV|v$5UP`&2$&3_J4KoWcL`4w=}pfjDVh zG2!98+UuI`{0R6=c`h)ZGkOJ|M%Py-4a(cn%Y$s@19p3m~ zK;Y8Kdd^idf5DMcsheY%CZOb2LcQpa6E^ysS`|6G>L}wAt-{`aZK73!upM^(*74dYV4-C0!k=N2Lx3#)cBUq(kK%JY0;Jy>X%aP|a|wE;u2EMzLy! zr+c*l7qjU|BvkI4cFNrY$O)p=<(MmGcS2JYDvX|hJ~3*aJboFW5J@1MN?9dznCTQ0 zs8OmId{l<64SR3Hle$i7;Y@pe^khGj11zqLZPl;va>x0qOd4E8RT(rvn4?Eg zuZvzLrtU(+mUEX+mZ$MD9Iu*(D$bPl?1$eF91=Pr9P8fy?XFlB1OGE~UttZ%}zXb~G-!#!O< z0Ap@Q!#*r_#nZ7#2-Ss}F3^3o9FmxsoNfaYR!d(^tk316%!gq0XHfMXGtbaFp+L@t8<<^J&@ z+>A^=7qik#0(nn5vm(A>(JC{Va;OQj?M2)mb(C92%kFPiFZ{i65>O@x-&QfYYp;r~ zZnPHCVHZ?Gw2Zuk*|D4Ru`|dl0luBJJb|5c#0MgZV_pi?WGn|r^7Hl)(aLqje7pV% zP0Zr=CPND20Cwjgk7dP$KfDkVrQ}2tJpE?#V#vCyPE`(4e!p$ zj}}n9U_I%p6c(yet%)*N8mu4xZh`$41In0gebuH*=w&Wldii|l=iBu1oKip<-IFF2 zN4^YlY!1+hTiG`Xlg{J(z3c)ETVv=(DGl`#$@sY8woO#l5HX@e;wELPc#TSIv%G!^ z)-o>LySSX?UXBOZ9NVxOS-F{X#^jE@y*<%AwN9~raYpOKKDs*_R)7Bd{^n@-UZu5x zlN}zvj9)G#h+@F>+@~u)M0BzRWJ|>2dnt2SNRq`U6+}phz6ra!bItA=&gcSSj$0w& zRXiGPNS&E!NjN%t1L0E;I-bauqp=g)D-` zH(HEdRIXJEXs&M|IS+0GQ3<;R!8d`u6Yn;#uVz9wkgz6I)RQJ%* z|J>Q>I)OTbb*!-c3JkuBf^L5XOc(#a5s)&EfvSGu6GNJ7Hk!CK zhTTf8UtKKutN21dKtKX`S_;WX#|~SA@fMBS+JtKSLCE5MxXr%9Cyzk+cY4v;Kc3v} z`p*F_vCF(qK_UwS2{$y0f#SmxW}}T%kszod+5OAg<>1kXcgK26rtXc3lw*(<3KkoD z#nb&WTA23)ur?5AN!zJo!D(^Xrr8r`6lD!zuB>PAQZD0)x_vzEe>)c z-3!}OY@hS+o1bYb2GTOLpF{xPO@U-3Q+XCk>F!r@AXG3ewQjco0Tu&ahV=u}?JPc+CwWeO{G34;i%;$X}6hA|ZQv<2$RL(Dwy|8Jq2OOa_kkSs4$(MBZ5! zK!3LTBp4Ayk;T!*yAlkvtWU1tRx8^gNyB-q{JgxpKP0r~qT5S>6tE-z%b;S$0!R=d zH$-|R&*jN*uTy&YkB=g&Dz_18tIK3wLw&t5z=B5M1h~UaV3}N>wp(hQk(|!{#u~nT*jD<+T2qut;llz^pO&S3mEDuyuK%C_&a+T=-Bhf6&|V0} z!7Wu))$qvd9uNrjK)3#;EEIsb)#1K<*FEGD14lNbS9-_4TZU8CR@I`lEa88tUtp<` zYf%Js_DsWvDIX)azgCuhR34n!m9$G66Dv$Sd^WF;KL}DS5NMiqj`2-CgD*mw1Vd_7 zC1TWIcIl>1jTMj#)!e$XyI3$5#=a_yH!4DM`#{Ym`b?Y4gq-F7t~M`|p^>gR5B8h1 zZRt#5?9>HPIosq^Bx$tK5x*3*uytdde+-Di!CYc{>7!-hm{twswD*w}@3q5CtJ~Y( zwpX@VxiFiI^)u9N3MbY7+s3K@_s>F{lE&7(CtL6GWmjZ75-NgHT zD$BnW)KZ)1)0Ba(APSwQ=uLITjCj``WRgvK-xQU$-t)&0li5$r=MGwyysxTy6v%!c z99u~wd?i4}=oOt<5?n3(?N`22BK(?ODPJG<95B???Mj(?+eA3-eDugPaQC3Cr)MJp zR>&&tk^*$=hRl+lt+SsWz(Eo3ZmSOYYs2Ca$C}7|_7Ipm^74f#$Q-C(8bb{ zn7Z6L(=g`nyXG-$tvxX9+MCPbyLpQ>jHvwpCAmDlK1d>wfd zNJ=o|9kS&TGp@^s&h|nTs~Y3Qw+0)~(y!aq3Q4W^JSpJB9Zka@J39Y$55sp5TH2YF zr!GIZhFWSn<)bZCE#Hd757vH2CpabvkcrLU%s%cba~HDflNzH^krxjB@du`dESjDJ z+gO77?t@7nGu#V6SY#bZ`?}!H^AIBCZ2W5TpMZr0hwgjl3CO*l|{ZVauyv5Qv;7o_PX|G zhO=D}+PmH(m&w`RmY-?~dX*>w%B@Y=;xg(Kly&t&4VVY!^Bow$$PQuIr!vcBfmWIb zhwUC1$U|?g5`U0qC({YRAPR2jyjYp(CN~KJcb9K2Gyoc#pZ8oy^qlJSYiD1(2q5PSeUP#CSup4=!W#OalT${|dMFio zbBJ}s&iJbQ5m@(S0)4KYvhM<(;{X^fpYbhc%D@s8@7{z>eFGk()Pxrt2uV#pfc9tG za{F&y_lC02nBEJvX4ggK-^8)VaB;^`MyEI^JWSx|rsX#3nB$nBtOwE`cDJpquC7MQ z28G)f)U?4Z$xF(lL(RLjg~-ZSFBvb@BD!?xKdMk&Es>-C`L8#3wIzw1HRPU^p9MvzAy} zXUPx*P1on$&Lo2&dCZ2Yp^ZOu$e@sC7B$=l!cJ<$VEFJcPh~d76Zb}KgGqPQ(Czn2 zo^Is%fd|CF#++8d)(>CLvFR46w!9{@oT@xx?TA1HQesJMGSe&Ww$>~EpknwS~~sDBqUfe-rl@x(sjFr6mZ3;Mu;pD^M;3Yf`Zr z#X<$K2m7H0JmfTL5rAS~gFvN}c`0SC5;Jjy51g=y)$+L!Yu6t8+KKFJ+@6s`0%e!Y zOW}}<5b}1vVpgVabt915DSr_UC30k(LNMO#T!2v{qUJS^IrIXRy-L*7Dn1)I@MdH44|Ej+_Llr{X2I7jE-X5M|$!+_LvTQF7fJWUd6< zf-j-z0oAJ0uYd#8Ag?K}x2Tdj6T8|5u}YVTZ9u}*v3O6XtJA^2?8nLs z3H(KYRb;dLu{YTiU<2zdO#~1Vg@C*mKv#aP(utLcxY`Xq=`H` z9IDLUsU}e5`c=kdTAMfhbj4DVz)ff){TuV2vEpi&cIByX)b)II^jw;?<4}-jhe!V< zfEO0qV$RtLiY;%INLgzzoGG4uEcC4r03ns|09xBURkR%XnV!5ho!Okw;XY=xy+JYo z{Hx3Q#t(hA{;idwX7Daht+AvohKP@TK!VhD_x%-8`AJVKC`hLr53lU9`qv$YzU#iF3+MREqrtjD&?A||jy!%h^u*aPV zxcU&{hMq%QbZGqHHx#r$Xzpk0Vi%!I)`I3^G1_Q}GzLQswIWZ`3M2K697;il;UB1H zihAB;?vYEn`L9$HZ;iCCpkzTEwH)BBxVS#(0`FQoxH7hAwc^6OnTe`g?Iw;uXu8b~l0O57qM$@}Il3G|O|aVW<C^U%RUoXU^qg~#x3e-7eV<76X{(La#Nod)Gp2bT}O z1hm={?9IH~++1tq#3R=XoJUg_F!}+dF}yKOS`v9xE-+W}2>SNqR0|nssR`?j!cxx9 zSyYLXr_NXL4!;A8p0jr&vGlU#j7)S~Q7kYNdsR$aC;O1W0S;0uS)*}!#-M9{T zS{AQLkA8Sfj}1XRrmlPu+nx_N=MEirLMzZVbJPn3y-=>!irjRlaFK|PlArF{V+pJ> z`Q=RVa@BZq;-YRXD6*dylwv=CYoDr%uY~TlHJAgEn>*cw)yi#e;skhofOD-S8QzHMA7To9l~t%TpwCu=cZ>9ZrM&#ONnUuSW11;Wc{A zh4;Er0anCpTfZ{2@d;PGCqq#uUm1*}wdN3?u)G-n8zyDxWp$X@I)IK*Ef+N2$ARi0 z!j7n8N=C*TU;wp{pC(n$_X?WThgni(@2jgbR<1YNB^Z>tNSsrb1Hw3z+rS?Pl;cPy5+Z0kI1P!J@oB0@WM#)=^qWy1Ll_W2n-CBO&-{d{(X#aH=?G4Jx zj0p(r0I0+@{H4>!^a`zCLy94h0DOf11fTX1yR!LPQeflH1L8ul)Qt6BA-m&n>iYVu z;G?{OM#Fd1rCj^YC36%_0DymoiY21X&~QDCCg2dZ0;d>6+3a37NnPznvjRnDt-rNH z07}1uxCkRHWtFdVp`oU9=^*6ZD?tajz+VC^%)V1lsx}w#+i#$BX7|zFfdLmQR)BKh zjW_VzwZNWwJ5hI3vIRP|)zB!m^mdPfWtJ(u*tgXRit>bL&l9<6fSPuRi*Zo*4R_Hx zqj4qse(%+4@Q>9pxdN!D*i5C~+2Br{hIk7?i<{wjvpzc9;BuvhTl7PVdA?e}N6-*U zb>{s?MBfI@@gO=yR%2~vpN#O7RTWsC?UiKrS^HfKqw}hOb)Z1SNi@Dfq!rGFsfJp>)>CNa$XMvC!5633NHc=N%}Nd1Hxj0% z#JyG?&0o2>a8lgCbQ)r(`P9ZOc^Zak?4iSyE-iE)3PdIvl0cUcC||k{%S$o*sRq?& z2vt1ry>Eh3X}O#S-4zn7g7@Io_Em!lTKw{w`>h^8|KLA|1l|CCqN2t0=^bbS zxgLjxOF^T7{ytqoC=n~RsdLQJ@>$@ki9_Dx!VpsUV7H&u@NxXw4PaH5U@#+P<<}3G zEh0gC8x82(klOt74T)`%&Piuzvep7MISM@)eXrk#jBdL;X@{=CT8(JMQ8dwrM(5TY zz)!M4`v3soPuy3KVN~feKb_Y!O1*(&L~~k*idkiq)ErFR3#jlK5i8g(jTy@8@#GB) z0}Dt)eXtJg0TVC8+-i!G9s-Ls_~^M?HvmGJdPVfD8de4a1!|xQw}DVT2f22=6KIwR z00tT;`vBHCOarE!X)T9H83QMuZ&OpQhFytZ~Ujfgw8|#c;iFexLN5#HHMZa%2PC) zdGEtzPGqSKHO;{kV=Q3x&gfjcKl^DQkC}O9HehC;`yhK0Z5BFoaJE?BsCT9|Ng^f$ z<17J*!4f>s7x;Yj`YvY})gekuWt@a=Y}wYv)I9itwRS#>F&Fvyv*yh??7ttKFCchd zqQ`9hL8C#S=M<_AeMCwe)QuQOiyfo{0G~sfSpz$*GDQ6ayUC6+i`C%=C(P$)QNwf{ zL9W$6X+DMIf)tEqNiLh_tcGwS+Z2v#th0qts6MdRA)tLh$Y13z`}2?X7bgoeRfW(p z@WiE^sUb9k1XXfpVive~mz;D5UqkM_Q;)}?^qxTc=!Q*QHv+Rz&di-@Q} zLtV2yCG$BU-h5wNW=^BACD>=tFRpX!I7!!FGF+nWI66w4d8qM;*%z72s0h6~;R zKc5kJ0`&fkp>pJm#d+31DzG3ZfN8+XD_{w9!Vp*j3|}>;s&Q4S$Vwx7iB~h@RdpaU zn)6M7DXkOy`X`~w9fW`v#(T~V8ZpqrRGk_e9+_rnQSMBeq46mg@hKR|wQRLMF^ zfRX^l<#({gFxmvr);UmScWga~j>pRMDJWe*=))jvO^}{O50k8fOHfNzY6dqOsPRjm zJJ;c$%8U|mEYK9+9;k$92LhF@2CcnbH81x+Q)A5_-jIEr2{4hg!SqVIUnn~;r{%wsmZ{G_iLz$h*ajk+2{ zlPI!0v7q~O;~M&5hKeFov^w%Q61ZpjHq?z-Nq+-R1QP{d(bJG-w5_ z5el5l0EjTmuFBl__v?Yo0$B@G=q4`02=~>OyVs8VyC6lJL_z&32DB{qv9I#`(QiT0 z9##i1*~4V626+_do$AG>Xh0Z72e}(^-TqY3Iu=TT!_IhU;GFJ7c>9_ybnoq9{I&*_ zPoC}|n5mUn$qC^;`9IeyOa#6KoqksEP~M;!UNo<}(~+wLeo*n*ji#Fu{Ul|r2&kGc zwElBiu^7`IZ^Zy-nT|b>>^Y8}EJ7ayCXf=|mo%L)`3(2Hgobs8)bJZ&vNY3AcOKsl zO^~4}Ri@n^5AFmB=L9XM?{LnJpdnHryV)tGYZ^TtSW&F@(Vb>Q!)~YqqqfY&{nyxc zrr#xhB`f2R8^?;q{6K`Dvy6u4Pm{`*PQ e|7X8E+h+KZ`A)>ky;BhZfx=Ct8(Fdsp8qei*=g4R literal 0 HcmV?d00001 diff --git a/src/main.c b/src/main.c index 93478f9..9ad5ff6 100644 --- a/src/main.c +++ b/src/main.c @@ -1,5 +1,6 @@ #include "renderer.h" #include "text.h" +#include "menu.h" #include #include #include @@ -15,12 +16,12 @@ int main(void) { } Mix_Music *music = Mix_LoadMUS("./assets/music/pet.mp3"); - if(Mix_PlayMusic(music, -1) != 0){ - printf("Music sound could not be played!\n" - "SDL_Error: %s\n", Mix_GetError()); - Mix_FreeMusic(music); - return 0; - } + // if(Mix_PlayMusic(music, -1) != 0){ + // printf("Music sound could not be played!\n" + // "SDL_Error: %s\n", Mix_GetError()); + // Mix_FreeMusic(music); + // return 0; + // } RenderObject_t text; SDL_Color white = {255, 255, 255, 255}; @@ -30,23 +31,25 @@ int main(void) { exit(1); } - SDL_Surface* img = IMG_Load("./assets/img/pp.png"); - - RenderObject_t duck = { - 0.2, - 0.2, - 0, - 0.50, - 0.50, - 0, - img - }; + // SDL_Surface* img = IMG_Load("./assets/img/pp.png"); + // RenderObject_t duck = { + // 0.2, + // 0.2, + // 0, + // 0.50, + // 0.50, + // 0, + // img + // }; + MonitorSize_t monitorSize = renderer_getMonitorSize(); + menu_render(monitorSize.width, monitorSize.height); renderer_renderObject(text); - renderer_renderObject(duck); + // renderer_renderObject(duck); while(1); Mix_FreeMusic(music); Mix_CloseAudio(); + menu_remove(); text_freeFontCache(); } diff --git a/src/menu.c b/src/menu.c new file mode 100644 index 0000000..25b636f --- /dev/null +++ b/src/menu.c @@ -0,0 +1,43 @@ +#include "menu.h" +#include + +static RenderId_t menuObjects[10]; +static unsigned menuObjectsSize = 0; + +int menu_render(int windowWidth, int windowHeight){ + SDL_Surface* buttonImageSurface = IMG_Load("./assets/img/start.png"); + if(buttonImageSurface == NULL){ + printf("cannot load"); + return -1; + } + float buttonScale = 0.3f; + // float buttonX = ((float)windowWidth - (float)buttonImageSurface->w) / (2.f * (float)buttonImageSurface->w); + // float buttonY = ((float)windowHeight - (float)buttonImageSurface->h) / (2.f * (float)buttonImageSurface->h); + float buttonX = 0.5f - buttonScale * (float)buttonImageSurface->w / (2.f * (float)windowWidth); + float buttonY = 0.5f - buttonScale * (float)buttonImageSurface->h / (2.f * (float)windowHeight); + printf("buttonImageSurface->w: %d\n", buttonImageSurface->w); + printf("buttonImageSurface->h: %d\n", buttonImageSurface->h); + printf("windowWidth: %d\n", windowWidth); + printf("buttonX: %f\n", buttonX); + + RenderObject_t buttonImage = { + buttonX, + buttonY, + 0, + buttonScale, + buttonScale, + 0, + buttonImageSurface + }; + menuObjects[menuObjectsSize] = renderer_renderObject(buttonImage); + ++menuObjectsSize; + return 0; +} + +void menu_remove(void){ + for(unsigned i = 0; i < menuObjectsSize; ++i){ + renderer_removeObject(menuObjects[i]); + } + menuObjectsSize = 0; +} + diff --git a/src/menu.h b/src/menu.h new file mode 100644 index 0000000..2ad8f30 --- /dev/null +++ b/src/menu.h @@ -0,0 +1,10 @@ +#ifndef __MENU_H__ +#define __MENU_H__ + +#include "renderer.h" + +int menu_render(int windowWidth, int windowHeight); + +void menu_remove(void); + +#endif diff --git a/src/text.c b/src/text.c index 1ac9f80..2e183a1 100644 --- a/src/text.c +++ b/src/text.c @@ -13,14 +13,15 @@ typedef struct FontCacheObject { TTF_Font* font; } FontCacheObject_t; -FontCacheObject_t fontCache[FONT_CACHE_SIZE]; -unsigned fontCacheSize = 0; +static FontCacheObject_t fontCache[FONT_CACHE_SIZE]; +static unsigned fontCacheSize = 0; void text_freeFontCache(void){ for(unsigned i = 0; i < fontCacheSize; ++i){ free(fontCache[i].file); TTF_CloseFont(fontCache[i].font); } + fontCacheSize = 0; } int text_renderText(RenderObject_t* renderObject, float x, float y, int z, float scale, SDL_Color color, const char* fontFilename, int fontSize, char* format, ...){