diff tests/test_gltf.nim @ 1423:3b8a736c45a7

did: put almost all global state into a single struct
author sam <sam@basx.dev>
date Thu, 09 Jan 2025 23:03:47 +0700
parents 5e5a3311ca44
children 676fc13685a9
line wrap: on
line diff
--- a/tests/test_gltf.nim	Thu Jan 09 01:03:06 2025 +0700
+++ b/tests/test_gltf.nim	Thu Jan 09 23:03:47 2025 +0700
@@ -6,7 +6,7 @@
 
 import ../semicongine
 
-proc test_gltf(time: float32) =
+proc test_gltf(time: float32, renderPass: RenderPass) =
   var renderdata = initRenderData()
 
   type
@@ -134,8 +134,7 @@
       renderdata.assignBuffers(primitive[0])
   renderdata.assignBuffers(descriptors)
 
-  var pipeline =
-    createPipeline(Shader(), renderPass = vulkan.swapchain.renderPass, cullMode = [])
+  var pipeline = createPipeline(Shader(), renderPass = renderPass, cullMode = [])
   initDescriptorSet(renderdata, pipeline.descriptorSetLayouts[0], descriptors)
 
   renderdata.flushAllMemory()
@@ -202,11 +201,11 @@
 
     withNextFrame(framebuffer, commandbuffer):
       withRenderPass(
-        vulkan.swapchain.renderPass,
+        renderPass,
         framebuffer,
         commandbuffer,
-        vulkan.swapchain.width,
-        vulkan.swapchain.height,
+        frameWidth(),
+        frameHeight(),
         vec4(0, 0, 0, 0),
       ):
         withPipeline(commandbuffer, pipeline):
@@ -220,13 +219,13 @@
             )
 
   # cleanup
-  checkVkResult vkDeviceWaitIdle(vulkan.device)
+  checkVkResult vkDeviceWaitIdle(engine().vulkan.device)
   destroyPipeline(pipeline)
   destroyRenderData(renderdata)
 
 when isMainModule:
   var time = 1000'f32
-  initVulkan()
+  initEngine("Test glTF")
 
   var renderpass = createDirectPresentationRenderPass(
     depthBuffer = true, samples = VK_SAMPLE_COUNT_4_BIT
@@ -236,10 +235,10 @@
   # showSystemCursor(false)
 
   # tests a simple triangle with minimalistic shader and vertex format
-  test_gltf(time)
+  test_gltf(time, renderpass)
 
-  checkVkResult vkDeviceWaitIdle(vulkan.device)
-  vkDestroyRenderPass(vulkan.device, renderpass.vk, nil)
+  checkVkResult vkDeviceWaitIdle(engine().vulkan.device)
+  destroyRenderPass(renderpass)
   clearSwapchain()
 
   destroyVulkan()