From 6e3c729758eb5d1306da065d9796184022f00712 Mon Sep 17 00:00:00 2001 From: KikooDX Date: Mon, 28 Feb 2022 15:38:08 +0100 Subject: [PATCH] stub laydown --- .clang-format | 10 ++++ .gitignore | 12 +++++ CMakeLists.txt | 24 +++++++++ inc/lzy.h | 115 ++++++++++++++++++++++++++++++++++++++++ meson.build | 28 ++++++++++ res/fxconv-metadata.txt | 3 ++ res/icon-sel.png | Bin 0 -> 2783 bytes res/icon-uns.png | Bin 0 -> 1010 bytes src/main.c | 19 +++++++ 9 files changed, 211 insertions(+) create mode 100644 .clang-format create mode 100644 .gitignore create mode 100644 CMakeLists.txt create mode 100644 inc/lzy.h create mode 100644 meson.build create mode 100644 res/fxconv-metadata.txt create mode 100644 res/icon-sel.png create mode 100644 res/icon-uns.png create mode 100644 src/main.c diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..44698ef --- /dev/null +++ b/.clang-format @@ -0,0 +1,10 @@ +BasedOnStyle: LLVM +IndentWidth: 8 +UseTab: AlignWithSpaces +BreakBeforeBraces: Attach +AllowShortIfStatementsOnASingleLine: false +AllowShortBlocksOnASingleLine: Empty +AllowShortFunctionsOnASingleLine: Empty +IndentCaseLabels: false +ColumnLimit: 80 +AlignConsecutiveMacros: true diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..981aaaa --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +# Build files +/build* +/*.g1a +/*.g3a + +# Python bytecode + __pycache__/ + +# Common IDE files +*.sublime-project +*.sublime-workspace +.vscode diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..295b474 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,24 @@ +cmake_minimum_required(VERSION 3.22) +project(lzy) + +include(GenerateG3A) +include(Fxconv) +find_package(Gint 2.7.0 REQUIRED) + +include_directories(inc) + +set(SOURCES + src/main.c +) + +set(ASSETS +) + +fxconv_declare_assets(${ASSETS} WITH_METADATA) + +add_executable(thyaddin ${SOURCES} ${ASSETS}) +target_compile_options(thyaddin PRIVATE -Wall -Wextra -Os) +target_link_libraries(thyaddin Gint::Gint) + +generate_g3a(TARGET thyaddin OUTPUT "lzy.g3a" + NAME "lzy" ICONS res/icon-uns.png res/icon-sel.png) diff --git a/inc/lzy.h b/inc/lzy.h new file mode 100644 index 0000000..5b2e4bd --- /dev/null +++ b/inc/lzy.h @@ -0,0 +1,115 @@ +#ifndef LZY_H_ +#define LZY_H_ +#ifdef __cplusplus +extern "C" { +#endif +#include + +int LZY_Init(void); +int LZY_Deinit(void); +int LZY_DrawBegin(void); +int LZY_DrawEnd(void); +void LZY_DrawSetColor(uint8_t r, uint8_t g, uint8_t b); +int LZY_DrawClear(void); +void LZY_CycleEvents(void); +int LZY_KeyDown(unsigned int scancode); +const char *LZY_GetError(void); + +#ifdef FXCG50 +#include +enum LZY_ScanCode { + LZY_SC_ESCAPE = KEY_EXIT, +}; +#else /* end FXCG50, begin SDL2 */ +#include +enum LZY_ScanCode { + LZY_SC_ESCAPE = SDLK_ESCAPE, +}; +#endif /* SDL2 */ +#ifdef __cplusplus +} +#endif +#endif /* LZY_H_ */ + +/* implementation */ +#ifdef LZY_IMPLEMENTATION +#ifndef LZY_TILE_SIZE +#define LZY_TILE_SIZE 16 +#endif +#ifdef FXCG50 +#include +#include + +static color_t draw_color; + +int LZY_Init(void) { + return 0; +} + +int LZY_Deinit(void) { + return 0; +} + +int LZY_DrawBegin(void) { + return 0; +} + +int LZY_DrawEnd(void) { + return 0; +} + +void LZY_DrawSetColor(uint8_t r, uint8_t g, uint8_t b) { + draw_color = C_RGB(r << 3, g << 3, b << 3); +} + +int LZY_DrawClear(void) { + return 0; +} + +void LZY_CycleEvents(void) {} + +int LZY_KeyDown(unsigned int scancode) { + return 0; +} + +const char *LZY_GetError(void) { + return NULL; +} + +#else /* end FXCG50, begin SDL2 */ +#include +#include + +int LZY_Init(void) { + return 0; +} + +int LZY_Deinit(void) { + return 0; +} + +int LZY_DrawBegin(void) { + return 0; +} + +int LZY_DrawEnd(void) { + return 0; +} + +void LZY_DrawSetColor(uint8_t r, uint8_t g, uint8_t b) {} + +int LZY_DrawClear(void) { + return 0; +} + +void LZY_CycleEvents(void) {} + +int LZY_KeyDown(unsigned int scancode) { + return 0; +} + +const char *LZY_GetError(void) { + return NULL; +} +#endif /* SDL2 */ +#endif /* LZY_IMPLEMENTATION */ diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..fcf350a --- /dev/null +++ b/meson.build @@ -0,0 +1,28 @@ +project('lzy', 'c') + +cc = meson.get_compiler('c') + +sdl2deps = [ + dependency('sdl2', version: '>=2.0.0'), + dependency('SDL2_image', version: '>=2.0.0'), + cc.find_library('m', required: true), + cc.find_library('dl', required: true), +] + +inc = include_directories('inc') + +sources = [ + 'src/main.c', +] + +c_flags = [ + '-std=c99', '-Os', + '-Wall', '-Wextra', +] + +executable('lzy', + sources, + include_directories : inc, + dependencies : sdl2deps, + install: false, + c_args : c_flags) diff --git a/res/fxconv-metadata.txt b/res/fxconv-metadata.txt new file mode 100644 index 0000000..8ca05ea --- /dev/null +++ b/res/fxconv-metadata.txt @@ -0,0 +1,3 @@ +tset.png: + type: bopti-image + name: bimg_tset diff --git a/res/icon-sel.png b/res/icon-sel.png new file mode 100644 index 0000000000000000000000000000000000000000..3fefb8a5e89c31dfb867655e3b830962fac8877c GIT binary patch literal 2783 zcmV<53Ly1~P)pvV^m?$O)oYLMR94Pp}V>eB+FLfO~F{e8_VSx$}il*rYix4r9 z5uy4+M*QdGXHZ83p}_@sC`1g@wJiXUDbEl>L@*PPYJ3Xt0pq<*WSd;guY8R9mJke6 zUWkIH6_CYSjiVa?QZsT`#|+}?BH=lYiSbM^fQ1E&;)^2)JC2x|og0KqO^jbXFn|eP zSadFZJSA=Oj7dMYzkm0^hqu>?%?8~aPl|5VlY{Z3K;vsNnPgce2b0O9`SW=(?)SQK zkQZYt^!2yy;r_{UUqADLrPTl*MlTZA@nrMRCx0mT%OAdUp+CuY96B%Zey^VwdCRF3 z<8iOsEyiu{aBGzBTkUU+axD5~JFE9Ty|?|(cmH(cx&P8ZArTQWgyMSi;r#=XhbO-G z-3CMi0*y$&*KYu#j!3WDZ2+Q<$iCJ7VnH#}(TQiieR#b2{q4_7Gxto%oNWs(hl>YC z4j;;_K+c3Q=l>(rrl~vGfn1-Q<9pphg{(*|HveeZ7;OT5vRmlp~{jn z_UVaBl-qM;3F4H5urLVD`-sr)T2mgoI3*Sqa+<oNmlmiGEtNeIQkGwo_ zN(qN|%vF{QntLpwfd$I(gsy8hPNT2p@Z(oX@r`o^1k z?2*g#hZvnJ8&h3OIrHU>m43fHO(MSh@%{G!JbUh(JJ84D$)uZQ08X7f+v|2WZrz$S z^6B+;p~)*3Uc7wu+Um;6YuB#2-!2@TBF}$y=%OyacP?#Ab#?aq=WRjxKh#qkB0qTk z`K?iY_s;K1qW$t0i$%wQqD`ge{BvbQkIE4_NZQ5g@7zfK>iS!6zjEQl=#1uwLj-^v zT)uj3FVG$U^nquaM%yLR=} zH{OgQS|>3Yol|F@+bvV}Un~U$0MNPe@l>xooZp?MG? z{?a?DLzQwZ8Om_(XGj0teTuu3XZ_`lQ*3ATKiU3&^bUTq@*Q1#V@A*EtC-J0T03&! z8~aCFs~8;|eYLZEPKsXED<(zDskH0@l-FpxSY7Fjwu^<+0iuY4xIQtoJz} zo#+5`OFF7XYw0hZRXu9%M|UfwKB5g5S4axHsP85ZR~lgz%Q6F+Rv*UfdM zBlM6_lz?cSyNeoFTXq&(s8(uev<67E&&qqUk2YC1kR`FW6{F066fRZjton?S2XNsR1g$>X`mT2CByD&uv0$TzhOd-{1?LJdp-++=G*ScLtBHE}svcy7H62fM2 zGuuiHs;pAR(Y@w!3Fbr_dcC&H55V=PSBWhwjJ0dl)Y4f3mPIS_7ijYEmoFl{W zkJJFRG3<4AzHWcMJ((p zPKnINKW$KO1M)|v+4=j=39m9%*qF)UV{`D#C8S-11JxT(0r8EP}21z9W$#M zt%Pb-a78tL%sX3>N}hb&A`M)B+h7PF+`0iD%dS2ZiAo}2={j(?4wP` zDLSI9&Db=WaPqDkG?n>qxUn!K&Wz=Uz;@(4iqnEQna~ZJ7?+wMrI-?JAmm7?b*M5U z;?&0pH4%G3xXe`BaGKN6~xQyYhEB~84bPq*FC5ljnwb-QcJ{)F) z;hd5gtVTp)Hlr-a?KZ6ot#-*xi8588ito5iC9ec!^DV9 zSly2eh1TIBOyN}S!?k_Mm>oA(YsqVVy`q*q#ORW2|nzw027TmR(-EIE#pRCH~@rYmopTID#uhV1+rj;{sj zne6iCTAUKrchcW=z^Z@{ef002ovPDHLkV1n+RPFw&0 literal 0 HcmV?d00001 diff --git a/res/icon-uns.png b/res/icon-uns.png new file mode 100644 index 0000000000000000000000000000000000000000..6381b23a98e4b09d72760bd6a29e0b2805a8ffd7 GIT binary patch literal 1010 zcmVBp3uQ%&dk7B+s>s0QO z-xwT>pvJXiGNJ2^TMs za-sY*&BN33ai#L^%Yl!l?3YTlI<-8t&7YqUVV53a;m^;AuuBiI@aJbl*ku@Ep|<_Q zB=3)oe4v!SRS6B0y<8xiOAx(?T!QFDxIjct@zsmNQ+)N}@RTt0 zBDo|7^pvJ9>!FdRE-PIlVL=J#DWX_{c#0^NP(4LHl%}5IEfcq=c+14?DV+|bsi%0$ zKdP`aZ}kqo74`jj?#%DL-P+TkhCr*v(ff~E8+gc61(J9QT!w79y)7LGOF zp_b*?6k}m|Mf8*>4<8_e=9XTz4T^Jg@M2{xs%gPx;?T?6LIEK(mdUV%xVCItRTPBK z$oM!`)t$}FR-ZhYPIH;e&P-=>c|97P&*#`(>2xR|Pai*$1Eme~6h`Fs?d#249IJ|sFJDupMG7-N|X zyTy`-&ud20>D^+{ojVAj-C}V*pPO5H>F8*g#fWr9#wR)@eZ2M3DskL3s8uQ%Ci(bg zhjZbAlEp%D`n2j(+*L-bL5xV#4B`$VZpL+OG@Z`o@+?iHvj{7F92(i)c;!eLu?8`X z>}_qa+~G+i=1bE8w7sz*dW!s^41NVSI7=6g?X4i^qMS3=LeVmQUH-uhHgGeaL5YfDoz?vb?@tC=|cCPP4efvZ<C;$Zlpa2wr g0#E=7K>45X3jyZ|-3|n`uK)l507*qoM6N<$g4EpN_5c6? literal 0 HcmV?d00001 diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..a3e2b0a --- /dev/null +++ b/src/main.c @@ -0,0 +1,19 @@ +#define LZY_IMPLEMENTATION +#include "lzy.h" + +int main(void) { + if (LZY_Init()) + return 1; + + LZY_DrawSetColor(255, 0, 0); + + LZY_DrawBegin(); + LZY_DrawClear(); + LZY_DrawEnd(); + + do { + LZY_CycleEvents(); + } while (!LZY_KeyDown(LZY_SC_ESCAPE)); + + return 1; +}