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

SDL_GPUShader* load_shader(SDL_GPUDevice* dev, const char* path, SDL_GPUShaderStage stage,
                            uint32_t num_samplers, uint32_t num_uniform_buffers);

SDL_GPUTexture* create_render_texture(SDL_GPUDevice* dev, SDL_Window* win,
                                       uint32_t w, uint32_t h);

SDL_GPUSampler* create_linear_sampler(SDL_GPUDevice* dev);

void upload_buffer(SDL_GPUDevice* dev, SDL_GPUBuffer* dst, const void* data, uint32_t size);
