kiba-engine
shader.h
1 #pragma once
2 
3 #include <kiba/containers/array.h>
4 #include <kiba/gpu/enums.h>
5 #include <kiba/gpu/types.h>
6 
7 // TODO probably need to diff between front- and backend to validate shader
8 // ideally I'd like to provide either a filepath or glsl code which is then
9 // read and or compiled to the backend's desired language + validated against
10 // device features
11 
12 KB_API b8 gpu_shader_module_create(gpu_shader_module *shader,
13  gpu_device device,
14  struct gpu_shader_module_descriptor desc);
15 KB_API void gpu_shader_module_destroy(gpu_shader_module shader);
16 KB_LOCAL void gpu_shader_module_destroy_internal(gpu_shader_module shader);
17 
18 KB_LOCAL b8 gpu_backend_shader_module_create(struct gpu_backend_shader_module *shader,
19  struct gpu_backend_device *device,
20  struct gpu_shader_module_descriptor desc);
21 KB_LOCAL void gpu_backend_shader_module_destroy(struct gpu_backend_shader_module *shader,
22  struct gpu_backend_device *device);