1de82e27e2010b48e72103e98ba3fe6eba5152b54Chia-I Wu/* 2de82e27e2010b48e72103e98ba3fe6eba5152b54Chia-I Wu * Copyright 2015 The Android Open Source Project 3de82e27e2010b48e72103e98ba3fe6eba5152b54Chia-I Wu * 4de82e27e2010b48e72103e98ba3fe6eba5152b54Chia-I Wu * Licensed under the Apache License, Version 2.0 (the "License"); 5de82e27e2010b48e72103e98ba3fe6eba5152b54Chia-I Wu * you may not use this file except in compliance with the License. 6de82e27e2010b48e72103e98ba3fe6eba5152b54Chia-I Wu * You may obtain a copy of the License at 7de82e27e2010b48e72103e98ba3fe6eba5152b54Chia-I Wu * 8de82e27e2010b48e72103e98ba3fe6eba5152b54Chia-I Wu * http://www.apache.org/licenses/LICENSE-2.0 9de82e27e2010b48e72103e98ba3fe6eba5152b54Chia-I Wu * 10de82e27e2010b48e72103e98ba3fe6eba5152b54Chia-I Wu * Unless required by applicable law or agreed to in writing, software 11de82e27e2010b48e72103e98ba3fe6eba5152b54Chia-I Wu * distributed under the License is distributed on an "AS IS" BASIS, 12de82e27e2010b48e72103e98ba3fe6eba5152b54Chia-I Wu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13de82e27e2010b48e72103e98ba3fe6eba5152b54Chia-I Wu * See the License for the specific language governing permissions and 14de82e27e2010b48e72103e98ba3fe6eba5152b54Chia-I Wu * limitations under the License. 15de82e27e2010b48e72103e98ba3fe6eba5152b54Chia-I Wu */ 16de82e27e2010b48e72103e98ba3fe6eba5152b54Chia-I Wu 17de82e27e2010b48e72103e98ba3fe6eba5152b54Chia-I Wu#ifndef LIBVULKAN_SWAPCHAIN_H 18de82e27e2010b48e72103e98ba3fe6eba5152b54Chia-I Wu#define LIBVULKAN_SWAPCHAIN_H 1 19de82e27e2010b48e72103e98ba3fe6eba5152b54Chia-I Wu 20de82e27e2010b48e72103e98ba3fe6eba5152b54Chia-I Wu#include <vulkan/vulkan.h> 21de82e27e2010b48e72103e98ba3fe6eba5152b54Chia-I Wu 22de82e27e2010b48e72103e98ba3fe6eba5152b54Chia-I Wunamespace vulkan { 23622622377a1ac71a81a88e335f170c4a08835f06Chia-I Wunamespace driver { 24de82e27e2010b48e72103e98ba3fe6eba5152b54Chia-I Wu 25de82e27e2010b48e72103e98ba3fe6eba5152b54Chia-I Wu// clang-format off 26622622377a1ac71a81a88e335f170c4a08835f06Chia-I WuVKAPI_ATTR VkResult CreateAndroidSurfaceKHR(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* allocator, VkSurfaceKHR* surface); 27622622377a1ac71a81a88e335f170c4a08835f06Chia-I WuVKAPI_ATTR void DestroySurfaceKHR(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* allocator); 28622622377a1ac71a81a88e335f170c4a08835f06Chia-I WuVKAPI_ATTR VkResult GetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice pdev, uint32_t queue_family, VkSurfaceKHR surface, VkBool32* pSupported); 29622622377a1ac71a81a88e335f170c4a08835f06Chia-I WuVKAPI_ATTR VkResult GetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice pdev, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* capabilities); 30622622377a1ac71a81a88e335f170c4a08835f06Chia-I WuVKAPI_ATTR VkResult GetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice pdev, VkSurfaceKHR surface, uint32_t* count, VkSurfaceFormatKHR* formats); 31622622377a1ac71a81a88e335f170c4a08835f06Chia-I WuVKAPI_ATTR VkResult GetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice pdev, VkSurfaceKHR surface, uint32_t* count, VkPresentModeKHR* modes); 32622622377a1ac71a81a88e335f170c4a08835f06Chia-I WuVKAPI_ATTR VkResult CreateSwapchainKHR(VkDevice device, const VkSwapchainCreateInfoKHR* create_info, const VkAllocationCallbacks* allocator, VkSwapchainKHR* swapchain_handle); 33622622377a1ac71a81a88e335f170c4a08835f06Chia-I WuVKAPI_ATTR void DestroySwapchainKHR(VkDevice device, VkSwapchainKHR swapchain_handle, const VkAllocationCallbacks* allocator); 34622622377a1ac71a81a88e335f170c4a08835f06Chia-I WuVKAPI_ATTR VkResult GetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain_handle, uint32_t* count, VkImage* images); 35622622377a1ac71a81a88e335f170c4a08835f06Chia-I WuVKAPI_ATTR VkResult AcquireNextImageKHR(VkDevice device, VkSwapchainKHR swapchain_handle, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* image_index); 36622622377a1ac71a81a88e335f170c4a08835f06Chia-I WuVKAPI_ATTR VkResult QueuePresentKHR(VkQueue queue, const VkPresentInfoKHR* present_info); 37de82e27e2010b48e72103e98ba3fe6eba5152b54Chia-I Wu// clang-format on 38de82e27e2010b48e72103e98ba3fe6eba5152b54Chia-I Wu 39622622377a1ac71a81a88e335f170c4a08835f06Chia-I Wu} // namespace driver 40de82e27e2010b48e72103e98ba3fe6eba5152b54Chia-I Wu} // namespace vulkan 41de82e27e2010b48e72103e98ba3fe6eba5152b54Chia-I Wu 42de82e27e2010b48e72103e98ba3fe6eba5152b54Chia-I Wu#endif // LIBVULKAN_SWAPCHAIN_H 43