Flutter Impeller
shader_library.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_SHADER_LIBRARY_H_
6
#define FLUTTER_IMPELLER_RENDERER_SHADER_LIBRARY_H_
7
8
#include <future>
9
#include <memory>
10
#include <string_view>
11
12
#include "flutter/fml/macros.h"
13
#include "fml/mapping.h"
14
#include "
impeller/core/shader_types.h
"
15
16
namespace
impeller
{
17
18
class
Context;
19
class
ShaderFunction;
20
21
class
ShaderLibrary
:
public
std::enable_shared_from_this<ShaderLibrary> {
22
public
:
23
virtual
~ShaderLibrary
();
24
25
virtual
bool
IsValid
()
const
= 0;
26
27
virtual
std::shared_ptr<const ShaderFunction>
GetFunction
(
28
std::string_view name,
29
ShaderStage
stage) = 0;
30
31
using
RegistrationCallback
= std::function<void(
bool
)>;
32
virtual
void
RegisterFunction
(std::string name,
33
ShaderStage
stage,
34
std::shared_ptr<fml::Mapping> code,
35
RegistrationCallback
callback);
36
37
virtual
void
UnregisterFunction
(std::string name,
ShaderStage
stage) = 0;
38
39
protected
:
40
ShaderLibrary
();
41
42
private
:
43
ShaderLibrary
(
const
ShaderLibrary
&) =
delete
;
44
45
ShaderLibrary
& operator=(
const
ShaderLibrary
&) =
delete
;
46
};
47
48
}
// namespace impeller
49
50
#endif // FLUTTER_IMPELLER_RENDERER_SHADER_LIBRARY_H_
impeller::ShaderLibrary::GetFunction
virtual std::shared_ptr< const ShaderFunction > GetFunction(std::string_view name, ShaderStage stage)=0
impeller::ShaderLibrary::ShaderLibrary
ShaderLibrary()
impeller::ShaderLibrary::RegistrationCallback
std::function< void(bool)> RegistrationCallback
Definition:
shader_library.h:31
impeller::ShaderLibrary
Definition:
shader_library.h:21
impeller::ShaderStage
ShaderStage
Definition:
shader_types.h:22
impeller::ShaderLibrary::RegisterFunction
virtual void RegisterFunction(std::string name, ShaderStage stage, std::shared_ptr< fml::Mapping > code, RegistrationCallback callback)
Definition:
shader_library.cc:13
impeller::ShaderLibrary::IsValid
virtual bool IsValid() const =0
impeller::ShaderLibrary::~ShaderLibrary
virtual ~ShaderLibrary()
impeller::ShaderLibrary::UnregisterFunction
virtual void UnregisterFunction(std::string name, ShaderStage stage)=0
shader_types.h
impeller
Definition:
aiks_context.cc:10
impeller
renderer
shader_library.h
Generated by
1.8.17