Merge pull request #1342 from kleinerm/iosurfacewithoutobjc

Expose vkGetIOSurfaceMVK() / vkUseIOSurfaceMVK() also under non-ObjC.
This commit is contained in:
Bill Hollings 2021-05-01 16:13:06 -04:00 committed by GitHub
commit 6614ef2005
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -27,10 +27,10 @@ extern "C" {
#endif // __cplusplus #endif // __cplusplus
#include "mvk_vulkan.h" #include "mvk_vulkan.h"
#include <IOSurface/IOSurfaceRef.h>
#ifdef __OBJC__ #ifdef __OBJC__
#import <Metal/Metal.h> #import <Metal/Metal.h>
#import <IOSurface/IOSurfaceRef.h>
#else #else
typedef unsigned long MTLLanguageVersion; typedef unsigned long MTLLanguageVersion;
#endif #endif
@ -973,14 +973,14 @@ typedef VkResult (VKAPI_PTR *PFN_vkSetMoltenVKConfigurationMVK)(VkInstance ignor
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceMetalFeaturesMVK)(VkPhysicalDevice physicalDevice, MVKPhysicalDeviceMetalFeatures* pMetalFeatures, size_t* pMetalFeaturesSize); typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceMetalFeaturesMVK)(VkPhysicalDevice physicalDevice, MVKPhysicalDeviceMetalFeatures* pMetalFeatures, size_t* pMetalFeaturesSize);
typedef VkResult (VKAPI_PTR *PFN_vkGetPerformanceStatisticsMVK)(VkDevice device, MVKPerformanceStatistics* pPerf, size_t* pPerfSize); typedef VkResult (VKAPI_PTR *PFN_vkGetPerformanceStatisticsMVK)(VkDevice device, MVKPerformanceStatistics* pPerf, size_t* pPerfSize);
typedef void (VKAPI_PTR *PFN_vkGetVersionStringsMVK)(char* pMoltenVersionStringBuffer, uint32_t moltenVersionStringBufferLength, char* pVulkanVersionStringBuffer, uint32_t vulkanVersionStringBufferLength); typedef void (VKAPI_PTR *PFN_vkGetVersionStringsMVK)(char* pMoltenVersionStringBuffer, uint32_t moltenVersionStringBufferLength, char* pVulkanVersionStringBuffer, uint32_t vulkanVersionStringBufferLength);
typedef VkResult (VKAPI_PTR *PFN_vkUseIOSurfaceMVK)(VkImage image, IOSurfaceRef ioSurface);
typedef void (VKAPI_PTR *PFN_vkGetIOSurfaceMVK)(VkImage image, IOSurfaceRef* pIOSurface);
#ifdef __OBJC__ #ifdef __OBJC__
typedef void (VKAPI_PTR *PFN_vkGetMTLDeviceMVK)(VkPhysicalDevice physicalDevice, id<MTLDevice>* pMTLDevice); typedef void (VKAPI_PTR *PFN_vkGetMTLDeviceMVK)(VkPhysicalDevice physicalDevice, id<MTLDevice>* pMTLDevice);
typedef VkResult (VKAPI_PTR *PFN_vkSetMTLTextureMVK)(VkImage image, id<MTLTexture> mtlTexture); typedef VkResult (VKAPI_PTR *PFN_vkSetMTLTextureMVK)(VkImage image, id<MTLTexture> mtlTexture);
typedef void (VKAPI_PTR *PFN_vkGetMTLTextureMVK)(VkImage image, id<MTLTexture>* pMTLTexture); typedef void (VKAPI_PTR *PFN_vkGetMTLTextureMVK)(VkImage image, id<MTLTexture>* pMTLTexture);
typedef void (VKAPI_PTR *PFN_vkGetMTLBufferMVK)(VkBuffer buffer, id<MTLBuffer>* pMTLBuffer); typedef void (VKAPI_PTR *PFN_vkGetMTLBufferMVK)(VkBuffer buffer, id<MTLBuffer>* pMTLBuffer);
typedef VkResult (VKAPI_PTR *PFN_vkUseIOSurfaceMVK)(VkImage image, IOSurfaceRef ioSurface);
typedef void (VKAPI_PTR *PFN_vkGetIOSurfaceMVK)(VkImage image, IOSurfaceRef* pIOSurface);
#endif // __OBJC__ #endif // __OBJC__
@ -1225,6 +1225,8 @@ VKAPI_ATTR void VKAPI_CALL vkGetMTLBufferMVK(
VkBuffer buffer, VkBuffer buffer,
id<MTLBuffer>* pMTLBuffer); id<MTLBuffer>* pMTLBuffer);
#endif // __OBJC__
/** /**
* Indicates that a VkImage should use an IOSurface to underlay the Metal texture. * Indicates that a VkImage should use an IOSurface to underlay the Metal texture.
* *
@ -1274,8 +1276,6 @@ VKAPI_ATTR void VKAPI_CALL vkGetIOSurfaceMVK(
VkImage image, VkImage image,
IOSurfaceRef* pIOSurface); IOSurfaceRef* pIOSurface);
#endif // __OBJC__
#pragma mark - #pragma mark -
#pragma mark Shaders #pragma mark Shaders