/// <summary> /// Allocates a new command buffer and automatically start it. /// </summary> /// <returns>New command buffer in the recording state.</returns> /// <param name="usage">Usage.</param> public PrimaryCommandBuffer AllocateAndStart(VkCommandBufferUsageFlags usage = 0) { PrimaryCommandBuffer cmd = AllocateCommandBuffer(); cmd.Start(usage); return(cmd); }
public CommandBuffer AllocateAndStart(VkCommandBufferUsageFlags usage = 0, VkCommandBufferLevel level = VkCommandBufferLevel.Primary) { CommandBuffer cmd = AllocateCommandBuffer(level); cmd.Start(usage); return(cmd); }
public unsafe void Begin( VkCommandBufferUsageFlags commandBufferUsageFlag, RenderPass renderPass, Framebuffer framebuffer, uint subpass = 0 ) { if (_level != VkCommandBufferLevel.Secondary) { throw new Exception("you can only use this method for secondary command buffers"); } var inheritanceInfo = new VkCommandBufferInheritanceInfo { sType = VkStructureType.CommandBufferInheritanceInfo, renderPass = renderPass.Handle, framebuffer = framebuffer.Handle }; var beginInfo = new VkCommandBufferBeginInfo { sType = VkStructureType.CommandBufferBeginInfo, flags = commandBufferUsageFlag, pInheritanceInfo = &inheritanceInfo }; if (VulkanNative.vkBeginCommandBuffer( _handle, &beginInfo ) != VkResult.Success) { throw new Exception("failed to begin command buffer"); } }
public static VkResult vkBeginCommandBuffer(VkCommandBuffer commandBuffer, VkCommandBufferUsageFlags flags) { VkCommandBufferBeginInfo beginInfo = new VkCommandBufferBeginInfo { sType = VkStructureType.CommandBufferBeginInfo, flags = VkCommandBufferUsageFlags.OneTimeSubmit }; return(vkBeginCommandBuffer(commandBuffer, &beginInfo)); }
public void Begin(VkCommandBufferUsageFlags flags = VkCommandBufferUsageFlags.None) { var cmdBufInfo = new VkCommandBufferBeginInfo(); cmdBufInfo.sType = VkStructureType.CommandBufferBeginInfo; cmdBufInfo.flags = flags; VulkanUtil.CheckResult(vkBeginCommandBuffer(commandBuffer, &cmdBufInfo)); opened = true; ClearDescriptorSets(); }
public void Begin(VkCommandBufferUsageFlags flags, ref CommandBufferInheritanceInfo commandBufferInheritanceInfo) { unsafe { var cmdBufBeginInfo = new VkCommandBufferBeginInfo { sType = VkStructureType.CommandBufferBeginInfo, flags = flags, pInheritanceInfo = (VkCommandBufferInheritanceInfo *)Unsafe.AsPointer(ref commandBufferInheritanceInfo.native) }; VulkanUtil.CheckResult(vkBeginCommandBuffer(commandBuffer, &cmdBufBeginInfo)); } opened = true; ClearDescriptorSets(); }
public void Start(VkCommandBufferUsageFlags usage = 0, RenderPass rp = null, uint subpass = 0, FrameBuffer fb = null, bool occlusionQueryEnable = false, VkQueryControlFlags queryFlags = 0, VkQueryPipelineStatisticFlags statFlags = 0) { VkCommandBufferInheritanceInfo inheri = VkCommandBufferInheritanceInfo.New(); inheri.renderPass = rp == null ? 0 : rp.handle; inheri.subpass = subpass; inheri.framebuffer = fb == null ? 0 : fb.handle; inheri.occlusionQueryEnable = occlusionQueryEnable; inheri.queryFlags = queryFlags; inheri.pipelineStatistics = statFlags; VkCommandBufferBeginInfo cmdBufInfo = new VkCommandBufferBeginInfo(usage); cmdBufInfo.pInheritanceInfo = inheri.Pin(); Utils.CheckResult(vkBeginCommandBuffer(handle, ref cmdBufInfo)); inheri.Unpin(); }
public unsafe void Begin(VkCommandBufferUsageFlags commandBufferUsageFlag) { if (_level != VkCommandBufferLevel.Primary) { throw new Exception("you can only use this method for primary command buffers"); } var beginInfo = new VkCommandBufferBeginInfo { sType = VkStructureType.CommandBufferBeginInfo, flags = commandBufferUsageFlag }; if (VulkanNative.vkBeginCommandBuffer( _handle, &beginInfo ) != VkResult.Success) { throw new Exception("failed to begin command buffer"); } }
/// <summary> /// Put the command buffer in the recording state. /// </summary> /// <param name="usage">optional command buffer usage flags.</param> public void Start(VkCommandBufferUsageFlags usage = 0) { VkCommandBufferBeginInfo cmdBufInfo = new VkCommandBufferBeginInfo(usage); Utils.CheckResult(vkBeginCommandBuffer(handle, ref cmdBufInfo)); }
public VkCommandBufferBeginInfo(VkCommandBufferUsageFlags usage = (VkCommandBufferUsageFlags)0) { this._sType = (int)VkStructureType.CommandBufferBeginInfo; pNext = _pInheritanceInfo = IntPtr.Zero; _flags = (uint)usage; }
public VkCommandBufferBeginInfo(VkCommandBufferUsageFlags usage = (VkCommandBufferUsageFlags)0) { sType = VkStructureType.CommandBufferBeginInfo; pNext = pInheritanceInfo = IntPtr.Zero; flags = usage; }