diff options
-rw-r--r-- | CMakeLists.txt | 20 | ||||
-rw-r--r-- | core/callbacks.c | 6 | ||||
-rw-r--r-- | core/init.c | 23 | ||||
-rw-r--r-- | core/logging.c | 2 | ||||
-rw-r--r-- | graphics/make.config | 16 | ||||
-rw-r--r-- | include/rune/core/callbacks.h (renamed from include/rune/graphics.h) | 17 | ||||
-rw-r--r-- | include/rune/core/init.h | 30 | ||||
-rw-r--r-- | sound/make.config | 7 |
8 files changed, 80 insertions, 41 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 551cf1f..38db705 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,13 +4,25 @@ set(CMAKE_C_STANDARD 23) set(CMAKE_C_STANDARD_REQUIRED ON) set(CMAKE_C_EXTENSIONS ON) -project(rune-engine VERSION 0.60.0 DESCRIPTION "High performance game engine designed for Quake-style shooters") +project(rune-engine VERSION 0.61.0 DESCRIPTION "High performance game engine designed for Quake-style shooters") -list(APPEND SOURCE_FILES core/abort.c core/alloc.c core/callbacks.c core/init.c core/logging.c core/network.c) +list(APPEND SOURCE_FILES + core/abort.c + core/alloc.c + core/callbacks.c + core/init.c + core/logging.c + core/network.c +) -add_compile_definitions(VERSION="${PROJECT_VERSION}") +set(HEADER_DIR include) +add_compile_definitions(VERSION="${PROJECT_VERSION}") add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES}) + +target_include_directories(${PROJECT_NAME} PUBLIC ${HEADER_DIR}) set_target_properties(${PROJECT_NAME} PROPERTIES VERSION ${PROJECT_VERSION}) set_target_properties(${PROJECT_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR}) -target_include_directories(${PROJECT_NAME} PRIVATE include) + +install(TARGETS ${PROJECT_NAME} DESTINATION lib) +install(DIRECTORY ${HEADER_DIR}/rune DESTINATION include) diff --git a/core/callbacks.c b/core/callbacks.c new file mode 100644 index 0000000..8cda252 --- /dev/null +++ b/core/callbacks.c @@ -0,0 +1,6 @@ +#include <rune/core/callbacks.h> +#include <stdio.h> + +void error_callback(int error, const char *desc) { + fprintf(stderr, "Error %d: %s\n", error, desc); +} diff --git a/core/init.c b/core/init.c new file mode 100644 index 0000000..e56a1ec --- /dev/null +++ b/core/init.c @@ -0,0 +1,23 @@ +#include <rune/core/init.h> +#include <rune/core/alloc.h> +#include <rune/core/logging.h> +#include <rune/ui/window.h> +#include <rune/ui/renderer.h> +#include <rune/ui/input.h> + +static struct rune_window *window; +static struct rune_renderer *renderer; + +struct rune_window* rune_init(uint32_t width, uint32_t height, const char *title) { + log_output(LOG_INFO, "Started Rune Engine version %s", VERSION); + window = rune_create_window(width, height, title); + rune_input_init(window); + renderer = rune_create_renderer(window, RUNE_RENDERER_VULKAN); +} + +void rune_exit(void) { + log_output(LOG_INFO, "Engine shutdown requested"); + rune_destroy_renderer(renderer); + rune_destroy_window(window); + rune_free_all(); +} diff --git a/core/logging.c b/core/logging.c index 7f127f3..98ee55b 100644 --- a/core/logging.c +++ b/core/logging.c @@ -1,4 +1,4 @@ -#include <rune/logging.h> +#include <rune/core/logging.h> #include <stdio.h> #include <string.h> #include <stdarg.h> diff --git a/graphics/make.config b/graphics/make.config deleted file mode 100644 index 50ef43a..0000000 --- a/graphics/make.config +++ /dev/null @@ -1,16 +0,0 @@ -ifneq ("$(HEADLESS)", "1") - -LIBS += -lglfw - -ifeq ("$(RENDER_API)", "vulkan") - -LIBS += -lvulkan - -OBJS += graphics/render-vulkan/vulkan_context.o \ - graphics/render-vulkan/vulkan_debug.o \ - graphics/render-vulkan/vulkan_device.o \ - graphics/render-vulkan/vulkan_swapchain.o \ - -endif - -endif diff --git a/include/rune/graphics.h b/include/rune/core/callbacks.h index 8f10b4a..7367557 100644 --- a/include/rune/graphics.h +++ b/include/rune/core/callbacks.h @@ -19,20 +19,11 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#ifndef RUNE_GRAPHICS_H -#define RUNE_GRAPHICS_H +#ifndef RUNE_CALLBACKS_H +#define RUNE_CALLBACKS_H -#include <rune/types.h> -#include <GLFW/glfw3.h> +#include <rune/util/types.h> -struct rune_window { - uint32_t winw; - uint32_t winh; - const char *wintitle; - GLFWwindow *window; -}; - -RAPI int rune_gfx_init(struct rune_window *window); -RAPI void rune_gfx_quit(struct rune_window *window); +RAPI void error_callback(int error, const char *desc); #endif diff --git a/include/rune/core/init.h b/include/rune/core/init.h new file mode 100644 index 0000000..3aef63c --- /dev/null +++ b/include/rune/core/init.h @@ -0,0 +1,30 @@ +/* + * Rune Game Engine + * Copyright 2024 Danny Holman <dholman@gymli.org> + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + */ + +#ifndef RUNE_INIT_H +#define RUNE_INIT_H + +#include <rune/util/types.h> + +RAPI struct rune_window* rune_init(uint32_t width, uint32_t height, const char *title); +RAPI void rune_exit(void); + +#endif diff --git a/sound/make.config b/sound/make.config deleted file mode 100644 index 6fe27f5..0000000 --- a/sound/make.config +++ /dev/null @@ -1,7 +0,0 @@ -ifneq ("$(HEADLESS)", "1") - -LIBS += -lopenal - -OBJS += sound/sound.o \ - -endif |