Files
NazaraEngine/include/Nazara/Vulkan/Vulkan.hpp
Lynix 6531f6028a Vulkan: Fix crashs
Former-commit-id: feb7e2a90be95b16cabe2777fc24ce7899525cb8 [formerly 8dfbc95cb7828e1767d9cf850f3de17c6d88c02f]
Former-commit-id: af32212fb81b9a96b7cc001916e269144778d74f
2016-06-13 22:29:44 +02:00

49 lines
1.3 KiB
C++

// Copyright (C) 2016 Jérôme Leclercq
// This file is part of the "Nazara Engine - Vulkan"
// For conditions of distribution and use, see copyright notice in Config.hpp
#pragma once
#ifndef NAZARA_VULKAN_HPP
#define NAZARA_VULKAN_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Core/Initializer.hpp>
#include <Nazara/Core/ParameterList.hpp>
#include <Nazara/Vulkan/Config.hpp>
#include <Nazara/Vulkan/VkDevice.hpp>
#include <Nazara/Vulkan/VkInstance.hpp>
#include <Nazara/Vulkan/VkSurface.hpp>
namespace Nz
{
class NAZARA_VULKAN_API Vulkan
{
public:
Vulkan() = delete;
~Vulkan() = delete;
static Vk::DeviceHandle CreateDevice(VkPhysicalDevice gpu, const Vk::Surface& surface, UInt32* presentableFamilyQueue);
static Vk::Instance& GetInstance();
static bool Initialize();
static bool IsInitialized();
static Vk::DeviceHandle SelectDevice(VkPhysicalDevice gpu, const Vk::Surface& surface, UInt32* presentableFamilyQueue);
static void SetParameters(const ParameterList& parameters);
static void Uninitialize();
private:
static std::list<Vk::Device> s_devices;
static Vk::Instance s_instance;
static ParameterList s_initializationParameters;
static unsigned int s_moduleReferenceCounter;
};
}
#endif // NAZARA_VULKAN_HPP