5 #ifndef FLUTTER_IMPELLER_RENDERER_BACKEND_METAL_COMMAND_BUFFER_MTL_H_
6 #define FLUTTER_IMPELLER_RENDERER_BACKEND_METAL_COMMAND_BUFFER_MTL_H_
8 #include <Metal/Metal.h>
10 #include "flutter/fml/macros.h"
24 id<MTLCommandBuffer> buffer_ =
nullptr;
27 id<MTLCommandQueue> queue);
30 void SetLabel(
const std::string& label)
const override;
33 bool IsValid()
const override;
39 void OnWaitUntilScheduled()
override;
42 bool EncodeAndSubmit(
const std::shared_ptr<RenderPass>& render_pass)
override;
45 bool EncodeAndSubmit(
const std::shared_ptr<BlitPass>& blit_ass,
46 const std::shared_ptr<Allocator>& allocator)
override;
49 std::shared_ptr<RenderPass> OnCreateRenderPass(
RenderTarget target)
override;
52 std::shared_ptr<BlitPass> OnCreateBlitPass()
override;
55 std::shared_ptr<ComputePass> OnCreateComputePass()
override;
64 #endif // FLUTTER_IMPELLER_RENDERER_BACKEND_METAL_COMMAND_BUFFER_MTL_H_