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 |