18 const std::string &application_name,
19 const std::vector<std::string_view> &requested_extensions = {},
20 const std::vector<std::string_view> &requested_layers = {})
21 ->
expected<std::shared_ptr<GraphicsContext>>;
31 [[nodiscard]]
auto Instance()
const {
return instance; }
32 void Surface(const ::vk::SurfaceKHR &surface) { this->surface = surface; }
33 [[nodiscard]]
auto Surface() const -> ::
vk::SurfaceKHR {
return surface; }
36 return physical_device;
39 [[nodiscard]]
auto Device() const -> const vulkan::
Device & {
return device; }
41 [[nodiscard]]
auto allocator()
const {
return allocator_; }
57 const std::string &application_name,
58 const std::vector<std::string_view> &requested_extensions = {},
59 const std::vector<std::string_view> &requested_layers = {})
62 auto CreateAllocator() -> expected<void>;
64 auto CreateDevice() -> expected<void>;
65 auto PickPhysicalDevice() -> expected<void>;
66 auto IsDeviceSuitable(const ::vk::PhysicalDevice &device) -> bool;
68 ::vk::Instance instance;
69 ::vk::PhysicalDevice physical_device;
71 vulkan::Device device;
73 ::vk::SurfaceKHR surface;
75 VmaAllocator allocator_{};
78 auto CreateDebugMessenger() -> expected<void>;
79 ::vk::DebugUtilsMessengerEXT debug_messenger;
Definition graphics_context.hpp:15
static auto Create(const std::string &application_name, const std::vector< std::string_view > &requested_extensions={}, const std::vector< std::string_view > &requested_layers={}) -> expected< std::shared_ptr< GraphicsContext > >
Definition graphics_context.cpp:21
auto operator=(GraphicsContext &&)=delete
auto Surface() const -> ::vk::SurfaceKHR
Definition graphics_context.hpp:33
auto FindQueueFamilyIndices()
Definition graphics_context.hpp:49
auto operator=(const GraphicsContext &)=delete
auto PhysicalDevice() const -> ::vk::PhysicalDevice
Definition graphics_context.hpp:35
GraphicsContext(GraphicsContext &&)=delete
auto SetupDevice() -> expected< void >
Definition graphics_context.cpp:125
auto GetSwapchainSupport()
Definition graphics_context.hpp:45
~GraphicsContext()
Definition graphics_context.cpp:50
auto allocator() const
Definition graphics_context.hpp:41
GraphicsContext(const GraphicsContext &)=delete
void Surface(const ::vk::SurfaceKHR &surface)
Definition graphics_context.hpp:32
auto Device() const -> const vulkan::Device &
Definition graphics_context.hpp:39
auto InitializeSurface() -> expected< void >
auto Instance() const
Definition graphics_context.hpp:31