示例#1
0
 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;
     }
 }
示例#2
0
 public static extern SharpVk.Result vkCreateBuffer(SharpVk.Interop.Device device, SharpVk.Interop.BufferCreateInfo *createInfo, SharpVk.Interop.AllocationCallbacks *allocator, SharpVk.Interop.Buffer *buffer);