| /* |
| * Copyright 2015 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. |
| */ |
| |
| // TODO(kaiyili): once we bump the VK_ANDROID_native_buffer to version 8, we can keep this file |
| // blank. |
| |
| #ifndef __VK_ANDROID_NATIVE_BUFFER_H__ |
| #define __VK_ANDROID_NATIVE_BUFFER_H__ |
| |
| #include <vulkan/vulkan.h> |
| |
| #include "host/vulkan/vk_android_native_buffer.h" |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #ifndef VK_ANDROID_NATIVE_BUFFER_ENUM |
| #define VK_ANDROID_NATIVE_BUFFER_ENUM(type, id) \ |
| ((type)(1000000000 + (1000 * (VK_ANDROID_NATIVE_BUFFER_NUMBER - 1)) + (id))) |
| #endif |
| #define VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID VK_ANDROID_NATIVE_BUFFER_ENUM(VkStructureType, 1) |
| #define VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID VK_ANDROID_NATIVE_BUFFER_ENUM(VkStructureType, 2) |
| |
| typedef enum VkSwapchainImageUsageFlagBitsANDROID { |
| VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_ANDROID = 0x00000001, |
| VK_SWAPCHAIN_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF |
| } VkSwapchainImageUsageFlagBitsANDROID; |
| typedef VkFlags VkSwapchainImageUsageFlagsANDROID; |
| |
| typedef struct { |
| VkStructureType sType; // must be VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID |
| const void* pNext; |
| |
| VkSwapchainImageUsageFlagsANDROID usage; |
| } VkSwapchainImageCreateInfoANDROID; |
| |
| typedef struct { |
| VkStructureType sType; // must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID |
| const void* pNext; |
| |
| VkBool32 sharedImage; |
| } VkPhysicalDevicePresentationPropertiesANDROID; |
| |
| // -- ADDED in SPEC_VERSION 6 -- |
| typedef VkResult(VKAPI_PTR* PFN_vkGetSwapchainGrallocUsage2ANDROID)( |
| VkDevice device, VkFormat format, VkImageUsageFlags imageUsage, |
| VkSwapchainImageUsageFlagsANDROID swapchainImageUsage, uint64_t* grallocConsumerUsage, |
| uint64_t* grallocProducerUsage); |
| |
| #ifndef VK_NO_PROTOTYPES |
| |
| // -- ADDED in SPEC_VERSION 6 -- |
| VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainGrallocUsage2ANDROID( |
| VkDevice device, |
| VkFormat format, |
| VkImageUsageFlags imageUsage, |
| VkSwapchainImageUsageFlagsANDROID swapchainImageUsage, |
| uint64_t* grallocConsumerUsage, |
| uint64_t* grallocProducerUsage |
| ); |
| |
| #endif |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif // __VK_ANDROID_NATIVE_BUFFER_H__ |