1#ifndef LIBSBX_GRAPHICS_DEVICES_PHYSICAL_DEVICE_HPP_
2#define LIBSBX_GRAPHICS_DEVICES_PHYSICAL_DEVICE_HPP_
8#include <vulkan/vulkan.hpp>
10#include <libsbx/utility/noncopyable.hpp>
12#include <libsbx/graphics/devices/instance.hpp>
14namespace sbx::graphics {
24 auto handle()
const noexcept ->
const VkPhysicalDevice&;
26 operator const VkPhysicalDevice&()
const noexcept;
28 auto properties()
const ->
const VkPhysicalDeviceProperties&;
30 auto features()
const ->
const VkPhysicalDeviceFeatures&;
32 auto memory_properties()
const ->
const VkPhysicalDeviceMemoryProperties&;
34 auto msaa_samples()
const ->
const VkSampleCountFlagBits&;
36 auto find_memory_type(std::uint32_t typeFilter, VkMemoryPropertyFlags properties)
const -> std::uint32_t;
38 auto find_supported_format(
const std::vector<VkFormat>& candidates, VkImageTiling tiling, VkFormatFeatureFlags features)
const -> VkFormat;
42 auto _choose_device(
const std::vector<VkPhysicalDevice>& devices) -> VkPhysicalDevice;
44 auto _score_device(
const VkPhysicalDevice& device) -> std::uint32_t;
46 auto _get_max_usable_sample_count()
const -> VkSampleCountFlagBits;
48 VkPhysicalDevice _handle{};
49 VkPhysicalDeviceProperties _properties{};
50 VkPhysicalDeviceFeatures _features{};
51 VkPhysicalDeviceMemoryProperties _memory_properties{};
52 VkSampleCountFlagBits _msaa_samples{};
Definition: instance.hpp:10
Definition: physical_device.hpp:16
Definition: noncopyable.hpp:6