Esempio n. 1
0
 internal unsafe void MarshalTo(SharpVk.Interop.Khronos.PresentRegion *pointer)
 {
     pointer->RectangleCount = (uint)(this.Rectangles?.Length ?? 0);
     if (this.Rectangles != null)
     {
         var fieldPointer = (SharpVk.Khronos.RectLayer *)(Interop.HeapUtil.AllocateAndClear <SharpVk.Khronos.RectLayer>(this.Rectangles.Length).ToPointer());
         for (int index = 0; index < (uint)(this.Rectangles.Length); index++)
         {
             fieldPointer[index] = this.Rectangles[index];
         }
         pointer->Rectangles = fieldPointer;
     }
     else
     {
         pointer->Rectangles = null;
     }
 }
Esempio n. 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="pointer">
        /// </param>
        internal static unsafe PresentRegion MarshalFrom(SharpVk.Interop.Khronos.PresentRegion *pointer)
        {
            PresentRegion result = default(PresentRegion);

            if (pointer->Rectangles != null)
            {
                var fieldPointer = new SharpVk.Khronos.RectLayer[(uint)(pointer->RectangleCount)];
                for (int index = 0; index < (uint)(pointer->RectangleCount); index++)
                {
                    fieldPointer[index] = pointer->Rectangles[index];
                }
                result.Rectangles = fieldPointer;
            }
            else
            {
                result.Rectangles = null;
            }
            return(result);
        }