7 #include "flutter/fml/build_config.h"
8 #include "vulkan/vulkan_core.h"
12 #include "flutter/fml/macros.h"
18 #include <android/hardware_buffer.h>
19 #include <android/hardware_buffer_jni.h>
23 class AndroidHardwareBufferTextureSourceVK final :
public TextureSourceVK {
25 AndroidHardwareBufferTextureSourceVK(
26 TextureDescriptor desc,
27 const vk::Device& device,
28 struct AHardwareBuffer* hardware_buffer,
29 const AHardwareBuffer_Desc& hardware_buffer_desc);
32 ~AndroidHardwareBufferTextureSourceVK()
override;
35 vk::Image GetImage()
const override;
38 vk::ImageView GetImageView()
const override;
43 const vk::Device& device_;
44 vk::Image image_ = VK_NULL_HANDLE;
45 vk::UniqueImageView image_view_ = {};
46 vk::DeviceMemory device_memory_ = VK_NULL_HANDLE;
48 bool is_valid_ =
false;
50 FML_DISALLOW_COPY_AND_ASSIGN(AndroidHardwareBufferTextureSourceVK);