summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny Holman <dholman@gymli.org>2024-10-25 23:18:06 -0500
committerDanny Holman <dholman@gymli.org>2024-10-25 23:18:06 -0500
commite879c0388fd9ebb6272eee9c12027f7637efbffc (patch)
treead83d2ca3e58d4fbfdb3a0f4fcb1d8ec9353566f
parent29718f0e8e44de7da44526ca5490736c0bd94112 (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.txt1
-rw-r--r--include/rune/render/renderer.h (renamed from include/rune/ui/renderer.h)6
-rw-r--r--render/vulkan/renderer.c2
-rw-r--r--ui/renderer.c32
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);
-}