本文整理汇总了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);
}
}
示例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);
}
}
示例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);
}
}
示例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);
}
}
示例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);
}
}
示例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);
}
}
示例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);
}
}
示例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);
}
}
示例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);
}
}
示例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);
}
}
示例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);
}
}
示例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);
}
}