5 #ifndef FLUTTER_IMPELLER_RENDERER_BACKEND_METAL_BLIT_PASS_MTL_H_
6 #define FLUTTER_IMPELLER_RENDERER_BACKEND_METAL_BLIT_PASS_MTL_H_
8 #include <Metal/Metal.h>
10 #include "flutter/fml/macros.h"
24 std::vector<std::unique_ptr<BlitEncodeMTL>> commands_;
25 id<MTLCommandBuffer> buffer_ = nil;
27 bool is_valid_ =
false;
32 bool IsValid()
const override;
35 void OnSetLabel(std::string label)
override;
39 const std::shared_ptr<Allocator>& transients_allocator)
const override;
41 bool EncodeCommands(id<MTLBlitCommandEncoder> pass)
const;
44 bool OnCopyTextureToTextureCommand(std::shared_ptr<Texture> source,
45 std::shared_ptr<Texture> destination,
48 std::string label)
override;
51 bool OnCopyTextureToBufferCommand(std::shared_ptr<Texture> source,
52 std::shared_ptr<DeviceBuffer> destination,
54 size_t destination_offset,
55 std::string label)
override;
57 bool OnCopyBufferToTextureCommand(
BufferView source,
58 std::shared_ptr<Texture> destination,
60 std::string label)
override;
63 bool OnGenerateMipmapCommand(std::shared_ptr<Texture> texture,
64 std::string label)
override;
73 #endif // FLUTTER_IMPELLER_RENDERER_BACKEND_METAL_BLIT_PASS_MTL_H_