internal unsafe void MarshalTo(SharpVk.Interop.BufferCreateInfo *pointer) { pointer->SType = StructureType.BufferCreateInfo; pointer->Next = null; if (this.Flags != null) { pointer->Flags = this.Flags.Value; } else { pointer->Flags = default(SharpVk.BufferCreateFlags); } pointer->Size = this.Size; pointer->Usage = this.Usage; pointer->SharingMode = this.SharingMode; pointer->QueueFamilyIndexCount = (uint)(this.QueueFamilyIndices?.Length ?? 0); if (this.QueueFamilyIndices != null) { var fieldPointer = (uint *)(Interop.HeapUtil.AllocateAndClear <uint>(this.QueueFamilyIndices.Length).ToPointer()); for (int index = 0; index < (uint)(this.QueueFamilyIndices.Length); index++) { fieldPointer[index] = this.QueueFamilyIndices[index]; } pointer->QueueFamilyIndices = fieldPointer; } else { pointer->QueueFamilyIndices = null; } }
public static extern SharpVk.Result vkCreateBuffer(SharpVk.Interop.Device device, SharpVk.Interop.BufferCreateInfo *createInfo, SharpVk.Interop.AllocationCallbacks *allocator, SharpVk.Interop.Buffer *buffer);