blob: 6a52dc2dad7db3ca1d1b9a6c1a3cb4204ba25ded [file] [log] [blame]
#ifndef COMPOSITOR_VK_H
#define COMPOSITOR_VK_H
#include <memory>
#include <vector>
#include "vulkan/cereal/common/goldfish_vk_dispatch.h"
class CompositorVk {
public:
static std::unique_ptr<CompositorVk> create(
const goldfish_vk::VulkanDispatch &vk, VkDevice);
static bool validatePhysicalDeviceFeatures(
const VkPhysicalDeviceFeatures2 &features);
static bool validateQueueFamilyProperties(
const VkQueueFamilyProperties &properties);
static bool enablePhysicalDeviceFeatures(
VkPhysicalDeviceFeatures2 &features);
static std::vector<const char *> getRequiredDeviceExtensions();
private:
explicit CompositorVk(const goldfish_vk::VulkanDispatch &, VkDevice);
const goldfish_vk::VulkanDispatch &m_vk;
const VkDevice m_vkDevice;
};
#endif /* COMPOSITOR_VK_H */