]> git.lizzy.rs Git - nothing.git/blobdiff - src/game/camera.c
Merge pull request #621 from tsoding/615
[nothing.git] / src / game / camera.c
index a74e9a6f3c5377d7f6fce58ab8403c0bdcdff955..b5eb7af004f741bb2b598933bad9042da1ab5806 100644 (file)
@@ -1,12 +1,12 @@
 #include <SDL2/SDL.h>
-#include <assert.h>
+#include "system/stacktrace.h"
 #include <math.h>
 #include <stdbool.h>
 
 #include "camera.h"
 #include "sdl/renderer.h"
-#include "system/error.h"
 #include "system/nth_alloc.h"
+#include "system/log.h"
 
 #define RATIO_X 16.0f
 #define RATIO_Y 9.0f
@@ -32,12 +32,14 @@ static Triangle camera_triangle(const Camera *camera,
                                   const Triangle t);
 
 Camera *create_camera(SDL_Renderer *renderer,
-                        Sprite_font *font)
+                      Sprite_font *font)
 {
+    trace_assert(renderer);
+    trace_assert(font);
+
     Camera *camera = nth_alloc(sizeof(Camera));
 
     if (camera == NULL) {
-        throw_error(ERROR_TYPE_LIBC);
         return NULL;
     }
 
@@ -52,7 +54,7 @@ Camera *create_camera(SDL_Renderer *renderer,
 
 void destroy_camera(Camera *camera)
 {
-    assert(camera);
+    trace_assert(camera);
 
     free(camera);
 }
@@ -61,7 +63,7 @@ int camera_fill_rect(Camera *camera,
                      Rect rect,
                      Color color)
 {
-    assert(camera);
+    trace_assert(camera);
 
     SDL_Rect view_port;
     SDL_RenderGetViewport(camera->renderer, &view_port);
@@ -73,18 +75,18 @@ int camera_fill_rect(Camera *camera,
 
     if (camera->debug_mode) {
         if (SDL_SetRenderDrawColor(camera->renderer, sdl_color.r, sdl_color.g, sdl_color.b, sdl_color.a / 2) < 0) {
-            throw_error(ERROR_TYPE_SDL2);
+            log_fail("SDL_SetRenderDrawColor: %s\n", SDL_GetError());
             return -1;
         }
     } else {
         if (SDL_SetRenderDrawColor(camera->renderer, sdl_color.r, sdl_color.g, sdl_color.b, sdl_color.a) < 0) {
-            throw_error(ERROR_TYPE_SDL2);
+            log_fail("SDL_SetRenderDrawColor: %s\n", SDL_GetError());
             return -1;
         }
     }
 
     if (SDL_RenderFillRect(camera->renderer, &sdl_rect) < 0) {
-        throw_error(ERROR_TYPE_SDL2);
+        log_fail("SDL_RenderFillRect: %s\n", SDL_GetError());
         return -1;
     }
 
@@ -95,7 +97,7 @@ int camera_draw_rect(Camera * camera,
                      Rect rect,
                      Color color)
 {
-    assert(camera);
+    trace_assert(camera);
 
     SDL_Rect view_port;
     SDL_RenderGetViewport(camera->renderer, &view_port);
@@ -106,12 +108,12 @@ int camera_draw_rect(Camera * camera,
     const SDL_Color sdl_color = color_for_sdl(camera->blackwhite_mode ? color_desaturate(color) : color);
 
     if (SDL_SetRenderDrawColor(camera->renderer, sdl_color.r, sdl_color.g, sdl_color.b, sdl_color.a) < 0) {
-        throw_error(ERROR_TYPE_SDL2);
+        log_fail("SDL_SetRenderDrawColor: %s\n", SDL_GetError());
         return -1;
     }
 
     if (SDL_RenderDrawRect(camera->renderer, &sdl_rect) < 0) {
-        throw_error(ERROR_TYPE_SDL2);
+        log_fail("SDL_RenderDrawRect: %s\n", SDL_GetError());
         return -1;
     }
 
@@ -122,7 +124,7 @@ int camera_draw_triangle(Camera *camera,
                          Triangle t,
                          Color color)
 {
-    assert(camera);
+    trace_assert(camera);
 
     SDL_Rect view_port;
     SDL_RenderGetViewport(camera->renderer, &view_port);
@@ -130,7 +132,7 @@ int camera_draw_triangle(Camera *camera,
     const SDL_Color sdl_color = color_for_sdl(camera->blackwhite_mode ? color_desaturate(color) : color);
 
     if (SDL_SetRenderDrawColor(camera->renderer, sdl_color.r, sdl_color.g, sdl_color.b, sdl_color.a) < 0) {
-        throw_error(ERROR_TYPE_SDL2);
+        log_fail("SDL_SetRenderDrawColor: %s\n", SDL_GetError());
         return -1;
     }
 
@@ -145,7 +147,7 @@ int camera_fill_triangle(Camera *camera,
                          Triangle t,
                          Color color)
 {
-    assert(camera);
+    trace_assert(camera);
 
     SDL_Rect view_port;
     SDL_RenderGetViewport(camera->renderer, &view_port);
@@ -155,12 +157,12 @@ int camera_fill_triangle(Camera *camera,
 
     if (camera->debug_mode) {
         if (SDL_SetRenderDrawColor(camera->renderer, sdl_color.r, sdl_color.g, sdl_color.b, sdl_color.a / 2) < 0) {
-            throw_error(ERROR_TYPE_SDL2);
+            log_fail("SDL_SetRenderDrawColor: %s\n", SDL_GetError());
             return -1;
         }
     } else {
         if (SDL_SetRenderDrawColor(camera->renderer, sdl_color.r, sdl_color.g, sdl_color.b, sdl_color.a) < 0) {
-            throw_error(ERROR_TYPE_SDL2);
+            log_fail("SDL_SetRenderDrawColor: %s\n", SDL_GetError());
             return -1;
         }
     }
@@ -201,8 +203,8 @@ int camera_render_debug_text(Camera *camera,
                              const char *text,
                              Vec position)
 {
-    assert(camera);
-    assert(text);
+    trace_assert(camera);
+    trace_assert(text);
 
     if (!camera->debug_mode) {
         return 0;
@@ -212,7 +214,7 @@ int camera_render_debug_text(Camera *camera,
             camera,
             text,
             vec(2.0f, 2.0f),
-            color(0.0f, 0.0f, 0.0f, 1.0f),
+            rgba(0.0f, 0.0f, 0.0f, 1.0f),
             position) < 0) {
         return -1;
     }
@@ -226,12 +228,12 @@ int camera_clear_background(Camera *camera,
     const SDL_Color sdl_color = color_for_sdl(camera->blackwhite_mode ? color_desaturate(color) : color);
 
     if (SDL_SetRenderDrawColor(camera->renderer, sdl_color.r, sdl_color.g, sdl_color.b, sdl_color.a) < 0) {
-        throw_error(ERROR_TYPE_SDL2);
+        log_fail("SDL_SetRenderDrawColor: %s\n", SDL_GetError());
         return -1;
     }
 
     if (SDL_RenderClear(camera->renderer) < 0) {
-        throw_error(ERROR_TYPE_SDL2);
+        log_fail("SDL_RenderClear: %s\n", SDL_GetError());
         return -1;
     }
 
@@ -240,25 +242,25 @@ int camera_clear_background(Camera *camera,
 
 void camera_center_at(Camera *camera, Point position)
 {
-    assert(camera);
+    trace_assert(camera);
     camera->position = position;
 }
 
 void camera_toggle_debug_mode(Camera *camera)
 {
-    assert(camera);
+    trace_assert(camera);
     camera->debug_mode = !camera->debug_mode;
 }
 
 void camera_disable_debug_mode(Camera *camera)
 {
-    assert(camera);
+    trace_assert(camera);
     camera->debug_mode = 0;
 }
 
 void camera_toggle_blackwhite_mode(Camera *camera)
 {
-    assert(camera);
+    trace_assert(camera);
     camera->blackwhite_mode = !camera->blackwhite_mode;
 }
 
@@ -274,7 +276,7 @@ int camera_is_point_visible(const Camera *camera, Point p)
 
 Rect camera_view_port(const Camera *camera)
 {
-    assert(camera);
+    trace_assert(camera);
 
     SDL_Rect view_port;
     SDL_RenderGetViewport(camera->renderer, &view_port);
@@ -293,8 +295,8 @@ int camera_is_text_visible(const Camera *camera,
                            Vec position,
                            const char *text)
 {
-    assert(camera);
-    assert(text);
+    trace_assert(camera);
+    trace_assert(text);
 
     SDL_Rect view_port;
     SDL_RenderGetViewport(camera->renderer, &view_port);
@@ -370,7 +372,7 @@ int camera_render_debug_rect(Camera *camera,
                              Rect rect,
                              Color c)
 {
-    assert(camera);
+    trace_assert(camera);
 
     if (!camera->debug_mode) {
         return 0;