1 /* 2 * 3 * Copyright (c) 2016-2018 The Khronos Group Inc. 4 * Copyright (c) 2016-2018 Valve Corporation 5 * Copyright (c) 2016-2018 LunarG, Inc. 6 * 7 * Licensed under the Apache License, Version 2.0 (the "License"); 8 * you may not use this file except in compliance with the License. 9 * You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, software 14 * distributed under the License is distributed on an "AS IS" BASIS, 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 * See the License for the specific language governing permissions and 17 * limitations under the License. 18 * 19 * Author: Mark Lobodzinski <mark@lunarg.com> 20 * 21 */ 22 #pragma once 23 24 // Linked list node for tree of debug callbacks 25 typedef struct VkDebugReportContent { 26 VkDebugReportCallbackEXT msgCallback; 27 PFN_vkDebugReportCallbackEXT pfnMsgCallback; 28 VkFlags msgFlags; 29 } VkDebugReportContent; 30 31 typedef struct VkDebugUtilsMessengerContent { 32 VkDebugUtilsMessengerEXT messenger; 33 VkDebugUtilsMessageSeverityFlagsEXT messageSeverity; 34 VkDebugUtilsMessageTypeFlagsEXT messageType; 35 PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback; 36 } VkDebugUtilsMessengerContent; 37 38 typedef struct VkLayerDbgFunctionNode_ { 39 bool is_messenger; 40 union { 41 VkDebugReportContent report; 42 VkDebugUtilsMessengerContent messenger; 43 }; 44 void *pUserData; 45 struct VkLayerDbgFunctionNode_ *pNext; 46 } VkLayerDbgFunctionNode; 47