aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKikooDX <kikoodx@paranoici.org>2022-02-28 15:38:08 +0100
committerKikooDX <kikoodx@paranoici.org>2022-02-28 15:39:50 +0100
commit6e3c729758eb5d1306da065d9796184022f00712 (patch)
tree09e1b7573ddc1ace4f4debf521be0e1a1fc372c9
parenta7891df2d7335aa68dd738a67579712447db16d0 (diff)
downloadlzy-6e3c729758eb5d1306da065d9796184022f00712.tar.gz
stub laydown
-rw-r--r--.clang-format10
-rw-r--r--.gitignore12
-rw-r--r--CMakeLists.txt24
-rw-r--r--inc/lzy.h115
-rw-r--r--meson.build28
-rw-r--r--res/fxconv-metadata.txt3
-rw-r--r--res/icon-sel.pngbin0 -> 2783 bytes
-rw-r--r--res/icon-uns.pngbin0 -> 1010 bytes
-rw-r--r--src/main.c19
9 files changed, 211 insertions, 0 deletions
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 <stdint.h>
+
+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 <gint/keycodes.h>
+enum LZY_ScanCode {
+ LZY_SC_ESCAPE = KEY_EXIT,
+};
+#else /* end FXCG50, begin SDL2 */
+#include <SDL.h>
+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 <gint/display.h>
+#include <stdint.h>
+
+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 <SDL.h>
+#include <stdint.h>
+
+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 0000000..3fefb8a
--- /dev/null
+++ b/res/icon-sel.png
Binary files differ
diff --git a/res/icon-uns.png b/res/icon-uns.png
new file mode 100644
index 0000000..6381b23
--- /dev/null
+++ b/res/icon-uns.png
Binary files differ
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;
+}