summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/renderwindow.c22
1 files changed, 22 insertions, 0 deletions
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();
+}