nngn
|
#include <algorithm>
#include <cstdint>
#include <ranges>
#include <span>
#include <string>
#include <vector>
#include "graphics/graphics.h"
#include "utils/concepts.h"
#include "utils/fn.h"
#include "utils/log.h"
#include "types.h"
Go to the source code of this file.
Namespaces | |
namespace | nngn |
Concepts | |
concept | nngn::VkNamedRange |
Macros | |
#define | LOG_RESULT(f, ...) nngn::vk_check_result(#f, f(__VA_ARGS__)) |
#define | CHECK_RESULT(f, ...) do { if(!LOG_RESULT(f, __VA_ARGS__)) [[unlikely]] return false; } while(0); |
Functions | |
const char * | nngn::vk_strerror (VkResult result) |
const char * | nngn::vk_enum_str (VkDebugUtilsMessageSeverityFlagBitsEXT f) |
const char * | nngn::vk_enum_str (VkDebugUtilsMessageTypeFlagsEXT f) |
std::string | nngn::vk_version_str (std::uint32_t v) |
Unpacks a Vulkan version number into a character array. | |
std::string | nngn::vk_version_str (Graphics::Version v) |
Graphics::Version | nngn::vk_parse_version (std::uint32_t v) |
Unpacks a Vulkan version number. | |
template<typename T > | |
vk_create_info_type< T > | nngn::vk_create_info (vk_create_info_type< T > info) |
nngn::uvec2 | nngn::vk_extent_to_vec (VkExtent2D e) |
VkExtent2D | nngn::vk_vec_to_extent (nngn::uvec2 v) |
bool | nngn::vk_check_result (const char *func, VkResult r) |
Checks that r is VK_SUCCESS or emits a log message. | |
template<c_function_pointer auto f> | |
auto | nngn::vk_enumerate (const auto &...args) |
Creates a vector from the result of calling f with args . | |
std::vector< Graphics::Extension > | nngn::vk_parse_extensions (std::span< const VkExtensionProperties > s) |
Populates Graphics::Extension objects from their Vulkan equivalents. | |
Graphics::PresentMode | nngn::vk_present_mode (VkPresentModeKHR m) |
Populates a Graphics::PresentMode from its Vulkan equivalent. | |
template<typename T , auto ... Ps> | |
constexpr auto | nngn::vk_vertex_input (std::span< const VkVertexInputBindingDescription > bindings) |
std::vector< const char * > | nngn::vk_names (const VkNamedRange auto &r) |
Extracts the name character array from common objects. | |
template<standard_layout T, auto ... Ps> | |
auto | nngn::vk_vertex_attrs () |
constexpr VkPipelineVertexInputStateCreateInfo | nngn::vk_vertex_input (std::span< const VkVertexInputBindingDescription > bindings, std::span< const VkVertexInputAttributeDescription > attrs) |
#define CHECK_RESULT | ( | f, | |
... ) do { if(!LOG_RESULT(f, __VA_ARGS__)) [[unlikely]] return false; } while(0); |
#define LOG_RESULT | ( | f, | |
... ) nngn::vk_check_result(#f, f(__VA_ARGS__)) |