]> git.tdb.fi Git - libs/gl.git/blobdiff - source/backends/vulkan/renderer_backend.h
Support multiple PipelineStates in Renderer
[libs/gl.git] / source / backends / vulkan / renderer_backend.h
index fed048410b0e18f26cce9d645fe355723ee54b42..3b0c2f0ff284fc422c27837d66c3d8259418dc37 100644 (file)
@@ -11,15 +11,21 @@ namespace GL {
 class VulkanRenderer: public NonCopyable
 {
 protected:
-       PipelineState pipeline_state;
+       std::map<std::uintptr_t, PipelineState> pipeline_states;
+       PipelineState *current_pipeline = 0;
        Semaphore *begin_semaphore = 0;
        Semaphore *end_semaphore = 0;
 
+       VulkanRenderer();
+
        void begin();
        void begin(Semaphore &);
 
        void end();
        void end(Semaphore &);
+
+       void set_pipeline_key(std::uintptr_t);
+       PipelineState &get_pipeline_state() { return *current_pipeline; }
 };
 
 using RendererBackend = VulkanRenderer;