mirror of
https://github.com/KhronosGroup/Vulkan-Utility-Libraries.git
synced 2025-05-15 09:18:49 +00:00
layer: Query string values in one concat string
This commit is contained in:
parent
6bb101db7f
commit
bdc60defa9
2 changed files with 37 additions and 5 deletions
|
@ -8,6 +8,19 @@
|
||||||
// - Christophe Riccio <christophe@lunarg.com>
|
// - Christophe Riccio <christophe@lunarg.com>
|
||||||
#include "vulkan/layer/vk_layer_settings.hpp"
|
#include "vulkan/layer/vk_layer_settings.hpp"
|
||||||
|
|
||||||
|
static std::string Merge(const std::vector<std::string> &strings) {
|
||||||
|
std::string result;
|
||||||
|
|
||||||
|
for (std::size_t i = 0, n = strings.size(); i < n; ++i) {
|
||||||
|
if (!result.empty()) {
|
||||||
|
result += ",";
|
||||||
|
}
|
||||||
|
result += strings[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
void vlGetLayerSettingValue(VlLayerSettingSet layerSettingSet, const char *pSettingName, bool &settingValue) {
|
void vlGetLayerSettingValue(VlLayerSettingSet layerSettingSet, const char *pSettingName, bool &settingValue) {
|
||||||
uint32_t value_count = 1;
|
uint32_t value_count = 1;
|
||||||
VkBool32 value;
|
VkBool32 value;
|
||||||
|
@ -112,10 +125,9 @@ void vlGetLayerSettingValues(VlLayerSettingSet layerSettingSet, const char *pSet
|
||||||
}
|
}
|
||||||
|
|
||||||
void vlGetLayerSettingValue(VlLayerSettingSet layerSettingSet, const char *pSettingName, std::string &settingValue) {
|
void vlGetLayerSettingValue(VlLayerSettingSet layerSettingSet, const char *pSettingName, std::string &settingValue) {
|
||||||
uint32_t value_count = 1;
|
std::vector<std::string> values;
|
||||||
const char *value;
|
vlGetLayerSettingValues(layerSettingSet, pSettingName, values);
|
||||||
vlGetLayerSettingValues(layerSettingSet, pSettingName, VK_LAYER_SETTING_TYPE_STRING_EXT, &value_count, &value);
|
settingValue = Merge(values);
|
||||||
settingValue = value;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void vlGetLayerSettingValues(VlLayerSettingSet layerSettingSet, const char *pSettingName, std::vector<std::string> &settingValues) {
|
void vlGetLayerSettingValues(VlLayerSettingSet layerSettingSet, const char *pSettingName, std::vector<std::string> &settingValues) {
|
||||||
|
|
|
@ -334,7 +334,6 @@ TEST(test_layer_setting_cpp, vlGetLayerSettingValues_Double) {
|
||||||
vlDestroyLayerSettingSet(layerSettingSet, nullptr);
|
vlDestroyLayerSettingSet(layerSettingSet, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TEST(test_layer_setting_cpp, vlGetLayerSettingValue_String) {
|
TEST(test_layer_setting_cpp, vlGetLayerSettingValue_String) {
|
||||||
const char* value_data[] = {"VALUE_A"};
|
const char* value_data[] = {"VALUE_A"};
|
||||||
|
|
||||||
|
@ -352,6 +351,27 @@ TEST(test_layer_setting_cpp, vlGetLayerSettingValue_String) {
|
||||||
vlDestroyLayerSettingSet(layerSettingSet, nullptr);
|
vlDestroyLayerSettingSet(layerSettingSet, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(test_layer_setting_cpp, vlGetLayerSettingValue_Strings) {
|
||||||
|
const char* values_data[] = {"VALUE_A", "VALUE_B"};
|
||||||
|
const uint32_t value_count = static_cast<uint32_t>(std::size(values_data));
|
||||||
|
|
||||||
|
const VkLayerSettingEXT settings[] = {
|
||||||
|
{"VK_LAYER_LUNARG_test", "my_setting", VK_LAYER_SETTING_TYPE_STRING_EXT, value_count, {values_data}}
|
||||||
|
};
|
||||||
|
const uint32_t settings_size = static_cast<uint32_t>(std::size(settings));
|
||||||
|
|
||||||
|
const VkLayerSettingsCreateInfoEXT layer_settings_create_info{VK_STRUCTURE_TYPE_LAYER_SETTINGS_EXT, nullptr, settings_size, settings};
|
||||||
|
|
||||||
|
VlLayerSettingSet layerSettingSet = VK_NULL_HANDLE;
|
||||||
|
vlCreateLayerSettingSet("VK_LAYER_LUNARG_test", &layer_settings_create_info, nullptr, nullptr, &layerSettingSet);
|
||||||
|
|
||||||
|
std::string value;
|
||||||
|
vlGetLayerSettingValue(layerSettingSet, "my_setting", value);
|
||||||
|
EXPECT_STREQ("VALUE_A,VALUE_B", value.c_str());
|
||||||
|
|
||||||
|
vlDestroyLayerSettingSet(layerSettingSet, nullptr);
|
||||||
|
}
|
||||||
|
|
||||||
TEST(test_layer_setting_cpp, vlGetLayerSettingValues_String) {
|
TEST(test_layer_setting_cpp, vlGetLayerSettingValues_String) {
|
||||||
const char* values_data[] = {"VALUE_A", "VALUE_B"};
|
const char* values_data[] = {"VALUE_A", "VALUE_B"};
|
||||||
const uint32_t value_count = static_cast<uint32_t>(std::size(values_data));
|
const uint32_t value_count = static_cast<uint32_t>(std::size(values_data));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue