示例#1
0
 public void CmdCopyImageToBuffer(Image srcImage, ImageLayout srcImageLayout, VulkanBuffer dstBuffer, BufferImageCopy?pRegion)
 {
     unsafe {
         BufferImageCopy  valpRegion = pRegion ?? default(BufferImageCopy);
         BufferImageCopy *ptrpRegion = pRegion != null ? &valpRegion : (BufferImageCopy *)IntPtr.Zero;
         Interop.NativeMethods.vkCmdCopyImageToBuffer(this.m, srcImage != null ? srcImage.m : default(UInt64), srcImageLayout, dstBuffer != null ? dstBuffer.m : default(UInt64), (UInt32)(pRegion != null ? 1 : 0), ptrpRegion);
     }
 }
示例#2
0
 public void CmdCopyBufferToImage(VulkanBuffer srcBuffer, Image dstImage, ImageLayout dstImageLayout, BufferImageCopy?pRegion)
 {
     unsafe {
         BufferImageCopy  valpRegion = pRegion ?? default(BufferImageCopy);
         BufferImageCopy *ptrpRegion = pRegion != null ? &valpRegion : (BufferImageCopy *)IntPtr.Zero;
         Interop.NativeMethods.vkCmdCopyBufferToImage(this.m, srcBuffer != null ? srcBuffer.m : default(UInt64), dstImage != null ? dstImage.m : default(UInt64), dstImageLayout, (UInt32)(pRegion != null ? 1 : 0), ptrpRegion);
     }
 }
示例#3
0
 public void CmdCopyBuffer(VulkanBuffer srcBuffer, VulkanBuffer dstBuffer, BufferCopy?pRegion)
 {
     unsafe {
         BufferCopy  valpRegion = pRegion ?? default(BufferCopy);
         BufferCopy *ptrpRegion = pRegion != null ? &valpRegion : (BufferCopy *)IntPtr.Zero;
         Interop.NativeMethods.vkCmdCopyBuffer(this.m, srcBuffer != null ? srcBuffer.m : default(UInt64), dstBuffer != null ? dstBuffer.m : default(UInt64), (UInt32)(pRegion != null ? 1 : 0), ptrpRegion);
     }
 }
示例#4
0
 public void CmdBindVertexBuffer(UInt32 firstBinding, VulkanBuffer pBuffer, DeviceSize pOffset)
 {
     unsafe
     {
         fixed(UInt64 *ptrpBuffer = &pBuffer.m)
         {
             Interop.NativeMethods.vkCmdBindVertexBuffers(this.m, firstBinding, (UInt32)(pOffset != null ? 1 : 0), ptrpBuffer, &pOffset);
         }
     }
 }
示例#5
0
 public void CmdCopyImageToBuffer(Image srcImage, ImageLayout srcImageLayout, VulkanBuffer dstBuffer, BufferImageCopy[] pRegions)
 {
     unsafe {
         var arraypRegions = pRegions == null ? IntPtr.Zero : Marshal.AllocHGlobal(pRegions.Length * sizeof(BufferImageCopy));
         var lenpRegions   = pRegions == null ? 0 : pRegions.Length;
         if (pRegions != null)
         {
             for (int i = 0; i < pRegions.Length; i++)
             {
                 ((BufferImageCopy *)arraypRegions) [i] = (pRegions [i]);
             }
         }
         Interop.NativeMethods.vkCmdCopyImageToBuffer(this.m, srcImage != null ? srcImage.m : default(UInt64), srcImageLayout, dstBuffer != null ? dstBuffer.m : default(UInt64), (uint)lenpRegions, (BufferImageCopy *)arraypRegions);
         Marshal.FreeHGlobal(arraypRegions);
     }
 }
示例#6
0
 public void CmdWriteBufferMarkerAMD(PipelineStageFlags pipelineStage, VulkanBuffer dstBuffer, DeviceSize dstOffset, UInt32 marker)
 {
     unsafe {
         Interop.NativeMethods.vkCmdWriteBufferMarkerAMD(this.m, pipelineStage, dstBuffer != null ? dstBuffer.m : default(UInt64), dstOffset, marker);
     }
 }
示例#7
0
 public void CmdDrawIndexedIndirectCountAMD(VulkanBuffer buffer, DeviceSize offset, VulkanBuffer countBuffer, DeviceSize countBufferOffset, UInt32 maxDrawCount, UInt32 stride)
 {
     unsafe {
         Interop.NativeMethods.vkCmdDrawIndexedIndirectCountAMD(this.m, buffer != null ? buffer.m : default(UInt64), offset, countBuffer != null ? countBuffer.m : default(UInt64), countBufferOffset, maxDrawCount, stride);
     }
 }
示例#8
0
 public void CmdCopyQueryPoolResults(QueryPool queryPool, UInt32 firstQuery, UInt32 queryCount, VulkanBuffer dstBuffer, DeviceSize dstOffset, DeviceSize stride, QueryResultFlags flags = (QueryResultFlags)0)
 {
     unsafe {
         Interop.NativeMethods.vkCmdCopyQueryPoolResults(this.m, queryPool != null ? queryPool.m : default(UInt64), firstQuery, queryCount, dstBuffer != null ? dstBuffer.m : default(UInt64), dstOffset, stride, flags);
     }
 }
示例#9
0
 public void CmdFillBuffer(VulkanBuffer dstBuffer, DeviceSize dstOffset, DeviceSize size, UInt32 data)
 {
     unsafe {
         Interop.NativeMethods.vkCmdFillBuffer(this.m, dstBuffer != null ? dstBuffer.m : default(UInt64), dstOffset, size, data);
     }
 }
示例#10
0
 public void CmdUpdateBuffer(VulkanBuffer dstBuffer, DeviceSize dstOffset, DeviceSize dataSize, IntPtr pData)
 {
     unsafe {
         Interop.NativeMethods.vkCmdUpdateBuffer(this.m, dstBuffer != null ? dstBuffer.m : default(UInt64), dstOffset, dataSize, pData);
     }
 }
示例#11
0
 public void CmdDispatchIndirect(VulkanBuffer buffer, DeviceSize offset)
 {
     unsafe {
         Interop.NativeMethods.vkCmdDispatchIndirect(this.m, buffer != null ? buffer.m : default(UInt64), offset);
     }
 }
示例#12
0
 public void CmdDrawIndexedIndirect(VulkanBuffer buffer, DeviceSize offset, UInt32 drawCount, UInt32 stride)
 {
     unsafe {
         Interop.NativeMethods.vkCmdDrawIndexedIndirect(this.m, buffer != null ? buffer.m : default(UInt64), offset, drawCount, stride);
     }
 }
示例#13
0
 public void CmdBindIndexBuffer(VulkanBuffer buffer, DeviceSize offset, IndexType indexType)
 {
     unsafe {
         Interop.NativeMethods.vkCmdBindIndexBuffer(this.m, buffer != null ? buffer.m : default(UInt64), offset, indexType);
     }
 }