Expose FindLayerSettingsCreateInfo as a layer developer API

This commit is contained in:
Christophe 2023-06-26 15:32:58 +02:00 committed by Christophe
parent 1c8f7870e5
commit f714feb953
4 changed files with 18 additions and 17 deletions

View file

@ -45,6 +45,8 @@ VkBool32 vlHasLayerSetting(VlLayerSettingSet layerSettingSet, const char *pSetti
VkResult vlGetLayerSettingValues(VlLayerSettingSet layerSettingSet, const char *pSettingName, VkLayerSettingTypeEXT type,
uint32_t *pValueCount, void *pValues);
const VkLayerSettingsCreateInfoEXT *vlFindLayerSettingsCreateInfo(const VkInstanceCreateInfo *pCreateInfo);
#ifdef __cplusplus
}
#endif

View file

@ -28,20 +28,6 @@
namespace vl {
const VkLayerSettingsCreateInfoEXT *FindSettingsInChain(const void *next) {
const VkBaseOutStructure *current = reinterpret_cast<const VkBaseOutStructure *>(next);
const VkLayerSettingsCreateInfoEXT *found = nullptr;
while (current) {
if (VK_STRUCTURE_TYPE_LAYER_SETTINGS_EXT == current->sType) {
found = reinterpret_cast<const VkLayerSettingsCreateInfoEXT *>(current);
current = nullptr;
} else {
current = current->pNext;
}
}
return found;
}
std::vector<std::string> Split(const std::string &value, char delimiter) {
std::vector<std::string> result;

View file

@ -502,3 +502,16 @@ VkResult vlGetLayerSettingValues(VlLayerSettingSet layerSettingSet, const char *
return VK_ERROR_UNKNOWN;
}
const VkLayerSettingsCreateInfoEXT *vlFindLayerSettingsCreateInfo(const VkInstanceCreateInfo *pCreateInfo) {
const VkBaseOutStructure *current = reinterpret_cast<const VkBaseOutStructure *>(pCreateInfo);
const VkLayerSettingsCreateInfoEXT *found = nullptr;
while (current) {
if (VK_STRUCTURE_TYPE_LAYER_SETTINGS_EXT == current->sType) {
found = reinterpret_cast<const VkLayerSettingsCreateInfoEXT *>(current);
current = nullptr;
} else {
current = current->pNext;
}
}
return found;
}

View file

@ -35,7 +35,7 @@ TEST(test_layer_settings_util, FindSettingsInChain_found_first) {
instanceCreateInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
instanceCreateInfo.pNext = &layerSettingsCreateInfo;
EXPECT_EQ(&layerSettingsCreateInfo, vl::FindSettingsInChain(&instanceCreateInfo));
EXPECT_EQ(&layerSettingsCreateInfo, vlFindLayerSettingsCreateInfo(&instanceCreateInfo));
}
TEST(test_layer_settings_util, FindSettingsInChain_found_last) {
@ -50,7 +50,7 @@ TEST(test_layer_settings_util, FindSettingsInChain_found_last) {
instanceCreateInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
instanceCreateInfo.pNext = &debugReportCallbackCreateInfo;
EXPECT_EQ(&layerSettingsCreateInfo, vl::FindSettingsInChain(&instanceCreateInfo));
EXPECT_EQ(&layerSettingsCreateInfo, vlFindLayerSettingsCreateInfo(&instanceCreateInfo));
}
TEST(test_layer_settings_util, FindSettingsInChain_found_not) {
@ -61,7 +61,7 @@ TEST(test_layer_settings_util, FindSettingsInChain_found_not) {
instanceCreateInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
instanceCreateInfo.pNext = &debugReportCallbackCreateInfo;
EXPECT_EQ(nullptr, vl::FindSettingsInChain(&instanceCreateInfo));
EXPECT_EQ(nullptr, vlFindLayerSettingsCreateInfo(&instanceCreateInfo));
}
TEST(test_layer_settings_util, FindDelimiter) {