예제 #1
0
        private void createFramebuffers()
        {
            swapChainFramebuffers = new VkFramebuffer[swapChainImageViews.Length];

            for (int i = 0; i < swapChainImageViews.Length; i++)
            {
                VkFramebufferCreateInfo framebufferInfo = new VkFramebufferCreateInfo();
                framebufferInfo.sType           = VkStructureType.VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO;
                framebufferInfo.renderPass      = renderPass;
                framebufferInfo.attachmentCount = 1;
                framebufferInfo.pAttachments    = new VkImageView[] { swapChainImageViews[i] };
                framebufferInfo.width           = swapChainExtent.width;
                framebufferInfo.height          = swapChainExtent.height;
                framebufferInfo.layers          = 1;

                VkFramebuffer frameBuffer = null;
                VkResult      result      = Vulkan.vkCreateFramebuffer(device, framebufferInfo, null, out frameBuffer);
                if (result != VkResult.VK_SUCCESS)
                {
                    throw Program.Throw("failed to create framebuffer!", result);
                }
                swapChainFramebuffers[i] = frameBuffer;
            }
        }