コード例 #1
0
        /// <summary>
        ///
        /// </summary>
        internal static unsafe DebugUtilsMessengerCallbackData MarshalFrom(SharpVk.Interop.Multivendor.DebugUtilsMessengerCallbackData *pointer)
        {
            DebugUtilsMessengerCallbackData result = default(DebugUtilsMessengerCallbackData);

            result.Flags           = pointer->Flags;
            result.MessageIdName   = Interop.HeapUtil.MarshalStringFrom(pointer->MessageIdName);
            result.MessageIdNumber = pointer->MessageIdNumber;
            result.Message         = Interop.HeapUtil.MarshalStringFrom(pointer->Message);

            if (pointer->QueueLabels == null)
            {
                result.QueueLabels = null;
            }
            else
            {
                result.QueueLabels = new DebugUtilsLabel[pointer->QueueLabelCount];
                for (int index = 0; index < (uint)(result.QueueLabels.Length); index++)
                {
                    result.QueueLabels[index] = SharpVk.Multivendor.DebugUtilsLabel.MarshalFrom(&pointer->QueueLabels[index]);
                }
            }

            if (pointer->CommandBufLabels == null)
            {
                result.CommandBufLabels = null;
            }
            else
            {
                result.CommandBufLabels = new DebugUtilsLabel[pointer->CommandBufLabelCount];
                for (int index = 0; index < (uint)(result.CommandBufLabels.Length); index++)
                {
                    result.CommandBufLabels[index] = SharpVk.Multivendor.DebugUtilsLabel.MarshalFrom(&pointer->CommandBufLabels[index]);
                }
            }

            if (pointer->Objects == null)
            {
                result.Objects = null;
            }
            else
            {
                result.Objects = new DebugUtilsObjectNameInfo[pointer->ObjectCount];
                for (int index = 0; index < (uint)(result.Objects.Length); index++)
                {
                    result.Objects[index] = SharpVk.Multivendor.DebugUtilsObjectNameInfo.MarshalFrom(&pointer->Objects[index]);
                }
            }

            return(result);
        }
コード例 #2
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="extendedHandle">
 /// The Instance handle to extend.
 /// </param>
 public static unsafe void SubmitDebugUtilsMessage(this SharpVk.Instance extendedHandle, SharpVk.Multivendor.DebugUtilsMessageSeverityFlags messageSeverity, SharpVk.Multivendor.DebugUtilsMessageTypeFlags messageTypes, SharpVk.Multivendor.DebugUtilsMessengerCallbackData callbackData)
 {
     try
     {
         CommandCache commandCache = default(CommandCache);
         SharpVk.Interop.Multivendor.DebugUtilsMessengerCallbackData *marshalledCallbackData = default(SharpVk.Interop.Multivendor.DebugUtilsMessengerCallbackData *);
         commandCache           = extendedHandle.commandCache;
         marshalledCallbackData = (SharpVk.Interop.Multivendor.DebugUtilsMessengerCallbackData *)(Interop.HeapUtil.Allocate <SharpVk.Interop.Multivendor.DebugUtilsMessengerCallbackData>());
         callbackData.MarshalTo(marshalledCallbackData);
         SharpVk.Interop.Multivendor.VkInstanceSubmitDebugUtilsMessageDelegate commandDelegate = commandCache.Cache.vkSubmitDebugUtilsMessageEXT;
         commandDelegate(extendedHandle.handle, messageSeverity, messageTypes, marshalledCallbackData);
     }
     finally
     {
         Interop.HeapUtil.FreeAll();
     }
 }
コード例 #3
0
 /// <summary>
 ///
 /// </summary>
 internal unsafe void MarshalTo(SharpVk.Interop.Multivendor.DebugUtilsMessengerCallbackData *pointer)
 {
     pointer->SType = StructureType.DebugUtilsMessengerCallbackData;
     pointer->Next  = null;
     if (this.Flags != null)
     {
         pointer->Flags = this.Flags.Value;
     }
     else
     {
         pointer->Flags = default(SharpVk.Multivendor.DebugUtilsMessengerCallbackDataFlags);
     }
     pointer->MessageIdName = Interop.HeapUtil.MarshalTo(this.MessageIdName);
     if (this.MessageIdNumber != null)
     {
         pointer->MessageIdNumber = this.MessageIdNumber.Value;
     }
     else
     {
         pointer->MessageIdNumber = default(int);
     }
     pointer->Message         = Interop.HeapUtil.MarshalTo(this.Message);
     pointer->QueueLabelCount = (uint)(Interop.HeapUtil.GetLength(this.QueueLabels));
     if (this.QueueLabels != null)
     {
         var fieldPointer = (SharpVk.Interop.Multivendor.DebugUtilsLabel *)(Interop.HeapUtil.AllocateAndClear <SharpVk.Interop.Multivendor.DebugUtilsLabel>(this.QueueLabels.Length).ToPointer());
         for (int index = 0; index < (uint)(this.QueueLabels.Length); index++)
         {
             this.QueueLabels[index].MarshalTo(&fieldPointer[index]);
         }
         pointer->QueueLabels = fieldPointer;
     }
     else
     {
         pointer->QueueLabels = null;
     }
     pointer->CommandBufLabelCount = (uint)(Interop.HeapUtil.GetLength(this.CommandBufLabels));
     if (this.CommandBufLabels != null)
     {
         var fieldPointer = (SharpVk.Interop.Multivendor.DebugUtilsLabel *)(Interop.HeapUtil.AllocateAndClear <SharpVk.Interop.Multivendor.DebugUtilsLabel>(this.CommandBufLabels.Length).ToPointer());
         for (int index = 0; index < (uint)(this.CommandBufLabels.Length); index++)
         {
             this.CommandBufLabels[index].MarshalTo(&fieldPointer[index]);
         }
         pointer->CommandBufLabels = fieldPointer;
     }
     else
     {
         pointer->CommandBufLabels = null;
     }
     pointer->ObjectCount = (uint)(Interop.HeapUtil.GetLength(this.Objects));
     if (this.Objects != null)
     {
         var fieldPointer = (SharpVk.Interop.Multivendor.DebugUtilsObjectNameInfo *)(Interop.HeapUtil.AllocateAndClear <SharpVk.Interop.Multivendor.DebugUtilsObjectNameInfo>(this.Objects.Length).ToPointer());
         for (int index = 0; index < (uint)(this.Objects.Length); index++)
         {
             this.Objects[index].MarshalTo(&fieldPointer[index]);
         }
         pointer->Objects = fieldPointer;
     }
     else
     {
         pointer->Objects = null;
     }
 }