Ejemplo n.º 1
0
 /// <summary>
 ///
 /// </summary>
 public static unsafe SharpVk.NVidia.ExternalImageFormatProperties GetExternalImageFormatProperties(this SharpVk.PhysicalDevice extendedHandle, SharpVk.Format format, SharpVk.ImageType type, SharpVk.ImageTiling tiling, SharpVk.ImageUsageFlags usage, SharpVk.ImageCreateFlags?flags = default(SharpVk.ImageCreateFlags?), SharpVk.NVidia.ExternalMemoryHandleTypeFlags?externalHandleType = default(SharpVk.NVidia.ExternalMemoryHandleTypeFlags?))
 {
     try
     {
         SharpVk.NVidia.ExternalImageFormatProperties result = default(SharpVk.NVidia.ExternalImageFormatProperties);
         CommandCache             commandCache    = default(CommandCache);
         SharpVk.ImageCreateFlags marshalledFlags = default(SharpVk.ImageCreateFlags);
         SharpVk.NVidia.ExternalMemoryHandleTypeFlags marshalledExternalHandleType            = default(SharpVk.NVidia.ExternalMemoryHandleTypeFlags);
         SharpVk.NVidia.ExternalImageFormatProperties marshalledExternalImageFormatProperties = default(SharpVk.NVidia.ExternalImageFormatProperties);
         commandCache = extendedHandle.commandCache;
         if (flags != null)
         {
             marshalledFlags = flags.Value;
         }
         else
         {
             marshalledFlags = default(SharpVk.ImageCreateFlags);
         }
         if (externalHandleType != null)
         {
             marshalledExternalHandleType = externalHandleType.Value;
         }
         else
         {
             marshalledExternalHandleType = default(SharpVk.NVidia.ExternalMemoryHandleTypeFlags);
         }
         SharpVk.Interop.NVidia.VkPhysicalDeviceGetExternalImageFormatPropertiesDelegate commandDelegate = commandCache.GetCommandDelegate <SharpVk.Interop.NVidia.VkPhysicalDeviceGetExternalImageFormatPropertiesDelegate>("vkGetPhysicalDeviceExternalImageFormatPropertiesNV", "instance");
         Result methodResult = commandDelegate(extendedHandle.handle, format, type, tiling, usage, marshalledFlags, marshalledExternalHandleType, &marshalledExternalImageFormatProperties);
         if (SharpVkException.IsError(methodResult))
         {
             throw SharpVkException.Create(methodResult);
         }
         result = marshalledExternalImageFormatProperties;
         return(result);
     }
     finally
     {
         Interop.HeapUtil.FreeAll();
     }
 }
 /// <summary>
 /// Retrieve Win32 handle to a device memory object.
 /// </summary>
 /// <param name="extendedHandle">
 /// The DeviceMemory handle to extend.
 /// </param>
 public static unsafe IntPtr GetWin32Handle(this SharpVk.DeviceMemory extendedHandle, SharpVk.NVidia.ExternalMemoryHandleTypeFlags handleType)
 {
     try
     {
         IntPtr       result           = default(IntPtr);
         CommandCache commandCache     = default(CommandCache);
         IntPtr       marshalledHandle = default(IntPtr);
         commandCache = extendedHandle.commandCache;
         SharpVk.Interop.NVidia.VkDeviceMemoryGetWin32HandleDelegate commandDelegate = commandCache.GetCommandDelegate <SharpVk.Interop.NVidia.VkDeviceMemoryGetWin32HandleDelegate>("vkGetMemoryWin32HandleNV", "instance");
         Result methodResult = commandDelegate(extendedHandle.parent.handle, extendedHandle.handle, handleType, &marshalledHandle);
         if (SharpVkException.IsError(methodResult))
         {
             throw SharpVkException.Create(methodResult);
         }
         result = marshalledHandle;
         return(result);
     }
     finally
     {
         Interop.HeapUtil.FreeAll();
     }
 }
 /// <summary>
 ///
 /// </summary>
 public ExternalImageFormatProperties(SharpVk.ImageFormatProperties imageFormatProperties, SharpVk.NVidia.ExternalMemoryFeatureFlags externalMemoryFeatures, SharpVk.NVidia.ExternalMemoryHandleTypeFlags exportFromImportedHandleTypes, SharpVk.NVidia.ExternalMemoryHandleTypeFlags compatibleHandleTypes)
 {
     this.ImageFormatProperties         = imageFormatProperties;
     this.ExternalMemoryFeatures        = externalMemoryFeatures;
     this.ExportFromImportedHandleTypes = exportFromImportedHandleTypes;
     this.CompatibleHandleTypes         = compatibleHandleTypes;
 }