comparison tests/test_vulkan_wrapper.nim @ 112:0c5a74885796

did: real implementation of buffer and memory, getting closer to collect shit for drawing per pipeline
author Sam <sam@basx.dev>
date Sat, 01 Apr 2023 00:40:02 +0700
parents 6fd10b7e2d6a
children 7b695fb335ed
comparison
equal deleted inserted replaced
111:6fd10b7e2d6a 112:0c5a74885796
1 import std/os
2 import std/options 1 import std/options
3 2
4 import semicongine/vulkan 3 import semicongine/vulkan
5 import semicongine/platform/window 4 import semicongine/platform/window
6 import semicongine/math 5 import semicongine/math
7 import semicongine/entity 6 import semicongine/entity
8 import semicongine/scene 7 import semicongine/scene
9 import semicongine/gpu_data 8 import semicongine/gpu_data
10 9 import semicongine/mesh
11 type
12 Vertex = object
13 pos: Vec3
14 FragmentInput = object
15 fragpos: Vec3
16 Uniforms = object
17 time: float32
18 Pixel = object
19 color: Vec4
20 10
21 proc diagnostics(instance: Instance) = 11 proc diagnostics(instance: Instance) =
22 # diagnostic output 12 # diagnostic output
23 echo "Devices" 13 echo "Devices"
24 for device in instance.getPhysicalDevices(): 14 for device in instance.getPhysicalDevices():
81 renderPass = device.simpleForwardRenderPass(surfaceFormat.format, vertexshader, fragmentshader, 2) 71 renderPass = device.simpleForwardRenderPass(surfaceFormat.format, vertexshader, fragmentshader, 2)
82 var (swapchain, res) = device.createSwapchain(renderPass, surfaceFormat, device.firstGraphicsQueue().get().family, 2) 72 var (swapchain, res) = device.createSwapchain(renderPass, surfaceFormat, device.firstGraphicsQueue().get().family, 2)
83 if res != VK_SUCCESS: 73 if res != VK_SUCCESS:
84 raise newException(Exception, "Unable to create swapchain") 74 raise newException(Exception, "Unable to create swapchain")
85 75
86 var thescene = Scene(root: newEntity("scene")) 76 var thescene = Scene(name: "main", root: newEntity("triangle", newMesh([newVec3(-1, -1), newVec3(0, 1), newVec3(1, -1)])))
87 thescene.setupDrawables(renderPass) 77 thescene.setupDrawables(renderPass)
88 78
89 echo "Setup successfull, start rendering" 79 echo "Setup successfull, start rendering"
90 for i in 0 ..< 10: 80 for i in 0 ..< 1:
91 discard swapchain.drawScene(thescene) 81 discard swapchain.drawScene(thescene)
92 echo "Rendered ", swapchain.framesRendered, " frames" 82 echo "Rendered ", swapchain.framesRendered, " frames"
93 echo "Start cleanup" 83 echo "Start cleanup"
94 84
95 85