mirror of
https://github.com/KhronosGroup/Vulkan-Utility-Libraries.git
synced 2025-05-14 16:58:43 +00:00
Expose FindLayerSettingsCreateInfo as a layer developer API
This commit is contained in:
parent
1c8f7870e5
commit
f714feb953
4 changed files with 18 additions and 17 deletions
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue