diff options
Diffstat (limited to 'libs/vkjson/vkjson.h')
-rw-r--r-- | libs/vkjson/vkjson.h | 47 |
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_ |