text: /*
   * Copyright 2016 The Android Open Source Project
   *
   * 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 file is generated.
  #ifndef VULKAN_WRAPPER_H
  #define VULKAN_WRAPPER_H
  
  #ifdef __cplusplus
  extern "C" {
  #endif
  
  #define VK_NO_PROTOTYPES 1
  #include <vulkan/vulkan.h>
  
  /* Initialize the Vulkan function pointer variables declared in this header.
   * Returns 0 if vulkan is not available, non-zero if it is available.
   */
  int InitVulkan(void);
  
  // VK_core
  extern PFN_vkCreateInstance vkCreateInstance;
  extern PFN_vkDestroyInstance vkDestroyInstance;
  extern PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices;
  extern PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures;
  extern PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties;
  extern PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties;
  extern PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties;
  extern PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties;
  extern PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties;
  extern PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr;
  extern PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr;
  extern PFN_vkCreateDevice vkCreateDevice;
  extern PFN_vkDestroyDevice vkDestroyDevice;
  extern PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties;
  extern PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties;
  extern PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties;
  extern PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties;
  extern PFN_vkGetDeviceQueue vkGetDeviceQueue;
  extern PFN_vkQueueSubmit vkQueueSubmit;
  extern PFN_vkQueueWaitIdle vkQueueWaitIdle;
  extern PFN_vkDeviceWaitIdle vkDeviceWaitIdle;
  extern PFN_vkAllocateMemory vkAllocateMemory;
  extern PFN_vkFreeMemory vkFreeMemory;
  extern PFN_vkMapMemory vkMapMemory;
  extern PFN_vkUnmapMemory vkUnmapMemory;
  extern PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges;
  extern PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges;
  extern PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment;
  extern PFN_vkBindBufferMemory vkBindBufferMemory;
  extern PFN_vkBindImageMemory vkBindImageMemory;
  extern PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements;
  extern PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements;
  extern PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements;
  extern PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties;
  extern PFN_vkQueueBindSparse vkQueueBindSparse;
  extern PFN_vkCreateFence vkCreateFence;
  extern PFN_vkDestroyFence vkDestroyFence;
  extern PFN_vkResetFences vkResetFences;
  extern PFN_vkGetFenceStatus vkGetFenceStatus;
  extern PFN_vkWaitForFences vkWaitForFences;
  extern PFN_vkCreateSemaphore vkCreateSemaphore;
  extern PFN_vkDestroySemaphore vkDestroySemaphore;
  extern PFN_vkCreateEvent vkCreateEvent;
  extern PFN_vkDestroyEvent vkDestroyEvent;
  extern PFN_vkGetEventStatus vkGetEventStatus;
  extern PFN_vkSetEvent vkSetEvent;
  extern PFN_vkResetEvent vkResetEvent;
  extern PFN_vkCreateQueryPool vkCreateQueryPool;
  extern PFN_vkDestroyQueryPool vkDestroyQueryPool;
  extern PFN_vkGetQueryPoolResults vkGetQueryPoolResults;
  extern PFN_vkCreateBuffer vkCreateBuffer;
  extern PFN_vkDestroyBuffer vkDestroyBuffer;
  extern PFN_vkCreateBufferView vkCreateBufferView;
  extern PFN_vkDestroyBufferView vkDestroyBufferView;
  extern PFN_vkCreateImage vkCreateImage;
  extern PFN_vkDestroyImage vkDestroyImage;
  extern PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout;
  extern PFN_vkCreateImageView vkCreateImageView;
  extern PFN_vkDestroyImageView vkDestroyImageView;
  extern PFN_vkCreateShaderModule vkCreateShaderModule;
  extern PFN_vkDestroyShaderModule vkDestroyShaderModule;
  extern PFN_vkCreatePipelineCache vkCreatePipelineCache;
  extern PFN_vkDestroyPipelineCache vkDestroyPipelineCache;
  extern PFN_vkGetPipelineCacheData vkGetPipelineCacheData;
  extern PFN_vkMergePipelineCaches vkMergePipelineCaches;
  extern PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines;
  extern PFN_vkCreateComputePipelines vkCreateComputePipelines;
  extern PFN_vkDestroyPipeline vkDestroyPipeline;
  extern PFN_vkCreatePipelineLayout vkCreatePipelineLayout;
  extern PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout;
  extern PFN_vkCreateSampler vkCreateSampler;
  extern PFN_vkDestroySampler vkDestroySampler;
  extern PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout;
  extern PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout;
  extern PFN_vkCreateDescriptorPool vkCreateDescriptorPool;
  extern PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool;
  extern PFN_vkResetDescriptorPool vkResetDescriptorPool;
  extern PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets;
  extern PFN_vkFreeDescriptorSets vkFreeDescriptorSets;
  extern PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets;
  extern PFN_vkCreateFramebuffer vkCreateFramebuffer;
  extern PFN_vkDestroyFramebuffer vkDestroyFramebuffer;
  extern PFN_vkCreateRenderPass vkCreateRenderPass;
  extern PFN_vkDestroyRenderPass vkDestroyRenderPass;
  extern PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity;
  extern PFN_vkCreateCommandPool vkCreateCommandPool;
  extern PFN_vkDestroyCommandPool vkDestroyCommandPool;
  extern PFN_vkResetCommandPool vkResetCommandPool;
  extern PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers;
  extern PFN_vkFreeCommandBuffers vkFreeCommandBuffers;
  extern PFN_vkBeginCommandBuffer vkBeginCommandBuffer;
  extern PFN_vkEndCommandBuffer vkEndCommandBuffer;
  extern PFN_vkResetCommandBuffer vkResetCommandBuffer;
  extern PFN_vkCmdBindPipeline vkCmdBindPipeline;
  extern PFN_vkCmdSetViewport vkCmdSetViewport;
  extern PFN_vkCmdSetScissor vkCmdSetScissor;
  extern PFN_vkCmdSetLineWidth vkCmdSetLineWidth;
  extern PFN_vkCmdSetDepthBias vkCmdSetDepthBias;
  extern PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants;
  extern PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds;
  extern PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask;
  extern PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask;
  extern PFN_vkCmdSetStencilReference vkCmdSetStencilReference;
  extern PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets;
  extern PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer;
  extern PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers;
  extern PFN_vkCmdDraw vkCmdDraw;
  extern PFN_vkCmdDrawIndexed vkCmdDrawIndexed;
  extern PFN_vkCmdDrawIndirect vkCmdDrawIndirect;
  extern PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect;
  extern PFN_vkCmdDispatch vkCmdDispatch;
  extern PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect;
  extern PFN_vkCmdCopyBuffer vkCmdCopyBuffer;
  extern PFN_vkCmdCopyImage vkCmdCopyImage;
  extern PFN_vkCmdBlitImage vkCmdBlitImage;
  extern PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage;
  extern PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer;
  extern PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer;
  extern PFN_vkCmdFillBuffer vkCmdFillBuffer;
  extern PFN_vkCmdClearColorImage vkCmdClearColorImage;
  extern PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage;
  extern PFN_vkCmdClearAttachments vkCmdClearAttachments;
  extern PFN_vkCmdResolveImage vkCmdResolveImage;
  extern PFN_vkCmdSetEvent vkCmdSetEvent;
  extern PFN_vkCmdResetEvent vkCmdResetEvent;
  extern PFN_vkCmdWaitEvents vkCmdWaitEvents;
  extern PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier;
  extern PFN_vkCmdBeginQuery vkCmdBeginQuery;
  extern PFN_vkCmdEndQuery vkCmdEndQuery;
  extern PFN_vkCmdResetQueryPool vkCmdResetQueryPool;
  extern PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp;
  extern PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults;
  extern PFN_vkCmdPushConstants vkCmdPushConstants;
  extern PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass;
  extern PFN_vkCmdNextSubpass vkCmdNextSubpass;
  extern PFN_vkCmdEndRenderPass vkCmdEndRenderPass;
  extern PFN_vkCmdExecuteCommands vkCmdExecuteCommands;
  
  // VK_KHR_surface
  extern PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR;
  extern PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR;
  extern PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR;
  extern PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR;
  extern PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR;
  
  // VK_KHR_swapchain
  extern PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR;
  extern PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR;
  extern PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR;
  extern PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR;
  extern PFN_vkQueuePresentKHR vkQueuePresentKHR;
  
  // VK_KHR_display
  extern PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR;
  extern PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR;
  extern PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR;
  extern PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR;
  extern PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR;
  extern PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR;
  extern PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR;
  
  // VK_KHR_display_swapchain
  extern PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR;
  
  #ifdef VK_USE_PLATFORM_XLIB_KHR
  // VK_KHR_xlib_surface
  extern PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR;
  extern PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR;
  #endif
  
  #ifdef VK_USE_PLATFORM_XCB_KHR
  // VK_KHR_xcb_surface
  extern PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR;
  extern PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR;
  #endif
  
  #ifdef VK_USE_PLATFORM_WAYLAND_KHR
  // VK_KHR_wayland_surface
  extern PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR;
  extern PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR;
  #endif
  
  #ifdef VK_USE_PLATFORM_MIR_KHR
  // VK_KHR_mir_surface
  extern PFN_vkCreateMirSurfaceKHR vkCreateMirSurfaceKHR;
  extern PFN_vkGetPhysicalDeviceMirPresentationSupportKHR vkGetPhysicalDeviceMirPresentationSupportKHR;
  #endif
  
  #ifdef VK_USE_PLATFORM_ANDROID_KHR
  // VK_KHR_android_surface
  extern PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR;
  #endif
  
  #ifdef VK_USE_PLATFORM_WIN32_KHR
  // VK_KHR_win32_surface
  extern PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR;
  extern PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR;
  #endif
  
  // VK_KHR_sampler_mirror_clamp_to_edge
  
  
  #ifdef __cplusplus
  }
  #endif
  
  #endif // VULKAN_WRAPPER_H
  