From f9e38bf24e1874d773083d06ca443cce9bd92d56 Mon Sep 17 00:00:00 2001
From: 3gg <3gg@shellblade.net>
Date: Sat, 9 Mar 2024 08:55:46 -0800
Subject: Rename gfx_app -> app.

---
 gfx-app/CMakeLists.txt        |  14 ---
 gfx-app/README.md             |   3 -
 gfx-app/include/gfx/gfx_app.h |  95 --------------------
 gfx-app/src/gfx_app.c         | 205 ------------------------------------------
 4 files changed, 317 deletions(-)
 delete mode 100644 gfx-app/CMakeLists.txt
 delete mode 100644 gfx-app/README.md
 delete mode 100644 gfx-app/include/gfx/gfx_app.h
 delete mode 100644 gfx-app/src/gfx_app.c

(limited to 'gfx-app')

diff --git a/gfx-app/CMakeLists.txt b/gfx-app/CMakeLists.txt
deleted file mode 100644
index d9cb80f..0000000
--- a/gfx-app/CMakeLists.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-cmake_minimum_required(VERSION 3.0)
-
-project(gfx-app)
-
-add_library(gfx-app
-  src/gfx_app.c)
-
-target_include_directories(gfx-app PUBLIC
-  include/)
-
-target_link_libraries(gfx-app PUBLIC
-  glfw
-  log
-  timer)
diff --git a/gfx-app/README.md b/gfx-app/README.md
deleted file mode 100644
index b21d1aa..0000000
--- a/gfx-app/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Gfx App
-
-A small library to more conveniently create a window and run a game loop.
diff --git a/gfx-app/include/gfx/gfx_app.h b/gfx-app/include/gfx/gfx_app.h
deleted file mode 100644
index ffff4bc..0000000
--- a/gfx-app/include/gfx/gfx_app.h
+++ /dev/null
@@ -1,95 +0,0 @@
-#pragma once
-
-#include <stdbool.h>
-
-typedef struct GfxAppState GfxAppState;
-
-/// Application settings.
-typedef struct GfxAppDesc {
-  int          argc;    // Number of application arguments.
-  const char** argv;    // Application arguments.
-  int          width;   // Window width.
-  int          height;  // Window height.
-  int          max_fps; // Desired maximum display framerate. 0 to disable.
-  double       update_delta_time; // Desired delta time between frame updates.
-  const char*  title;             // Window title.
-  GfxAppState* app_state;
-} GfxAppDesc;
-
-typedef bool (*GfxAppInit)(GfxAppState*, int argc, const char** argv);
-typedef void (*GfxAppShutdown)(GfxAppState*);
-typedef void (*GfxAppUpdate)(GfxAppState*, double t, double dt);
-typedef void (*GfxAppRender)(GfxAppState*);
-typedef void (*GfxAppResize)(GfxAppState*, int width, int height);
-
-/// Application callback functions.
-typedef struct GfxAppCallbacks {
-  GfxAppInit     init;
-  GfxAppShutdown shutdown;
-  GfxAppUpdate   update;
-  GfxAppRender   render;
-  GfxAppResize   resize;
-} GfxAppCallbacks;
-
-typedef enum Key {
-  KeyA = 'a',
-  KeyB,
-  KeyC,
-  KeyD,
-  KeyE,
-  KeyF,
-  KeyG,
-  KeyH,
-  KeyI,
-  KeyJ,
-  KeyK,
-  KeyL,
-  KeyM,
-  KeyN,
-  KeyO,
-  KeyP,
-  KeyQ,
-  KeyR,
-  KeyS,
-  KeyT,
-  KeyU,
-  KeyV,
-  KeyW,
-  KeyX,
-  KeyY,
-  KeyZ,
-} Key;
-
-/// Create a window with an OpenGL context and run the main loop.
-bool gfx_app_run(const GfxAppDesc*, const GfxAppCallbacks*);
-
-/// Get the mouse coordinates relative to the app's window.
-void gfx_app_get_mouse_position(double* x, double* y);
-
-/// Return true if the given key is pressed.
-bool gfx_is_key_pressed(Key);
-
-/// Define a main function that initializes and puts the application in a loop.
-/// See also: gfx_app_run().
-#define GFX_APP_MAIN(WIDTH, HEIGHT, MAX_FPS, TITLE)                         \
-  int main(int argc, const char** argv) {                                   \
-    GfxAppState app_state = {0};                                            \
-    gfx_app_run(                                                            \
-        &(GfxAppDesc){                                                      \
-            .argc              = argc,                                      \
-            .argv              = argv,                                      \
-            .width             = WIDTH,                                     \
-            .height            = HEIGHT,                                    \
-            .max_fps           = MAX_FPS,                                   \
-            .update_delta_time = MAX_FPS > 0 ? 1.0 / (double)MAX_FPS : 0.0, \
-            .title             = TITLE,                                     \
-            .app_state         = &app_state,                                \
-        },                                                                  \
-        &(GfxAppCallbacks){                                                 \
-            .init     = (GfxAppInit)app_init,                               \
-            .update   = (GfxAppUpdate)app_update,                           \
-            .render   = (GfxAppRender)app_render,                           \
-            .resize   = (GfxAppResize)app_resize,                           \
-            .shutdown = (GfxAppShutdown)app_end});                          \
-    return 0;                                                               \
-  }
diff --git a/gfx-app/src/gfx_app.c b/gfx-app/src/gfx_app.c
deleted file mode 100644
index a93756c..0000000
--- a/gfx-app/src/gfx_app.c
+++ /dev/null
@@ -1,205 +0,0 @@
-#include <gfx/gfx_app.h>
-
-#include <GLFW/glfw3.h>
-#include <log/log.h>
-#include <timer.h>
-
-#include <assert.h>
-#include <stdlib.h>
-
-/// Application state.
-typedef struct GfxApp {
-  GfxAppState*    app_state;
-  GfxAppCallbacks callbacks;
-  int             max_fps;
-  double          update_delta_time;
-  GLFWwindow*     window;
-} GfxApp;
-
-/// Storing the application state in a global variable so that we can call the
-/// application's callbacks from GLFW callbacks.
-static GfxApp g_gfx_app;
-
-/// Called by GLFW when the window is resized.
-static void on_resize(GLFWwindow* window, int width, int height) {
-  (*g_gfx_app.callbacks.resize)(g_gfx_app.app_state, width, height);
-}
-
-/// Run the application's main loop.
-static void loop(GfxApp* app) {
-  assert(app);
-  assert(app->window);
-
-  const time_delta min_frame_time =
-      app->max_fps > 0 ? sec_to_time_delta(1.0 / (double)(app->max_fps)) : 0;
-  const time_delta update_dt   = sec_to_time_delta(app->update_delta_time);
-  time_delta       time        = 0;
-  time_delta       time_budget = 0;
-  Timer            timer       = timer_make();
-
-  // Warm up the update to initialize the application's state.
-  (*app->callbacks.update)(
-      app->app_state, time_delta_to_sec(time), time_delta_to_sec(update_dt));
-
-  // Warm up the rendering before entering the main loop. A renderer can
-  // compile shaders and do other initialization the first time it renders a
-  // scene.
-  (*app->callbacks.render)(app->app_state);
-  glfwSwapBuffers(app->window);
-
-  timer_start(&timer);
-  while (!glfwWindowShouldClose(app->window)) {
-    timer_tick(&timer);
-    time_budget += timer.delta_time;
-
-    while (time_budget >= update_dt) {
-      (*app->callbacks.update)(
-          app->app_state, time_delta_to_sec(time),
-          time_delta_to_sec(update_dt));
-
-      time += update_dt;
-      time_budget -= update_dt;
-    }
-
-    (*app->callbacks.render)(app->app_state);
-    glfwSwapBuffers(app->window);
-    glfwPollEvents();
-
-    const time_point frame_end  = time_now();
-    const time_delta frame_time = time_diff(timer.last_tick, frame_end);
-    if ((min_frame_time > 0) && (frame_time < min_frame_time)) {
-      time_sleep(min_frame_time - frame_time);
-    }
-  }
-}
-
-bool gfx_app_run(const GfxAppDesc* desc, const GfxAppCallbacks* callbacks) {
-  assert(desc);
-  assert(callbacks);
-
-  bool success = false;
-
-  g_gfx_app.app_state         = desc->app_state;
-  g_gfx_app.callbacks         = *callbacks;
-  g_gfx_app.max_fps           = desc->max_fps;
-  g_gfx_app.update_delta_time = desc->update_delta_time;
-  g_gfx_app.window            = 0;
-
-  if (!glfwInit()) {
-    LOGE("glfwInit() failed");
-    return false;
-  }
-
-  const int major = 4;
-  const int minor = 4;
-  glfwWindowHint(GLFW_CLIENT_API, GLFW_OPENGL_API);
-  glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, major);
-  glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, minor);
-  glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
-  glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GLFW_TRUE);
-  // TODO: Test antialiasing later on.
-  // glfwWindowHint(GLFW_SAMPLES, 4);
-
-  const char* title = desc->title ? desc->title : "Gfx Application";
-
-  g_gfx_app.window =
-      glfwCreateWindow(desc->width, desc->height, title, NULL, NULL);
-  if (!g_gfx_app.window) {
-    LOGE("glfwCreateWindow() failed");
-    goto cleanup;
-  }
-  glfwMakeContextCurrent(g_gfx_app.window);
-
-  // Initialize the application's state before setting any callbacks.
-  if (!(*g_gfx_app.callbacks.init)(
-          g_gfx_app.app_state, desc->argc, desc->argv)) {
-    LOGE("Failed to initialize application");
-    goto cleanup;
-  }
-
-  // Trigger an initial resize for convenience.
-  (*g_gfx_app.callbacks.resize)(g_gfx_app.app_state, desc->width, desc->height);
-
-  // Set GLFW callbacks now that the application has been initialized.
-  glfwSetWindowSizeCallback(g_gfx_app.window, on_resize);
-
-  loop(&g_gfx_app);
-
-  (*g_gfx_app.callbacks.shutdown)(g_gfx_app.app_state);
-
-  success = true;
-
-cleanup:
-  if (g_gfx_app.window) {
-    glfwDestroyWindow(g_gfx_app.window);
-  }
-  glfwTerminate();
-  return success;
-}
-
-void gfx_app_get_mouse_position(double* x, double* y) {
-  glfwGetCursorPos(g_gfx_app.window, x, y);
-}
-
-static int to_glfw_key(Key key);
-
-bool gfx_is_key_pressed(Key key) {
-  return glfwGetKey(g_gfx_app.window, to_glfw_key(key)) == GLFW_PRESS;
-}
-
-static int to_glfw_key(Key key) {
-  switch (key) {
-  case KeyA:
-    return GLFW_KEY_A;
-  case KeyB:
-    return GLFW_KEY_B;
-  case KeyC:
-    return GLFW_KEY_C;
-  case KeyD:
-    return GLFW_KEY_D;
-  case KeyE:
-    return GLFW_KEY_E;
-  case KeyF:
-    return GLFW_KEY_F;
-  case KeyG:
-    return GLFW_KEY_G;
-  case KeyH:
-    return GLFW_KEY_H;
-  case KeyI:
-    return GLFW_KEY_I;
-  case KeyJ:
-    return GLFW_KEY_J;
-  case KeyK:
-    return GLFW_KEY_K;
-  case KeyL:
-    return GLFW_KEY_L;
-  case KeyM:
-    return GLFW_KEY_M;
-  case KeyN:
-    return GLFW_KEY_N;
-  case KeyO:
-    return GLFW_KEY_O;
-  case KeyP:
-    return GLFW_KEY_P;
-  case KeyQ:
-    return GLFW_KEY_Q;
-  case KeyR:
-    return GLFW_KEY_R;
-  case KeyS:
-    return GLFW_KEY_S;
-  case KeyT:
-    return GLFW_KEY_T;
-  case KeyU:
-    return GLFW_KEY_U;
-  case KeyV:
-    return GLFW_KEY_V;
-  case KeyW:
-    return GLFW_KEY_W;
-  case KeyX:
-    return GLFW_KEY_X;
-  case KeyY:
-    return GLFW_KEY_Y;
-  case KeyZ:
-    return GLFW_KEY_Z;
-  }
-}
-- 
cgit v1.2.3