]> git.tdb.fi Git - libs/gl.git/blob - source/backends/vulkan/pipelinecache.h
Rewrite descriptor set management
[libs/gl.git] / source / backends / vulkan / pipelinecache.h
1 #ifndef MSP_GL_VULKAN_PIPELINECACHE_H_
2 #define MSP_GL_VULKAN_PIPELINECACHE_H_
3
4 #include <cstdint>
5 #include <map>
6 #include "frameformat.h"
7 #include "handles.h"
8
9 namespace Msp {
10 namespace GL {
11
12 class Device;
13 class PipelineState;
14
15 class PipelineCache
16 {
17 private:
18         Device &device;
19         std::map<std::uint64_t, VkRenderPass> render_passes;
20         std::map<std::uint64_t, VkPipeline> pipelines;
21
22 public:
23         PipelineCache(Device &);
24         PipelineCache(PipelineCache &&);
25         ~PipelineCache();
26
27         VkRenderPass get_render_pass(const FrameFormat &, bool, bool, bool);
28         VkPipeline get_pipeline(const PipelineState &);
29 };
30
31 } // namespace GL
32 } // namespace Msp
33
34 #endif