diff options
| -rw-r--r-- | VK/vulkan.csproj | 2 | ||||
| -rw-r--r-- | vk.generator/Program.cs | 17 |
2 files changed, 9 insertions, 10 deletions
diff --git a/VK/vulkan.csproj b/VK/vulkan.csproj index 7573b6a..753e3cb 100644 --- a/VK/vulkan.csproj +++ b/VK/vulkan.csproj @@ -3,7 +3,7 @@ <PropertyGroup> <TargetFrameworks>netstandard2.0</TargetFrameworks> - <AssemblyVersion>0.2.2.1</AssemblyVersion> + <AssemblyVersion>0.2.2.2</AssemblyVersion> <AssemblyName>VK</AssemblyName> <Description>Low level vulkan bindings for .net</Description> <Product>VK</Product> diff --git a/vk.generator/Program.cs b/vk.generator/Program.cs index 43fa2a0..ecf7f85 100644 --- a/vk.generator/Program.cs +++ b/vk.generator/Program.cs @@ -178,16 +178,9 @@ namespace vk.generator { //function pointers to retrieve before any other vulkan api call. //those command should not move in other iface than common to be preload by normal dyn load - static string[] preloadedCommands = { - "vkCreateInstance", - "vkDestroyInstance", - "vkGetDeviceProcAddr", - "vkGetInstanceProcAddr", - "vkEnumerateInstanceExtensionProperties", - "vkEnumerateInstanceLayerProperties", - "vkEnumerateInstanceVersion"}; + static List<string> preloadedCommands = new List<string> {"vkGetDeviceProcAddr","vkGetInstanceProcAddr"}; - static string[] reservedNames = { "event", "object" }; + static string [] reservedNames = { "event", "object" }; static Dictionary<string, ParamDef> paramsDefs = new Dictionary<string, ParamDef> (); @@ -773,6 +766,12 @@ namespace vk.generator { tw.WriteLine (); } static void gen_commands (string englobingStaticClass) { + + string [] firstParamPreloadExclusion = { "VkInstance", "VkDevice", "VkPhysicalDevice", "VkQueue", "VkCommandBuffer" }; + preloadedCommands.AddRange ( + commands.Where (c => string.IsNullOrEmpty (c.alias) && c.parameters.Count > 0 && + !firstParamPreloadExclusion.Contains (c.parameters [0].typedef.Name)).Select (c => c.Name)); + using (StreamWriter sr = new StreamWriter ($"commands_{englobingStaticClass}_gen.cs", false, System.Text.Encoding.UTF8)) { using (IndentedTextWriter tw = new IndentedTextWriter (sr)) { writePreamble (tw, vknamespace + ".Generator"); |