5 #ifndef FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_COMMAND_BUFFER_VK_H_
6 #define FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_COMMAND_BUFFER_VK_H_
8 #include "fml/status_or.h"
20 class CommandEncoderFactoryVK;
21 class CommandEncoderVK;
26 public std::enable_shared_from_this<CommandBufferVK> {
35 bool Track(std::shared_ptr<SharedObjectVK>
object);
39 bool Track(
const std::shared_ptr<const DeviceBuffer>& buffer);
43 bool Track(
const std::shared_ptr<const Texture>& texture);
47 bool Track(std::shared_ptr<const TextureSourceVK> texture);
75 const vk::DescriptorSetLayout& layout,
79 bool IsTracking(
const std::shared_ptr<const DeviceBuffer>& texture)
const;
82 bool IsTracking(
const std::shared_ptr<const Texture>& texture)
const;
88 std::weak_ptr<const DeviceHolderVK> device_holder_;
89 std::shared_ptr<TrackedObjectsVK> tracked_objects_;
90 std::shared_ptr<FenceWaiterVK> fence_waiter_;
93 std::weak_ptr<const DeviceHolderVK> device_holder,
94 std::shared_ptr<TrackedObjectsVK> tracked_objects,
95 std::shared_ptr<FenceWaiterVK> fence_waiter);
98 void SetLabel(
const std::string& label)
const override;
101 bool IsValid()
const override;
107 void OnWaitUntilScheduled()
override;
110 std::shared_ptr<RenderPass> OnCreateRenderPass(
RenderTarget target)
override;
113 std::shared_ptr<BlitPass> OnCreateBlitPass()
override;
116 std::shared_ptr<ComputePass> OnCreateComputePass()
override;
125 #endif // FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_COMMAND_BUFFER_VK_H_