From e37e32e23b87151013dfea403c3475390ca89d26 Mon Sep 17 00:00:00 2001 From: Courtney Goeltzenleuchter Date: Thu, 8 Oct 2015 17:07:25 -0600 Subject: layers: Add DEBUG_OUTPUT support to swapchain --- layers/swapchain.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'layers/swapchain.cpp') diff --git a/layers/swapchain.cpp b/layers/swapchain.cpp index 3143741b..304f96b4 100644 --- a/layers/swapchain.cpp +++ b/layers/swapchain.cpp @@ -130,6 +130,7 @@ static void initSwapchain(layer_data *my_data) uint32_t debug_action = 0; FILE *log_output = NULL; const char *option_str; + VkDbgMsgCallback callback; // Initialize Swapchain options: report_flags = getLayerOptionFlags("SwapchainReportFlags", 0); @@ -142,7 +143,12 @@ static void initSwapchain(layer_data *my_data) log_output = getLayerLogOutput(option_str, "Swapchain"); layer_create_msg_callback(my_data->report_data, report_flags, log_callback, (void *) log_output, - &my_data->logging_callback); + &callback); + my_data->logging_callback.push_back(callback); + } + if (debug_action & VK_DBG_LAYER_ACTION_DEBUG_OUTPUT) { + layer_create_msg_callback(my_data->report_data, report_flags, win32_debug_output_msg, NULL, &callback); + my_data->logging_callback.push_back(callback); } } @@ -244,8 +250,10 @@ VK_LAYER_EXPORT void VKAPI vkDestroyInstance(VkInstance instance) // Clean up logging callback, if any layer_data *my_data = get_my_data_ptr(key, layer_data_map); - if (my_data->logging_callback) { - layer_destroy_msg_callback(my_data->report_data, my_data->logging_callback); + while (my_data->logging_callback.size() > 0) { + VkDbgMsgCallback callback = my_data->logging_callback.back(); + layer_destroy_msg_callback(my_data->report_data, callback); + my_data->logging_callback.pop_back(); } layer_debug_report_destroy_instance(my_data->report_data); layer_data_map.erase(key); -- cgit v1.2.3