Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Friends | List of all members
impeller::ShaderLibraryVK Class Referencefinal

#include <shader_library_vk.h>

Inheritance diagram for impeller::ShaderLibraryVK:
impeller::ShaderLibrary

Public Member Functions

 ~ShaderLibraryVK () override
 
bool IsValid () const override
 
- Public Member Functions inherited from impeller::ShaderLibrary
virtual ~ShaderLibrary ()
 

Private Member Functions

std::shared_ptr< const ShaderFunctionGetFunction (std::string_view name, ShaderStage stage) override
 
void RegisterFunction (std::string name, ShaderStage stage, std::shared_ptr< fml::Mapping > code, RegistrationCallback callback) override
 
void UnregisterFunction (std::string name, ShaderStage stage) override
 

Friends

class ContextVK
 

Additional Inherited Members

- Public Types inherited from impeller::ShaderLibrary
using RegistrationCallback = std::function< void(bool)>
 
- Protected Member Functions inherited from impeller::ShaderLibrary
 ShaderLibrary ()
 

Detailed Description

Definition at line 18 of file shader_library_vk.h.

Constructor & Destructor Documentation

◆ ~ShaderLibraryVK()

impeller::ShaderLibraryVK::~ShaderLibraryVK ( )
overridedefault

Member Function Documentation

◆ GetFunction()

std::shared_ptr< const ShaderFunction > impeller::ShaderLibraryVK::GetFunction ( std::string_view  name,
ShaderStage  stage 
)
overrideprivatevirtual

Implements impeller::ShaderLibrary.

Definition at line 94 of file shader_library_vk.cc.

96 {
97 ReaderLock lock(functions_mutex_);
98
99 const auto key = ShaderKey{{name.data(), name.size()}, stage};
100 auto found = functions_.find(key);
101 if (found != functions_.end()) {
102 return found->second;
103 }
104 return nullptr;
105}
const char * name
Definition fuchsia.cc:50

◆ IsValid()

bool impeller::ShaderLibraryVK::IsValid ( ) const
overridevirtual

Implements impeller::ShaderLibrary.

Definition at line 89 of file shader_library_vk.cc.

89 {
90 return is_valid_;
91}

◆ RegisterFunction()

void impeller::ShaderLibraryVK::RegisterFunction ( std::string  name,
ShaderStage  stage,
std::shared_ptr< fml::Mapping code,
RegistrationCallback  callback 
)
overrideprivatevirtual

Reimplemented from impeller::ShaderLibrary.

Definition at line 108 of file shader_library_vk.cc.

111 {
112 const auto result = RegisterFunction(name, stage, code);
113 if (callback) {
115 }
116}
void RegisterFunction(std::string name, ShaderStage stage, std::shared_ptr< fml::Mapping > code, RegistrationCallback callback) override
FlKeyEvent uint64_t FlKeyResponderAsyncCallback callback
GAsyncResult * result

◆ UnregisterFunction()

void impeller::ShaderLibraryVK::UnregisterFunction ( std::string  name,
ShaderStage  stage 
)
overrideprivatevirtual

Implements impeller::ShaderLibrary.

Definition at line 179 of file shader_library_vk.cc.

179 {
180 WriterLock lock(functions_mutex_);
181
182 const auto key = ShaderKey{name, stage};
183
184 auto found = functions_.find(key);
185 if (found == functions_.end()) {
186 VALIDATION_LOG << "Library function named " << name
187 << " was not found, so it couldn't be unregistered.";
188 return;
189 }
190
191 functions_.erase(found);
192
193 return;
194}
#define VALIDATION_LOG
Definition validation.h:73

Friends And Related Symbol Documentation

◆ ContextVK

friend class ContextVK
friend

Definition at line 27 of file shader_library_vk.h.


The documentation for this class was generated from the following files: