Mercurial > games > semicongine
comparison tests/test_vulkan_wrapper.nim @ 120:2780d9aad142
add: better mesh support, indexed mesh
author | Sam <sam@basx.dev> |
---|---|
date | Thu, 06 Apr 2023 00:30:56 +0700 |
parents | 40ff2453855e |
children | dfaddaf96f09 |
comparison
equal
deleted
inserted
replaced
119:5cd1b42127ba | 120:2780d9aad142 |
---|---|
47 # create devices | 47 # create devices |
48 let selectedPhysicalDevice = instance.getPhysicalDevices().filterBestGraphics() | 48 let selectedPhysicalDevice = instance.getPhysicalDevices().filterBestGraphics() |
49 var device = instance.createDevice( | 49 var device = instance.createDevice( |
50 selectedPhysicalDevice, | 50 selectedPhysicalDevice, |
51 @[], | 51 @[], |
52 @[], | 52 @["VK_EXT_index_type_uint8"], |
53 selectedPhysicalDevice.filterForGraphicsPresentationQueues() | 53 selectedPhysicalDevice.filterForGraphicsPresentationQueues() |
54 ) | 54 ) |
55 | 55 |
56 # INIT RENDERER: | 56 # INIT RENDERER: |
57 const | 57 const |
88 root: newEntity("root", | 88 root: newEntity("root", |
89 newEntity("triangle1", newMesh( | 89 newEntity("triangle1", newMesh( |
90 positions=[newVec3f(0.0, -0.5), newVec3f(0.5, 0.5), newVec3f(-0.5, 0.5)], | 90 positions=[newVec3f(0.0, -0.5), newVec3f(0.5, 0.5), newVec3f(-0.5, 0.5)], |
91 colors=[newVec3f(1.0, 0.0, 0.0), newVec3f(0.0, 1.0, 0.0), newVec3f(0.0, 0.0, 1.0)], | 91 colors=[newVec3f(1.0, 0.0, 0.0), newVec3f(0.0, 1.0, 0.0), newVec3f(0.0, 0.0, 1.0)], |
92 )), | 92 )), |
93 newEntity("triangle1b", newMesh( | |
94 positions=[newVec3f(0.0, -0.4), newVec3f(0.4, 0.4), newVec3f(-0.4, 0.5)], | |
95 colors=[newVec3f(1.0, 0.0, 0.0), newVec3f(0.0, 1.0, 0.0), newVec3f(0.0, 0.0, 1.0)], | |
96 )), | |
97 newEntity("triangle2a", newMesh( | |
98 positions=[newVec3f(0.0, 0.5), newVec3f(0.5, -0.5), newVec3f(-0.5, -0.5)], | |
99 colors=[newVec3f(1.0, 0.0, 0.0), newVec3f(0.0, 1.0, 0.0), newVec3f(0.0, 0.0, 1.0)], | |
100 indices=[[0'u16, 2'u16, 1'u16]] | |
101 )), | |
102 newEntity("triangle2b", newMesh( | |
103 positions=[newVec3f(0.0, 0.4), newVec3f(0.4, -0.4), newVec3f(-0.4, -0.4)], | |
104 colors=[newVec3f(1.0, 0.0, 0.0), newVec3f(0.0, 1.0, 0.0), newVec3f(0.0, 0.0, 1.0)], | |
105 indices=[[0'u16, 2'u16, 1'u16]] | |
106 )), | |
107 newEntity("triangle3a", newMesh( | |
108 positions=[newVec3f(0.4, 0.5), newVec3f(0.9, -0.3), newVec3f(0.0, -0.3)], | |
109 colors=[newVec3f(1.0, 1.0, 0.0), newVec3f(1.0, 1.0, 0.0), newVec3f(1.0, 1.0, 0.0)], | |
110 indices=[[0'u32, 2'u32, 1'u32]], | |
111 autoResize=false | |
112 )), | |
113 newEntity("triangle3b", newMesh( | |
114 positions=[newVec3f(0.4, 0.5), newVec3f(0.9, -0.3), newVec3f(0.0, -0.3)], | |
115 colors=[newVec3f(1.0, 1.0, 0.0), newVec3f(1.0, 1.0, 0.0), newVec3f(1.0, 1.0, 0.0)], | |
116 indices=[[0'u32, 2'u32, 1'u32]], | |
117 autoResize=false | |
118 )), | |
93 ) | 119 ) |
94 ) | 120 ) |
95 thescene.setupDrawables(renderPass) | 121 thescene.setupDrawables(renderPass) |
96 | 122 |
97 # MAINLOOP | 123 # MAINLOOP |
98 echo "Setup successfull, start rendering" | 124 echo "Setup successfull, start rendering" |
99 for i in 0 ..< 1000: | 125 for i in 0 ..< 10000: |
100 discard swapchain.drawScene(thescene) | 126 discard swapchain.drawScene(thescene) |
101 echo "Rendered ", swapchain.framesRendered, " frames" | 127 echo "Rendered ", swapchain.framesRendered, " frames" |
102 checkVkResult device.vk.vkDeviceWaitIdle() | 128 checkVkResult device.vk.vkDeviceWaitIdle() |
103 | 129 |
104 # cleanup | 130 # cleanup |