Flutter Impeller
pipeline_library_mtl.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_METAL_PIPELINE_LIBRARY_MTL_H_
6
#define FLUTTER_IMPELLER_RENDERER_BACKEND_METAL_PIPELINE_LIBRARY_MTL_H_
7
8
#include <Metal/Metal.h>
9
10
#include "
impeller/renderer/pipeline_library.h
"
11
12
namespace
impeller
{
13
14
class
ContextMTL;
15
16
class
PipelineLibraryMTL
final :
public
PipelineLibrary
{
17
public
:
18
PipelineLibraryMTL
();
19
20
// |PipelineLibrary|
21
~PipelineLibraryMTL
()
override
;
22
23
private
:
24
friend
ContextMTL
;
25
26
id<MTLDevice> device_ =
nullptr
;
27
PipelineMap
pipelines_;
28
ComputePipelineMap
compute_pipelines_;
29
30
explicit
PipelineLibraryMTL
(id<MTLDevice> device);
31
32
// |PipelineLibrary|
33
bool
IsValid()
const override
;
34
35
// |PipelineLibrary|
36
PipelineFuture<PipelineDescriptor>
GetPipeline(
PipelineDescriptor
descriptor,
37
bool
async)
override
;
38
39
// |PipelineLibrary|
40
PipelineFuture<ComputePipelineDescriptor>
GetPipeline(
41
ComputePipelineDescriptor
descriptor,
42
bool
async)
override
;
43
44
// |PipelineLibrary|
45
bool
HasPipeline(
const
PipelineDescriptor
& descriptor)
override
;
46
47
// |PipelineLibrary|
48
void
RemovePipelinesWithEntryPoint(
49
std::shared_ptr<const ShaderFunction>
function
)
override
;
50
51
PipelineLibraryMTL
(
const
PipelineLibraryMTL
&) =
delete
;
52
53
PipelineLibraryMTL
& operator=(
const
PipelineLibraryMTL
&) =
delete
;
54
};
55
56
}
// namespace impeller
57
58
#endif
// FLUTTER_IMPELLER_RENDERER_BACKEND_METAL_PIPELINE_LIBRARY_MTL_H_
impeller::ComputePipelineDescriptor
Definition:
compute_pipeline_descriptor.h:21
impeller::ContextMTL
Definition:
context_mtl.h:67
impeller::PipelineDescriptor
Definition:
pipeline_descriptor.h:24
impeller::PipelineLibrary
Definition:
pipeline_library.h:30
impeller::PipelineLibraryMTL
Definition:
pipeline_library_mtl.h:16
impeller::PipelineLibraryMTL::PipelineLibraryMTL
PipelineLibraryMTL()
impeller::PipelineLibraryMTL::~PipelineLibraryMTL
~PipelineLibraryMTL() override
impeller
Definition:
allocation.cc:12
impeller::ComputePipelineMap
std::unordered_map< ComputePipelineDescriptor, PipelineFuture< ComputePipelineDescriptor >, ComparableHash< ComputePipelineDescriptor >, ComparableEqual< ComputePipelineDescriptor > > ComputePipelineMap
Definition:
pipeline_library.h:28
impeller::PipelineMap
std::unordered_map< PipelineDescriptor, PipelineFuture< PipelineDescriptor >, ComparableHash< PipelineDescriptor >, ComparableEqual< PipelineDescriptor > > PipelineMap
Definition:
pipeline_library.h:22
pipeline_library.h
impeller::PipelineFuture
Definition:
pipeline.h:28
impeller
renderer
backend
metal
pipeline_library_mtl.h
Generated by
1.9.1