summaryrefslogtreecommitdiff
path: root/src/graphics.cc
diff options
context:
space:
mode:
authorFabrice <fabrice@schaub-dev.xyz>2026-02-10 14:15:22 +0100
committerFabrice <fabrice@schaub-dev.xyz>2026-02-10 14:15:22 +0100
commit8925a2099aa056a917ff31495c5b07d3cd267311 (patch)
tree4101d5e7e22fbb01a4c8b3e9bbe3abc7b496c4a7 /src/graphics.cc
parent1acadb9cdfc2025b65b190c872e420b199827655 (diff)
vulkan work
Diffstat (limited to 'src/graphics.cc')
-rw-r--r--src/graphics.cc38
1 files changed, 37 insertions, 1 deletions
diff --git a/src/graphics.cc b/src/graphics.cc
index d0a257a..dc81041 100644
--- a/src/graphics.cc
+++ b/src/graphics.cc
@@ -1 +1,37 @@
-#include "graphics.h" \ No newline at end of file
+#include "graphics.h"
+
+#include <cstring>
+
+#include "utils.h"
+
+#define WAYC_APP_NAME ""
+#define WAYC_APP_VERSION 0
+
+enum graphics_error_e wayc_graphics_init(struct graphics_s* graphics) {
+ wayc_notnull(graphics);
+ memset(graphics, 0, sizeof(*graphics));
+
+ VkApplicationInfo appinfo = {};
+ appinfo.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO;
+ appinfo.pApplicationName = WAYC_APP_NAME;
+ appinfo.applicationVersion = WAYC_APP_VERSION;
+ appinfo.pEngineName = WAYC_APP_NAME;
+ appinfo.engineVersion = WAYC_APP_VERSION;
+
+ VkInstanceCreateInfo createinfo = {};
+ createinfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
+ createinfo.pApplicationInfo = &appinfo;
+
+ VkResult result = vkCreateInstance(&createinfo, nullptr, &graphics->instance);
+ if (result != VK_SUCCESS) return GRAPHICS_ERROR_INSTANCE;
+
+ graphics->instance = VK_NULL_HANDLE;
+ return GRAPHICS_ERROR_NONE;
+}
+
+void wayc_graphics_deinit(struct graphics_s* graphics) {
+ wayc_notnull(graphics);
+
+ if (graphics->instance == nullptr) return;
+ vkDestroyInstance(graphics->instance, nullptr);
+}