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