internal unsafe void MarshalTo(Interop.PipelineLayoutCreateInfo *pointer)
        {
            pointer->SType = StructureType.PipelineLayoutCreateInfo;
            pointer->Next  = null;

            //SetLayouts
            if (this.SetLayouts != null)
            {
                var fieldPointer = (Interop.DescriptorSetLayout *)Interop.HeapUtil.AllocateAndClear <Interop.DescriptorSetLayout>(this.SetLayouts.Length);
                for (int index = 0; index < this.SetLayouts.Length; index++)
                {
                    this.SetLayouts[index].MarshalTo(&fieldPointer[index]);
                }
                pointer->SetLayouts = fieldPointer;
            }
            else
            {
                pointer->SetLayouts = null;
            }

            //PushConstantRanges
            if (this.PushConstantRanges != null)
            {
                pointer->PushConstantRanges = (PushConstantRange *)Interop.HeapUtil.Allocate <PushConstantRange>(this.PushConstantRanges.Length).ToPointer();
                for (int index = 0; index < this.PushConstantRanges.Length; index++)
                {
                    pointer->PushConstantRanges[index] = this.PushConstantRanges[index];
                }
            }
            else
            {
                pointer->PushConstantRanges = null;
            }
            pointer->SetLayoutCount         = (uint)(this.SetLayouts?.Length ?? 0);
            pointer->PushConstantRangeCount = (uint)(this.PushConstantRanges?.Length ?? 0);
            pointer->Flags = this.Flags;
        }
Beispiel #2
0
 internal PipelineLayoutCreateInfo(Interop.PipelineLayoutCreateInfo* ptr)
 {
     m = ptr;
     Initialize ();
 }
Beispiel #3
0
 public PipelineLayoutCreateInfo()
 {
     m = (Interop.PipelineLayoutCreateInfo*) Interop.Structure.Allocate (typeof (Interop.PipelineLayoutCreateInfo));
     Initialize ();
 }