1 | #ifndef VULKAN_NATIVE_H_
|
---|
2 | #define VULKAN_NATIVE_H_ 1
|
---|
3 |
|
---|
4 | #include <cstdint>
|
---|
5 | #include <windows.h>
|
---|
6 |
|
---|
7 | /* This definitions in this file are an extract of vulkan_win32.h
|
---|
8 | * under the following license: */
|
---|
9 | /*
|
---|
10 | ** Copyright (c) 2015-2019 The Khronos Group Inc.
|
---|
11 | **
|
---|
12 | ** Licensed under the Apache License, Version 2.0 (the "License");
|
---|
13 | ** you may not use this file except in compliance with the License.
|
---|
14 | ** You may obtain a copy of the License at
|
---|
15 | **
|
---|
16 | ** http://www.apache.org/licenses/LICENSE-2.0
|
---|
17 | **
|
---|
18 | ** Unless required by applicable law or agreed to in writing, software
|
---|
19 | ** distributed under the License is distributed on an "AS IS" BASIS,
|
---|
20 | ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
---|
21 | ** See the License for the specific language governing permissions and
|
---|
22 | ** limitations under the License.
|
---|
23 | */
|
---|
24 |
|
---|
25 | #ifdef __cplusplus
|
---|
26 | extern "C" {
|
---|
27 | #endif
|
---|
28 |
|
---|
29 | #define VK_EXT_full_screen_exclusive 1
|
---|
30 | #define VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION 4
|
---|
31 | #define VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME "VK_EXT_full_screen_exclusive"
|
---|
32 |
|
---|
33 | typedef enum VkFullScreenExclusiveEXT {
|
---|
34 | VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT = 0,
|
---|
35 | VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT = 1,
|
---|
36 | VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT = 2,
|
---|
37 | VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT = 3,
|
---|
38 | VK_FULL_SCREEN_EXCLUSIVE_BEGIN_RANGE_EXT = VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT,
|
---|
39 | VK_FULL_SCREEN_EXCLUSIVE_END_RANGE_EXT = VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT,
|
---|
40 | VK_FULL_SCREEN_EXCLUSIVE_RANGE_SIZE_EXT = (VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT - VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT + 1),
|
---|
41 | VK_FULL_SCREEN_EXCLUSIVE_MAX_ENUM_EXT = 0x7FFFFFFF
|
---|
42 | } VkFullScreenExclusiveEXT;
|
---|
43 | typedef struct VkSurfaceFullScreenExclusiveInfoEXT {
|
---|
44 | VkStructureType sType;
|
---|
45 | void* pNext;
|
---|
46 | VkFullScreenExclusiveEXT fullScreenExclusive;
|
---|
47 | } VkSurfaceFullScreenExclusiveInfoEXT;
|
---|
48 |
|
---|
49 | typedef struct VkSurfaceCapabilitiesFullScreenExclusiveEXT {
|
---|
50 | VkStructureType sType;
|
---|
51 | void* pNext;
|
---|
52 | VkBool32 fullScreenExclusiveSupported;
|
---|
53 | } VkSurfaceCapabilitiesFullScreenExclusiveEXT;
|
---|
54 |
|
---|
55 | typedef struct VkSurfaceFullScreenExclusiveWin32InfoEXT {
|
---|
56 | VkStructureType sType;
|
---|
57 | const void* pNext;
|
---|
58 | HMONITOR hmonitor;
|
---|
59 | } VkSurfaceFullScreenExclusiveWin32InfoEXT;
|
---|
60 |
|
---|
61 | typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
|
---|
62 | typedef VkResult (VKAPI_PTR *PFN_vkAcquireFullScreenExclusiveModeEXT)(VkDevice device, VkSwapchainKHR swapchain);
|
---|
63 | typedef VkResult (VKAPI_PTR *PFN_vkReleaseFullScreenExclusiveModeEXT)(VkDevice device, VkSwapchainKHR swapchain);
|
---|
64 | typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModes2EXT)(VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes);
|
---|
65 |
|
---|
66 | #ifndef VK_NO_PROTOTYPES
|
---|
67 | VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModes2EXT(
|
---|
68 | VkPhysicalDevice physicalDevice,
|
---|
69 | const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
|
---|
70 | uint32_t* pPresentModeCount,
|
---|
71 | VkPresentModeKHR* pPresentModes);
|
---|
72 |
|
---|
73 | VKAPI_ATTR VkResult VKAPI_CALL vkAcquireFullScreenExclusiveModeEXT(
|
---|
74 | VkDevice device,
|
---|
75 | VkSwapchainKHR swapchain);
|
---|
76 |
|
---|
77 | VKAPI_ATTR VkResult VKAPI_CALL vkReleaseFullScreenExclusiveModeEXT(
|
---|
78 | VkDevice device,
|
---|
79 | VkSwapchainKHR swapchain);
|
---|
80 |
|
---|
81 | VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModes2EXT(
|
---|
82 | VkDevice device,
|
---|
83 | const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
|
---|
84 | VkDeviceGroupPresentModeFlagsKHR* pModes);
|
---|
85 | #endif
|
---|
86 |
|
---|
87 | #ifdef __cplusplus
|
---|
88 | }
|
---|
89 | #endif
|
---|
90 |
|
---|
91 | #endif
|
---|