当前位置: 首页>>代码示例>>C#>>正文


C# IReadOnlyList.SizeOfMarshalDirect方法代码示例

本文整理汇总了C#中IReadOnlyList.SizeOfMarshalDirect方法的典型用法代码示例。如果您正苦于以下问题:C# IReadOnlyList.SizeOfMarshalDirect方法的具体用法?C# IReadOnlyList.SizeOfMarshalDirect怎么用?C# IReadOnlyList.SizeOfMarshalDirect使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IReadOnlyList的用法示例。


在下文中一共展示了IReadOnlyList.SizeOfMarshalDirect方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Merge

 public VkResult Merge(IReadOnlyList<IVkPipelineCache> srcCaches)
 {
     var unmanagedSize =
         srcCaches.SizeOfMarshalDirect();
     var unmanagedArray = new byte[unmanagedSize];
     fixed (byte* unmanagedStart = unmanagedArray)
     {
         var unmanaged = unmanagedStart;
         var _device = Device.Handle;
         var _dstCache = Handle;
         var _srcCacheCount = srcCaches?.Count ?? 0;
         var _pSrcCaches = srcCaches.MarshalDirect(ref unmanaged);
         return Direct.MergePipelineCaches(_device, _dstCache, _srcCacheCount, _pSrcCaches);
     }
 }
开发者ID:,项目名称:,代码行数:15,代码来源:

示例2: CmdSetScissor

 public void CmdSetScissor(int firstScissor, IReadOnlyList<VkRect2D> scissors)
 {
     var unmanagedSize =
         scissors.SizeOfMarshalDirect();
     var unmanagedArray = new byte[unmanagedSize];
     fixed (byte* unmanagedStart = unmanagedArray)
     {
         var unmanaged = unmanagedStart;
         var _commandBuffer = Handle;
         var _firstScissor = firstScissor;
         var _scissorCount = scissors?.Count ?? 0;
         var _pScissors = scissors.MarshalDirect(ref unmanaged);
         Direct.CmdSetScissor(_commandBuffer, _firstScissor, _scissorCount, _pScissors);
     }
 }
开发者ID:,项目名称:,代码行数:15,代码来源:

示例3: FreeCommandBuffers

 public void FreeCommandBuffers(IReadOnlyList<IVkCommandBuffer> commandBuffers)
 {
     var unmanagedSize =
         commandBuffers.SizeOfMarshalDirect();
     var unmanagedArray = new byte[unmanagedSize];
     fixed (byte* unmanagedStart = unmanagedArray)
     {
         var unmanaged = unmanagedStart;
         var _device = Device.Handle;
         var _commandPool = Handle;
         var _commandBufferCount = commandBuffers?.Count ?? 0;
         var _pCommandBuffers = commandBuffers.MarshalDirect(ref unmanaged);
         Direct.FreeCommandBuffers(_device, _commandPool, _commandBufferCount, _pCommandBuffers);
     }
 }
开发者ID:,项目名称:,代码行数:15,代码来源:

示例4: CmdBindVertexBuffers

 public void CmdBindVertexBuffers(int firstBinding, IReadOnlyList<IVkBuffer> buffers, IReadOnlyList<ulong> offsets)
 {
     var unmanagedSize =
         buffers.SizeOfMarshalDirect() +
         offsets.SizeOfMarshalDirect();
     var unmanagedArray = new byte[unmanagedSize];
     fixed (byte* unmanagedStart = unmanagedArray)
     {
         var unmanaged = unmanagedStart;
         var _commandBuffer = Handle;
         var _firstBinding = firstBinding;
         var _bindingCount = Math.Min(buffers?.Count ?? 0, offsets?.Count ?? 0);
         var _pBuffers = buffers.MarshalDirect(ref unmanaged);
         var _pOffsets = offsets.MarshalDirect(ref unmanaged);
         Direct.CmdBindVertexBuffers(_commandBuffer, _firstBinding, _bindingCount, _pBuffers, _pOffsets);
     }
 }
开发者ID:,项目名称:,代码行数:17,代码来源:

示例5: CmdSetViewport

 public void CmdSetViewport(int firstViewport, IReadOnlyList<VkViewport> viewports)
 {
     var unmanagedSize =
         viewports.SizeOfMarshalDirect();
     var unmanagedArray = new byte[unmanagedSize];
     fixed (byte* unmanagedStart = unmanagedArray)
     {
         var unmanaged = unmanagedStart;
         var _commandBuffer = Handle;
         var _firstViewport = firstViewport;
         var _viewportCount = viewports?.Count ?? 0;
         var _pViewports = viewports.MarshalDirect(ref unmanaged);
         Direct.CmdSetViewport(_commandBuffer, _firstViewport, _viewportCount, _pViewports);
     }
 }
开发者ID:,项目名称:,代码行数:15,代码来源:

示例6: CmdCopyBuffer

 public void CmdCopyBuffer(IVkBuffer srcBuffer, IVkBuffer dstBuffer, IReadOnlyList<VkBufferCopy> regions)
 {
     var unmanagedSize =
         regions.SizeOfMarshalDirect();
     var unmanagedArray = new byte[unmanagedSize];
     fixed (byte* unmanagedStart = unmanagedArray)
     {
         var unmanaged = unmanagedStart;
         var _commandBuffer = Handle;
         var _srcBuffer = srcBuffer?.Handle ?? VkBuffer.HandleType.Null;
         var _dstBuffer = dstBuffer?.Handle ?? VkBuffer.HandleType.Null;
         var _regionCount = regions?.Count ?? 0;
         var _pRegions = regions.MarshalDirect(ref unmanaged);
         Direct.CmdCopyBuffer(_commandBuffer, _srcBuffer, _dstBuffer, _regionCount, _pRegions);
     }
 }
开发者ID:,项目名称:,代码行数:16,代码来源:

示例7: CmdResolveImage

 public void CmdResolveImage(IVkImage srcImage, VkImageLayout srcImageLayout, IVkImage dstImage, VkImageLayout dstImageLayout, IReadOnlyList<VkImageResolve> regions)
 {
     var unmanagedSize =
         regions.SizeOfMarshalDirect();
     var unmanagedArray = new byte[unmanagedSize];
     fixed (byte* unmanagedStart = unmanagedArray)
     {
         var unmanaged = unmanagedStart;
         var _commandBuffer = Handle;
         var _srcImage = srcImage?.Handle ?? VkImage.HandleType.Null;
         var _srcImageLayout = srcImageLayout;
         var _dstImage = dstImage?.Handle ?? VkImage.HandleType.Null;
         var _dstImageLayout = dstImageLayout;
         var _regionCount = regions?.Count ?? 0;
         var _pRegions = regions.MarshalDirect(ref unmanaged);
         Direct.CmdResolveImage(_commandBuffer, _srcImage, _srcImageLayout, _dstImage, _dstImageLayout, _regionCount, _pRegions);
     }
 }
开发者ID:,项目名称:,代码行数:18,代码来源:

示例8: CmdClearDepthStencilImage

 public void CmdClearDepthStencilImage(IVkImage image, VkImageLayout imageLayout, VkClearDepthStencilValue depthStencil, IReadOnlyList<VkImageSubresourceRange> ranges)
 {
     var unmanagedSize =
         ranges.SizeOfMarshalDirect();
     var unmanagedArray = new byte[unmanagedSize];
     fixed (byte* unmanagedStart = unmanagedArray)
     {
         var unmanaged = unmanagedStart;
         var _commandBuffer = Handle;
         var _image = image?.Handle ?? VkImage.HandleType.Null;
         var _imageLayout = imageLayout;
         var _pDepthStencil = &depthStencil;
         var _rangeCount = ranges?.Count ?? 0;
         var _pRanges = ranges.MarshalDirect(ref unmanaged);
         Direct.CmdClearDepthStencilImage(_commandBuffer, _image, _imageLayout, _pDepthStencil, _rangeCount, _pRanges);
     }
 }
开发者ID:,项目名称:,代码行数:17,代码来源:

示例9: CmdBindDescriptorSets

 public void CmdBindDescriptorSets(VkPipelineBindPoint pipelineBindPoint, IVkPipelineLayout layout, int firstSet, IReadOnlyList<IVkDescriptorSet> descriptorSets, IReadOnlyList<int> dynamicOffsets)
 {
     var unmanagedSize =
         descriptorSets.SizeOfMarshalDirect() +
         dynamicOffsets.SizeOfMarshalDirect();
     var unmanagedArray = new byte[unmanagedSize];
     fixed (byte* unmanagedStart = unmanagedArray)
     {
         var unmanaged = unmanagedStart;
         var _commandBuffer = Handle;
         var _pipelineBindPoint = pipelineBindPoint;
         var _layout = layout?.Handle ?? VkPipelineLayout.HandleType.Null;
         var _firstSet = firstSet;
         var _descriptorSetCount = descriptorSets?.Count ?? 0;
         var _pDescriptorSets = descriptorSets.MarshalDirect(ref unmanaged);
         var _dynamicOffsetCount = dynamicOffsets?.Count ?? 0;
         var _pDynamicOffsets = dynamicOffsets.MarshalDirect(ref unmanaged);
         Direct.CmdBindDescriptorSets(_commandBuffer, _pipelineBindPoint, _layout, _firstSet, _descriptorSetCount, _pDescriptorSets, _dynamicOffsetCount, _pDynamicOffsets);
     }
 }
开发者ID:,项目名称:,代码行数:20,代码来源:

示例10: CmdPipelineBarrier

 public void CmdPipelineBarrier(VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, IReadOnlyList<VkMemoryBarrier> memoryBarriers, IReadOnlyList<VkBufferMemoryBarrier> bufferMemoryBarriers, IReadOnlyList<VkImageMemoryBarrier> imageMemoryBarriers)
 {
     var unmanagedSize =
         memoryBarriers.SizeOfMarshalDirect() +
         bufferMemoryBarriers.SizeOfMarshalDirect() +
         imageMemoryBarriers.SizeOfMarshalDirect();
     var unmanagedArray = new byte[unmanagedSize];
     fixed (byte* unmanagedStart = unmanagedArray)
     {
         var unmanaged = unmanagedStart;
         var _commandBuffer = Handle;
         var _srcStageMask = srcStageMask;
         var _dstStageMask = dstStageMask;
         var _dependencyFlags = dependencyFlags;
         var _memoryBarrierCount = memoryBarriers?.Count ?? 0;
         var _pMemoryBarriers = memoryBarriers.MarshalDirect(ref unmanaged);
         var _bufferMemoryBarrierCount = bufferMemoryBarriers?.Count ?? 0;
         var _pBufferMemoryBarriers = bufferMemoryBarriers.MarshalDirect(ref unmanaged);
         var _imageMemoryBarrierCount = imageMemoryBarriers?.Count ?? 0;
         var _pImageMemoryBarriers = imageMemoryBarriers.MarshalDirect(ref unmanaged);
         Direct.CmdPipelineBarrier(_commandBuffer, _srcStageMask, _dstStageMask, _dependencyFlags, _memoryBarrierCount, _pMemoryBarriers, _bufferMemoryBarrierCount, _pBufferMemoryBarriers, _imageMemoryBarrierCount, _pImageMemoryBarriers);
     }
 }
开发者ID:,项目名称:,代码行数:23,代码来源:

示例11: CmdWaitEvents

 public void CmdWaitEvents(IReadOnlyList<IVkEvent> events, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, IReadOnlyList<VkMemoryBarrier> memoryBarriers, IReadOnlyList<VkBufferMemoryBarrier> bufferMemoryBarriers, IReadOnlyList<VkImageMemoryBarrier> imageMemoryBarriers)
 {
     var unmanagedSize =
         events.SizeOfMarshalDirect() +
         memoryBarriers.SizeOfMarshalDirect() +
         bufferMemoryBarriers.SizeOfMarshalDirect() +
         imageMemoryBarriers.SizeOfMarshalDirect();
     var unmanagedArray = new byte[unmanagedSize];
     fixed (byte* unmanagedStart = unmanagedArray)
     {
         var unmanaged = unmanagedStart;
         var _commandBuffer = Handle;
         var _eventCount = events?.Count ?? 0;
         var _pEvents = events.MarshalDirect(ref unmanaged);
         var _srcStageMask = srcStageMask;
         var _dstStageMask = dstStageMask;
         var _memoryBarrierCount = memoryBarriers?.Count ?? 0;
         var _pMemoryBarriers = memoryBarriers.MarshalDirect(ref unmanaged);
         var _bufferMemoryBarrierCount = bufferMemoryBarriers?.Count ?? 0;
         var _pBufferMemoryBarriers = bufferMemoryBarriers.MarshalDirect(ref unmanaged);
         var _imageMemoryBarrierCount = imageMemoryBarriers?.Count ?? 0;
         var _pImageMemoryBarriers = imageMemoryBarriers.MarshalDirect(ref unmanaged);
         Direct.CmdWaitEvents(_commandBuffer, _eventCount, _pEvents, _srcStageMask, _dstStageMask, _memoryBarrierCount, _pMemoryBarriers, _bufferMemoryBarrierCount, _pBufferMemoryBarriers, _imageMemoryBarrierCount, _pImageMemoryBarriers);
     }
 }
开发者ID:,项目名称:,代码行数:25,代码来源:

示例12: CmdExecuteCommands

 public void CmdExecuteCommands(IReadOnlyList<IVkCommandBuffer> commandBuffers)
 {
     var unmanagedSize =
         commandBuffers.SizeOfMarshalDirect();
     var unmanagedArray = new byte[unmanagedSize];
     fixed (byte* unmanagedStart = unmanagedArray)
     {
         var unmanaged = unmanagedStart;
         var _commandBuffer = Handle;
         var _commandBufferCount = commandBuffers?.Count ?? 0;
         var _pCommandBuffers = commandBuffers.MarshalDirect(ref unmanaged);
         Direct.CmdExecuteCommands(_commandBuffer, _commandBufferCount, _pCommandBuffers);
     }
 }
开发者ID:,项目名称:,代码行数:14,代码来源:


注:本文中的IReadOnlyList.SizeOfMarshalDirect方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。