public CommandBufferBeginInfo
        (
            StructureType?sType           = StructureType.CommandBufferBeginInfo,
            void *pNext                   = null,
            CommandBufferUsageFlags?flags = null,
            CommandBufferInheritanceInfo *pInheritanceInfo = null
        ) : this()
        {
            if (sType is not null)
            {
                SType = sType.Value;
            }

            if (pNext is not null)
            {
                PNext = pNext;
            }

            if (flags is not null)
            {
                Flags = flags.Value;
            }

            if (pInheritanceInfo is not null)
            {
                PInheritanceInfo = pInheritanceInfo;
            }
        }
 public CommandBufferBeginInfo
 (
     StructureType sType           = StructureType.CommandBufferBeginInfo,
     void *pNext                   = default,
     CommandBufferUsageFlags flags = default,
     CommandBufferInheritanceInfo *pInheritanceInfo = default
 )
 {
     SType            = sType;
     PNext            = pNext;
     Flags            = flags;
     PInheritanceInfo = pInheritanceInfo;
 }
        protected static void BeginCommandBuffer(CommandBuffer buffer, CommandBufferUsageFlags flags, CommandBufferInheritanceInfo *inheritInfo)
        {
            var info = new CommandBufferBeginInfo
            {
                SType            = StructureType.CommandBufferBeginInfo,
                Flags            = flags,
                PInheritanceInfo = inheritInfo
            };

            var res = VkApi.BeginCommandBuffer(buffer, &info);

            if (res != Result.Success)
            {
                throw new VMASharp.VulkanResultException("Failed to begin Command Buffer recording!", res);
            }
        }