| 1197 | }; |
| 1198 | |
| 1199 | class Framebuffer : public internal::NonDispHandle<VkFramebuffer> { |
| 1200 | public: |
| 1201 | Framebuffer() = default; |
| 1202 | Framebuffer(const Device &dev, const VkFramebufferCreateInfo &info) { Init(dev, info); } |
| 1203 | // The most common case, anything outside of this should create there own VkFramebufferCreateInfo |
| 1204 | Framebuffer(const Device &dev, VkRenderPass rp, uint32_t attchment_count, const VkImageView *attchments, uint32_t width = 32, |
| 1205 | uint32_t height = 32) { |
| 1206 | VkFramebufferCreateInfo info = vku::InitStructHelper(); |
| 1207 | info.renderPass = rp; |
| 1208 | info.attachmentCount = attchment_count; |
| 1209 | info.pAttachments = attchments; |
| 1210 | info.width = width; |
| 1211 | info.height = height; |
| 1212 | info.layers = 1; |
| 1213 | Init(dev, info); |
| 1214 | } |
| 1215 | ~Framebuffer() noexcept; |
| 1216 | void Destroy() noexcept; |
| 1217 | |
| 1218 | // vkCreateFramebuffer() |
| 1219 | void Init(const Device &dev, const VkFramebufferCreateInfo &info); |
| 1220 | void SetName(const char *name) { NonDispHandle<VkFramebuffer>::SetName(VK_OBJECT_TYPE_FRAMEBUFFER, name); } |
| 1221 | }; |
| 1222 | |
| 1223 | class SamplerYcbcrConversion : public internal::NonDispHandle<VkSamplerYcbcrConversion> { |
| 1224 | public: |