Flutter Engine
The Flutter Engine
sampler_vk.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_VULKAN_SAMPLER_VK_H_
6#define FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_SAMPLER_VK_H_
7
12
13namespace impeller {
14
15class SamplerLibraryVK;
16class YUVConversionVK;
17
18class SamplerVK final : public Sampler, public BackendCast<SamplerVK, Sampler> {
19 public:
20 SamplerVK(const vk::Device& device,
22 std::shared_ptr<YUVConversionVK> yuv_conversion = {});
23
24 // |Sampler|
25 ~SamplerVK() override;
26
27 vk::Sampler GetSampler() const;
28
29 std::shared_ptr<SamplerVK> CreateVariantForConversion(
30 std::shared_ptr<YUVConversionVK> conversion) const;
31
32 const std::shared_ptr<YUVConversionVK>& GetYUVConversion() const;
33
34 private:
35 friend SamplerLibraryVK;
36
37 const vk::Device device_;
39 std::shared_ptr<YUVConversionVK> yuv_conversion_;
40 bool is_valid_ = false;
41
42 SamplerVK(const SamplerVK&) = delete;
43
44 SamplerVK& operator=(const SamplerVK&) = delete;
45};
46
47} // namespace impeller
48
49#endif // FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_SAMPLER_VK_H_
vk::Sampler GetSampler() const
Definition: sampler_vk.cc:123
~SamplerVK() override
SamplerVK(const vk::Device &device, SamplerDescriptor desc, std::shared_ptr< YUVConversionVK > yuv_conversion={})
Definition: sampler_vk.cc:110
std::shared_ptr< SamplerVK > CreateVariantForConversion(std::shared_ptr< YUVConversionVK > conversion) const
Definition: sampler_vk.cc:127
const std::shared_ptr< YUVConversionVK > & GetYUVConversion() const
Definition: sampler_vk.cc:135
VkDevice device
Definition: main.cc:53
std::function< ProfileSample(void)> Sampler
Sampler is run during SamplingProfiler::SampleRepeatedly. Each platform should implement its version ...
std::shared_ptr< SharedObjectVKT< T > > SharedHandleVK