次にフレームバッファーを
作成します。vulkanにおけるフレームバッファーは、1度のDrawCallで描写するバッファーをまとめたオブジェクトです。
これは、事前に何枚の描写バッファーを利用するかという情報を元に作成する必要があります。
フレームバッファーを生成するには、vkCreateFramebuffer関数を用います。
std::vector <VkFramebuffer> framebuffers;
for (size_t i = 0; i < 2; i++) {
VkFramebufferCreateInfo framebufferCreateinfo[2];
framebufferCreateinfo[i].sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO;
framebufferCreateinfo[i].pNext = nullptr;
framebufferCreateinfo[i].flags = 0;
framebufferCreateinfo[i].renderPass = _renderPass;
framebufferCreateinfo[i].attachmentCount = 1;
framebufferCreateinfo[i].pAttachments = &(_imageview[i]);
framebufferCreateinfo[i].width = 600;
framebufferCreateinfo[i].height = 800;
framebufferCreateinfo[i].layers = 1;
vkCreateFramebuffer(_device, &framebufferCreateinfo[i], nullptr, &framebuffers[i]);
}
- stype 構造体のタイプ
- pNext は、Nullまたは、拡張機能のポインター
- renderPassは、フレームバッファーと互換性のあるレンダーパス。前回作成した、レンダーパスを当てています。
- attachmentCoutは、Attachmentの数です。前々回参照
- pAttachmentsは、VKImageViewのハンドルポインターです。
- width height は、フレームバッファーの寸法を示しています。