/// <summary> /// /// </summary> internal unsafe void MarshalTo(SharpVk.Interop.ImageCreateInfo *pointer) { pointer->SType = StructureType.ImageCreateInfo; pointer->Next = null; if (this.Flags != null) { pointer->Flags = this.Flags.Value; } else { pointer->Flags = default(SharpVk.ImageCreateFlags); } pointer->ImageType = this.ImageType; pointer->Format = this.Format; pointer->Extent = this.Extent; pointer->MipLevels = this.MipLevels; pointer->ArrayLayers = this.ArrayLayers; pointer->Samples = this.Samples; pointer->Tiling = this.Tiling; pointer->Usage = this.Usage; pointer->SharingMode = this.SharingMode; pointer->QueueFamilyIndexCount = (uint)(Interop.HeapUtil.GetLength(this.QueueFamilyIndices)); 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; } pointer->InitialLayout = this.InitialLayout; }
public static extern SharpVk.Result vkCreateImage(SharpVk.Interop.Device device, SharpVk.Interop.ImageCreateInfo *createInfo, SharpVk.Interop.AllocationCallbacks *allocator, SharpVk.Interop.Image *image);