5 #ifndef FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_ANDROID_HARDWARE_BUFFER_TEXTURE_SOURCE_VK_H_
6 #define FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_ANDROID_HARDWARE_BUFFER_TEXTURE_SOURCE_VK_H_
8 #include "flutter/fml/build_config.h"
9 #include "vulkan/vulkan_core.h"
13 #include "flutter/fml/macros.h"
19 #include <android/hardware_buffer.h>
20 #include <android/hardware_buffer_jni.h>
24 class AndroidHardwareBufferTextureSourceVK final :
public TextureSourceVK {
26 AndroidHardwareBufferTextureSourceVK(
27 TextureDescriptor desc,
28 const vk::Device& device,
29 struct AHardwareBuffer* hardware_buffer,
30 const AHardwareBuffer_Desc& hardware_buffer_desc);
33 ~AndroidHardwareBufferTextureSourceVK()
override;
36 vk::Image GetImage()
const override;
39 vk::ImageView GetImageView()
const override;
44 const vk::Device& device_;
45 vk::Image image_ = VK_NULL_HANDLE;
46 vk::UniqueImageView image_view_ = {};
47 vk::DeviceMemory device_memory_ = VK_NULL_HANDLE;
49 bool is_valid_ =
false;
51 AndroidHardwareBufferTextureSourceVK(
52 const AndroidHardwareBufferTextureSourceVK&) =
delete;
54 AndroidHardwareBufferTextureSourceVK& operator=(
55 const AndroidHardwareBufferTextureSourceVK&) =
delete;
62 #endif // FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_ANDROID_HARDWARE_BUFFER_TEXTURE_SOURCE_VK_H_