diff options
| author | Chris Forbes <chrisforbes@google.com> | 2017-05-02 17:45:45 -0700 |
|---|---|---|
| committer | Chris Forbes <chrisf@ijw.co.nz> | 2017-05-03 11:38:06 -0700 |
| commit | bf2ca1cdd02af06f478bdb27f7047e5b9e700e4e (patch) | |
| tree | 7c57ec18a7159e36a0cdcb9debd8c71eac82001c /layers/unique_objects.cpp | |
| parent | 2196b0670b1b3e23a228102f80318da896549bfd (diff) | |
| download | usermoji-bf2ca1cdd02af06f478bdb27f7047e5b9e700e4e.tar.xz | |
layers: Rework UO GetDisplayModePropertiesKHR
Similar overkill to function fixed in earlier commit
Diffstat (limited to 'layers/unique_objects.cpp')
| -rw-r--r-- | layers/unique_objects.cpp | 21 |
1 files changed, 4 insertions, 17 deletions
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<std::mutex> lock(global_lock); - display = (VkDisplayKHR)my_map_data->unique_id_mapping[reinterpret_cast<uint64_t &>(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<std::mutex> lock(global_lock); for (uint32_t idx0 = 0; idx0 < *pPropertyCount; ++idx0) { - std::lock_guard<std::mutex> lock(global_lock); - - uint64_t unique_id = global_unique_id++; - my_map_data->unique_id_mapping[unique_id] = reinterpret_cast<uint64_t &>(local_pProperties[idx0].displayMode); - pProperties[idx0].displayMode = reinterpret_cast<VkDisplayModeKHR &>(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; } |
