| Flutter Impeller |

blit_command_gles.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_GLES_BLIT_COMMAND_GLES_H_
6 #define FLUTTER_IMPELLER_RENDERER_BACKEND_GLES_BLIT_COMMAND_GLES_H_
7
8 #include "impeller/base/backend_cast.h"
9 #include "impeller/renderer/backend/gles/reactor_gles.h"
10 #include "impeller/renderer/blit_command.h"
11
12 namespace impeller {
13
14 /// Mixin for dispatching GLES commands.
15 struct BlitEncodeGLES : BackendCast<BlitEncodeGLES, BlitCommand> {
16 virtual ~BlitEncodeGLES();
17
18 virtual std::string GetLabel() const = 0;
19
20 [[nodiscard]] virtual bool Encode(const ReactorGLES& reactor) const = 0;
21 };
22
23 struct BlitCopyBufferToTextureCommandGLES
24 : public BlitEncodeGLES,
25 public BlitCopyBufferToTextureCommand {
26 ~BlitCopyBufferToTextureCommandGLES() override;
27
28 std::string GetLabel() const override;
29
30 [[nodiscard]] bool Encode(const ReactorGLES& reactor) const override;
31 };
32
33 struct BlitCopyTextureToTextureCommandGLES
34 : public BlitEncodeGLES,
35 public BlitCopyTextureToTextureCommand {
36 ~BlitCopyTextureToTextureCommandGLES() override;
37
38 std::string GetLabel() const override;
39
40 [[nodiscard]] bool Encode(const ReactorGLES& reactor) const override;
41 };
42
43 struct BlitCopyTextureToBufferCommandGLES
44 : public BlitEncodeGLES,
45 public BlitCopyTextureToBufferCommand {
46 ~BlitCopyTextureToBufferCommandGLES() override;
47
48 std::string GetLabel() const override;
49
50 [[nodiscard]] bool Encode(const ReactorGLES& reactor) const override;
51 };
52
53 struct BlitGenerateMipmapCommandGLES : public BlitEncodeGLES,
54 public BlitGenerateMipmapCommand {
55 ~BlitGenerateMipmapCommandGLES() override;
56
57 std::string GetLabel() const override;
58
59 [[nodiscard]] bool Encode(const ReactorGLES& reactor) const override;
60 };
61
62 struct BlitResizeTextureCommandGLES : public BlitEncodeGLES,
63 public BlitResizeTextureCommand {
64 ~BlitResizeTextureCommandGLES() override;
65
66 std::string GetLabel() const override;
67
68 [[nodiscard]] bool Encode(const ReactorGLES& reactor) const override;
69 };
70
71 } // namespace impeller
72
73 #endif // FLUTTER_IMPELLER_RENDERER_BACKEND_GLES_BLIT_COMMAND_GLES_H_
impeller::BlitGenerateMipmapCommand
Definition: blit_command.h:46
impeller::BlitCopyTextureToTextureCommandGLES::Encode
bool Encode(const ReactorGLES &reactor) const override
Definition: blit_command_gles.cc:93
impeller::BlitCopyBufferToTextureCommandGLES::Encode
bool Encode(const ReactorGLES &reactor) const override
Definition: blit_command_gles.cc:225
impeller::BlitGenerateMipmapCommandGLES
Definition: blit_command_gles.h:53
blit_command.h
impeller::BlitEncodeGLES::Encode
virtual bool Encode(const ReactorGLES &reactor) const =0
impeller::BlitCopyBufferToTextureCommand
Definition: blit_command.h:38
impeller::BlitCopyTextureToTextureCommandGLES::~BlitCopyTextureToTextureCommandGLES
~BlitCopyTextureToTextureCommandGLES() override
impeller::BlitResizeTextureCommand
Definition: blit_command.h:26
impeller::BlitCopyTextureToBufferCommand
Definition: blit_command.h:31
impeller::BlitGenerateMipmapCommandGLES::Encode
bool Encode(const ReactorGLES &reactor) const override
Definition: blit_command_gles.cc:383
impeller::BlitCopyBufferToTextureCommandGLES
Definition: blit_command_gles.h:23
backend_cast.h
impeller::BlitCopyTextureToBufferCommandGLES::GetLabel
std::string GetLabel() const override
Definition: blit_command_gles.cc:329
impeller::BlitEncodeGLES::GetLabel
virtual std::string GetLabel() const =0
impeller::BlitResizeTextureCommandGLES::Encode
bool Encode(const ReactorGLES &reactor) const override
Definition: blit_command_gles.cc:401
impeller::BlitEncodeGLES
Mixin for dispatching GLES commands.
Definition: blit_command_gles.h:15
impeller::BlitResizeTextureCommandGLES
Definition: blit_command_gles.h:62
impeller::BlitCopyTextureToBufferCommandGLES::Encode
bool Encode(const ReactorGLES &reactor) const override
Definition: blit_command_gles.cc:333
impeller::BlitGenerateMipmapCommandGLES::GetLabel
std::string GetLabel() const override
Definition: blit_command_gles.cc:379
impeller::BlitCopyTextureToTextureCommandGLES
Definition: blit_command_gles.h:33
reactor_gles.h
impeller::BlitCopyTextureToBufferCommandGLES::~BlitCopyTextureToBufferCommandGLES
~BlitCopyTextureToBufferCommandGLES() override
impeller::BlitCopyBufferToTextureCommandGLES::~BlitCopyBufferToTextureCommandGLES
~BlitCopyBufferToTextureCommandGLES() override
impeller::BackendCast
Definition: backend_cast.h:11
impeller::BlitResizeTextureCommandGLES::~BlitResizeTextureCommandGLES
~BlitResizeTextureCommandGLES() override
impeller::ReactorGLES
The reactor attempts to make thread-safe usage of OpenGL ES easier to reason about.
Definition: reactor_gles.h:57
impeller::BlitGenerateMipmapCommandGLES::~BlitGenerateMipmapCommandGLES
~BlitGenerateMipmapCommandGLES() override
impeller::BlitCopyTextureToTextureCommandGLES::GetLabel
std::string GetLabel() const override
Definition: blit_command_gles.cc:89
impeller
Definition: allocation.cc:12
impeller::BlitResizeTextureCommandGLES::GetLabel
std::string GetLabel() const override
Definition: blit_command_gles.cc:397
impeller::BlitCopyTextureToBufferCommandGLES
Definition: blit_command_gles.h:43
impeller::BlitCopyTextureToTextureCommand
Definition: blit_command.h:19
impeller::BlitCopyBufferToTextureCommandGLES::GetLabel
std::string GetLabel() const override
Definition: blit_command_gles.cc:221
impeller::BlitEncodeGLES::~BlitEncodeGLES
virtual ~BlitEncodeGLES()