#pragma once
#include <SDL3/SDL_gpu.h>

struct RayPipeline {
  SDL_GPUGraphicsPipeline* pipeline = nullptr;
  SDL_GPUShader*           vert     = nullptr;
  SDL_GPUShader*           frag     = nullptr;

  void create(SDL_GPUDevice* dev, SDL_Window* win);
  void destroy(SDL_GPUDevice* dev);
};

struct PostPipeline {
  SDL_GPUGraphicsPipeline* pipeline = nullptr;
  SDL_GPUShader*           vert     = nullptr;
  SDL_GPUShader*           frag     = nullptr;

  void create(SDL_GPUDevice* dev, SDL_Window* win);
  void destroy(SDL_GPUDevice* dev);
};