Exemple #1
0
        public BufferView(Buffer buffer, VkFormat format, ulong offset, ulong range)
        {
            var bufferViewCreateInfo = new VkBufferViewCreateInfo
            {
                sType  = VkStructureType.BufferViewCreateInfo,
                buffer = buffer,
                format = format,
                offset = offset,
                range  = range
            };

            handle = Device.CreateBufferView(ref bufferViewCreateInfo);
        }
Exemple #2
0
        internal unsafe VkBufferView GetShaderResourceView(PixelFormat viewFormat)
        {
            var createInfo = new VkBufferViewCreateInfo
            {
                sType  = VkStructureType.BufferViewCreateInfo,
                buffer = NativeBuffer,
                format = viewFormat == PixelFormat.None ? VkFormat.Undefined : VulkanConvertExtensions.ConvertPixelFormat(viewFormat),
                range  = (ulong)SizeInBytes, // this.ElementCount
                //view = (Description.BufferFlags & BufferFlags.RawBuffer) != 0 ? VkBufferViewType.Raw : VkBufferViewType.Formatted,
            };

            vkCreateBufferView(GraphicsDevice.NativeDevice, &createInfo, null, out var bufferView);
            return(bufferView);
        }
        void CreateBufferView(BufferViewCreateInfo mInfo)
        {
            VkBufferViewCreateInfo info = new VkBufferViewCreateInfo();

            info.sType  = VkStructureType.BufferViewCreateInfo;
            info.buffer = mInfo.buffer.Native;
            info.format = mInfo.format;
            info.offset = mInfo.offset;
            info.range  = mInfo.range;

            var result = Device.Commands.createBufferView(Device.Native, ref info, Device.Instance.AllocationCallbacks, out bufferView);

            if (result != VkResult.Success)
            {
                throw new BufferViewException(string.Format("Error creating buffer view: {0}", result));
            }

            Offset = mInfo.offset;
            Range  = mInfo.range;
        }
Exemple #4
0
 public static extern VkResult CreateBufferView(
     VkDevice device,
     ref VkBufferViewCreateInfo pCreateInfo,
     IntPtr pAllocator,
     out VkBufferView pView
     );
Exemple #5
0
 public static VkBufferView CreateBufferView(ref VkBufferViewCreateInfo pCreateInfo)
 {
     VulkanUtil.CheckResult(vkCreateBufferView(device, Utilities.AsPtr(ref pCreateInfo), null, out VkBufferView pView));
     return(pView);
 }