7 #include <Foundation/Foundation.h>
8 #include <Metal/Metal.h>
12 #include <unordered_map>
14 #include "flutter/fml/macros.h"
36 mutable RWMutex libraries_mutex_;
37 NSMutableArray<id<MTLLibrary>>* libraries_
IPLR_GUARDED_BY(libraries_mutex_) =
40 bool is_valid_ =
false;
45 std::shared_ptr<const ShaderFunction> GetFunction(std::string_view name,
49 void RegisterFunction(std::string name,
51 std::shared_ptr<fml::Mapping> code,
55 void UnregisterFunction(std::string name,
ShaderStage stage)
override;
57 id<MTLDevice> GetDevice()
const;
59 void RegisterLibrary(id<MTLLibrary> library);