Beispiel #1
0
        public DescriptorSetLayout(Device device, DescriptorSetLayoutCreateInfo info)
        {
            if (device == null)
            {
                throw new ArgumentNullException(nameof(device));
            }
            if (info == null)
            {
                throw new ArgumentNullException(nameof(info));
            }

            Device = device;

            CreateDescriptorSetLayout(info);
        }
Beispiel #2
0
        void CreateDescriptorSetLayout(DescriptorSetLayoutCreateInfo mInfo)
        {
            var info = new VkDescriptorSetLayoutCreateInfo();

            info.sType = VkStructureType.DescriptorSetLayoutCreateInfo;

            var bindingsMarshalled = new MarshalledArray <VkDescriptorSetLayoutBinding>(mInfo.bindings);

            info.bindingCount = (uint)bindingsMarshalled.Count;
            info.pBindings    = bindingsMarshalled.Address;

            using (bindingsMarshalled) {
                var result = Device.Commands.createDescriptorSetLayout(Device.Native, ref info, Device.Instance.AllocationCallbacks, out descriptorSetLayout);
                if (result != VkResult.Success)
                {
                    throw new DescriptorSetLayoutException(string.Format("Error creating description set layout: {0}", result));
                }
            }
        }