Monado OpenXR Runtime
Loading...
Searching...
No Matches
vk_pretty_print.h File Reference

Pretty printing various Vulkan things. More...

Include dependency graph for vk_pretty_print.h:

Go to the source code of this file.

Macros

#define VK_STR_NO_NULL(NAME, TYPE, UNKNOWN_STR)
 
#define VK_STR_FLAG_BITS_NO_NULL(NAME, TYPE, PREFIX)
 

Functions

static const char * vk_str_result (VkResult enumerate)
 
static const char * vk_str_object_type (VkObjectType enumerate)
 
static const char * vk_str_physical_device_type (VkPhysicalDeviceType enumerate)
 
static const char * vk_str_format (VkFormat enumerate)
 
static const char * vk_str_sharing_mode (VkSharingMode enumerate)
 
static const char * vk_str_present_mode (VkPresentModeKHR enumerate)
 
static const char * vk_str_color_space (VkColorSpaceKHR enumerate)
 
static const char * vk_str_display_power_state (VkDisplayPowerStateEXT enumerate)
 
static const char * vk_str_queue_global_priority (VkQueueGlobalPriorityEXT enumerate)
 
static const char * vk_str_format_feature_flag_bits (VkFormatFeatureFlagBits bits)
 
static const char * vk_str_swapchain_create_flag_bits (VkSwapchainCreateFlagBitsKHR bits)
 
static const char * vk_str_image_usage_flag_bits (VkImageUsageFlagBits bits)
 
static const char * vk_str_composite_alpha_flag_bits (VkCompositeAlphaFlagBitsKHR bits)
 
static const char * vk_str_surface_transform_flag_bits (VkSurfaceTransformFlagBitsKHR bits)
 
Enum string functions

Returns a string of the enum value, or NULL if unknown.

The versions without the _or_null suffix return 'UNKNOWN <TYPE>' instead of NULL.

XRT_CHECK_RESULT const char * vk_str_result_or_null (VkResult code)
 
XRT_CHECK_RESULT const char * vk_str_object_type_or_null (VkObjectType type)
 
XRT_CHECK_RESULT const char * vk_str_physical_device_type_or_null (VkPhysicalDeviceType device_type)
 
XRT_CHECK_RESULT const char * vk_str_format_or_null (VkFormat code)
 
XRT_CHECK_RESULT const char * vk_str_sharing_mode_or_null (VkSharingMode code)
 
XRT_CHECK_RESULT const char * vk_str_present_mode_or_null (VkPresentModeKHR code)
 
XRT_CHECK_RESULT const char * vk_str_color_space_or_null (VkColorSpaceKHR code)
 
XRT_CHECK_RESULT const char * vk_str_display_power_state_or_null (VkDisplayPowerStateEXT code)
 
XRT_CHECK_RESULT const char * vk_str_queue_global_priority_or_null (VkQueueGlobalPriorityEXT priority)
 
Flag bits string functions

Returns a string of the flag bit, or NULL if unknown or if zero or multiple bits are set.

The versions without the _or_null suffix instead return '<TYPE>: NO BITS SET', '<TYPE>: MULTIPLE BITS SET' or '<TYPE>: UNKNOWN BIT'.

XRT_CHECK_RESULT const char * vk_str_format_feature_flag_bits_or_null (VkFormatFeatureFlagBits bits)
 
XRT_CHECK_RESULT const char * vk_str_swapchain_create_flag_bits_or_null (VkSwapchainCreateFlagBitsKHR bits)
 
XRT_CHECK_RESULT const char * vk_str_image_usage_flag_bits_or_null (VkImageUsageFlagBits bits)
 
XRT_CHECK_RESULT const char * vk_str_composite_alpha_flag_bits_or_null (VkCompositeAlphaFlagBitsKHR bits)
 
XRT_CHECK_RESULT const char * vk_str_surface_transform_flag_bits_or_null (VkSurfaceTransformFlagBitsKHR bits)
 
Pretty print functions

Pretty prints the value to the delegate, unknown values are printed as hex with a prefix, like VK_FORMAT_0x12345678.

The flag bits printers expect a single bit to be set, if no, multiple or an unknown bit is set they say so and print the hex value, like VK_IMAGE_USAGE: UNKNOWN BIT 0x00000100.

void vk_pp_result (u_pp_delegate_t dg, VkResult ret)
 
void vk_pp_object_type (u_pp_delegate_t dg, VkObjectType type)
 
void vk_pp_physical_device_type (u_pp_delegate_t dg, VkPhysicalDeviceType device_type)
 
void vk_pp_format (u_pp_delegate_t dg, VkFormat format)
 
void vk_pp_sharing_mode (u_pp_delegate_t dg, VkSharingMode mode)
 
void vk_pp_present_mode (u_pp_delegate_t dg, VkPresentModeKHR mode)
 
void vk_pp_color_space (u_pp_delegate_t dg, VkColorSpaceKHR color_space)
 
void vk_pp_display_power_state (u_pp_delegate_t dg, VkDisplayPowerStateEXT state)
 
void vk_pp_queue_global_priority (u_pp_delegate_t dg, VkQueueGlobalPriorityEXT priority)
 
void vk_pp_format_feature_flag_bits (u_pp_delegate_t dg, VkFormatFeatureFlagBits bits)
 
void vk_pp_swapchain_create_flag_bits (u_pp_delegate_t dg, VkSwapchainCreateFlagBitsKHR bits)
 
void vk_pp_image_usage_flag_bits (u_pp_delegate_t dg, VkImageUsageFlagBits bits)
 
void vk_pp_composite_alpha_flag_bits (u_pp_delegate_t dg, VkCompositeAlphaFlagBitsKHR bits)
 
void vk_pp_surface_transform_flag_bits (u_pp_delegate_t dg, VkSurfaceTransformFlagBitsKHR bits)
 

Detailed Description

Macro Definition Documentation

◆ VK_STR_FLAG_BITS_NO_NULL

#define VK_STR_FLAG_BITS_NO_NULL (   NAME,
  TYPE,
  PREFIX 
)
Value:
static inline const char *NAME(TYPE bits) \
{ \
const char *str = NAME##_or_null(bits); \
uint32_t value = (uint32_t)bits; \
if (str != NULL) { \
return str; \
} else if (value == 0) { \
return PREFIX ": NO BITS SET"; \
} else if ((value & (value - 1)) != 0) { \
return PREFIX ": MULTIPLE BITS SET"; \
} else { \
return PREFIX ": UNKNOWN BIT"; \
} \
}

◆ VK_STR_NO_NULL

#define VK_STR_NO_NULL (   NAME,
  TYPE,
  UNKNOWN_STR 
)
Value:
static inline const char *NAME(TYPE enumerate) \
{ \
const char *str = NAME##_or_null(enumerate); \
return str != NULL ? str : UNKNOWN_STR; \
}