#ifndef SDL_shaders_gpu_h_
#define SDL_shaders_gpu_h_
#include "SDL_internal.h"
typedef enum
{
VERT_SHADER_INVALID = -1,
VERT_SHADER_LINEPOINT,
VERT_SHADER_TRI_COLOR,
VERT_SHADER_TRI_TEXTURE,
NUM_VERT_SHADERS,
} GPU_VertexShaderID;
typedef enum
{
FRAG_SHADER_INVALID = -1,
FRAG_SHADER_COLOR,
FRAG_SHADER_TEXTURE_RGB,
FRAG_SHADER_TEXTURE_RGBA,
FRAG_SHADER_TEXTURE_ADVANCED,
FRAG_SHADER_TEXTURE_CUSTOM,
NUM_FRAG_SHADERS,
} GPU_FragmentShaderID;
struct GPU_Shaders
{
SDL_GPUShader *vert_shaders[NUM_VERT_SHADERS];
SDL_GPUShader *frag_shaders[NUM_FRAG_SHADERS];
};
typedef struct GPU_Shaders GPU_Shaders;
void GPU_FillSupportedShaderFormats(SDL_PropertiesID props);
extern bool GPU_InitShaders(GPU_Shaders *shaders, SDL_GPUDevice *device);
extern void GPU_ReleaseShaders(GPU_Shaders *shaders, SDL_GPUDevice *device);
extern SDL_GPUShader *GPU_GetVertexShader(GPU_Shaders *shaders, GPU_VertexShaderID id);
extern SDL_GPUShader *GPU_GetFragmentShader(GPU_Shaders *shaders, GPU_FragmentShaderID id);
#endif