5#ifndef FLUTTER_IMPELLER_RENDERER_BACKEND_GLES_HANDLE_GLES_H_
6#define FLUTTER_IMPELLER_RENDERER_BACKEND_GLES_HANDLE_GLES_H_
12#include <unordered_map>
13#include <unordered_set>
15#include "flutter/fml/hash_combine.h"
16#include "flutter/fml/macros.h"
37 std::optional<UniqueID>
name;
43 constexpr bool IsDead()
const {
return !
name.has_value(); }
48 std::underlying_type_t<
decltype(handle.
type)>(handle.
type),
68 return HandleGLES{
type, UniqueID{}};
78 out << HandleTypeToString(handle.
type) <<
"(";
82 if (handle.
name.has_value()) {
83 out << handle.
name.value().id;
static sk_sp< Effect > Create()
The reactor attempts to make thread-safe usage of OpenGL ES easier to reason about.
constexpr std::size_t HashCombine()
std::string HandleTypeToString(HandleType type)
std::ostream & operator<<(std::ostream &out, const impeller::Color &c)
bool operator()(const HandleGLES &lhs, const HandleGLES &rhs) const
std::size_t operator()(const HandleGLES &handle) const
constexpr bool IsDead() const
std::optional< UniqueID > name
static HandleGLES DeadHandle()