diff tests/test_vulkan_wrapper.nim @ 104:9eeb9a44d158

did: some refactoring
author Sam <sam@basx.dev>
date Mon, 20 Mar 2023 23:48:46 +0700
parents 1e2027dfc642
children 4059aa0d689b
line wrap: on
line diff
--- a/tests/test_vulkan_wrapper.nim	Mon Mar 20 10:25:50 2023 +0700
+++ b/tests/test_vulkan_wrapper.nim	Mon Mar 20 23:48:46 2023 +0700
@@ -14,25 +14,7 @@
   Pixel = object
     color: Vec4
 
-
-when isMainModule:
-  # print basic driver infos
-  echo "Layers"
-  for layer in getLayers():
-    echo "  " & layer
-  echo "Instance extensions"
-  for extension in getInstanceExtensions():
-    echo "  " & extension
-
-  # create instance
-  var thewindow = createWindow("Test")
-  var instance = thewindow.createInstance(
-    vulkanVersion=VK_MAKE_API_VERSION(0, 1, 3, 0),
-    instanceExtensions= @["VK_EXT_debug_utils"],
-    layers= @["VK_LAYER_KHRONOS_validation"]
-  )
-  var debugger = instance.createDebugMessenger()
-
+proc diagnostics(instance: Instance) =
   # diagnostic output
   echo "Devices"
   for device in instance.getPhysicalDevices():
@@ -55,6 +37,24 @@
     for format in device.getSurfaceFormats():
       echo "    " & $format
 
+when isMainModule:
+  # print basic driver infos
+  echo "Layers"
+  for layer in getLayers():
+    echo "  " & layer
+  echo "Instance extensions"
+  for extension in getInstanceExtensions():
+    echo "  " & extension
+
+  # create instance
+  var thewindow = createWindow("Test")
+  var instance = thewindow.createInstance(
+    vulkanVersion=VK_MAKE_API_VERSION(0, 1, 3, 0),
+    instanceExtensions= @["VK_EXT_debug_utils"],
+    layers= @["VK_LAYER_KHRONOS_validation"]
+  )
+  var debugger = instance.createDebugMessenger()
+
   # create devices
   let selectedPhysicalDevice = instance.getPhysicalDevices().filterBestGraphics()
   var device = instance.createDevice(
@@ -80,10 +80,10 @@
     renderFinished = device.createSemaphore()
     inflight = device.createFence()
 
-  const vertexBinary = shaderCode[Vertex, Uniforms, FragmentInput](shadertype=VK_SHADER_STAGE_VERTEX_BIT, version=450, entrypoint="main", "fragpos = pos;")
-  const fragmentBinary = shaderCode[FragmentInput, void, Pixel](shadertype=VK_SHADER_STAGE_FRAGMENT_BIT, version=450, entrypoint="main", "color = vec4(1, 1, 1, 0);")
-  var vertexshader = createShader[Vertex, Uniforms, FragmentInput](device, "main", vertexBinary)
-  var fragmentshader = createShader[FragmentInput, void, Pixel](device, "main", fragmentBinary)
+  const vertexBinary = shaderCode[Vertex, Uniforms, FragmentInput](stage=VK_SHADER_STAGE_VERTEX_BIT, version=450, entrypoint="main", "fragpos = pos;")
+  const fragmentBinary = shaderCode[FragmentInput, void, Pixel](stage=VK_SHADER_STAGE_FRAGMENT_BIT, version=450, entrypoint="main", "color = vec4(1, 1, 1, 0);")
+  var vertexshader = createShader[Vertex, Uniforms, FragmentInput](device, VK_SHADER_STAGE_VERTEX_BIT, "main", vertexBinary)
+  var fragmentshader = createShader[FragmentInput, void, Pixel](device, VK_SHADER_STAGE_FRAGMENT_BIT, "main", fragmentBinary)
 
   var pipeline = renderpass.createPipeline(vertexshader, fragmentshader)
 
@@ -91,11 +91,9 @@
   echo "Start cleanup"
 
   # cleanup
-  #pipeline.destroy()
-  #vertexshader.destroy()
-  #fragmentshader.destroy()
   vertexshader.destroy()
   fragmentshader.destroy()
+  pipeline.destroy()
   inflight.destroy()
   imageAvailable.destroy()
   renderFinished.destroy()