kiba-engine
framebuffers.c
1 #include <kiba/renderer/vulkan/framebuffers.h>
2 
3 b8 vulkan_framebuffers_create(vulkan_context *context) {
4  context->swap_chain.framebuffers =
5  array_create(VkFramebuffer, array_size(context->swap_chain.image_views), &context->alloc.kiba_alloc);
6  /*
7  if (context->swap_chain.framebuffers == KB_NULL) {
8  KB_ERROR("could not create array for framebuffers");
9  return false;
10  }
11  array_for_each(VkImageView, view, context->swap_chain.image_views) {
12  struct vulkan_framebuffer_key key = {
13  .size = {.width = context->swap_chain.extent.width,
14  .height = context->swap_chain.extent.height,
15  .layers = 1},
16  };
17  key.attachments[key.attachment_count++].raw = *view;
18  key.attachments[key.attachment_count++].raw = context->depth.view;
19 
20  VkFramebuffer current_framebuffer;
21  vk_framebuffer_create(context, key, context->pipeline.renderpass, &current_framebuffer);
22  array_push(context->swap_chain.framebuffers, current_framebuffer);
23  }
24  return true;
25  */
26  return false;
27 }
28 
29 void vulkan_framebuffers_destroy(vulkan_context *context) {
30  array_for_each(VkFramebuffer, framebuffer, context->swap_chain.framebuffers) {
31  vkDestroyFramebuffer(context->device.logical, *framebuffer, &context->alloc.vulkan_callbacks);
32  }
33  array_destroy(&context->swap_chain.framebuffers);
34 }