From e560c0de6b01fb28ff614bd4937c56866bcbf99b Mon Sep 17 00:00:00 2001 From: catAngent Date: Thu, 19 Sep 2024 21:33:32 +0100 Subject: [PATCH] implement image atlasing and tiling --- resources/images/tiles.png | Bin 0 -> 1838 bytes resources/images/tiles.png.kra | Bin 0 -> 32174 bytes resources/images/tiles.png~ | Bin 0 -> 2254 bytes resources/shaders/tiling.fs | 16 ++++++++++ resources/shaders/tiling.vs | 19 ++++++++++++ src/main.zig | 41 +++++++++++++++----------- src/world/chunk.zig | 52 +++++++++++++++++++++++---------- 7 files changed, 95 insertions(+), 33 deletions(-) create mode 100644 resources/images/tiles.png create mode 100644 resources/images/tiles.png.kra create mode 100644 resources/images/tiles.png~ create mode 100644 resources/shaders/tiling.fs create mode 100644 resources/shaders/tiling.vs diff --git a/resources/images/tiles.png b/resources/images/tiles.png new file mode 100644 index 0000000000000000000000000000000000000000..2198033f146d5cbf94476ce54c515bd554e1b078 GIT binary patch literal 1838 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6%U;1OBOz@VoL!i*J5?aLS# z*dBPgIEGZjy}fnN>u>;r%f)TGzODcBzrIj^q8`gc4VB9NOLrdMa(RC4$urTt_wG%5 zTJ+%c=f_nKUY&lLT4`Uhw_DI5!M^eKKkwL12B!0V4@yHC);@1=KHe9&f6H$L0rdwg z0`d(%a+wbMG1wda`(AdxDk$T+vMp0Fr;p%)_w9EI>+?F_^&N;~x@^x>WB=#gpK9$Q zS*Fh%KB5in^>KyodJb?fU1oXkP(HA~TESrY0TISOUqAeoFxc)>?w+9C_>k$tv-?qv z@7*61vb1qOkV}2*TQA!fEJ@V!(j&np9Y3QPrLgV7;i8z zB{H!H=*5??a2#M0;1E`5DEPTZ*@3~V!C?jiW6NoASw^M}j4X#(I22;`z2FdN;8hS% zb6|M*$<@7qA%~&SfRTw~y1o??O9C@T3#Wj?j+%>t3JlVtR*VMJXo?!m7o!CTjY`@Y Z#=mbxrlbg#o&i>X44$rjF6*2UngFbAEX4o- literal 0 HcmV?d00001 diff --git a/resources/images/tiles.png.kra b/resources/images/tiles.png.kra new file mode 100644 index 0000000000000000000000000000000000000000..2a1c535ce6e688b2ee7c3442b68ed48b516ae495 GIT binary patch literal 32174 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 C$Njee literal 0 HcmV?d00001 diff --git a/resources/images/tiles.png~ b/resources/images/tiles.png~ new file mode 100644 index 0000000000000000000000000000000000000000..6711326c5bfeac0f5fd49b05e4683838b0a0c4a8 GIT binary patch literal 2254 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6%U;1OBOz@VoL!i*J5?aLS# zI2t@%978JN-rfq#3T6~>4V-MXmG9s|E8YLzOOhOyaQT)$n49u*{_C^5^ml7k?W(bl zpSN#s&CYMAn_{RIdzw`g!lK(HvTPqXu8xAzG<_R_Iw|}zlo%|2Z4Y!=R z@B9gG*v`Ly{vZCob1FZxi|)u|sQJNPRhljML$_cv!;cTu$2er-AE+_@xZZw$J>&6u zg`6J|OqC3Op46{lKe79+*a_wjr#{~E|8?Eq$MuG{?MJ_TSD(Os;QF86)gF5m{}$bG z@;`G$zqiD@?~0$!m9cJO_))e0x4?}*g{+_A8Re#5vR2=qUSJhJ@9&3uyJz=usxa+i zROx9GxFI6YaCZ02Sq@4H44jJ