#ifndef SDL_pipeline_gpu_h_
#define SDL_pipeline_gpu_h_
#include "SDL_internal.h"
#include "SDL_shaders_gpu.h"
typedef struct GPU_PipelineParameters
{
SDL_BlendMode blend_mode;
GPU_FragmentShaderID frag_shader;
GPU_VertexShaderID vert_shader;
SDL_GPUTextureFormat attachment_format;
SDL_GPUPrimitiveType primitive_type;
SDL_GPUShader *custom_frag_shader;
} GPU_PipelineParameters;
typedef struct GPU_PipelineCache
{
SDL_HashTable *table;
} GPU_PipelineCache;
extern bool GPU_InitPipelineCache(GPU_PipelineCache *cache, SDL_GPUDevice *device);
extern void GPU_DestroyPipelineCache(GPU_PipelineCache *cache);
extern SDL_GPUGraphicsPipeline *GPU_GetPipeline(GPU_PipelineCache *cache, GPU_Shaders *shaders, SDL_GPUDevice *device, const GPU_PipelineParameters *params);
#endif