Пример #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="pointer">
        /// </param>
        internal static unsafe WriteDescriptorSetAccelerationStructure MarshalFrom(SharpVk.Interop.NVidia.WriteDescriptorSetAccelerationStructure *pointer)
        {
            WriteDescriptorSetAccelerationStructure result = default(WriteDescriptorSetAccelerationStructure);

            if (pointer->AccelerationStructures != null)
            {
                var fieldPointer = new SharpVk.NVidia.AccelerationStructure[(uint)(pointer->AccelerationStructureCount)];
                for (int index = 0; index < (uint)(pointer->AccelerationStructureCount); index++)
                {
                    fieldPointer[index] = new SharpVk.NVidia.AccelerationStructure(default(SharpVk.Device), pointer->AccelerationStructures[index]);
                }
                result.AccelerationStructures = fieldPointer;
            }
            else
            {
                result.AccelerationStructures = null;
            }
            return(result);
        }
Пример #2
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="pointer">
 /// </param>
 internal unsafe void MarshalTo(SharpVk.Interop.NVidia.WriteDescriptorSetAccelerationStructure *pointer)
 {
     pointer->SType = StructureType.WriteDescriptorSetAccelerationStructure;
     pointer->Next  = null;
     pointer->AccelerationStructureCount = (uint)(Interop.HeapUtil.GetLength(this.AccelerationStructures));
     if (this.AccelerationStructures != null)
     {
         var fieldPointer = (SharpVk.Interop.NVidia.AccelerationStructure *)(Interop.HeapUtil.AllocateAndClear <SharpVk.Interop.NVidia.AccelerationStructure>(this.AccelerationStructures.Length).ToPointer());
         for (int index = 0; index < (uint)(this.AccelerationStructures.Length); index++)
         {
             fieldPointer[index] = this.AccelerationStructures[index]?.handle ?? default(SharpVk.Interop.NVidia.AccelerationStructure);
         }
         pointer->AccelerationStructures = fieldPointer;
     }
     else
     {
         pointer->AccelerationStructures = null;
     }
 }