| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,69 @@ | ||
| // | ||
| // File: vk_sdk_platform.h | ||
| // | ||
| /* | ||
| * Copyright (c) 2015-2016 The Khronos Group Inc. | ||
| * Copyright (c) 2015-2016 Valve Corporation | ||
| * Copyright (c) 2015-2016 LunarG, Inc. | ||
| * | ||
| * Licensed under the Apache License, Version 2.0 (the "License"); | ||
| * you may not use this file except in compliance with the License. | ||
| * You may obtain a copy of the License at | ||
| * | ||
| * http://www.apache.org/licenses/LICENSE-2.0 | ||
| * | ||
| * Unless required by applicable law or agreed to in writing, software | ||
| * distributed under the License is distributed on an "AS IS" BASIS, | ||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| * See the License for the specific language governing permissions and | ||
| * limitations under the License. | ||
| */ | ||
|
|
||
| #ifndef VK_SDK_PLATFORM_H | ||
| #define VK_SDK_PLATFORM_H | ||
|
|
||
| #if defined(_WIN32) | ||
| #define NOMINMAX | ||
| #ifndef __cplusplus | ||
| #undef inline | ||
| #define inline __inline | ||
| #endif // __cplusplus | ||
|
|
||
| #if (defined(_MSC_VER) && _MSC_VER < 1900 /*vs2015*/) | ||
| // C99: | ||
| // Microsoft didn't implement C99 in Visual Studio; but started adding it with | ||
| // VS2013. However, VS2013 still didn't have snprintf(). The following is a | ||
| // work-around (Note: The _CRT_SECURE_NO_WARNINGS macro must be set in the | ||
| // "CMakeLists.txt" file). | ||
| // NOTE: This is fixed in Visual Studio 2015. | ||
| #define snprintf _snprintf | ||
| #endif | ||
|
|
||
| #define strdup _strdup | ||
|
|
||
| #endif // _WIN32 | ||
|
|
||
| // Check for noexcept support using clang, with fallback to Windows or GCC version numbers | ||
| #ifndef NOEXCEPT | ||
| #if defined(__clang__) | ||
| #if __has_feature(cxx_noexcept) | ||
| #define HAS_NOEXCEPT | ||
| #endif | ||
| #else | ||
| #if defined(__GXX_EXPERIMENTAL_CXX0X__) && __GNUC__ * 10 + __GNUC_MINOR__ >= 46 | ||
| #define HAS_NOEXCEPT | ||
| #else | ||
| #if defined(_MSC_FULL_VER) && _MSC_FULL_VER >= 190023026 && defined(_HAS_EXCEPTIONS) && _HAS_EXCEPTIONS | ||
| #define HAS_NOEXCEPT | ||
| #endif | ||
| #endif | ||
| #endif | ||
|
|
||
| #ifdef HAS_NOEXCEPT | ||
| #define NOEXCEPT noexcept | ||
| #else | ||
| #define NOEXCEPT | ||
| #endif | ||
| #endif | ||
|
|
||
| #endif // VK_SDK_PLATFORM_H |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,126 @@ | ||
| #ifndef VULKAN_ANDROID_H_ | ||
| #define VULKAN_ANDROID_H_ 1 | ||
|
|
||
| #ifdef __cplusplus | ||
| extern "C" { | ||
| #endif | ||
|
|
||
| /* | ||
| ** Copyright (c) 2015-2018 The Khronos Group Inc. | ||
| ** | ||
| ** Licensed under the Apache License, Version 2.0 (the "License"); | ||
| ** you may not use this file except in compliance with the License. | ||
| ** You may obtain a copy of the License at | ||
| ** | ||
| ** http://www.apache.org/licenses/LICENSE-2.0 | ||
| ** | ||
| ** Unless required by applicable law or agreed to in writing, software | ||
| ** distributed under the License is distributed on an "AS IS" BASIS, | ||
| ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| ** See the License for the specific language governing permissions and | ||
| ** limitations under the License. | ||
| */ | ||
|
|
||
| /* | ||
| ** This header is generated from the Khronos Vulkan XML API Registry. | ||
| ** | ||
| */ | ||
|
|
||
|
|
||
| #define VK_KHR_android_surface 1 | ||
| struct ANativeWindow; | ||
|
|
||
| #define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6 | ||
| #define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface" | ||
|
|
||
| typedef VkFlags VkAndroidSurfaceCreateFlagsKHR; | ||
|
|
||
| typedef struct VkAndroidSurfaceCreateInfoKHR { | ||
| VkStructureType sType; | ||
| const void* pNext; | ||
| VkAndroidSurfaceCreateFlagsKHR flags; | ||
| struct ANativeWindow* window; | ||
| } VkAndroidSurfaceCreateInfoKHR; | ||
|
|
||
|
|
||
| typedef VkResult (VKAPI_PTR *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); | ||
|
|
||
| #ifndef VK_NO_PROTOTYPES | ||
| VKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR( | ||
| VkInstance instance, | ||
| const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, | ||
| const VkAllocationCallbacks* pAllocator, | ||
| VkSurfaceKHR* pSurface); | ||
| #endif | ||
|
|
||
| #define VK_ANDROID_external_memory_android_hardware_buffer 1 | ||
| struct AHardwareBuffer; | ||
|
|
||
| #define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 3 | ||
| #define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME "VK_ANDROID_external_memory_android_hardware_buffer" | ||
|
|
||
| typedef struct VkAndroidHardwareBufferUsageANDROID { | ||
| VkStructureType sType; | ||
| void* pNext; | ||
| uint64_t androidHardwareBufferUsage; | ||
| } VkAndroidHardwareBufferUsageANDROID; | ||
|
|
||
| typedef struct VkAndroidHardwareBufferPropertiesANDROID { | ||
| VkStructureType sType; | ||
| void* pNext; | ||
| VkDeviceSize allocationSize; | ||
| uint32_t memoryTypeBits; | ||
| } VkAndroidHardwareBufferPropertiesANDROID; | ||
|
|
||
| typedef struct VkAndroidHardwareBufferFormatPropertiesANDROID { | ||
| VkStructureType sType; | ||
| void* pNext; | ||
| VkFormat format; | ||
| uint64_t externalFormat; | ||
| VkFormatFeatureFlags formatFeatures; | ||
| VkComponentMapping samplerYcbcrConversionComponents; | ||
| VkSamplerYcbcrModelConversion suggestedYcbcrModel; | ||
| VkSamplerYcbcrRange suggestedYcbcrRange; | ||
| VkChromaLocation suggestedXChromaOffset; | ||
| VkChromaLocation suggestedYChromaOffset; | ||
| } VkAndroidHardwareBufferFormatPropertiesANDROID; | ||
|
|
||
| typedef struct VkImportAndroidHardwareBufferInfoANDROID { | ||
| VkStructureType sType; | ||
| const void* pNext; | ||
| struct AHardwareBuffer* buffer; | ||
| } VkImportAndroidHardwareBufferInfoANDROID; | ||
|
|
||
| typedef struct VkMemoryGetAndroidHardwareBufferInfoANDROID { | ||
| VkStructureType sType; | ||
| const void* pNext; | ||
| VkDeviceMemory memory; | ||
| } VkMemoryGetAndroidHardwareBufferInfoANDROID; | ||
|
|
||
| typedef struct VkExternalFormatANDROID { | ||
| VkStructureType sType; | ||
| void* pNext; | ||
| uint64_t externalFormat; | ||
| } VkExternalFormatANDROID; | ||
|
|
||
|
|
||
| typedef VkResult (VKAPI_PTR *PFN_vkGetAndroidHardwareBufferPropertiesANDROID)(VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties); | ||
| typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryAndroidHardwareBufferANDROID)(VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer); | ||
|
|
||
| #ifndef VK_NO_PROTOTYPES | ||
| VKAPI_ATTR VkResult VKAPI_CALL vkGetAndroidHardwareBufferPropertiesANDROID( | ||
| VkDevice device, | ||
| const struct AHardwareBuffer* buffer, | ||
| VkAndroidHardwareBufferPropertiesANDROID* pProperties); | ||
|
|
||
| VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryAndroidHardwareBufferANDROID( | ||
| VkDevice device, | ||
| const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, | ||
| struct AHardwareBuffer** pBuffer); | ||
| #endif | ||
|
|
||
| #ifdef __cplusplus | ||
| } | ||
| #endif | ||
|
|
||
| #endif |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,58 @@ | ||
| #ifndef VULKAN_IOS_H_ | ||
| #define VULKAN_IOS_H_ 1 | ||
|
|
||
| #ifdef __cplusplus | ||
| extern "C" { | ||
| #endif | ||
|
|
||
| /* | ||
| ** Copyright (c) 2015-2018 The Khronos Group Inc. | ||
| ** | ||
| ** Licensed under the Apache License, Version 2.0 (the "License"); | ||
| ** you may not use this file except in compliance with the License. | ||
| ** You may obtain a copy of the License at | ||
| ** | ||
| ** http://www.apache.org/licenses/LICENSE-2.0 | ||
| ** | ||
| ** Unless required by applicable law or agreed to in writing, software | ||
| ** distributed under the License is distributed on an "AS IS" BASIS, | ||
| ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| ** See the License for the specific language governing permissions and | ||
| ** limitations under the License. | ||
| */ | ||
|
|
||
| /* | ||
| ** This header is generated from the Khronos Vulkan XML API Registry. | ||
| ** | ||
| */ | ||
|
|
||
|
|
||
| #define VK_MVK_ios_surface 1 | ||
| #define VK_MVK_IOS_SURFACE_SPEC_VERSION 2 | ||
| #define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface" | ||
|
|
||
| typedef VkFlags VkIOSSurfaceCreateFlagsMVK; | ||
|
|
||
| typedef struct VkIOSSurfaceCreateInfoMVK { | ||
| VkStructureType sType; | ||
| const void* pNext; | ||
| VkIOSSurfaceCreateFlagsMVK flags; | ||
| const void* pView; | ||
| } VkIOSSurfaceCreateInfoMVK; | ||
|
|
||
|
|
||
| typedef VkResult (VKAPI_PTR *PFN_vkCreateIOSSurfaceMVK)(VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); | ||
|
|
||
| #ifndef VK_NO_PROTOTYPES | ||
| VKAPI_ATTR VkResult VKAPI_CALL vkCreateIOSSurfaceMVK( | ||
| VkInstance instance, | ||
| const VkIOSSurfaceCreateInfoMVK* pCreateInfo, | ||
| const VkAllocationCallbacks* pAllocator, | ||
| VkSurfaceKHR* pSurface); | ||
| #endif | ||
|
|
||
| #ifdef __cplusplus | ||
| } | ||
| #endif | ||
|
|
||
| #endif |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,58 @@ | ||
| #ifndef VULKAN_MACOS_H_ | ||
| #define VULKAN_MACOS_H_ 1 | ||
|
|
||
| #ifdef __cplusplus | ||
| extern "C" { | ||
| #endif | ||
|
|
||
| /* | ||
| ** Copyright (c) 2015-2018 The Khronos Group Inc. | ||
| ** | ||
| ** Licensed under the Apache License, Version 2.0 (the "License"); | ||
| ** you may not use this file except in compliance with the License. | ||
| ** You may obtain a copy of the License at | ||
| ** | ||
| ** http://www.apache.org/licenses/LICENSE-2.0 | ||
| ** | ||
| ** Unless required by applicable law or agreed to in writing, software | ||
| ** distributed under the License is distributed on an "AS IS" BASIS, | ||
| ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| ** See the License for the specific language governing permissions and | ||
| ** limitations under the License. | ||
| */ | ||
|
|
||
| /* | ||
| ** This header is generated from the Khronos Vulkan XML API Registry. | ||
| ** | ||
| */ | ||
|
|
||
|
|
||
| #define VK_MVK_macos_surface 1 | ||
| #define VK_MVK_MACOS_SURFACE_SPEC_VERSION 2 | ||
| #define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface" | ||
|
|
||
| typedef VkFlags VkMacOSSurfaceCreateFlagsMVK; | ||
|
|
||
| typedef struct VkMacOSSurfaceCreateInfoMVK { | ||
| VkStructureType sType; | ||
| const void* pNext; | ||
| VkMacOSSurfaceCreateFlagsMVK flags; | ||
| const void* pView; | ||
| } VkMacOSSurfaceCreateInfoMVK; | ||
|
|
||
|
|
||
| typedef VkResult (VKAPI_PTR *PFN_vkCreateMacOSSurfaceMVK)(VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); | ||
|
|
||
| #ifndef VK_NO_PROTOTYPES | ||
| VKAPI_ATTR VkResult VKAPI_CALL vkCreateMacOSSurfaceMVK( | ||
| VkInstance instance, | ||
| const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, | ||
| const VkAllocationCallbacks* pAllocator, | ||
| VkSurfaceKHR* pSurface); | ||
| #endif | ||
|
|
||
| #ifdef __cplusplus | ||
| } | ||
| #endif | ||
|
|
||
| #endif |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,65 @@ | ||
| #ifndef VULKAN_MIR_H_ | ||
| #define VULKAN_MIR_H_ 1 | ||
|
|
||
| #ifdef __cplusplus | ||
| extern "C" { | ||
| #endif | ||
|
|
||
| /* | ||
| ** Copyright (c) 2015-2018 The Khronos Group Inc. | ||
| ** | ||
| ** Licensed under the Apache License, Version 2.0 (the "License"); | ||
| ** you may not use this file except in compliance with the License. | ||
| ** You may obtain a copy of the License at | ||
| ** | ||
| ** http://www.apache.org/licenses/LICENSE-2.0 | ||
| ** | ||
| ** Unless required by applicable law or agreed to in writing, software | ||
| ** distributed under the License is distributed on an "AS IS" BASIS, | ||
| ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| ** See the License for the specific language governing permissions and | ||
| ** limitations under the License. | ||
| */ | ||
|
|
||
| /* | ||
| ** This header is generated from the Khronos Vulkan XML API Registry. | ||
| ** | ||
| */ | ||
|
|
||
|
|
||
| #define VK_KHR_mir_surface 1 | ||
| #define VK_KHR_MIR_SURFACE_SPEC_VERSION 4 | ||
| #define VK_KHR_MIR_SURFACE_EXTENSION_NAME "VK_KHR_mir_surface" | ||
|
|
||
| typedef VkFlags VkMirSurfaceCreateFlagsKHR; | ||
|
|
||
| typedef struct VkMirSurfaceCreateInfoKHR { | ||
| VkStructureType sType; | ||
| const void* pNext; | ||
| VkMirSurfaceCreateFlagsKHR flags; | ||
| MirConnection* connection; | ||
| MirSurface* mirSurface; | ||
| } VkMirSurfaceCreateInfoKHR; | ||
|
|
||
|
|
||
| typedef VkResult (VKAPI_PTR *PFN_vkCreateMirSurfaceKHR)(VkInstance instance, const VkMirSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); | ||
| typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceMirPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, MirConnection* connection); | ||
|
|
||
| #ifndef VK_NO_PROTOTYPES | ||
| VKAPI_ATTR VkResult VKAPI_CALL vkCreateMirSurfaceKHR( | ||
| VkInstance instance, | ||
| const VkMirSurfaceCreateInfoKHR* pCreateInfo, | ||
| const VkAllocationCallbacks* pAllocator, | ||
| VkSurfaceKHR* pSurface); | ||
|
|
||
| VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceMirPresentationSupportKHR( | ||
| VkPhysicalDevice physicalDevice, | ||
| uint32_t queueFamilyIndex, | ||
| MirConnection* connection); | ||
| #endif | ||
|
|
||
| #ifdef __cplusplus | ||
| } | ||
| #endif | ||
|
|
||
| #endif |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,58 @@ | ||
| #ifndef VULKAN_VI_H_ | ||
| #define VULKAN_VI_H_ 1 | ||
|
|
||
| #ifdef __cplusplus | ||
| extern "C" { | ||
| #endif | ||
|
|
||
| /* | ||
| ** Copyright (c) 2015-2018 The Khronos Group Inc. | ||
| ** | ||
| ** Licensed under the Apache License, Version 2.0 (the "License"); | ||
| ** you may not use this file except in compliance with the License. | ||
| ** You may obtain a copy of the License at | ||
| ** | ||
| ** http://www.apache.org/licenses/LICENSE-2.0 | ||
| ** | ||
| ** Unless required by applicable law or agreed to in writing, software | ||
| ** distributed under the License is distributed on an "AS IS" BASIS, | ||
| ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| ** See the License for the specific language governing permissions and | ||
| ** limitations under the License. | ||
| */ | ||
|
|
||
| /* | ||
| ** This header is generated from the Khronos Vulkan XML API Registry. | ||
| ** | ||
| */ | ||
|
|
||
|
|
||
| #define VK_NN_vi_surface 1 | ||
| #define VK_NN_VI_SURFACE_SPEC_VERSION 1 | ||
| #define VK_NN_VI_SURFACE_EXTENSION_NAME "VK_NN_vi_surface" | ||
|
|
||
| typedef VkFlags VkViSurfaceCreateFlagsNN; | ||
|
|
||
| typedef struct VkViSurfaceCreateInfoNN { | ||
| VkStructureType sType; | ||
| const void* pNext; | ||
| VkViSurfaceCreateFlagsNN flags; | ||
| void* window; | ||
| } VkViSurfaceCreateInfoNN; | ||
|
|
||
|
|
||
| typedef VkResult (VKAPI_PTR *PFN_vkCreateViSurfaceNN)(VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); | ||
|
|
||
| #ifndef VK_NO_PROTOTYPES | ||
| VKAPI_ATTR VkResult VKAPI_CALL vkCreateViSurfaceNN( | ||
| VkInstance instance, | ||
| const VkViSurfaceCreateInfoNN* pCreateInfo, | ||
| const VkAllocationCallbacks* pAllocator, | ||
| VkSurfaceKHR* pSurface); | ||
| #endif | ||
|
|
||
| #ifdef __cplusplus | ||
| } | ||
| #endif | ||
|
|
||
| #endif |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,65 @@ | ||
| #ifndef VULKAN_WAYLAND_H_ | ||
| #define VULKAN_WAYLAND_H_ 1 | ||
|
|
||
| #ifdef __cplusplus | ||
| extern "C" { | ||
| #endif | ||
|
|
||
| /* | ||
| ** Copyright (c) 2015-2018 The Khronos Group Inc. | ||
| ** | ||
| ** Licensed under the Apache License, Version 2.0 (the "License"); | ||
| ** you may not use this file except in compliance with the License. | ||
| ** You may obtain a copy of the License at | ||
| ** | ||
| ** http://www.apache.org/licenses/LICENSE-2.0 | ||
| ** | ||
| ** Unless required by applicable law or agreed to in writing, software | ||
| ** distributed under the License is distributed on an "AS IS" BASIS, | ||
| ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| ** See the License for the specific language governing permissions and | ||
| ** limitations under the License. | ||
| */ | ||
|
|
||
| /* | ||
| ** This header is generated from the Khronos Vulkan XML API Registry. | ||
| ** | ||
| */ | ||
|
|
||
|
|
||
| #define VK_KHR_wayland_surface 1 | ||
| #define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 6 | ||
| #define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface" | ||
|
|
||
| typedef VkFlags VkWaylandSurfaceCreateFlagsKHR; | ||
|
|
||
| typedef struct VkWaylandSurfaceCreateInfoKHR { | ||
| VkStructureType sType; | ||
| const void* pNext; | ||
| VkWaylandSurfaceCreateFlagsKHR flags; | ||
| struct wl_display* display; | ||
| struct wl_surface* surface; | ||
| } VkWaylandSurfaceCreateInfoKHR; | ||
|
|
||
|
|
||
| typedef VkResult (VKAPI_PTR *PFN_vkCreateWaylandSurfaceKHR)(VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); | ||
| typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display); | ||
|
|
||
| #ifndef VK_NO_PROTOTYPES | ||
| VKAPI_ATTR VkResult VKAPI_CALL vkCreateWaylandSurfaceKHR( | ||
| VkInstance instance, | ||
| const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, | ||
| const VkAllocationCallbacks* pAllocator, | ||
| VkSurfaceKHR* pSurface); | ||
|
|
||
| VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWaylandPresentationSupportKHR( | ||
| VkPhysicalDevice physicalDevice, | ||
| uint32_t queueFamilyIndex, | ||
| struct wl_display* display); | ||
| #endif | ||
|
|
||
| #ifdef __cplusplus | ||
| } | ||
| #endif | ||
|
|
||
| #endif |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,276 @@ | ||
| #ifndef VULKAN_WIN32_H_ | ||
| #define VULKAN_WIN32_H_ 1 | ||
|
|
||
| #ifdef __cplusplus | ||
| extern "C" { | ||
| #endif | ||
|
|
||
| /* | ||
| ** Copyright (c) 2015-2018 The Khronos Group Inc. | ||
| ** | ||
| ** Licensed under the Apache License, Version 2.0 (the "License"); | ||
| ** you may not use this file except in compliance with the License. | ||
| ** You may obtain a copy of the License at | ||
| ** | ||
| ** http://www.apache.org/licenses/LICENSE-2.0 | ||
| ** | ||
| ** Unless required by applicable law or agreed to in writing, software | ||
| ** distributed under the License is distributed on an "AS IS" BASIS, | ||
| ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| ** See the License for the specific language governing permissions and | ||
| ** limitations under the License. | ||
| */ | ||
|
|
||
| /* | ||
| ** This header is generated from the Khronos Vulkan XML API Registry. | ||
| ** | ||
| */ | ||
|
|
||
|
|
||
| #define VK_KHR_win32_surface 1 | ||
| #define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6 | ||
| #define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface" | ||
|
|
||
| typedef VkFlags VkWin32SurfaceCreateFlagsKHR; | ||
|
|
||
| typedef struct VkWin32SurfaceCreateInfoKHR { | ||
| VkStructureType sType; | ||
| const void* pNext; | ||
| VkWin32SurfaceCreateFlagsKHR flags; | ||
| HINSTANCE hinstance; | ||
| HWND hwnd; | ||
| } VkWin32SurfaceCreateInfoKHR; | ||
|
|
||
|
|
||
| typedef VkResult (VKAPI_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); | ||
| typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex); | ||
|
|
||
| #ifndef VK_NO_PROTOTYPES | ||
| VKAPI_ATTR VkResult VKAPI_CALL vkCreateWin32SurfaceKHR( | ||
| VkInstance instance, | ||
| const VkWin32SurfaceCreateInfoKHR* pCreateInfo, | ||
| const VkAllocationCallbacks* pAllocator, | ||
| VkSurfaceKHR* pSurface); | ||
|
|
||
| VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR( | ||
| VkPhysicalDevice physicalDevice, | ||
| uint32_t queueFamilyIndex); | ||
| #endif | ||
|
|
||
| #define VK_KHR_external_memory_win32 1 | ||
| #define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1 | ||
| #define VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHR_external_memory_win32" | ||
|
|
||
| typedef struct VkImportMemoryWin32HandleInfoKHR { | ||
| VkStructureType sType; | ||
| const void* pNext; | ||
| VkExternalMemoryHandleTypeFlagBits handleType; | ||
| HANDLE handle; | ||
| LPCWSTR name; | ||
| } VkImportMemoryWin32HandleInfoKHR; | ||
|
|
||
| typedef struct VkExportMemoryWin32HandleInfoKHR { | ||
| VkStructureType sType; | ||
| const void* pNext; | ||
| const SECURITY_ATTRIBUTES* pAttributes; | ||
| DWORD dwAccess; | ||
| LPCWSTR name; | ||
| } VkExportMemoryWin32HandleInfoKHR; | ||
|
|
||
| typedef struct VkMemoryWin32HandlePropertiesKHR { | ||
| VkStructureType sType; | ||
| void* pNext; | ||
| uint32_t memoryTypeBits; | ||
| } VkMemoryWin32HandlePropertiesKHR; | ||
|
|
||
| typedef struct VkMemoryGetWin32HandleInfoKHR { | ||
| VkStructureType sType; | ||
| const void* pNext; | ||
| VkDeviceMemory memory; | ||
| VkExternalMemoryHandleTypeFlagBits handleType; | ||
| } VkMemoryGetWin32HandleInfoKHR; | ||
|
|
||
|
|
||
| typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleKHR)(VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); | ||
| typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandlePropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties); | ||
|
|
||
| #ifndef VK_NO_PROTOTYPES | ||
| VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleKHR( | ||
| VkDevice device, | ||
| const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, | ||
| HANDLE* pHandle); | ||
|
|
||
| VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandlePropertiesKHR( | ||
| VkDevice device, | ||
| VkExternalMemoryHandleTypeFlagBits handleType, | ||
| HANDLE handle, | ||
| VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties); | ||
| #endif | ||
|
|
||
| #define VK_KHR_win32_keyed_mutex 1 | ||
| #define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1 | ||
| #define VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHR_win32_keyed_mutex" | ||
|
|
||
| typedef struct VkWin32KeyedMutexAcquireReleaseInfoKHR { | ||
| VkStructureType sType; | ||
| const void* pNext; | ||
| uint32_t acquireCount; | ||
| const VkDeviceMemory* pAcquireSyncs; | ||
| const uint64_t* pAcquireKeys; | ||
| const uint32_t* pAcquireTimeouts; | ||
| uint32_t releaseCount; | ||
| const VkDeviceMemory* pReleaseSyncs; | ||
| const uint64_t* pReleaseKeys; | ||
| } VkWin32KeyedMutexAcquireReleaseInfoKHR; | ||
|
|
||
|
|
||
|
|
||
| #define VK_KHR_external_semaphore_win32 1 | ||
| #define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1 | ||
| #define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHR_external_semaphore_win32" | ||
|
|
||
| typedef struct VkImportSemaphoreWin32HandleInfoKHR { | ||
| VkStructureType sType; | ||
| const void* pNext; | ||
| VkSemaphore semaphore; | ||
| VkSemaphoreImportFlags flags; | ||
| VkExternalSemaphoreHandleTypeFlagBits handleType; | ||
| HANDLE handle; | ||
| LPCWSTR name; | ||
| } VkImportSemaphoreWin32HandleInfoKHR; | ||
|
|
||
| typedef struct VkExportSemaphoreWin32HandleInfoKHR { | ||
| VkStructureType sType; | ||
| const void* pNext; | ||
| const SECURITY_ATTRIBUTES* pAttributes; | ||
| DWORD dwAccess; | ||
| LPCWSTR name; | ||
| } VkExportSemaphoreWin32HandleInfoKHR; | ||
|
|
||
| typedef struct VkD3D12FenceSubmitInfoKHR { | ||
| VkStructureType sType; | ||
| const void* pNext; | ||
| uint32_t waitSemaphoreValuesCount; | ||
| const uint64_t* pWaitSemaphoreValues; | ||
| uint32_t signalSemaphoreValuesCount; | ||
| const uint64_t* pSignalSemaphoreValues; | ||
| } VkD3D12FenceSubmitInfoKHR; | ||
|
|
||
| typedef struct VkSemaphoreGetWin32HandleInfoKHR { | ||
| VkStructureType sType; | ||
| const void* pNext; | ||
| VkSemaphore semaphore; | ||
| VkExternalSemaphoreHandleTypeFlagBits handleType; | ||
| } VkSemaphoreGetWin32HandleInfoKHR; | ||
|
|
||
|
|
||
| typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreWin32HandleKHR)(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo); | ||
| typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreWin32HandleKHR)(VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); | ||
|
|
||
| #ifndef VK_NO_PROTOTYPES | ||
| VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreWin32HandleKHR( | ||
| VkDevice device, | ||
| const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo); | ||
|
|
||
| VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreWin32HandleKHR( | ||
| VkDevice device, | ||
| const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, | ||
| HANDLE* pHandle); | ||
| #endif | ||
|
|
||
| #define VK_KHR_external_fence_win32 1 | ||
| #define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1 | ||
| #define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32" | ||
|
|
||
| typedef struct VkImportFenceWin32HandleInfoKHR { | ||
| VkStructureType sType; | ||
| const void* pNext; | ||
| VkFence fence; | ||
| VkFenceImportFlags flags; | ||
| VkExternalFenceHandleTypeFlagBits handleType; | ||
| HANDLE handle; | ||
| LPCWSTR name; | ||
| } VkImportFenceWin32HandleInfoKHR; | ||
|
|
||
| typedef struct VkExportFenceWin32HandleInfoKHR { | ||
| VkStructureType sType; | ||
| const void* pNext; | ||
| const SECURITY_ATTRIBUTES* pAttributes; | ||
| DWORD dwAccess; | ||
| LPCWSTR name; | ||
| } VkExportFenceWin32HandleInfoKHR; | ||
|
|
||
| typedef struct VkFenceGetWin32HandleInfoKHR { | ||
| VkStructureType sType; | ||
| const void* pNext; | ||
| VkFence fence; | ||
| VkExternalFenceHandleTypeFlagBits handleType; | ||
| } VkFenceGetWin32HandleInfoKHR; | ||
|
|
||
|
|
||
| typedef VkResult (VKAPI_PTR *PFN_vkImportFenceWin32HandleKHR)(VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo); | ||
| typedef VkResult (VKAPI_PTR *PFN_vkGetFenceWin32HandleKHR)(VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); | ||
|
|
||
| #ifndef VK_NO_PROTOTYPES | ||
| VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceWin32HandleKHR( | ||
| VkDevice device, | ||
| const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo); | ||
|
|
||
| VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceWin32HandleKHR( | ||
| VkDevice device, | ||
| const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, | ||
| HANDLE* pHandle); | ||
| #endif | ||
|
|
||
| #define VK_NV_external_memory_win32 1 | ||
| #define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1 | ||
| #define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32" | ||
|
|
||
| typedef struct VkImportMemoryWin32HandleInfoNV { | ||
| VkStructureType sType; | ||
| const void* pNext; | ||
| VkExternalMemoryHandleTypeFlagsNV handleType; | ||
| HANDLE handle; | ||
| } VkImportMemoryWin32HandleInfoNV; | ||
|
|
||
| typedef struct VkExportMemoryWin32HandleInfoNV { | ||
| VkStructureType sType; | ||
| const void* pNext; | ||
| const SECURITY_ATTRIBUTES* pAttributes; | ||
| DWORD dwAccess; | ||
| } VkExportMemoryWin32HandleInfoNV; | ||
|
|
||
|
|
||
| typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle); | ||
|
|
||
| #ifndef VK_NO_PROTOTYPES | ||
| VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleNV( | ||
| VkDevice device, | ||
| VkDeviceMemory memory, | ||
| VkExternalMemoryHandleTypeFlagsNV handleType, | ||
| HANDLE* pHandle); | ||
| #endif | ||
|
|
||
| #define VK_NV_win32_keyed_mutex 1 | ||
| #define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 1 | ||
| #define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex" | ||
|
|
||
| typedef struct VkWin32KeyedMutexAcquireReleaseInfoNV { | ||
| VkStructureType sType; | ||
| const void* pNext; | ||
| uint32_t acquireCount; | ||
| const VkDeviceMemory* pAcquireSyncs; | ||
| const uint64_t* pAcquireKeys; | ||
| const uint32_t* pAcquireTimeoutMilliseconds; | ||
| uint32_t releaseCount; | ||
| const VkDeviceMemory* pReleaseSyncs; | ||
| const uint64_t* pReleaseKeys; | ||
| } VkWin32KeyedMutexAcquireReleaseInfoNV; | ||
|
|
||
|
|
||
|
|
||
| #ifdef __cplusplus | ||
| } | ||
| #endif | ||
|
|
||
| #endif |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,66 @@ | ||
| #ifndef VULKAN_XCB_H_ | ||
| #define VULKAN_XCB_H_ 1 | ||
|
|
||
| #ifdef __cplusplus | ||
| extern "C" { | ||
| #endif | ||
|
|
||
| /* | ||
| ** Copyright (c) 2015-2018 The Khronos Group Inc. | ||
| ** | ||
| ** Licensed under the Apache License, Version 2.0 (the "License"); | ||
| ** you may not use this file except in compliance with the License. | ||
| ** You may obtain a copy of the License at | ||
| ** | ||
| ** http://www.apache.org/licenses/LICENSE-2.0 | ||
| ** | ||
| ** Unless required by applicable law or agreed to in writing, software | ||
| ** distributed under the License is distributed on an "AS IS" BASIS, | ||
| ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| ** See the License for the specific language governing permissions and | ||
| ** limitations under the License. | ||
| */ | ||
|
|
||
| /* | ||
| ** This header is generated from the Khronos Vulkan XML API Registry. | ||
| ** | ||
| */ | ||
|
|
||
|
|
||
| #define VK_KHR_xcb_surface 1 | ||
| #define VK_KHR_XCB_SURFACE_SPEC_VERSION 6 | ||
| #define VK_KHR_XCB_SURFACE_EXTENSION_NAME "VK_KHR_xcb_surface" | ||
|
|
||
| typedef VkFlags VkXcbSurfaceCreateFlagsKHR; | ||
|
|
||
| typedef struct VkXcbSurfaceCreateInfoKHR { | ||
| VkStructureType sType; | ||
| const void* pNext; | ||
| VkXcbSurfaceCreateFlagsKHR flags; | ||
| xcb_connection_t* connection; | ||
| xcb_window_t window; | ||
| } VkXcbSurfaceCreateInfoKHR; | ||
|
|
||
|
|
||
| typedef VkResult (VKAPI_PTR *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); | ||
| typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id); | ||
|
|
||
| #ifndef VK_NO_PROTOTYPES | ||
| VKAPI_ATTR VkResult VKAPI_CALL vkCreateXcbSurfaceKHR( | ||
| VkInstance instance, | ||
| const VkXcbSurfaceCreateInfoKHR* pCreateInfo, | ||
| const VkAllocationCallbacks* pAllocator, | ||
| VkSurfaceKHR* pSurface); | ||
|
|
||
| VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXcbPresentationSupportKHR( | ||
| VkPhysicalDevice physicalDevice, | ||
| uint32_t queueFamilyIndex, | ||
| xcb_connection_t* connection, | ||
| xcb_visualid_t visual_id); | ||
| #endif | ||
|
|
||
| #ifdef __cplusplus | ||
| } | ||
| #endif | ||
|
|
||
| #endif |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,66 @@ | ||
| #ifndef VULKAN_XLIB_H_ | ||
| #define VULKAN_XLIB_H_ 1 | ||
|
|
||
| #ifdef __cplusplus | ||
| extern "C" { | ||
| #endif | ||
|
|
||
| /* | ||
| ** Copyright (c) 2015-2018 The Khronos Group Inc. | ||
| ** | ||
| ** Licensed under the Apache License, Version 2.0 (the "License"); | ||
| ** you may not use this file except in compliance with the License. | ||
| ** You may obtain a copy of the License at | ||
| ** | ||
| ** http://www.apache.org/licenses/LICENSE-2.0 | ||
| ** | ||
| ** Unless required by applicable law or agreed to in writing, software | ||
| ** distributed under the License is distributed on an "AS IS" BASIS, | ||
| ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| ** See the License for the specific language governing permissions and | ||
| ** limitations under the License. | ||
| */ | ||
|
|
||
| /* | ||
| ** This header is generated from the Khronos Vulkan XML API Registry. | ||
| ** | ||
| */ | ||
|
|
||
|
|
||
| #define VK_KHR_xlib_surface 1 | ||
| #define VK_KHR_XLIB_SURFACE_SPEC_VERSION 6 | ||
| #define VK_KHR_XLIB_SURFACE_EXTENSION_NAME "VK_KHR_xlib_surface" | ||
|
|
||
| typedef VkFlags VkXlibSurfaceCreateFlagsKHR; | ||
|
|
||
| typedef struct VkXlibSurfaceCreateInfoKHR { | ||
| VkStructureType sType; | ||
| const void* pNext; | ||
| VkXlibSurfaceCreateFlagsKHR flags; | ||
| Display* dpy; | ||
| Window window; | ||
| } VkXlibSurfaceCreateInfoKHR; | ||
|
|
||
|
|
||
| typedef VkResult (VKAPI_PTR *PFN_vkCreateXlibSurfaceKHR)(VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); | ||
| typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID); | ||
|
|
||
| #ifndef VK_NO_PROTOTYPES | ||
| VKAPI_ATTR VkResult VKAPI_CALL vkCreateXlibSurfaceKHR( | ||
| VkInstance instance, | ||
| const VkXlibSurfaceCreateInfoKHR* pCreateInfo, | ||
| const VkAllocationCallbacks* pAllocator, | ||
| VkSurfaceKHR* pSurface); | ||
|
|
||
| VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXlibPresentationSupportKHR( | ||
| VkPhysicalDevice physicalDevice, | ||
| uint32_t queueFamilyIndex, | ||
| Display* dpy, | ||
| VisualID visualID); | ||
| #endif | ||
|
|
||
| #ifdef __cplusplus | ||
| } | ||
| #endif | ||
|
|
||
| #endif |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,54 @@ | ||
| #ifndef VULKAN_XLIB_XRANDR_H_ | ||
| #define VULKAN_XLIB_XRANDR_H_ 1 | ||
|
|
||
| #ifdef __cplusplus | ||
| extern "C" { | ||
| #endif | ||
|
|
||
| /* | ||
| ** Copyright (c) 2015-2018 The Khronos Group Inc. | ||
| ** | ||
| ** Licensed under the Apache License, Version 2.0 (the "License"); | ||
| ** you may not use this file except in compliance with the License. | ||
| ** You may obtain a copy of the License at | ||
| ** | ||
| ** http://www.apache.org/licenses/LICENSE-2.0 | ||
| ** | ||
| ** Unless required by applicable law or agreed to in writing, software | ||
| ** distributed under the License is distributed on an "AS IS" BASIS, | ||
| ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| ** See the License for the specific language governing permissions and | ||
| ** limitations under the License. | ||
| */ | ||
|
|
||
| /* | ||
| ** This header is generated from the Khronos Vulkan XML API Registry. | ||
| ** | ||
| */ | ||
|
|
||
|
|
||
| #define VK_EXT_acquire_xlib_display 1 | ||
| #define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1 | ||
| #define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display" | ||
|
|
||
| typedef VkResult (VKAPI_PTR *PFN_vkAcquireXlibDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display); | ||
| typedef VkResult (VKAPI_PTR *PFN_vkGetRandROutputDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput, VkDisplayKHR* pDisplay); | ||
|
|
||
| #ifndef VK_NO_PROTOTYPES | ||
| VKAPI_ATTR VkResult VKAPI_CALL vkAcquireXlibDisplayEXT( | ||
| VkPhysicalDevice physicalDevice, | ||
| Display* dpy, | ||
| VkDisplayKHR display); | ||
|
|
||
| VKAPI_ATTR VkResult VKAPI_CALL vkGetRandROutputDisplayEXT( | ||
| VkPhysicalDevice physicalDevice, | ||
| Display* dpy, | ||
| RROutput rrOutput, | ||
| VkDisplayKHR* pDisplay); | ||
| #endif | ||
|
|
||
| #ifdef __cplusplus | ||
| } | ||
| #endif | ||
|
|
||
| #endif |