| Flutter Impeller |

blit_command_vk.h
Go to the documentation of this file.
1 // Copyright 2013 The Flutter Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_BLIT_COMMAND_VK_H_
6 #define FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_BLIT_COMMAND_VK_H_
7
8 #include <memory>
9 #include "impeller/base/backend_cast.h"
10 #include "impeller/renderer/backend/vulkan/context_vk.h"
11 #include "impeller/renderer/blit_command.h"
12 #include "impeller/renderer/context.h"
13
14 namespace impeller {
15
16 class CommandEncoderVK;
17
18 // TODO(csg): Should these be backend castable to blit command?
19 /// Mixin for dispatching Vulkan commands.
20 struct BlitEncodeVK : BackendCast<BlitEncodeVK, BlitCommand> {
21 virtual ~BlitEncodeVK();
22
23 virtual std::string GetLabel() const = 0;
24
25 [[nodiscard]] virtual bool Encode(CommandEncoderVK& encoder) const = 0;
26 };
27
28 struct BlitCopyTextureToTextureCommandVK
29 : public BlitCopyTextureToTextureCommand,
30 public BlitEncodeVK {
31 ~BlitCopyTextureToTextureCommandVK() override;
32
33 std::string GetLabel() const override;
34
35 [[nodiscard]] bool Encode(CommandEncoderVK& encoder) const override;
36 };
37
38 struct BlitCopyTextureToBufferCommandVK : public BlitCopyTextureToBufferCommand,
39 public BlitEncodeVK {
40 ~BlitCopyTextureToBufferCommandVK() override;
41
42 std::string GetLabel() const override;
43
44 [[nodiscard]] bool Encode(CommandEncoderVK& encoder) const override;
45 };
46
47 struct BlitCopyBufferToTextureCommandVK : public BlitCopyBufferToTextureCommand,
48 public BlitEncodeVK {
49 ~BlitCopyBufferToTextureCommandVK() override;
50
51 std::string GetLabel() const override;
52
53 [[nodiscard]] bool Encode(CommandEncoderVK& encoder) const override;
54 };
55
56 struct BlitGenerateMipmapCommandVK : public BlitGenerateMipmapCommand,
57 public BlitEncodeVK {
58 ~BlitGenerateMipmapCommandVK() override;
59
60 std::string GetLabel() const override;
61
62 [[nodiscard]] bool Encode(CommandEncoderVK& encoder) const override;
63 };
64
65 } // namespace impeller
66
67 #endif // FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_BLIT_COMMAND_VK_H_
impeller::BlitGenerateMipmapCommand
Definition: blit_command.h:38
impeller::BlitGenerateMipmapCommandVK::GetLabel
std::string GetLabel() const override
Definition: blit_command_vk.cc:213
blit_command.h
impeller::BlitGenerateMipmapCommandVK::Encode
bool Encode(CommandEncoderVK &encoder) const override
Definition: blit_command_vk.cc:248
impeller::BlitEncodeVK
Mixin for dispatching Vulkan commands.
Definition: blit_command_vk.h:20
impeller::BlitCopyBufferToTextureCommandVK
Definition: blit_command_vk.h:47
impeller::BlitCopyTextureToTextureCommandVK::Encode
bool Encode(CommandEncoderVK &encoder) const override
Definition: blit_command_vk.cc:27
impeller::BlitCopyBufferToTextureCommand
Definition: blit_command.h:32
impeller::BlitCopyTextureToTextureCommandVK::GetLabel
std::string GetLabel() const override
Definition: blit_command_vk.cc:23
impeller::BlitCopyBufferToTextureCommandVK::Encode
bool Encode(CommandEncoderVK &encoder) const override
Definition: blit_command_vk.cc:161
impeller::BlitCopyTextureToBufferCommand
Definition: blit_command.h:25
backend_cast.h
impeller::BlitGenerateMipmapCommandVK::~BlitGenerateMipmapCommandVK
~BlitGenerateMipmapCommandVK() override
impeller::BlitCopyTextureToBufferCommandVK::GetLabel
std::string GetLabel() const override
Definition: blit_command_vk.cc:97
impeller::BlitCopyTextureToBufferCommandVK::Encode
bool Encode(CommandEncoderVK &encoder) const override
Definition: blit_command_vk.cc:101
impeller::BlitGenerateMipmapCommandVK
Definition: blit_command_vk.h:56
impeller::BlitEncodeVK::Encode
virtual bool Encode(CommandEncoderVK &encoder) const =0
impeller::BlitCopyTextureToBufferCommandVK
Definition: blit_command_vk.h:38
impeller::BackendCast
Definition: backend_cast.h:13
impeller::BlitCopyBufferToTextureCommandVK::~BlitCopyBufferToTextureCommandVK
~BlitCopyBufferToTextureCommandVK() override
context.h
impeller::BlitEncodeVK::GetLabel
virtual std::string GetLabel() const =0
impeller::BlitCopyTextureToTextureCommandVK
Definition: blit_command_vk.h:28
context_vk.h
impeller::BlitCopyTextureToBufferCommandVK::~BlitCopyTextureToBufferCommandVK
~BlitCopyTextureToBufferCommandVK() override
impeller::BlitCopyTextureToTextureCommandVK::~BlitCopyTextureToTextureCommandVK
~BlitCopyTextureToTextureCommandVK() override
impeller::CommandEncoderVK
Definition: command_encoder_vk.h:49
impeller
Definition: aiks_context.cc:10
impeller::BlitEncodeVK::~BlitEncodeVK
virtual ~BlitEncodeVK()
impeller::BlitCopyTextureToTextureCommand
Definition: blit_command.h:18
impeller::BlitCopyBufferToTextureCommandVK::GetLabel
std::string GetLabel() const override
Definition: blit_command_vk.cc:157