public unsafe void Begin(ref VkCommandBufferBeginInfo CommandBufferBeginInfo)
        {
            VkCommandBufferBeginInfo_Native commandBufferBeginInfo_Native = new VkCommandBufferBeginInfo_Native();

            commandBufferBeginInfo_Native.sType = VkStructureType.VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
            commandBufferBeginInfo_Native.pNext = new IntPtr(0);
            commandBufferBeginInfo_Native.flags = CommandBufferBeginInfo.flags;
            if (CommandBufferBeginInfo.inheritanceInfo != null)
            {
            }
            else
            {
                commandBufferBeginInfo_Native.pInheritanceInfo = new IntPtr(0);
            }

            VkResult result = _Parent.Device.vkBeginCommandBuffer(_Handle, new IntPtr(&commandBufferBeginInfo_Native));

            if (CommandBufferBeginInfo.inheritanceInfo != null)
            {
            }

            if (result != VkResult.VK_SUCCESS)
            {
                throw new Exception(result.ToString());
            }
        }
        public void Begin(VkCommandBufferUsageFlag Flags)
        {
            VkCommandBufferBeginInfo CommandBufferBeginInfo = new VkCommandBufferBeginInfo();

            CommandBufferBeginInfo.flags           = Flags;
            CommandBufferBeginInfo.inheritanceInfo = null;
            Begin(ref CommandBufferBeginInfo);
        }