summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoredGuy <osome3717@gmail.com>2025-09-26 08:49:38 +0300
committerBoredGuy <osome3717@gmail.com>2025-09-26 08:49:38 +0300
commita23d279dfa284c1faf13ef0100bb6434a8e83617 (patch)
tree105dd21add3e89c5d13cb09c51d9a93f172960dd
parent141287e361f45f47cdf93aecf0b2d93620c01020 (diff)
Getting started on renderer
-rw-r--r--CMakeLists.txt3
-rw-r--r--src/renderwindow.c22
2 files changed, 25 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4eae662..5695ca5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -10,6 +10,9 @@ find_package(Dawn REQUIRED)
add_executable(game
"src/main.c"
+ "src/renderwindow.c"
+
+ "include/renderwindow.h"
)
target_link_libraries(game SDL3::SDL3 dawn::webgpu_dawn)
diff --git a/src/renderwindow.c b/src/renderwindow.c
new file mode 100644
index 0000000..d3bea0c
--- /dev/null
+++ b/src/renderwindow.c
@@ -0,0 +1,22 @@
+#include <SDL3/SDL.h>
+#include <dawn/webgpu.h>
+#include "renderwindow.h"
+
+RenderWindow InitRenderWindow(int width, int height, const char* title) {
+ RenderWindow renderWindow = {0};
+ SDL_Init(SDL_INIT_VIDEO);
+ renderWindow.window = SDL_CreateWindow(title, width, height, 0);
+
+ renderWindow.wgpuInstance = wgpuCreateInstance(&(const WGPUInstanceDescriptor){
+ .requiredFeatureCount = 1,
+ .requiredFeatures = (WGPUInstanceFeatureName[]) { WGPUInstanceFeatureName_TimedWaitAny }
+ });
+
+ return renderWindow;
+}
+
+void QuitRenderWindow(RenderWindow* renderWindow) {
+ wgpuInstanceRelease(renderWindow->wgpuInstance);
+ SDL_DestroyWindow(renderWindow->window);
+ SDL_Quit();
+}