Mercurial > games > semicongine
comparison semiconginev2/old/vulkan/framebuffer.nim @ 1218:56781cc0fc7c compiletime-tests
did: renamge main package
| author | sam <sam@basx.dev> |
|---|---|
| date | Wed, 17 Jul 2024 21:01:37 +0700 |
| parents | semicongine/old/vulkan/framebuffer.nim@a3eb305bcac2 |
| children |
comparison
equal
deleted
inserted
replaced
| 1217:f819a874058f | 1218:56781cc0fc7c |
|---|---|
| 1 import ../core | |
| 2 import ./device | |
| 3 import ./image | |
| 4 | |
| 5 | |
| 6 type | |
| 7 Framebuffer* = object | |
| 8 device*: Device | |
| 9 vk*: VkFramebuffer | |
| 10 dimension*: Vec2u | |
| 11 | |
| 12 proc CreateFramebuffer*(device: Device, renderpass: VkRenderPass, attachments: openArray[ImageView], dimension: Vec2u): Framebuffer = | |
| 13 assert device.vk.Valid | |
| 14 assert renderpass.Valid | |
| 15 | |
| 16 result.device = device | |
| 17 result.dimension = dimension | |
| 18 | |
| 19 var theattachments: seq[VkImageView] | |
| 20 for a in attachments: | |
| 21 assert a.vk.Valid | |
| 22 theattachments.add a.vk | |
| 23 var framebufferInfo = VkFramebufferCreateInfo( | |
| 24 sType: VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO, | |
| 25 renderPass: renderpass, | |
| 26 attachmentCount: uint32(theattachments.len), | |
| 27 pAttachments: theattachments.ToCPointer, | |
| 28 width: dimension[0], | |
| 29 height: dimension[1], | |
| 30 layers: 1, | |
| 31 ) | |
| 32 checkVkResult device.vk.vkCreateFramebuffer(addr(framebufferInfo), nil, addr(result.vk)) | |
| 33 | |
| 34 proc Destroy*(framebuffer: var Framebuffer) = | |
| 35 assert framebuffer.device.vk.Valid | |
| 36 assert framebuffer.vk.Valid | |
| 37 framebuffer.device.vk.vkDestroyFramebuffer(framebuffer.vk, nil) | |
| 38 framebuffer.vk.Reset |
