From a23d279dfa284c1faf13ef0100bb6434a8e83617 Mon Sep 17 00:00:00 2001 From: BoredGuy Date: Fri, 26 Sep 2025 08:49:38 +0300 Subject: Getting started on renderer --- CMakeLists.txt | 3 +++ src/renderwindow.c | 22 ++++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 src/renderwindow.c 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 +#include +#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(); +} -- cgit v1.2.3