aboutsummaryrefslogtreecommitdiff
path: root/layers
diff options
context:
space:
mode:
authorChris Forbes <chrisforbes@google.com>2017-05-02 17:45:45 -0700
committerChris Forbes <chrisf@ijw.co.nz>2017-05-03 11:38:06 -0700
commitbf2ca1cdd02af06f478bdb27f7047e5b9e700e4e (patch)
tree7c57ec18a7159e36a0cdcb9debd8c71eac82001c /layers
parent2196b0670b1b3e23a228102f80318da896549bfd (diff)
downloadusermoji-bf2ca1cdd02af06f478bdb27f7047e5b9e700e4e.tar.xz
layers: Rework UO GetDisplayModePropertiesKHR
Similar overkill to function fixed in earlier commit
Diffstat (limited to 'layers')
-rw-r--r--layers/unique_objects.cpp21
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;
}