From bf2ca1cdd02af06f478bdb27f7047e5b9e700e4e Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Tue, 2 May 2017 17:45:45 -0700 Subject: layers: Rework UO GetDisplayModePropertiesKHR Similar overkill to function fixed in earlier commit --- layers/unique_objects.cpp | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) (limited to 'layers/unique_objects.cpp') diff --git a/layers/unique_objects.cpp b/layers/unique_objects.cpp index 55204f36..b0395b9a 100644 --- a/layers/unique_objects.cpp +++ b/layers/unique_objects.cpp @@ -756,32 +756,19 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDisplayPlaneSupportedDisplaysKHR(VkPhysicalDev VKAPI_ATTR VkResult VKAPI_CALL GetDisplayModePropertiesKHR(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t *pPropertyCount, VkDisplayModePropertiesKHR *pProperties) { instance_layer_data *my_map_data = GetLayerDataPtr(get_dispatch_key(physicalDevice), instance_layer_data_map); - VkDisplayModePropertiesKHR *local_pProperties = NULL; { std::lock_guard lock(global_lock); - display = (VkDisplayKHR)my_map_data->unique_id_mapping[reinterpret_cast(display)]; - if (pProperties) { - local_pProperties = new VkDisplayModePropertiesKHR[*pPropertyCount]; - } + display = Unwrap(my_map_data, display); } VkResult result = my_map_data->dispatch_table.GetDisplayModePropertiesKHR( - physicalDevice, display, pPropertyCount, (VkDisplayModePropertiesKHR *)local_pProperties); + physicalDevice, display, pPropertyCount, pProperties); if (result == VK_SUCCESS && pProperties) { + std::lock_guard lock(global_lock); for (uint32_t idx0 = 0; idx0 < *pPropertyCount; ++idx0) { - std::lock_guard lock(global_lock); - - uint64_t unique_id = global_unique_id++; - my_map_data->unique_id_mapping[unique_id] = reinterpret_cast(local_pProperties[idx0].displayMode); - pProperties[idx0].displayMode = reinterpret_cast(unique_id); - pProperties[idx0].parameters.visibleRegion.width = local_pProperties[idx0].parameters.visibleRegion.width; - pProperties[idx0].parameters.visibleRegion.height = local_pProperties[idx0].parameters.visibleRegion.height; - pProperties[idx0].parameters.refreshRate = local_pProperties[idx0].parameters.refreshRate; + pProperties[idx0].displayMode = WrapNew(my_map_data, pProperties[idx0].displayMode); } } - if (local_pProperties) { - delete[] local_pProperties; - } return result; } -- cgit v1.2.3