blob: c91be7cb06dc6aca33f2dbe77f685c2cda73c932 [file] [log] [blame]
Mark Lobodzinskicd497832018-04-12 16:06:35 -06001/*
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
25typedef struct VkDebugReportContent {
26 VkDebugReportCallbackEXT msgCallback;
27 PFN_vkDebugReportCallbackEXT pfnMsgCallback;
28 VkFlags msgFlags;
29} VkDebugReportContent;
30
31typedef struct VkDebugUtilsMessengerContent {
32 VkDebugUtilsMessengerEXT messenger;
33 VkDebugUtilsMessageSeverityFlagsEXT messageSeverity;
34 VkDebugUtilsMessageTypeFlagsEXT messageType;
35 PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback;
36} VkDebugUtilsMessengerContent;
37
38typedef struct VkLayerDbgFunctionNode_ {
39 bool is_messenger;
40 union {
41 VkDebugReportContent report;
42 VkDebugUtilsMessengerContent messenger;
43 };
44 void *pUserData;
45 struct VkLayerDbgFunctionNode_ *pNext;
46} VkLayerDbgFunctionNode;