19#include <vulkan/vulkan.h> 
   57#if defined(VK_USE_PLATFORM_WIN32_KHR) 
   58    void initSurface(
void* platformHandle, 
void* platformWindow);
 
   59#elif defined(VK_USE_PLATFORM_ANDROID_KHR) 
   60    void initSurface(ANativeWindow* window);
 
   61#elif defined(VK_USE_PLATFORM_XCB_KHR) 
   62    void initSurface(xcb_window_t xcbWindow);
 
   65    void create(uint32_t* width, uint32_t* height, 
bool vsync = 
false);
 
   66    VkResult 
acquireNextImage(VkSemaphore presentCompleteSemaphore, uint32_t* imageIndex);
 
   67    VkResult 
queuePresent(VkQueue queue, uint32_t imageIndex, VkSemaphore waitSemaphore = VK_NULL_HANDLE);
 
 
struct _SwapChainBuffers SwapChainBuffer
 
PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR fpGetPhysicalDeviceSurfaceCapabilitiesKHR
 
PFN_vkGetSwapchainImagesKHR fpGetSwapchainImagesKHR
 
std::vector< SwapChainBuffer > buffers
 
PFN_vkAcquireNextImageKHR fpAcquireNextImageKHR
 
std::vector< VkImage > images
 
PFN_vkQueuePresentKHR fpQueuePresentKHR
 
void create(uint32_t *width, uint32_t *height, bool vsync=false)
 
VkPhysicalDevice physicalDevice
 
VkResult queuePresent(VkQueue queue, uint32_t imageIndex, VkSemaphore waitSemaphore=VK_NULL_HANDLE)
 
void connect(VkInstance instance, VkPhysicalDevice physicalDevice, VkDevice device)
 
PFN_vkGetPhysicalDeviceSurfaceSupportKHR fpGetPhysicalDeviceSurfaceSupportKHR
 
PFN_vkCreateSwapchainKHR fpCreateSwapchainKHR
 
VkResult acquireNextImage(VkSemaphore presentCompleteSemaphore, uint32_t *imageIndex)
 
PFN_vkDestroySwapchainKHR fpDestroySwapchainKHR
 
VkColorSpaceKHR colorSpace
 
PFN_vkGetPhysicalDeviceSurfacePresentModesKHR fpGetPhysicalDeviceSurfacePresentModesKHR
 
PFN_vkGetPhysicalDeviceSurfaceFormatsKHR fpGetPhysicalDeviceSurfaceFormatsKHR