コード例 #1
0
 /// <summary>
 ///
 /// </summary>
 internal unsafe void MarshalTo(SharpVk.Interop.PipelineLayoutCreateInfo *pointer)
 {
     pointer->SType = StructureType.PipelineLayoutCreateInfo;
     pointer->Next  = null;
     if (this.Flags != null)
     {
         pointer->Flags = this.Flags.Value;
     }
     else
     {
         pointer->Flags = default(SharpVk.PipelineLayoutCreateFlags);
     }
     pointer->SetLayoutCount = (uint)(Interop.HeapUtil.GetLength(this.SetLayouts));
     if (this.SetLayouts != null)
     {
         var fieldPointer = (SharpVk.Interop.DescriptorSetLayout *)(Interop.HeapUtil.AllocateAndClear <SharpVk.Interop.DescriptorSetLayout>(this.SetLayouts.Length).ToPointer());
         for (int index = 0; index < (uint)(this.SetLayouts.Length); index++)
         {
             fieldPointer[index] = this.SetLayouts[index]?.handle ?? default(SharpVk.Interop.DescriptorSetLayout);
         }
         pointer->SetLayouts = fieldPointer;
     }
     else
     {
         pointer->SetLayouts = null;
     }
     pointer->PushConstantRangeCount = (uint)(Interop.HeapUtil.GetLength(this.PushConstantRanges));
     if (this.PushConstantRanges != null)
     {
         var fieldPointer = (SharpVk.PushConstantRange *)(Interop.HeapUtil.AllocateAndClear <SharpVk.PushConstantRange>(this.PushConstantRanges.Length).ToPointer());
         for (int index = 0; index < (uint)(this.PushConstantRanges.Length); index++)
         {
             fieldPointer[index] = this.PushConstantRanges[index];
         }
         pointer->PushConstantRanges = fieldPointer;
     }
     else
     {
         pointer->PushConstantRanges = null;
     }
 }
コード例 #2
0
 public static extern SharpVk.Result vkCreatePipelineLayout(SharpVk.Interop.Device device, SharpVk.Interop.PipelineLayoutCreateInfo *createInfo, SharpVk.Interop.AllocationCallbacks *allocator, SharpVk.Interop.PipelineLayout *pipelineLayout);