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