]> git.tdb.fi Git - libs/gl.git/blobdiff - source/backends/vulkan/commands_backend.h
Apply only changed parts of VulkanPipelineState
[libs/gl.git] / source / backends / vulkan / commands_backend.h
index f96a441c434c5375cc8d0af4df25232ee39a128f..7e1554413bb10acebd50e840a540ed2c7dbd2777 100644 (file)
@@ -4,6 +4,7 @@
 #include <vector>
 #include "fence.h"
 #include "handles.h"
+#include "rect.h"
 
 namespace Msp {
 namespace GL {
@@ -14,7 +15,6 @@ class Device;
 class Framebuffer;
 class PipelineState;
 class QueryPool;
-struct Rect;
 class Semaphore;
 class SwapChain;
 
@@ -43,13 +43,15 @@ protected:
 
        Device &device;
        std::vector<CommandPool> command_pools;
-       CommandPool *current_pool = 0;
+       unsigned frame_index = 0;
        VkCommandBuffer primary_buffer = 0;
        VkCommandBuffer pass_buffer = 0;
        const PipelineState *pipeline_state = 0;
+       const PipelineState *last_pipeline = 0;
        const Framebuffer *framebuffer = 0;
-       const Rect *viewport = 0;
+       Rect viewport = Rect::max();
        bool fb_is_swapchain = false;
+       bool discard_fb_contents = false;
        std::vector<char> pass_begin_info;
 
        VulkanCommands();