Mercurial > games > semicongine
diff tests/test_vulkan_wrapper.nim @ 129:15d37022625c
add: input handling, small refactoring for renderer
author | Sam <sam@basx.dev> |
---|---|
date | Tue, 18 Apr 2023 03:04:37 +0700 |
parents | 9901ec3831d1 |
children | 11666d28e04d |
line wrap: on
line diff
--- a/tests/test_vulkan_wrapper.nim Mon Apr 17 18:02:19 2023 +0700 +++ b/tests/test_vulkan_wrapper.nim Tue Apr 18 03:04:37 2023 +0700 @@ -105,7 +105,7 @@ setInstanceData[Vec3f](c, "translate", @[newVec3f(-0.3, 0.1)]) result = newEntity("root", t, r, c) -when isMainModule: +proc main() = var engine = initEngine("Test") # INIT RENDERER: @@ -135,27 +135,32 @@ var surfaceFormat = engine.gpuDevice.physicalDevice.getSurfaceFormats().filterSurfaceFormat() renderPass = engine.gpuDevice.simpleForwardRenderPass(surfaceFormat.format, vertexCode, fragmentCode, 2) - renderer = engine.gpuDevice.initRenderer([renderPass]) + engine.setRenderer([renderPass]) - # INIT SCENE - + # INIT SCENES var scenes = [scene_simple(), scene_different_mesh_types(), scene_primitives()] var time = initShaderGlobal("time", 0.0'f32) for scene in scenes.mitems: scene.components.add time - renderer.setupDrawableBuffers(scene, vertexInput) + engine.addScene(scene, vertexInput) # MAINLOOP echo "Setup successfull, start rendering" for i in 0 ..< 3: for scene in scenes: for i in 0 ..< 1000: + engine.updateInputs() setValue[float32](time.value, get[float32](time.value) + 0.0005) - discard renderer.render(scene) - echo "Rendered ", renderer.framesRendered, " frames" + if not engine.running or engine.keyIsDown(Escape): + engine.destroy() + return + discard engine.renderScene(scene) + echo "Rendered ", engine.framesRendered, " frames" + echo "Processed ", engine.eventsProcessed, " events" # cleanup echo "Start cleanup" - checkVkResult engine.gpuDevice.vk.vkDeviceWaitIdle() - renderer.destroy() engine.destroy() + +when isMainModule: + main()