/// <summary> /// Binds an index buffer to this command buffer /// </summary> /// <param name="buffer">buffer to bind</param> /// <param name="offset">offset into buffer</param> /// <returns>this</returns> public void BindIndexBuffer(IBindableBuffer buffer, VkIndexType type, ulong offset = 0) { var bh = buffer.BindingHandle.Handle; offset += buffer.Offset; VkCommandBuffer.vkCmdBindIndexBuffer(Handle, bh, offset, type); }
/// <summary> /// Binds a vertex buffer to this command buffer /// </summary> /// <param name="binding">binding</param> /// <param name="buffer">buffer to bind</param> /// <param name="offset">offset into buffer</param> /// <returns>this</returns> public void BindVertexBuffer(uint binding, IBindableBuffer buffer, ulong offset = 0) { var bh = buffer.BindingHandle.Handle; offset += buffer.Offset; unsafe { VkCommandBuffer.vkCmdBindVertexBuffers(Handle, binding, 1, &bh, &offset); } }
public static VkBufferMemoryBarrier CreateBarrier(this IBindableBuffer buffer, uint srcQueue, uint dstQueue, VkAccessFlag srcAccess = VkAccessFlag.AllExceptExt, VkAccessFlag dstAccess = VkAccessFlag.AllExceptExt) { return(new VkBufferMemoryBarrier() { Buffer = buffer.BindingHandle.Handle, PNext = IntPtr.Zero, Offset = buffer.Offset, Size = buffer.Size, SType = VkStructureType.BufferMemoryBarrier, SrcQueueFamilyIndex = srcQueue, DstQueueFamilyIndex = dstQueue, SrcAccessMask = srcAccess, DstAccessMask = dstAccess }); }