out += "\t\t\"implementation_version\":\"" + std::to_string(implementation_version) + "\",\n";
out += "\t\t\"description\": \"" + description + "\"";
if (functions.size() > 0) {
- out += ",\n\t\t{";
+ out += ",\n\t\t\"functions\": {";
for (size_t i = 0; i < functions.size(); i++) {
if (i > 0) out += ",";
out += "\n\t\t\t" + functions.at(i).get_manifest_str();
out += "\n\t\t}";
}
if (instance_extensions.size() > 0) {
- out += ",\n\t\t{";
+ out += ",\n\t\t\"instance_extensions\": [";
for (size_t i = 0; i < instance_extensions.size(); i++) {
if (i > 0) out += ",";
out += "\n\t\t\t" + instance_extensions.at(i).get_manifest_str();
}
- out += "\n\t\t}";
+ out += "\n\t\t]";
}
if (device_extensions.size() > 0) {
- out += ",\n\t\t{";
+ out += ",\n\t\t\"device_extensions\": [";
for (size_t i = 0; i < device_extensions.size(); i++) {
if (i > 0) out += ",";
out += "\n\t\t\t" + device_extensions.at(i).get_manifest_str();
}
- out += "\n\t\t}";
+ out += "\n\t\t]";
}
if (enable_environment.size() > 0) {
out += ",\n\t\t\"enable_environment\": { \"" + enable_environment + "\": \"1\"";
std::string get_manifest_str() const { return std::string("{ \"") + vk_func + "\":\"" + override_name + "\" }"; }
};
struct Extension {
+ Extension() noexcept {}
+ Extension(std::string name, uint32_t spec_version = 0, std::vector<std::string> entrypoints = {}) noexcept
+ : name(name), spec_version(spec_version), entrypoints(entrypoints) {}
std::string name;
uint32_t spec_version = 0;
std::vector<std::string> entrypoints;
description.name = meta_layer_name;
description.component_layers = {"InvalidLayer1", "InvalidLayer2"};
description.disable_environment = "NotGonnaWork";
+ description.instance_extensions.push_back({"NeverGonnaGiveYouUp"});
+ description.device_extensions.push_back({"NeverGonnaLetYouDown"});
ManifestLayer meta_layer;
meta_layer.file_format_version = ManifestVersion(1, 1, 2);