/// <summary> /// Query surface capabilities. /// </summary> public SurfaceCapabilities2 GetSurfaceCapabilities2(Surface surface) { unsafe { try { var commandDelegate = this.commandCache.GetCommandDelegate <Interop.vkGetPhysicalDeviceSurfaceCapabilities2EXT>("vkGetPhysicalDeviceSurfaceCapabilities2EXT", "instance"); SurfaceCapabilities2 result = default(SurfaceCapabilities2); Result commandResult; Interop.Surface marshalledSurface = default(Interop.Surface); surface?.MarshalTo(&marshalledSurface); Interop.SurfaceCapabilities2 marshalledSurfaceCapabilities; commandResult = commandDelegate(this.handle, marshalledSurface, &marshalledSurfaceCapabilities); if (SharpVkException.IsError(commandResult)) { throw SharpVkException.Create(commandResult); } result = SurfaceCapabilities2.MarshalFrom(&marshalledSurfaceCapabilities); return(result); } finally { Interop.HeapUtil.FreeLog(); } } }
internal static unsafe SurfaceCapabilities2 MarshalFrom(Interop.SurfaceCapabilities2 *value) { SurfaceCapabilities2 result = new SurfaceCapabilities2(); result.MinImageCount = value->MinImageCount; result.MaxImageCount = value->MaxImageCount; result.CurrentExtent = value->CurrentExtent; result.MinImageExtent = value->MinImageExtent; result.MaxImageExtent = value->MaxImageExtent; result.MaxImageArrayLayers = value->MaxImageArrayLayers; result.SupportedTransforms = value->SupportedTransforms; result.CurrentTransform = value->CurrentTransform; result.SupportedCompositeAlpha = value->SupportedCompositeAlpha; result.SupportedUsageFlags = value->SupportedUsageFlags; result.SupportedSurfaceCounters = value->SupportedSurfaceCounters; return(result); }