Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
compute_pipeline_descriptor.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_COMPUTE_PIPELINE_DESCRIPTOR_H_
6#define FLUTTER_IMPELLER_RENDERER_COMPUTE_PIPELINE_DESCRIPTOR_H_
7
8#include <functional>
9#include <future>
10#include <map>
11#include <memory>
12#include <string>
13#include <string_view>
14#include <type_traits>
15#include <unordered_map>
16
17#include "flutter/fml/hash_combine.h"
18#include "flutter/fml/macros.h"
23
24namespace impeller {
25
26class ShaderFunction;
27template <typename T>
28class Pipeline;
29
31 : public Comparable<ComputePipelineDescriptor> {
32 public:
34
36
37 ComputePipelineDescriptor& SetLabel(std::string label);
38
39 const std::string& GetLabel() const;
40
42 std::shared_ptr<const ShaderFunction> function);
43
44 std::shared_ptr<const ShaderFunction> GetStageEntrypoint() const;
45
46 // Comparable<ComputePipelineDescriptor>
47 std::size_t GetHash() const override;
48
49 // Comparable<PipelineDescriptor>
50 bool IsEqual(const ComputePipelineDescriptor& other) const override;
51
52 template <size_t Size>
54 const std::array<DescriptorSetLayout, Size>& inputs) {
55 return RegisterDescriptorSetLayouts(inputs.data(), inputs.size());
56 }
57
58 bool RegisterDescriptorSetLayouts(const DescriptorSetLayout desc_set_layout[],
59 size_t count);
60
61 const std::vector<DescriptorSetLayout>& GetDescriptorSetLayouts() const;
62
63 private:
64 std::string label_;
65 std::shared_ptr<const ShaderFunction> entrypoint_;
66 std::vector<DescriptorSetLayout> descriptor_set_layouts_;
67};
68
69} // namespace impeller
70
71#endif // FLUTTER_IMPELLER_RENDERER_COMPUTE_PIPELINE_DESCRIPTOR_H_
int count
const std::vector< DescriptorSetLayout > & GetDescriptorSetLayouts() const
std::shared_ptr< const ShaderFunction > GetStageEntrypoint() const
bool IsEqual(const ComputePipelineDescriptor &other) const override
ComputePipelineDescriptor & SetLabel(std::string label)
ComputePipelineDescriptor & SetStageEntrypoint(std::shared_ptr< const ShaderFunction > function)
bool RegisterDescriptorSetLayouts(const std::array< DescriptorSetLayout, Size > &inputs)
Dart_NativeFunction function
Definition fuchsia.cc:51