33 lines
780 B
C
33 lines
780 B
C
/*
|
|
* SPDX-FileCopyrightText: Sebastiano Barezzi
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <memory>
|
|
#include <vector>
|
|
#include "./vkloader.h"
|
|
|
|
class VkSession {
|
|
public:
|
|
VkSession(const VkSession &) = delete;
|
|
|
|
~VkSession();
|
|
|
|
VkSession &operator=(const VkSession &) = delete;
|
|
|
|
std::vector<VkPhysicalDevice> vkEnumeratePhysicalDevices();
|
|
|
|
static std::unique_ptr<VkSession>
|
|
create(const VkInstanceCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator);
|
|
|
|
VkPhysicalDeviceProperties vkGetPhysicalDeviceProperties(VkPhysicalDevice device);
|
|
|
|
private:
|
|
VkSession(const VkInstanceCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator);
|
|
|
|
VkInstance mInstance = nullptr;
|
|
VulkanLoader* mLoader= nullptr;
|
|
};
|