driver_gen.h revision eb7db124e46da9a9210cf868353f5ea79502ffec
1/*
2 * Copyright 2016 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17// WARNING: This file is generated. See ../README.md for instructions.
18
19#ifndef LIBVULKAN_DRIVER_GEN_H
20#define LIBVULKAN_DRIVER_GEN_H
21
22#include <vulkan/vulkan.h>
23#include <vulkan/vk_android_native_buffer.h>
24
25namespace vulkan {
26namespace driver {
27
28struct ProcHook {
29    enum Type {
30        GLOBAL,
31        INSTANCE,
32        DEVICE,
33    };
34    enum Extension {
35        ANDROID_native_buffer,
36        EXT_debug_report,
37        KHR_android_surface,
38        KHR_surface,
39        KHR_swapchain,
40
41        EXTENSION_CORE,  // valid bit
42        EXTENSION_COUNT,
43        EXTENSION_UNKNOWN,
44    };
45
46    const char* name;
47    Type type;
48    Extension extension;
49
50    PFN_vkVoidFunction proc;
51    PFN_vkVoidFunction disabled_proc;  // nullptr for global hooks
52    PFN_vkVoidFunction checked_proc;   // nullptr for global/instance hooks
53};
54
55const ProcHook* GetProcHook(const char* name);
56ProcHook::Extension GetProcHookExtension(const char* name);
57
58}  // namespace driver
59}  // namespace vulkan
60
61#endif  // LIBVULKAN_DRIVER_TABLE_H
62