summaryrefslogtreecommitdiff
path: root/src/renderwindow.c
blob: d3bea0c466a67851fd11673c3adb1dc553dd9b0c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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();
}