Mercurial > games > semicongine
comparison tests/test_vulkan_wrapper.nim @ 559:baaa620887b4
add: more vulkan objects
| author | Sam <sam@basx.dev> |
|---|---|
| date | Mon, 06 Mar 2023 23:50:21 +0700 |
| parents | affa6571a2c9 |
| children | 4deffc94484a |
comparison
equal
deleted
inserted
replaced
| 558:affa6571a2c9 | 559:baaa620887b4 |
|---|---|
| 1 import std/options | 1 import std/options |
| 2 | 2 |
| 3 import semicongine/vulkan | 3 import semicongine/vulkan |
| 4 import semicongine/platform/window | 4 import semicongine/platform/window |
| 5 import semicongine/math | |
| 5 | 6 |
| 6 | 7 |
| 7 when isMainModule: | 8 when isMainModule: |
| 8 # print basic driver infos | 9 # print basic driver infos |
| 9 echo "Layers" | 10 echo "Layers" |
| 51 @[], | 52 @[], |
| 52 @[], | 53 @[], |
| 53 selectedPhysicalDevice.filterForGraphicsPresentationQueues() | 54 selectedPhysicalDevice.filterForGraphicsPresentationQueues() |
| 54 ) | 55 ) |
| 55 | 56 |
| 56 echo "Created device ", device.physicalDevice.name | 57 # setup render pipeline |
| 57 var (swapchain, res) = device.createSwapchain(device.physicalDevice.getSurfaceFormats().filterSurfaceFormat()) | 58 var (swapchain, res) = device.createSwapchain(device.physicalDevice.getSurfaceFormats().filterSurfaceFormat()) |
| 58 if res != VK_SUCCESS: | 59 if res != VK_SUCCESS: |
| 59 raise newException(Exception, "Unable to create swapchain") | 60 raise newException(Exception, "Unable to create swapchain") |
| 61 var renderpass = device.simpleForwardRenderPass(swapchain.format) | |
| 62 var framebuffers: seq[Framebuffer] | |
| 63 for imageview in swapchain.imageviews: | |
| 64 framebuffers.add device.createFramebuffer(renderpass, [imageview], swapchain.dimension) | |
| 65 | |
| 66 # todo: could be create inside "device", but it would be nice to have nim v2 with support for circular dependencies first | |
| 67 var commandPool = device.createCommandPool(family=device.firstGraphicsQueue().get().family, nBuffers=1) | |
| 60 | 68 |
| 61 echo "All successfull" | 69 echo "All successfull" |
| 62 echo "Start cleanup" | 70 echo "Start cleanup" |
| 63 | 71 |
| 72 commandPool.destroy() | |
| 64 # cleanup | 73 # cleanup |
| 74 for fb in framebuffers.mitems: | |
| 75 fb.destroy() | |
| 76 renderpass.destroy() | |
| 65 swapchain.destroy() | 77 swapchain.destroy() |
| 66 device.destroy() | 78 device.destroy() |
| 67 | 79 |
| 68 debugger.destroy() | 80 debugger.destroy() |
| 69 instance.destroy() | 81 instance.destroy() |
