public Result CreateDisplayPlaneSurfaceKHR(MgDisplaySurfaceCreateInfoKHR createInfo, IMgAllocationCallbacks allocator, out IMgSurfaceKHR pSurface) { if (createInfo == null) { throw new ArgumentNullException(nameof(createInfo)); } Debug.Assert(!mIsDisposed); var bDisplayMode = (VkDisplayModeKHR)createInfo.DisplayMode; Debug.Assert(bDisplayMode != null); var pCreateInfo = new VkDisplaySurfaceCreateInfoKHR { sType = VkStructureType.StructureTypeDisplaySurfaceCreateInfoKhr, pNext = IntPtr.Zero, flags = createInfo.Flags, displayMode = bDisplayMode.Handle, planeIndex = createInfo.PlaneIndex, planeStackIndex = createInfo.PlaneStackIndex, transform = (VkSurfaceTransformFlagsKhr)createInfo.Transform, globalAlpha = createInfo.GlobalAlpha, alphaMode = (VkDisplayPlaneAlphaFlagsKhr)createInfo.AlphaMode, imageExtent = createInfo.ImageExtent, }; // MIGHT NEED GetInstanceProcAddr INSTEAD var allocatorHandle = GetAllocatorHandle(allocator); UInt64 handle = 0UL; var result = Interops.vkCreateDisplayPlaneSurfaceKHR(Handle, ref pCreateInfo, allocatorHandle, ref handle); pSurface = new VkSurfaceKHR(handle); return(result); }
internal extern static Result vkCreateDisplayPlaneSurfaceKHR(IntPtr instance, ref VkDisplaySurfaceCreateInfoKHR pCreateInfo, IntPtr pAllocator, ref UInt64 pSurface);