diff options
author | BoredGuy <osome3717@gmail.com> | 2025-09-26 08:49:38 +0300 |
---|---|---|
committer | BoredGuy <osome3717@gmail.com> | 2025-09-26 08:49:38 +0300 |
commit | a23d279dfa284c1faf13ef0100bb6434a8e83617 (patch) | |
tree | 105dd21add3e89c5d13cb09c51d9a93f172960dd | |
parent | 141287e361f45f47cdf93aecf0b2d93620c01020 (diff) |
Getting started on renderer
-rw-r--r-- | CMakeLists.txt | 3 | ||||
-rw-r--r-- | src/renderwindow.c | 22 |
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(); +} |