aboutsummaryrefslogtreecommitdiff
path: root/libs/vkjson/vkjson.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/vkjson/vkjson.cc')
-rw-r--r--libs/vkjson/vkjson.cc52
1 files changed, 36 insertions, 16 deletions
diff --git a/libs/vkjson/vkjson.cc b/libs/vkjson/vkjson.cc
index 6e83ad891..ee87b91de 100644
--- a/libs/vkjson/vkjson.cc
+++ b/libs/vkjson/vkjson.cc
@@ -334,17 +334,28 @@ inline bool Iterate(Visitor* visitor, VkFormatProperties* properties) {
}
template <typename Visitor>
-inline bool Iterate(Visitor* visitor, VkJsonAllProperties* properties) {
- return
- visitor->Visit("properties", &properties->properties) &&
- visitor->Visit("features", &properties->features) &&
- visitor->Visit("memory", &properties->memory) &&
- visitor->Visit("queues", &properties->queues) &&
- visitor->Visit("extensions", &properties->extensions) &&
- visitor->Visit("layers", &properties->layers) &&
- visitor->Visit("formats", &properties->formats);
+inline bool Iterate(Visitor* visitor, VkJsonLayer* layer) {
+ return visitor->Visit("properties", &layer->properties) &&
+ visitor->Visit("extensions", &layer->extensions);
+}
+
+template <typename Visitor>
+inline bool Iterate(Visitor* visitor, VkJsonDevice* device) {
+ return visitor->Visit("properties", &device->properties) &&
+ visitor->Visit("features", &device->features) &&
+ visitor->Visit("memory", &device->memory) &&
+ visitor->Visit("queues", &device->queues) &&
+ visitor->Visit("extensions", &device->extensions) &&
+ visitor->Visit("layers", &device->layers) &&
+ visitor->Visit("formats", &device->formats);
}
+template <typename Visitor>
+inline bool Iterate(Visitor* visitor, VkJsonInstance* instance) {
+ return visitor->Visit("layers", &instance->layers) &&
+ visitor->Visit("extensions", &instance->extensions) &&
+ visitor->Visit("devices", &instance->devices);
+}
template <typename T>
using EnableForArithmetic =
@@ -670,15 +681,24 @@ template <typename T> bool VkTypeFromJson(const std::string& json,
} // anonymous namespace
-std::string VkJsonAllPropertiesToJson(
- const VkJsonAllProperties& properties) {
- return VkTypeToJson(properties);
+std::string VkJsonInstanceToJson(const VkJsonInstance& instance) {
+ return VkTypeToJson(instance);
}
-bool VkJsonAllPropertiesFromJson(
- const std::string& json, VkJsonAllProperties* properties,
- std::string* errors) {
- return VkTypeFromJson(json, properties, errors);
+bool VkJsonInstanceFromJson(const std::string& json,
+ VkJsonInstance* instance,
+ std::string* errors) {
+ return VkTypeFromJson(json, instance, errors);
+}
+
+std::string VkJsonDeviceToJson(const VkJsonDevice& device) {
+ return VkTypeToJson(device);
+}
+
+bool VkJsonDeviceFromJson(const std::string& json,
+ VkJsonDevice* device,
+ std::string* errors) {
+ return VkTypeFromJson(json, device, errors);
};
std::string VkJsonImageFormatPropertiesToJson(