# HG changeset patch # User sam # Date 1747561012 -25200 # Node ID 3ce7c132fdac480f7b2634f551413a59300c6b0f # Parent f786797a0cbeecff730cd8c1c0230b22fece47f7 did: improvments diff -r f786797a0cbe -r 3ce7c132fdac svk/api.nim --- 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( diff -r f786797a0cbe -r 3ce7c132fdac svk/generate.nim --- 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)"