X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbackends%2Fvulkan%2Fcommands_backend.h;h=feb7d0778aaef40d4100445370402df92deee696;hb=60f288b3a6b5753702ed2b2c035f29778ae0b7d0;hp=3f2c3be9bbf243029028f519360c4e5523f4b642;hpb=edc150206f9762facf37b419705ddb8cf21f4e4c;p=libs%2Fgl.git diff --git a/source/backends/vulkan/commands_backend.h b/source/backends/vulkan/commands_backend.h index 3f2c3be9..feb7d077 100644 --- a/source/backends/vulkan/commands_backend.h +++ b/source/backends/vulkan/commands_backend.h @@ -4,6 +4,7 @@ #include #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,12 +43,13 @@ protected: Device &device; std::vector 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 pass_begin_info; @@ -68,7 +69,8 @@ protected: void clear(const ClearValue *); void draw(const Batch &); void draw_instanced(const Batch &, unsigned); - void resolve_multisample(Framebuffer &); + void dispatch(unsigned, unsigned, unsigned); + void resolve_multisample(); void begin_query(const QueryPool &, unsigned); void end_query(const QueryPool &, unsigned);