changeset 1488:3ce7c132fdac default tip

did: improvments
author sam <sam@basx.dev>
date Sun, 18 May 2025 16:36:52 +0700
parents f786797a0cbe
children
files svk/api.nim svk/generate.nim
diffstat 2 files changed, 12 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/svk/api.nim	Thu May 15 00:10:08 2025 +0700
+++ b/svk/api.nim	Sun May 18 16:36:52 2025 +0700
@@ -1,3 +1,5 @@
+import std/sequtils
+import std/enumutils
 import std/tables
 import std/strutils
 import std/logging
@@ -7,6 +9,10 @@
 
 const VULKAN_VERSION = VK_MAKE_API_VERSION(0, 1, 3, 0)
 
+iterator items*[T: HoleyEnum](E: typedesc[T]): T =
+  for a in enumFullRange(E):
+    yield a
+
 template checkVkResult*(call: untyped) =
   when defined(release):
     discard call
@@ -105,8 +111,8 @@
 
   when not defined(release):
     var debugMessengerCreateInfo = VkDebugUtilsMessengerCreateInfoEXT(
-      messageSeverity: VkDebugUtilsMessageSeverityFlagBitsEXT.items.toSeq.toBits,
-      messageType: VkDebugUtilsMessageTypeFlagBitsEXT.items.toSeq.toBits,
+      messageSeverity: VkDebugUtilsMessageSeverityFlagBitsEXT.items.toSeq,
+      messageType: VkDebugUtilsMessageTypeFlagBitsEXT.items.toSeq,
       pfnUserCallback: debugCallback,
     )
     checkVkResult vkCreateDebugUtilsMessengerEXT(
--- a/svk/generate.nim	Thu May 15 00:10:08 2025 +0700
+++ b/svk/generate.nim	Sun May 18 16:36:52 2025 +0700
@@ -261,8 +261,8 @@
     let b = distinctBase(S)(flag)
     result = S(a or b)
 
-func toEnums[T, S](number: T): seq[S] =
-  for value in enumFullRange(T):
+func toEnums*[T, S](number: T): seq[S] =
+  for value in enumFullRange(S):
     if (value.ord and cint(number)) > 0:
       result.add value
 """
@@ -433,8 +433,8 @@
   if edef.values.len > 0:
     if edef.isBitmask:
       let bitsName = edef.name
-      let p = bitsName.rfind("Flag")
-      let flagsName = bitsName[0 ..< p] & "Flags"
+      let p = bitsName.rfind("FlagBits")
+      let flagsName = bitsName[0 ..< p] & "Flags" & bitsName[p + 8 .. ^1]
 
       outFile.writeLine &"converter {bitsName}ToBits*(flags: openArray[{bitsName}]): {flagsName} ="
       outFile.writeLine &"  asBits[{bitsName}, {flagsName}](flags)"