diff options
Diffstat (limited to 'teensy')
| -rw-r--r-- | teensy/common.h | 14 | ||||
| -rw-r--r-- | teensy/context.h | 10 | ||||
| -rw-r--r-- | teensy/renderer.h | 10 | ||||
| -rw-r--r-- | teensy/teensy.h | 18 | ||||
| -rw-r--r-- | teensy/teensy_common.c (renamed from teensy/common.c) | 2 | ||||
| -rw-r--r-- | teensy/teensy_common.h | 15 | ||||
| -rw-r--r-- | teensy/teensy_context.c (renamed from teensy/context.c) | 35 | ||||
| -rw-r--r-- | teensy/teensy_context.h | 12 | ||||
| -rw-r--r-- | teensy/teensy_list.c (renamed from teensy/dyn_arr.c) | 2 | ||||
| -rw-r--r-- | teensy/teensy_list.h (renamed from teensy/dyn_arr.h) | 16 | ||||
| -rw-r--r-- | teensy/teensy_log.c (renamed from teensy/log.c) | 4 | ||||
| -rw-r--r-- | teensy/teensy_log.h (renamed from teensy/log.h) | 6 | ||||
| -rw-r--r-- | teensy/teensy_mem.c (renamed from teensy/mem.c) | 6 | ||||
| -rw-r--r-- | teensy/teensy_mem.h (renamed from teensy/mem.h) | 6 | ||||
| -rw-r--r-- | teensy/teensy_platform.h (renamed from teensy/platform.h) | 6 | ||||
| -rw-r--r-- | teensy/teensy_renderer.c (renamed from teensy/renderer.c) | 30 | ||||
| -rw-r--r-- | teensy/teensy_renderer.h | 10 |
17 files changed, 104 insertions, 98 deletions
diff --git a/teensy/common.h b/teensy/common.h deleted file mode 100644 index 6e3e66f..0000000 --- a/teensy/common.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef COMMON_H_ -#define COMMON_H_ - -#include <stdbool.h> -#include <stdint.h> -#include <stdlib.h> - -#include "log.h" -#include "mem.h" - -#define TY_PI 3.14 -#define TY_DEG2RAD (180 / PI) - -#endif // COMMON_H_ diff --git a/teensy/context.h b/teensy/context.h deleted file mode 100644 index 0bdc5f9..0000000 --- a/teensy/context.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef CONTEXT_H_ -#define CONTEXT_H_ - -#include "common.h" -#include "renderer.h" -#include "teensy.h" - -extern struct ty_ctx ctx; - -#endif // CONTEXT_H_ diff --git a/teensy/renderer.h b/teensy/renderer.h deleted file mode 100644 index 70eac72..0000000 --- a/teensy/renderer.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef RENDERER_H_ -#define RENDERER_H_ - -#include "common.h" -#include "teensy.h" - -void ty_init_renderer(void); -void ty_deinit_renderer(void); - -#endif // RENDERER_H_ diff --git a/teensy/teensy.h b/teensy/teensy.h index c94986f..1f082f9 100644 --- a/teensy/teensy.h +++ b/teensy/teensy.h @@ -1,9 +1,9 @@ #ifndef TEENSY_H_ #define TEENSY_H_ -#include "common.h" -#include "context.h" -#include "dyn_arr.h" +#include "teensy_common.h" +#include "teensy_context.h" +#include "teensy_list.h" #define ty_vec2(x, y) ((struct ty_vec2){x, y}) #define ty_vec2i(x, y) ((struct ty_vec2i){x, y}) @@ -19,15 +19,15 @@ #define TY_COLOR_CYAN ty_color(0, 255, 255) #define TY_COLOR_WHITE ty_color(255, 255, 255) -struct ty_creation_hints { - int win_width; - int win_height; - const char *win_title; +struct ty_hints { + int scr_width; + int scr_height; + const char *game_title; int ticrate; }; struct ty_ctx { - struct ty_creation_hints creation_hints; + struct ty_hints hints; double ticrate; double prev_tic_ts; }; @@ -72,7 +72,7 @@ struct ty_renderer { struct ty_image screen; }; -void ty_init(struct ty_creation_hints creation_hints); +void ty_init(struct ty_hints hints); void ty_deinit(void); // Whether or not the main loop should continue executing. diff --git a/teensy/common.c b/teensy/teensy_common.c index 4da4004..96d589e 100644 --- a/teensy/common.c +++ b/teensy/teensy_common.c @@ -1,4 +1,4 @@ -#include "common.h" +#include "teensy_common.h" #include <stdarg.h> #include <stdio.h> diff --git a/teensy/teensy_common.h b/teensy/teensy_common.h new file mode 100644 index 0000000..dc631cb --- /dev/null +++ b/teensy/teensy_common.h @@ -0,0 +1,15 @@ +#ifndef TEENSY_COMMON_H_ +#define TEENSY_COMMON_H_ + +#include <assert.h> +#include <stdbool.h> +#include <stdint.h> +#include <stdlib.h> + +#include "teensy_log.h" +#include "teensy_mem.h" + +#define TY_PI 3.14 +#define TY_DEG2RAD (180 / PI) + +#endif // TEENSY_COMMON_H_ diff --git a/teensy/context.c b/teensy/teensy_context.c index 060254c..4a812dd 100644 --- a/teensy/context.c +++ b/teensy/teensy_context.c @@ -1,21 +1,27 @@ -#include "context.h" -#include "renderer.h" +#include "teensy_context.h" +#include "teensy_renderer.h" #include <math.h> #include <time.h> -#include "platform.h" +#include "teensy_platform.h" struct ty_ctx ctx; extern struct ty_renderer r; -void ty_init(struct ty_creation_hints creation_hints) +bool is_init(void) +{ + int scr_size = ctx.hints.scr_width * ctx.hints.scr_height; + return scr_size > 0; +} + +void ty_init(struct ty_hints hints) { ty_init_mem(); - ctx.creation_hints = creation_hints; - ctx.ticrate = 1.0 / creation_hints.ticrate; - ctx.prev_tic_ts = 0; + ctx.hints = hints; + ctx.ticrate = 1.0 / hints.ticrate; + ctx.prev_tic_ts = 0; ty_platform_init(&ctx); ty_init_renderer(); @@ -23,6 +29,7 @@ void ty_init(struct ty_creation_hints creation_hints) void ty_deinit(void) { + assert(is_init()); ty_platform_deinit(); ty_deinit_renderer(); ty_deinit_mem(); @@ -30,16 +37,20 @@ void ty_deinit(void) bool ty_is_game_running(void) { + assert(is_init()); return !ty_platform_os_wants_quit(); } double ty_get_time(void) { + assert(is_init()); return ty_platform_get_time(); } int ty_tick(void) { + assert(is_init()); + double current_time = ty_get_time(); double time_since_tic = current_time - ctx.prev_tic_ts; @@ -54,8 +65,10 @@ int ty_tick(void) // TODO: Find a better place for this void ty_sleep(uint64_t ms) { - struct timespec ts; - ts.tv_sec = ms / 1000; - ts.tv_nsec = (ms % 1000) * 1000000; - nanosleep(&ts, NULL); + assert(is_init()); + + struct timespec ts; + ts.tv_sec = ms / 1000; + ts.tv_nsec = (ms % 1000) * 1000000; + nanosleep(&ts, NULL); } diff --git a/teensy/teensy_context.h b/teensy/teensy_context.h new file mode 100644 index 0000000..056a0c2 --- /dev/null +++ b/teensy/teensy_context.h @@ -0,0 +1,12 @@ +#ifndef TEENSY_CONTEXT_H_ +#define TEENSY_CONTEXT_H_ + +#include "teensy_common.h" +#include "teensy_renderer.h" +#include "teensy.h" + +extern struct ty_ctx ctx; + +bool is_init(void); + +#endif // TEENSY_CONTEXT_H_ diff --git a/teensy/dyn_arr.c b/teensy/teensy_list.c index 46e619d..c8035b8 100644 --- a/teensy/dyn_arr.c +++ b/teensy/teensy_list.c @@ -1,4 +1,4 @@ -#include "dyn_arr.h" +#include "teensy_list.h" #include <stdio.h> #include <assert.h> diff --git a/teensy/dyn_arr.h b/teensy/teensy_list.h index a764cda..dd1e06a 100644 --- a/teensy/dyn_arr.h +++ b/teensy/teensy_list.h @@ -1,8 +1,8 @@ -#ifndef DYN_ARR_H_ -#define DYN_ARR_H_ +#ifndef TEENSY_LIST_H_ +#define TEENSY_LIST_H_ -#include "common.h" -#include "mem.h" +#include "teensy_common.h" +#include "teensy_mem.h" struct ty_list_header { size_t cap; @@ -23,11 +23,11 @@ struct ty_list_header { if (amt > header->cap) { \ header->cap = header->cap < TY_LIST_MIN_CAP \ ? TY_LIST_MIN_CAP \ - : header->cap * TY_LIST_GROW_RATE \ + : header->cap * TY_LIST_GROW_RATE; \ header = ty_realloc( \ header, \ - (sizeof(*(arr)) * count) + sizeof(struct ty_list_header) \ - ); \ + (sizeof(*(arr)) * amt) + sizeof(struct ty_list_header) \ + ); \ (arr) = (void*)(header + 1); \ } \ } while (0) @@ -46,4 +46,4 @@ struct ty_list_header { void *ty_list_create(void); -#endif // DYN_ARR_H_ +#endif // TEENSY_LIST_H_ diff --git a/teensy/log.c b/teensy/teensy_log.c index fbd96a2..26672a4 100644 --- a/teensy/log.c +++ b/teensy/teensy_log.c @@ -1,8 +1,8 @@ -#include "log.h" +#include "teensy_log.h" #include <stdarg.h> -#include "common.h" +#include "teensy_common.h" void ty_log_msg( FILE *file, diff --git a/teensy/log.h b/teensy/teensy_log.h index cebf39b..825ce55 100644 --- a/teensy/log.h +++ b/teensy/teensy_log.h @@ -1,5 +1,5 @@ -#ifndef LOG_H_ -#define LOG_H_ +#ifndef TEENSY_LOG_H_ +#define TEENSY_LOG_H_ #include <stdio.h> #include <stdlib.h> @@ -44,4 +44,4 @@ void ty_log_msg( void _ty_log_plain(FILE *file, const char *fmt, ...); -#endif // LOG_H_ +#endif // TEENSY_LOG_H_ diff --git a/teensy/mem.c b/teensy/teensy_mem.c index fa885ca..2a6d992 100644 --- a/teensy/mem.c +++ b/teensy/teensy_mem.c @@ -1,7 +1,7 @@ -#include "mem.h" +#include "teensy_mem.h" -#include "common.h" -#include "dyn_arr.h" +#include "teensy_common.h" +#include "teensy_list.h" // Array to track temp allocations. void **temp_allocations; diff --git a/teensy/mem.h b/teensy/teensy_mem.h index 61f3ee2..da2fed9 100644 --- a/teensy/mem.h +++ b/teensy/teensy_mem.h @@ -1,5 +1,5 @@ -#ifndef MEM_H_ -#define MEM_H_ +#ifndef TEENSY_MEM_H_ +#define TEENSY_MEM_H_ #include <stdlib.h> @@ -21,4 +21,4 @@ void ty_free(void *ptr); // Returns -1 in release builds. int ty_alloc_count(void); -#endif // MEM_H_ +#endif // TEENSY_MEM_H_ diff --git a/teensy/platform.h b/teensy/teensy_platform.h index df3c5f8..7733be1 100644 --- a/teensy/platform.h +++ b/teensy/teensy_platform.h @@ -1,5 +1,5 @@ -#ifndef PLATFORM_H_ -#define PLATFORM_H_ +#ifndef TEENSY_PLATFORM_H_ +#define TEENSY_PLATFORM_H_ // This platform functions are to be implemented by a platform library. @@ -9,4 +9,4 @@ void ty_platform_frame(struct ty_image img); bool ty_platform_os_wants_quit(void); double ty_platform_get_time(void); -#endif // PLATFORM_H_ +#endif // TEENSY_PLATFORM_H_ diff --git a/teensy/renderer.c b/teensy/teensy_renderer.c index 29dc871..b29e485 100644 --- a/teensy/renderer.c +++ b/teensy/teensy_renderer.c @@ -1,28 +1,18 @@ -#include "renderer.h" +#include "teensy_renderer.h" #include <stdio.h> #include <string.h> #include <math.h> -#include "context.h" -#include "dyn_arr.h" +#include "teensy_context.h" +#include "teensy_list.h" struct ty_renderer r; static -void renderer_init_check() +bool is_renderer_init(void) { -#ifdef TEENSY_DEBUG - if ( - r.screen.data == NULL || - r.screen.width * r.screen.height == 0 - ) { - ty_log_fatal( - TY_ERR_RENDERER_NOT_INIT, - "renderer is not yet intialized" - ); - } -#endif + return r.screen.data != NULL && r.screen.width * r.screen.height != 0; } static @@ -51,15 +41,15 @@ void image_bounds_check(struct ty_image img, struct ty_vec2i pos) void ty_init_renderer(void) { r.screen = ty_create_image( - ctx.creation_hints.win_width, - ctx.creation_hints.win_height, + ctx.hints.scr_width, + ctx.hints.scr_height, NULL ); } void ty_deinit_renderer(void) { - renderer_init_check(); + assert(is_renderer_init()); ty_free_image(r.screen); } @@ -103,7 +93,7 @@ void ty_img_set_pixel( void ty_draw_clear(struct ty_color col) { - renderer_init_check(); + assert(is_renderer_init()); for (int i = 0; i < r.screen.width * r.screen.height; i++) { r.screen.data[i] = col; } @@ -223,5 +213,5 @@ void ty_draw_line( void ty_draw_end(void) { - renderer_init_check(); + assert(is_renderer_init()); } diff --git a/teensy/teensy_renderer.h b/teensy/teensy_renderer.h new file mode 100644 index 0000000..7002890 --- /dev/null +++ b/teensy/teensy_renderer.h @@ -0,0 +1,10 @@ +#ifndef TEENSY_RENDERER_H_ +#define TEENSY_RENDERER_H_ + +#include "teensy_common.h" +#include "teensy.h" + +void ty_init_renderer(void); +void ty_deinit_renderer(void); + +#endif // TEENSY_RENDERER_H_ |
