aboutsummaryrefslogtreecommitdiffstatsci
diff options
context:
space:
mode:
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>2021-12-07 14:31:55 +0100
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>2021-12-07 14:31:55 +0100
commit3fb884d726910719a351d3e617c757459fb7c772 (patch)
tree1625cf47f6eab63f18fb39093e3a1f0df373c272
parent2af048902ea6952eaac368b8880788214f2e95af (diff)
samples
-rw-r--r--.gitignore1
-rw-r--r--.vscode/launch.json68
-rw-r--r--.vscode/tasks.json119
-rw-r--r--Directory.Build.props3
-rw-r--r--samples/Directory.Build.props15
-rw-r--r--samples/common/Utils.cs19
-rw-r--r--samples/create_device/Program.cs74
-rw-r--r--samples/create_device/create_device.csproj (renamed from tests/tests.csproj)3
-rw-r--r--samples/create_instance/Program.cs27
-rw-r--r--samples/create_instance/create_instance.csproj8
-rw-r--r--samples/select_physical_dev/Program.cs46
-rw-r--r--samples/select_physical_dev/select_physical_dev.csproj8
-rw-r--r--tests/Program.cs44
-rw-r--r--vk.net.sln30
-rw-r--r--vulkan/Version.cs1
-rw-r--r--vulkan/vulkan.csproj6
16 files changed, 413 insertions, 59 deletions
diff --git a/.gitignore b/.gitignore
index 57d44d3..4803fb0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,3 @@
-.vscode
.vs
build/
packages/
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000..1e002fb
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,68 @@
+{
+ // Use IntelliSense to learn about possible attributes.
+ // Hover to view descriptions of existing attributes.
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "name": ".NET Core Launch (generator)",
+ "type": "coreclr",
+ "request": "launch",
+ "preLaunchTask": "build generator",
+ "program": "${workspaceFolder}/vk.generator/bin/Debug/netcoreapp3.1/vk.generator",
+ "args": ["Vulkan-Docs/xml/vk.xml"],
+ "cwd": "${workspaceFolder}",
+ "console": "externalTerminal",
+ "stopAtEntry": false
+ },
+ {
+ "name": ".NET Core Launch (rewrite)",
+ "type": "coreclr",
+ "request": "launch",
+ "preLaunchTask": "build rewrite",
+ "program": "${workspaceFolder}/vk.rewrite/bin/Debug/netcoreapp3.1/vk.rewrite",
+ "args": ["vulkan/bin/Debug/netstandard2.1/Vulkan.dll"],
+ "cwd": "${workspaceFolder}",
+ "console": "internalConsole",
+ "stopAtEntry": false
+ },
+ {
+ "name": ".NET Core Launch (create_instance)",
+ "type": "coreclr",
+ "request": "launch",
+ "preLaunchTask": "build create_instance",
+ "program": "${workspaceFolder}/samples/create_instance/bin/Debug/netcoreapp3.1/create_instance",
+ "args": [],
+ "cwd": "${workspaceFolder}",
+ "console": "externalTerminal",
+ "stopAtEntry": false
+ },
+ {
+ "name": ".NET Core Launch (select_physical_dev)",
+ "type": "coreclr",
+ "request": "launch",
+ "preLaunchTask": "build select_physical_dev",
+ "program": "${workspaceFolder}/samples/select_physical_dev/bin/Debug/netcoreapp3.1/select_physical_dev",
+ "args": [],
+ "cwd": "${workspaceFolder}",
+ "console": "externalTerminal",
+ "stopAtEntry": false
+ },
+ {
+ "name": ".NET Core Launch (create_device)",
+ "type": "coreclr",
+ "request": "launch",
+ "preLaunchTask": "build create_device",
+ "program": "${workspaceFolder}/samples/create_device/bin/Debug/netcoreapp3.1/create_device",
+ "args": [],
+ "cwd": "${workspaceFolder}",
+ "console": "externalTerminal",
+ "stopAtEntry": false
+ },
+ {
+ "name": ".NET Core Attach",
+ "type": "coreclr",
+ "request": "attach"
+ }
+ ]
+} \ No newline at end of file
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
new file mode 100644
index 0000000..1b9104b
--- /dev/null
+++ b/.vscode/tasks.json
@@ -0,0 +1,119 @@
+{
+ "version": "2.0.0",
+ "tasks": [
+ {
+ "label": "build generator",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "build",
+ "${workspaceFolder}/vk.generator/vk.generator.csproj",
+ "/property:GenerateFullPaths=true",
+ "/property:Configuration=Debug",
+ "/property:SolutionDir=${workspaceFolder}/",
+ "/consoleloggerparameters:NoSummary"
+ ],
+ "problemMatcher": "$msCompile"
+ },
+ {
+ "label": "build rewrite",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "build",
+ "${workspaceFolder}/vk.rewrite/vk.rewrite.csproj",
+ "/property:GenerateFullPaths=true",
+ "/property:Configuration=Debug",
+ "/property:SolutionDir=${workspaceFolder}/",
+ "/consoleloggerparameters:NoSummary"
+ ],
+ "problemMatcher": "$msCompile"
+ },
+ {
+ "label": "build vulkan",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "build",
+ "${workspaceFolder}/vulkan/vulkan.csproj",
+ "/property:GenerateFullPaths=true",
+ "/property:Configuration=Debug",
+ "/property:SolutionDir=${workspaceFolder}/",
+ "/consoleloggerparameters:NoSummary"
+ ],
+ "problemMatcher": "$msCompile",
+ },
+ {
+ "label": "build create_instance",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "build",
+ "${workspaceFolder}/samples/create_instance/create_instance.csproj",
+ "/property:GenerateFullPaths=true",
+ "/property:Configuration=Debug",
+ "/property:Regenerate=false",
+ "/property:SolutionDir=${workspaceFolder}/",
+ "/consoleloggerparameters:NoSummary"
+ ],
+ "problemMatcher": "$msCompile",
+ },
+ {
+ "label": "build select_physical_dev",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "build",
+ "${workspaceFolder}/samples/select_physical_dev/select_physical_dev.csproj",
+ "/property:GenerateFullPaths=true",
+ "/property:Configuration=Debug",
+ "/property:Regenerate=false",
+ "/property:SolutionDir=${workspaceFolder}/",
+ "/consoleloggerparameters:NoSummary"
+ ],
+ "problemMatcher": "$msCompile",
+ },
+ {
+ "label": "build create_device",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "build",
+ "${workspaceFolder}/samples/create_device/create_device.csproj",
+ "/property:GenerateFullPaths=true",
+ "/property:Configuration=Debug",
+ "/property:Regenerate=false",
+ "/property:SolutionDir=${workspaceFolder}/",
+ "/consoleloggerparameters:NoSummary"
+ ],
+ "problemMatcher": "$msCompile",
+ },
+ {
+ "label": "publish",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "publish",
+ "${workspaceFolder}/vk.generator/vk.generator.csproj",
+ "/property:GenerateFullPaths=true",
+ "/property:Configuration=Debug",
+ "/consoleloggerparameters:NoSummary"
+ ],
+ "problemMatcher": "$msCompile"
+ },
+ {
+ "label": "watch",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "watch",
+ "run",
+ "${workspaceFolder}/vk.generator/vk.generator.csproj",
+ "/property:GenerateFullPaths=true",
+ "/property:Configuration=Debug",
+ "/consoleloggerparameters:NoSummary"
+ ],
+ "problemMatcher": "$msCompile"
+ }
+ ]
+} \ No newline at end of file
diff --git a/Directory.Build.props b/Directory.Build.props
index a15e6fa..8df5522 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -11,5 +11,8 @@
<ToolsFramework>netcoreapp3.1</ToolsFramework>
+ <!--regenerate vk.net sources with vk.generator-->
+ <Regenerate>true</Regenerate>
+
</PropertyGroup>
</Project>
diff --git a/samples/Directory.Build.props b/samples/Directory.Build.props
new file mode 100644
index 0000000..1e82540
--- /dev/null
+++ b/samples/Directory.Build.props
@@ -0,0 +1,15 @@
+<Project>
+ <PropertyGroup>
+ <Deterministic>true</Deterministic>
+
+ <RepositoryUrl>https://github.com/jpbruyere/vk.net</RepositoryUrl>
+ <License>MIT</License>
+ <Authors>Jean-Philippe Bruyère</Authors>
+ <Copyright></Copyright>
+ <Company></Company>
+ </PropertyGroup>
+ <ItemGroup>
+ <ProjectReference Include="$(MSBuildThisFileDirectory)..\vulkan\vulkan.csproj" />
+ <Compile Include="$(MSBuildThisFileDirectory)common\*.cs"/>
+ </ItemGroup>
+</Project>
diff --git a/samples/common/Utils.cs b/samples/common/Utils.cs
new file mode 100644
index 0000000..929f602
--- /dev/null
+++ b/samples/common/Utils.cs
@@ -0,0 +1,19 @@
+// Copyright (c) 2019 Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
+using System;
+using System.Runtime.InteropServices;
+using System.Runtime.CompilerServices;
+using Vulkan;
+
+namespace samples {
+ public static class Utils {
+ public static void CheckResult (VkResult result, string msg = "Call failed",
+ [CallerMemberName] string caller = null,
+ [CallerFilePath] string sourceFilePath = "",
+ [CallerLineNumber] int sourceLineNumber = 0) {
+ if (result != VkResult.Success)
+ throw new InvalidOperationException ($"[{sourceFilePath}:{sourceLineNumber}->{caller}]{msg}: {result}");
+ }
+ }
+}
diff --git a/samples/create_device/Program.cs b/samples/create_device/Program.cs
new file mode 100644
index 0000000..d3ab3fb
--- /dev/null
+++ b/samples/create_device/Program.cs
@@ -0,0 +1,74 @@
+using System;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Text;
+using Vulkan;
+using static Vulkan.Vk;
+using static samples.Utils;
+using Version = Vulkan.Version;
+using System.Linq;
+
+namespace tests
+{
+ class Program
+ {
+
+ static bool TryGetPhysicalDevice (VkInstance inst, VkPhysicalDeviceType deviceType, out VkPhysicalDevice phy) {
+ CheckResult (vkEnumeratePhysicalDevices (inst, out uint phyCount, IntPtr.Zero));
+
+ VkPhysicalDevice[] phys = new VkPhysicalDevice[phyCount];
+
+ CheckResult (vkEnumeratePhysicalDevices (inst, out phyCount, phys.Pin()));
+
+ for (int i = 0; i < phys.Length; i++)
+ {
+ phy = phys[i];
+ vkGetPhysicalDeviceProperties (phy, out VkPhysicalDeviceProperties props);
+ if (props.deviceType == deviceType)
+ return true;
+ }
+ phy = default;
+ return false;
+ }
+ static void Main(string[] args)
+ {
+ VkInstance inst;
+
+ using (VkApplicationInfo ai = new VkApplicationInfo ()) {
+ using (VkInstanceCreateInfo ci = new VkInstanceCreateInfo {pApplicationInfo = ai}){
+ CheckResult (vkCreateInstance (ci, IntPtr.Zero, out inst));
+ }
+ }
+
+ Vk.LoadInstanceFunctionPointers (inst);
+
+ if (!TryGetPhysicalDevice (inst, VkPhysicalDeviceType.DiscreteGpu, out VkPhysicalDevice phy))
+ if (!TryGetPhysicalDevice (inst, VkPhysicalDeviceType.IntegratedGpu, out phy))
+ if (!TryGetPhysicalDevice (inst, VkPhysicalDeviceType.Cpu, out phy))
+ throw new Exception ("no suitable physical device found");
+
+ vkGetPhysicalDeviceQueueFamilyProperties (phy, out uint queueFamilyCount, IntPtr.Zero);
+ VkQueueFamilyProperties[] phys = new VkQueueFamilyProperties[queueFamilyCount];
+ vkGetPhysicalDeviceQueueFamilyProperties (phy, out queueFamilyCount, phys.Pin());
+ phys.Unpin();
+
+ uint qFamIndex = (uint)phys.Select((phy, index) => (phy, index))
+ .First (qfp=>qfp.phy.queueFlags.HasFlag (VkQueueFlags.Graphics)).index;
+
+ VkDevice dev = default;
+ float[] priorities = {0};
+ using (VkDeviceQueueCreateInfo qInfo = new VkDeviceQueueCreateInfo (qFamIndex,1,priorities)) {
+ using (VkDeviceCreateInfo deviceCreateInfo = new VkDeviceCreateInfo () {
+ pQueueCreateInfos = qInfo
+ }) {
+ CheckResult (vkCreateDevice (phy, deviceCreateInfo, IntPtr.Zero, out dev));
+ }
+ }
+ vkGetDeviceQueue (dev, qFamIndex, 0, out VkQueue gQ);
+
+ vkDestroyDevice (dev, IntPtr.Zero);
+
+ vkDestroyInstance (inst, IntPtr.Zero);
+ }
+ }
+}
diff --git a/tests/tests.csproj b/samples/create_device/create_device.csproj
index ed261c9..c73e0d1 100644
--- a/tests/tests.csproj
+++ b/samples/create_device/create_device.csproj
@@ -5,7 +5,4 @@
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
- <ItemGroup>
- <ProjectReference Include="..\vulkan\vulkan.csproj" />
- </ItemGroup>
</Project>
diff --git a/samples/create_instance/Program.cs b/samples/create_instance/Program.cs
new file mode 100644
index 0000000..474ae72
--- /dev/null
+++ b/samples/create_instance/Program.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Text;
+using Vulkan;
+using static Vulkan.Vk;
+using Version = Vulkan.Version;
+
+namespace tests
+{
+ class Program
+ {
+
+ static void Main(string[] args)
+ {
+ VkInstance instance;
+
+ using (VkApplicationInfo ai = new VkApplicationInfo()) {
+ using (VkInstanceCreateInfo ci = new VkInstanceCreateInfo {pApplicationInfo = ai}){
+ Console.WriteLine (vkCreateInstance (ci, IntPtr.Zero, out instance));
+ }
+ }
+
+ vkDestroyInstance (instance, IntPtr.Zero);
+ }
+ }
+}
diff --git a/samples/create_instance/create_instance.csproj b/samples/create_instance/create_instance.csproj
new file mode 100644
index 0000000..c73e0d1
--- /dev/null
+++ b/samples/create_instance/create_instance.csproj
@@ -0,0 +1,8 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+ <PropertyGroup>
+ <OutputType>Exe</OutputType>
+ <TargetFramework>netcoreapp3.1</TargetFramework>
+ </PropertyGroup>
+
+</Project>
diff --git a/samples/select_physical_dev/Program.cs b/samples/select_physical_dev/Program.cs
new file mode 100644
index 0000000..3258489
--- /dev/null
+++ b/samples/select_physical_dev/Program.cs
@@ -0,0 +1,46 @@
+using System;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Text;
+using Vulkan;
+using static Vulkan.Vk;
+using static samples.Utils;
+using Version = Vulkan.Version;
+
+namespace tests
+{
+ class Program
+ {
+
+ static void Main(string[] args)
+ {
+ VkInstance inst;
+
+ using (VkApplicationInfo ai = new VkApplicationInfo ()) {
+ using (VkInstanceCreateInfo ci = new VkInstanceCreateInfo {pApplicationInfo = ai}){
+ CheckResult (vkCreateInstance (ci, IntPtr.Zero, out inst));
+ }
+ }
+
+ Vk.LoadInstanceFunctionPointers (inst);
+
+ CheckResult (vkEnumeratePhysicalDevices (inst, out uint phyCount, IntPtr.Zero));
+
+ VkPhysicalDevice[] phys = new VkPhysicalDevice[phyCount];
+
+ CheckResult (vkEnumeratePhysicalDevices (inst, out phyCount, phys.Pin()));
+
+ for (int i = 0; i < phys.Length; i++)
+ {
+ vkGetPhysicalDeviceProperties (phys[i], out VkPhysicalDeviceProperties props);
+ Console.WriteLine ($"{props.deviceName}");
+ Console.WriteLine ($"\tdeviceType: {props.deviceType,20}");
+ Console.WriteLine ($"\tapiVersion: {(Version)props.apiVersion,20}");
+ Console.WriteLine ($"\tdriverVersion:{props.driverVersion,20}");
+ Console.WriteLine ($"\tvendorID: {props.vendorID,20}");
+ }
+
+ vkDestroyInstance (inst, IntPtr.Zero);
+ }
+ }
+}
diff --git a/samples/select_physical_dev/select_physical_dev.csproj b/samples/select_physical_dev/select_physical_dev.csproj
new file mode 100644
index 0000000..c73e0d1
--- /dev/null
+++ b/samples/select_physical_dev/select_physical_dev.csproj
@@ -0,0 +1,8 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+ <PropertyGroup>
+ <OutputType>Exe</OutputType>
+ <TargetFramework>netcoreapp3.1</TargetFramework>
+ </PropertyGroup>
+
+</Project>
diff --git a/tests/Program.cs b/tests/Program.cs
deleted file mode 100644
index 1e431fd..0000000
--- a/tests/Program.cs
+++ /dev/null
@@ -1,44 +0,0 @@
-using System;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-using System.Text;
-using Vulkan;
-using static Vulkan.Vk;
-using Version = Vulkan.Version;
-
-namespace tests
-{
- class Program
- {
-
- static void Main(string[] args)
- {
- VkInstance instance;
-
- using (VkApplicationInfo ai = new VkApplicationInfo(
- new Version (1,0,0),
- new Version (1,0,0),
- new Version (1,2,0)) {
- pApplicationName = "new application name"
- }){
-
-
- VkClearColorValue clear = new VkClearColorValue(255,0,0);
- clear.floats[2] = 210;
- using (VkInstanceCreateInfo ci = new VkInstanceCreateInfo() {
- pApplicationInfo = ai}){
-
- VkResult res = vkCreateInstance (ci, IntPtr.Zero, out instance);
- if (res != VkResult.Success) {
- Console.WriteLine ($"Error: {res}");
- return;
- }else
- Console.WriteLine ($"Success: {res}");
-
- }
- }
-
- vkDestroyInstance (instance, IntPtr.Zero);
- }
- }
-}
diff --git a/vk.net.sln b/vk.net.sln
index 19d2509..3f95b06 100644
--- a/vk.net.sln
+++ b/vk.net.sln
@@ -10,10 +10,13 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "vulkan", "vulkan\vulkan.csp
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "vk.rewrite", "vk.rewrite\vk.rewrite.csproj", "{5EC0F6C6-74C9-4509-8AC8-FAE3574AF5C7}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "tests", "tests\tests.csproj", "{6EA93907-C477-45D7-BB68-50940821B1F1}"
- ProjectSection(ProjectDependencies) = postProject
- {37D01BE5-5FE2-4742-BD5B-5D2C25FCF146} = {37D01BE5-5FE2-4742-BD5B-5D2C25FCF146}
- EndProjectSection
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{6A28E31F-9B2F-43FC-861F-650268129778}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "create_instance", "samples\create_instance\create_instance.csproj", "{D9431252-E53B-4721-AA21-19C7F498C434}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "select_physical_dev", "samples\select_physical_dev\select_physical_dev.csproj", "{F8B5A974-99FC-48C2-8C00-15C617D3DF81}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "create_device", "samples\create_device\create_device.csproj", "{C61F109B-E6C4-424D-8660-0A38DC6ECB66}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -33,12 +36,23 @@ Global
{5EC0F6C6-74C9-4509-8AC8-FAE3574AF5C7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5EC0F6C6-74C9-4509-8AC8-FAE3574AF5C7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5EC0F6C6-74C9-4509-8AC8-FAE3574AF5C7}.Release|Any CPU.Build.0 = Release|Any CPU
- {6EA93907-C477-45D7-BB68-50940821B1F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6EA93907-C477-45D7-BB68-50940821B1F1}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6EA93907-C477-45D7-BB68-50940821B1F1}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6EA93907-C477-45D7-BB68-50940821B1F1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D9431252-E53B-4721-AA21-19C7F498C434}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D9431252-E53B-4721-AA21-19C7F498C434}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D9431252-E53B-4721-AA21-19C7F498C434}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D9431252-E53B-4721-AA21-19C7F498C434}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F8B5A974-99FC-48C2-8C00-15C617D3DF81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F8B5A974-99FC-48C2-8C00-15C617D3DF81}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F8B5A974-99FC-48C2-8C00-15C617D3DF81}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F8B5A974-99FC-48C2-8C00-15C617D3DF81}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C61F109B-E6C4-424D-8660-0A38DC6ECB66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C61F109B-E6C4-424D-8660-0A38DC6ECB66}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C61F109B-E6C4-424D-8660-0A38DC6ECB66}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C61F109B-E6C4-424D-8660-0A38DC6ECB66}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
+ {D9431252-E53B-4721-AA21-19C7F498C434} = {6A28E31F-9B2F-43FC-861F-650268129778}
+ {F8B5A974-99FC-48C2-8C00-15C617D3DF81} = {6A28E31F-9B2F-43FC-861F-650268129778}
+ {C61F109B-E6C4-424D-8660-0A38DC6ECB66} = {6A28E31F-9B2F-43FC-861F-650268129778}
EndGlobalSection
GlobalSection(MonoDevelopProperties) = preSolution
Policies = $0
diff --git a/vulkan/Version.cs b/vulkan/Version.cs
index ab73511..b5780fd 100644
--- a/vulkan/Version.cs
+++ b/vulkan/Version.cs
@@ -17,5 +17,6 @@
public static implicit operator uint(Version version) => version.value;
public static implicit operator Version (uint version) => new Version(version);
+ public override string ToString() => $"{Major}.{Minor}.{Patch}";
}
} \ No newline at end of file
diff --git a/vulkan/vulkan.csproj b/vulkan/vulkan.csproj
index 0eaabbf..545cd0e 100644
--- a/vulkan/vulkan.csproj
+++ b/vulkan/vulkan.csproj
@@ -39,12 +39,12 @@
<Target Name="generate" BeforeTargets="BeforeCompile">
<MakeDir Directories="$(SolutionDir)build/generated" />
- <Exec Condition="$(OS) == 'Windows_NT'"
+ <Exec Condition="$(OS) == 'Windows_NT' AND '$(Regenerate)'=='true' "
Command="$(SolutionDir)vk.generator/bin/$(Configuration)/$(ToolsFramework)/vk.generator.exe %(SpecFile.Identity)"
WorkingDirectory="$(SolutionDir)">
<Output TaskParameter="ConsoleOutput" PropertyName="OutputOfExec" />
</Exec>
- <Exec Condition="$(OS) != 'Windows_NT'"
+ <Exec Condition="$(OS) != 'Windows_NT' AND '$(Regenerate)'=='true' "
Command="$(SolutionDir)vk.generator/bin/$(Configuration)/$(ToolsFramework)/vk.generator %(SpecFile.Identity)"
WorkingDirectory="$(SolutionDir)">
<Output TaskParameter="ConsoleOutput" PropertyName="OutputOfExec" />
@@ -54,7 +54,7 @@
</CreateItem>
</Target>
- <Target Name="rewrite" AfterTargets="CoreBuild">
+ <Target Name="rewrite" AfterTargets="CoreBuild" >
<Exec Condition="$(OS) == 'Windows_NT'" ConsoleToMSBuild="true" EchoOff="true"
Command="$(SolutionDir)vk.rewrite/bin/$(Configuration)/$(ToolsFramework)/vk.rewrite.exe $(TargetPath)" >
<Output TaskParameter="ConsoleOutput" PropertyName="OutputOfExec" />