kiba-engine
pipeline.h
1 #pragma once
2 
3 #include <kiba/core/types.h>
4 #include <kiba/gpu/types.h>
5 
6 // TODO once compute pipelines are on the agenda, re-eval if the render_ prefix is necessary /
7 // should be reflected in the data structures
8 KB_API b8 gpu_pipeline_layout_create(gpu_pipeline_layout *layout,
9  gpu_device device,
10  struct gpu_pipeline_layout_descriptor desc);
11 KB_API void gpu_pipeline_layout_destroy(gpu_pipeline_layout layout);
12 KB_LOCAL void gpu_pipeline_layout_destroy_internal(gpu_pipeline_layout layout);
13 
14 KB_API b8 gpu_render_pipeline_create(gpu_pipeline *pipeline,
15  gpu_device device,
16  struct gpu_render_pipeline_descriptor desc);
17 KB_API void gpu_render_pipeline_destroy(gpu_pipeline pipeline);
18 KB_LOCAL void gpu_render_pipeline_destroy_internal(gpu_pipeline pipeline);
19 
20 KB_LOCAL b8 gpu_backend_pipeline_layout_create(struct gpu_backend_pipeline_layout *layout,
21  struct gpu_backend_device *device,
22  struct gpu_pipeline_layout_descriptor desc);
23 KB_LOCAL void gpu_backend_pipeline_layout_destroy(struct gpu_backend_pipeline_layout *layout,
24  struct gpu_backend_device *device);
25 KB_LOCAL b8 gpu_backend_render_pipeline_create(struct gpu_backend_pipeline *pipeline,
26  struct gpu_backend_device *device,
27  struct gpu_render_pipeline_descriptor desc);
28 KB_LOCAL void gpu_backend_render_pipeline_destroy(struct gpu_backend_pipeline *pipeline,
29  struct gpu_backend_device *device);