aboutsummaryrefslogtreecommitdiff
path: root/libs/vkjson/vkjson.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/vkjson/vkjson.h')
-rw-r--r--libs/vkjson/vkjson.h47
1 files changed, 39 insertions, 8 deletions
diff --git a/libs/vkjson/vkjson.h b/libs/vkjson/vkjson.h
index a248bd3e4..2fe953b55 100644
--- a/libs/vkjson/vkjson.h
+++ b/libs/vkjson/vkjson.h
@@ -40,8 +40,13 @@
#undef max
#endif
-struct VkJsonAllProperties {
- VkJsonAllProperties() {
+struct VkJsonLayer {
+ VkLayerProperties properties;
+ std::vector<VkExtensionProperties> extensions;
+};
+
+struct VkJsonDevice {
+ VkJsonDevice() {
memset(&properties, 0, sizeof(VkPhysicalDeviceProperties));
memset(&features, 0, sizeof(VkPhysicalDeviceFeatures));
memset(&memory, 0, sizeof(VkPhysicalDeviceMemoryProperties));
@@ -55,13 +60,23 @@ struct VkJsonAllProperties {
std::map<VkFormat, VkFormatProperties> formats;
};
-VkJsonAllProperties VkJsonGetAllProperties(VkPhysicalDevice physicalDevice);
+struct VkJsonInstance {
+ std::vector<VkJsonLayer> layers;
+ std::vector<VkExtensionProperties> extensions;
+ std::vector<VkJsonDevice> devices;
+};
+
+VkJsonInstance VkJsonGetInstance();
+std::string VkJsonInstanceToJson(const VkJsonInstance& instance);
+bool VkJsonInstanceFromJson(const std::string& json,
+ VkJsonInstance* instance,
+ std::string* errors);
-std::string VkJsonAllPropertiesToJson(
- const VkJsonAllProperties& properties);
-bool VkJsonAllPropertiesFromJson(
- const std::string& json, VkJsonAllProperties* properties,
- std::string* errors);
+VkJsonDevice VkJsonGetDevice(VkPhysicalDevice device);
+std::string VkJsonDeviceToJson(const VkJsonDevice& device);
+bool VkJsonDeviceFromJson(const std::string& json,
+ VkJsonDevice* device,
+ std::string* errors);
std::string VkJsonImageFormatPropertiesToJson(
const VkImageFormatProperties& properties);
@@ -69,4 +84,20 @@ bool VkJsonImageFormatPropertiesFromJson(const std::string& json,
VkImageFormatProperties* properties,
std::string* errors);
+// Backward-compatibility aliases
+typedef VkJsonDevice VkJsonAllProperties;
+inline VkJsonAllProperties VkJsonGetAllProperties(
+ VkPhysicalDevice physicalDevice) {
+ return VkJsonGetDevice(physicalDevice);
+}
+inline std::string VkJsonAllPropertiesToJson(
+ const VkJsonAllProperties& properties) {
+ return VkJsonDeviceToJson(properties);
+}
+inline bool VkJsonAllPropertiesFromJson(const std::string& json,
+ VkJsonAllProperties* properties,
+ std::string* errors) {
+ return VkJsonDeviceFromJson(json, properties, errors);
+}
+
#endif // VKJSON_H_