diff options
author | Danny Holman <dholman@gymli.org> | 2024-10-25 23:18:06 -0500 |
---|---|---|
committer | Danny Holman <dholman@gymli.org> | 2024-10-25 23:18:06 -0500 |
commit | e879c0388fd9ebb6272eee9c12027f7637efbffc (patch) | |
tree | ad83d2ca3e58d4fbfdb3a0f4fcb1d8ec9353566f | |
parent | 29718f0e8e44de7da44526ca5490736c0bd94112 (diff) |
render: move all rendering code out of ui
Move all the rendering code out of the UI subsystem. The new rendering
API now has hooks that the UI code can make use of.
Signed-off-by: Danny Holman <dholman@gymli.org>
-rw-r--r-- | CMakeLists.txt | 1 | ||||
-rw-r--r-- | include/rune/render/renderer.h (renamed from include/rune/ui/renderer.h) | 6 | ||||
-rw-r--r-- | render/vulkan/renderer.c | 2 | ||||
-rw-r--r-- | ui/renderer.c | 32 |
4 files changed, 4 insertions, 37 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 35a543e..5b7ac79 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,7 +31,6 @@ list(APPEND SOURCE_FILES render/vulkan/swapchain.c ui/window.c ui/input.c - ui/renderer.c ) find_package(Vulkan REQUIRED) diff --git a/include/rune/ui/renderer.h b/include/rune/render/renderer.h index 92863a5..e95a0eb 100644 --- a/include/rune/ui/renderer.h +++ b/include/rune/render/renderer.h @@ -19,15 +19,15 @@ * 3. This notice may not be removed or altered from any source distribution. */ -#ifndef RUNE_UI_RENDERER_H -#define RUNE_UI_RENDERER_H +#ifndef RUNE_RENDER_RENDERER_H +#define RUNE_RENDER_RENDERER_H #include <rune/util/types.h> #include <rune/ui/window.h> struct rune_renderer { int (*init)(struct rune_window *window); - void (*close)(void); + void (*close)(struct rune_renderer *renderer); void (*draw)(void); void (*clear)(void); }; diff --git a/render/vulkan/renderer.c b/render/vulkan/renderer.c index 91dc3fb..0b11a1c 100644 --- a/render/vulkan/renderer.c +++ b/render/vulkan/renderer.c @@ -1,6 +1,6 @@ #include <vulkan/vulkan.h> #include <GLFW/glfw3.h> -#include <rune/ui/renderer.h> +#include <rune/render/renderer.h> #include <rune/core/logging.h> #include <rune/core/alloc.h> #include <rune/core/abort.h> diff --git a/ui/renderer.c b/ui/renderer.c deleted file mode 100644 index a4220b1..0000000 --- a/ui/renderer.c +++ /dev/null @@ -1,32 +0,0 @@ -#include <rune/ui/renderer.h> -#include <rune/video/vulkan/renderer.h> -#include <rune/video/directx/renderer.h> -#include <rune/core/alloc.h> -#include <rune/core/logging.h> -#include <rune/core/abort.h> - -struct rune_renderer* rune_create_renderer(struct rune_window *window, int type) { - struct rune_renderer *ret = rune_alloc(sizeof(struct rune_renderer)); - ret->window = window; - - switch (type) { - case RUNE_RENDERER_VULKAN: - ret->init = rune_init_vulkan; - ret->close = rune_close_vulkan; - break; - case RUNE_RENDERER_DIRECTX: - ret->init = rune_init_directx; - ret->close = rune_close_directx; - break; - default: - log_output(LOG_FATAL, "Invalid rendering API selected"); - rune_abort(); - } - - (*ret->init)(ret); -} - -void rune_destroy_renderer(struct rune_renderer *renderer) { - (*renderer->close)(renderer); - rune_free(renderer); -} |