//go:build darwin
// Code generated by go-vk from vk-1.3.270.xml at 2023-11-22 10:57:11.284361 -0500 EST m=+3.809810145. DO NOT EDIT.

package vk

import "unsafe"

// CreateMacOSSurfaceMVK: See https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreateMacOSSurfaceMVK.html
func CreateMacOSSurfaceMVK(instance Instance, createInfo *MacOSSurfaceCreateInfoMVK, allocator *AllocationCallbacks) (surface SurfaceKHR, r error) {
	// Parameter is a singular input, requires translation - createInfo
	var pCreateInfo *_vkMacOSSurfaceCreateInfoMVK
	if createInfo != nil {
		pCreateInfo = createInfo.Vulkanize()
	}

	// Parameter is a singular input, pass direct - allocator
	var pAllocator unsafe.Pointer
	if allocator != nil {
		pAllocator = unsafe.Pointer(allocator)
	}

	// surface is a binding-allocated single return value and will be populated by Vulkan
	ptr_pSurface := &surface

	r = Result(execTrampoline(vkCreateMacOSSurfaceMVK, uintptr(instance), uintptr(unsafe.Pointer(pCreateInfo)), uintptr(unsafe.Pointer(pAllocator)), uintptr(unsafe.Pointer(ptr_pSurface))))

	if r == Result(0) {
		r = SUCCESS
	}
	return
}

var vkCreateMacOSSurfaceMVK = &vkCommand{"vkCreateMacOSSurfaceMVK", 4, true, nil}
