Exemplo n.º 1
0
        void CreateFramebuffers()
        {
            if (swapchainFramebuffers != null)
            {
                foreach (var fb in swapchainFramebuffers)
                {
                    VK.DestroyFramebuffer(device, fb, alloc);
                }
            }

            swapchainFramebuffers = new List <VkFramebuffer>(swapchainImageViews.Count);

            for (int i = 0; i < swapchainImageViews.Count; i++)
            {
                var attachments = new Native <VkImageView>(swapchainImageViews[i]);

                var info = new VkFramebufferCreateInfo();
                info.sType           = CSGL.Vulkan.VkStructureType.FramebufferCreateInfo;
                info.renderPass      = renderPass;
                info.attachmentCount = 1;
                info.pAttachments    = attachments.Address;
                info.width           = swapchainExtent.width;
                info.height          = swapchainExtent.height;
                info.layers          = 1;

                VkFramebuffer temp;

                var result = VK.CreateFramebuffer(device, ref info, alloc, out temp);
                swapchainFramebuffers.Add(temp);

                attachments.Dispose();
            }
        }