Files
Vulkan_Udemy/include/vulkan/graphics.h
2025-04-06 21:34:32 +09:00

29 lines
798 B
C++

#pragma once
#include <vulkan/vulkan.h>
#include "glfw/glfw_window.h"
namespace veng {
class Graphics final {
public:
Graphics(gsl::not_null<Window *> window);
~Graphics();
void InitializeVulkan();
void CreateInstance();
std::vector<gsl::czstring> GetRequiredInstanceExtentions();
static gsl::span<gsl::czstring> GetSuggestedInstanceExtentions();
static std::vector<VkExtensionProperties> GetSupprotedInstanceExtensions();
static bool AreAllExtensionsSupported(gsl::span<gsl::czstring> extensions);
static std::vector<VkLayerProperties> GetSupprotedValidationLayers();
static bool AreAllLayersSupported(gsl::span<gsl::czstring> extensions);
VkInstance instance_ = nullptr;
gsl::not_null<Window *> window_;
bool validation_enabled_ = false;
};
} // namespace veng