diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f071423177..5b8aabe34a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -27,6 +27,8 @@ jobs: # skip Clean, Restore, and Compile as this will build the affect the whole solution. # dotnet test will compile the necessary projects for testing only. run: nuke Test --skip Clean Restore Compile + - name: Validation Checks + run: nuke ValidateSolution - name: Pack # TODO build native mixins such as BuildLibSilkDroid run: nuke Pack --configuration Release --msbuild-properties VersionSuffix=build${{ github.run_number }}.0 ContinuousIntegrationBuild=true --feature-sets Android iOS diff --git a/Silk.NET.sln b/Silk.NET.sln index 6c814337d8..62eeb1a459 100644 --- a/Silk.NET.sln +++ b/Silk.NET.sln @@ -1,4 +1,4 @@ - + Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30517.126 @@ -394,6 +394,56 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ImGuiVulkan", "src\Lab\Expe EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.OpenAL.Soft.Native", "src\Native\Silk.NET.OpenAL.Soft.Native\Silk.NET.OpenAL.Soft.Native.csproj", "{0DF430D1-39E6-46F5-AE58-B6DE0BD3F72B}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.OpenXR.Extensions.EPIC", "src\OpenXR\Extensions\Silk.NET.OpenXR.Extensions.EPIC\Silk.NET.OpenXR.Extensions.EPIC.csproj", "{591836FE-0DAC-48A5-86AB-4C317A6B009A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.OpenXR.Extensions.EXTX", "src\OpenXR\Extensions\Silk.NET.OpenXR.Extensions.EXTX\Silk.NET.OpenXR.Extensions.EXTX.csproj", "{960CCDC0-5327-4DD6-A4FE-90466B27F9C9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.OpenXR.Extensions.FB", "src\OpenXR\Extensions\Silk.NET.OpenXR.Extensions.FB\Silk.NET.OpenXR.Extensions.FB.csproj", "{749B0BAE-63F0-4B22-A883-CD521F725DAA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.OpenXR.Extensions.HUAWEI", "src\OpenXR\Extensions\Silk.NET.OpenXR.Extensions.HUAWEI\Silk.NET.OpenXR.Extensions.HUAWEI.csproj", "{A1D90A8D-B1FE-463A-884E-AEC201FB75EF}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.OpenXR.Extensions.HTC", "src\OpenXR\Extensions\Silk.NET.OpenXR.Extensions.HTC\Silk.NET.OpenXR.Extensions.HTC.csproj", "{60AFD661-4BE5-4040-896A-CE2EA95F98B7}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.OpenXR.Extensions.LUNARG", "src\OpenXR\Extensions\Silk.NET.OpenXR.Extensions.LUNARG\Silk.NET.OpenXR.Extensions.LUNARG.csproj", "{71FF6EB5-2AA9-4B6B-8C7C-CE9AC889A50E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.OpenXR.Extensions.MAGICLEAP", "src\OpenXR\Extensions\Silk.NET.OpenXR.Extensions.MAGICLEAP\Silk.NET.OpenXR.Extensions.MAGICLEAP.csproj", "{AF8E3CF5-EEAD-477C-80DF-E0CF576D5A73}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.OpenXR.Extensions.ML", "src\OpenXR\Extensions\Silk.NET.OpenXR.Extensions.ML\Silk.NET.OpenXR.Extensions.ML.csproj", "{4CFC3947-9763-4FD1-869B-EEDFA7EB53AC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.OpenXR.Extensions.MND", "src\OpenXR\Extensions\Silk.NET.OpenXR.Extensions.MND\Silk.NET.OpenXR.Extensions.MND.csproj", "{3076E116-F160-4C5D-A3D9-B3B51845675C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.OpenXR.Extensions.MNDX", "src\OpenXR\Extensions\Silk.NET.OpenXR.Extensions.MNDX\Silk.NET.OpenXR.Extensions.MNDX.csproj", "{A1890199-5E68-4AF3-A2AD-21A1D84AF22B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.OpenXR.Extensions.OCULUS", "src\OpenXR\Extensions\Silk.NET.OpenXR.Extensions.OCULUS\Silk.NET.OpenXR.Extensions.OCULUS.csproj", "{358A6DC8-866C-4C8D-8F41-682F6683E683}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.OpenXR.Extensions.ULTRALEAP", "src\OpenXR\Extensions\Silk.NET.OpenXR.Extensions.ULTRALEAP\Silk.NET.OpenXR.Extensions.ULTRALEAP.csproj", "{CBE8E2D0-B1DE-422D-BF66-7FF02AE81CB9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.OpenXR.Extensions.VALVE", "src\OpenXR\Extensions\Silk.NET.OpenXR.Extensions.VALVE\Silk.NET.OpenXR.Extensions.VALVE.csproj", "{5C59C1E1-6392-41AA-AD73-6DA34B1B369B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.OpenXR.Extensions.VARJO", "src\OpenXR\Extensions\Silk.NET.OpenXR.Extensions.VARJO\Silk.NET.OpenXR.Extensions.VARJO.csproj", "{51868FC9-C052-4C2D-98F9-10379AAD2671}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.OpenCL.Extensions.LOADER", "src\OpenCL\Extensions\Silk.NET.OpenCL.Extensions.LOADER\Silk.NET.OpenCL.Extensions.LOADER.csproj", "{23172004-FF6B-45D8-9653-944CECE741E1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.Vulkan.Extensions.ARM", "src\Vulkan\Extensions\Silk.NET.Vulkan.Extensions.ARM\Silk.NET.Vulkan.Extensions.ARM.csproj", "{04E05BC4-5769-4FC1-BBA0-06EC9D8E3130}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.Vulkan.Extensions.BRCM", "src\Vulkan\Extensions\Silk.NET.Vulkan.Extensions.BRCM\Silk.NET.Vulkan.Extensions.BRCM.csproj", "{98C25360-F03A-4929-959B-C80A48D21FF2}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.Vulkan.Extensions.IMG", "src\Vulkan\Extensions\Silk.NET.Vulkan.Extensions.IMG\Silk.NET.Vulkan.Extensions.IMG.csproj", "{FD32964B-4144-43CD-B313-2A5DD6A05DEA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.Vulkan.Extensions.MESA", "src\Vulkan\Extensions\Silk.NET.Vulkan.Extensions.MESA\Silk.NET.Vulkan.Extensions.MESA.csproj", "{859A77A8-73F0-447B-9076-B42D5CA3CA33}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.Vulkan.Extensions.QCOM", "src\Vulkan\Extensions\Silk.NET.Vulkan.Extensions.QCOM\Silk.NET.Vulkan.Extensions.QCOM.csproj", "{92FCD7CC-52BE-487F-B990-1B5CACF9D40F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.Vulkan.Extensions.HUAWEI", "src\Vulkan\Extensions\Silk.NET.Vulkan.Extensions.HUAWEI\Silk.NET.Vulkan.Extensions.HUAWEI.csproj", "{64E177FC-38AA-45AE-B748-419E91F95EC7}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.Vulkan.Extensions.QNX", "src\Vulkan\Extensions\Silk.NET.Vulkan.Extensions.QNX\Silk.NET.Vulkan.Extensions.QNX.csproj", "{F16B4AE5-F68F-42A2-8AB5-029282032CE0}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.Vulkan.Extensions.VALVE", "src\Vulkan\Extensions\Silk.NET.Vulkan.Extensions.VALVE\Silk.NET.Vulkan.Extensions.VALVE.csproj", "{AB59F09A-9BD9-4CBB-8497-87B768C7C949}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.Vulkan.Extensions.JUICE", "src\Vulkan\Extensions\Silk.NET.Vulkan.Extensions.JUICE\Silk.NET.Vulkan.Extensions.JUICE.csproj", "{86B6B40E-EA8F-47F0-9D1F-FDBAFBE2842C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.Vulkan.Extensions.FB", "src\Vulkan\Extensions\Silk.NET.Vulkan.Extensions.FB\Silk.NET.Vulkan.Extensions.FB.csproj", "{D1DD841D-9F34-47A6-91EB-A8632D577BD7}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -2311,6 +2361,306 @@ Global {0DF430D1-39E6-46F5-AE58-B6DE0BD3F72B}.Release|x64.Build.0 = Release|Any CPU {0DF430D1-39E6-46F5-AE58-B6DE0BD3F72B}.Release|x86.ActiveCfg = Release|Any CPU {0DF430D1-39E6-46F5-AE58-B6DE0BD3F72B}.Release|x86.Build.0 = Release|Any CPU + {591836FE-0DAC-48A5-86AB-4C317A6B009A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {591836FE-0DAC-48A5-86AB-4C317A6B009A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {591836FE-0DAC-48A5-86AB-4C317A6B009A}.Debug|x64.ActiveCfg = Debug|Any CPU + {591836FE-0DAC-48A5-86AB-4C317A6B009A}.Debug|x64.Build.0 = Debug|Any CPU + {591836FE-0DAC-48A5-86AB-4C317A6B009A}.Debug|x86.ActiveCfg = Debug|Any CPU + {591836FE-0DAC-48A5-86AB-4C317A6B009A}.Debug|x86.Build.0 = Debug|Any CPU + {591836FE-0DAC-48A5-86AB-4C317A6B009A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {591836FE-0DAC-48A5-86AB-4C317A6B009A}.Release|Any CPU.Build.0 = Release|Any CPU + {591836FE-0DAC-48A5-86AB-4C317A6B009A}.Release|x64.ActiveCfg = Release|Any CPU + {591836FE-0DAC-48A5-86AB-4C317A6B009A}.Release|x64.Build.0 = Release|Any CPU + {591836FE-0DAC-48A5-86AB-4C317A6B009A}.Release|x86.ActiveCfg = Release|Any CPU + {591836FE-0DAC-48A5-86AB-4C317A6B009A}.Release|x86.Build.0 = Release|Any CPU + {960CCDC0-5327-4DD6-A4FE-90466B27F9C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {960CCDC0-5327-4DD6-A4FE-90466B27F9C9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {960CCDC0-5327-4DD6-A4FE-90466B27F9C9}.Debug|x64.ActiveCfg = Debug|Any CPU + {960CCDC0-5327-4DD6-A4FE-90466B27F9C9}.Debug|x64.Build.0 = Debug|Any CPU + {960CCDC0-5327-4DD6-A4FE-90466B27F9C9}.Debug|x86.ActiveCfg = Debug|Any CPU + {960CCDC0-5327-4DD6-A4FE-90466B27F9C9}.Debug|x86.Build.0 = Debug|Any CPU + {960CCDC0-5327-4DD6-A4FE-90466B27F9C9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {960CCDC0-5327-4DD6-A4FE-90466B27F9C9}.Release|Any CPU.Build.0 = Release|Any CPU + {960CCDC0-5327-4DD6-A4FE-90466B27F9C9}.Release|x64.ActiveCfg = Release|Any CPU + {960CCDC0-5327-4DD6-A4FE-90466B27F9C9}.Release|x64.Build.0 = Release|Any CPU + {960CCDC0-5327-4DD6-A4FE-90466B27F9C9}.Release|x86.ActiveCfg = Release|Any CPU + {960CCDC0-5327-4DD6-A4FE-90466B27F9C9}.Release|x86.Build.0 = Release|Any CPU + {749B0BAE-63F0-4B22-A883-CD521F725DAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {749B0BAE-63F0-4B22-A883-CD521F725DAA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {749B0BAE-63F0-4B22-A883-CD521F725DAA}.Debug|x64.ActiveCfg = Debug|Any CPU + {749B0BAE-63F0-4B22-A883-CD521F725DAA}.Debug|x64.Build.0 = Debug|Any CPU + {749B0BAE-63F0-4B22-A883-CD521F725DAA}.Debug|x86.ActiveCfg = Debug|Any CPU + {749B0BAE-63F0-4B22-A883-CD521F725DAA}.Debug|x86.Build.0 = Debug|Any CPU + {749B0BAE-63F0-4B22-A883-CD521F725DAA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {749B0BAE-63F0-4B22-A883-CD521F725DAA}.Release|Any CPU.Build.0 = Release|Any CPU + {749B0BAE-63F0-4B22-A883-CD521F725DAA}.Release|x64.ActiveCfg = Release|Any CPU + {749B0BAE-63F0-4B22-A883-CD521F725DAA}.Release|x64.Build.0 = Release|Any CPU + {749B0BAE-63F0-4B22-A883-CD521F725DAA}.Release|x86.ActiveCfg = Release|Any CPU + {749B0BAE-63F0-4B22-A883-CD521F725DAA}.Release|x86.Build.0 = Release|Any CPU + {A1D90A8D-B1FE-463A-884E-AEC201FB75EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A1D90A8D-B1FE-463A-884E-AEC201FB75EF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A1D90A8D-B1FE-463A-884E-AEC201FB75EF}.Debug|x64.ActiveCfg = Debug|Any CPU + {A1D90A8D-B1FE-463A-884E-AEC201FB75EF}.Debug|x64.Build.0 = Debug|Any CPU + {A1D90A8D-B1FE-463A-884E-AEC201FB75EF}.Debug|x86.ActiveCfg = Debug|Any CPU + {A1D90A8D-B1FE-463A-884E-AEC201FB75EF}.Debug|x86.Build.0 = Debug|Any CPU + {A1D90A8D-B1FE-463A-884E-AEC201FB75EF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A1D90A8D-B1FE-463A-884E-AEC201FB75EF}.Release|Any CPU.Build.0 = Release|Any CPU + {A1D90A8D-B1FE-463A-884E-AEC201FB75EF}.Release|x64.ActiveCfg = Release|Any CPU + {A1D90A8D-B1FE-463A-884E-AEC201FB75EF}.Release|x64.Build.0 = Release|Any CPU + {A1D90A8D-B1FE-463A-884E-AEC201FB75EF}.Release|x86.ActiveCfg = Release|Any CPU + {A1D90A8D-B1FE-463A-884E-AEC201FB75EF}.Release|x86.Build.0 = Release|Any CPU + {60AFD661-4BE5-4040-896A-CE2EA95F98B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {60AFD661-4BE5-4040-896A-CE2EA95F98B7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {60AFD661-4BE5-4040-896A-CE2EA95F98B7}.Debug|x64.ActiveCfg = Debug|Any CPU + {60AFD661-4BE5-4040-896A-CE2EA95F98B7}.Debug|x64.Build.0 = Debug|Any CPU + {60AFD661-4BE5-4040-896A-CE2EA95F98B7}.Debug|x86.ActiveCfg = Debug|Any CPU + {60AFD661-4BE5-4040-896A-CE2EA95F98B7}.Debug|x86.Build.0 = Debug|Any CPU + {60AFD661-4BE5-4040-896A-CE2EA95F98B7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {60AFD661-4BE5-4040-896A-CE2EA95F98B7}.Release|Any CPU.Build.0 = Release|Any CPU + {60AFD661-4BE5-4040-896A-CE2EA95F98B7}.Release|x64.ActiveCfg = Release|Any CPU + {60AFD661-4BE5-4040-896A-CE2EA95F98B7}.Release|x64.Build.0 = Release|Any CPU + {60AFD661-4BE5-4040-896A-CE2EA95F98B7}.Release|x86.ActiveCfg = Release|Any CPU + {60AFD661-4BE5-4040-896A-CE2EA95F98B7}.Release|x86.Build.0 = Release|Any CPU + {71FF6EB5-2AA9-4B6B-8C7C-CE9AC889A50E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {71FF6EB5-2AA9-4B6B-8C7C-CE9AC889A50E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {71FF6EB5-2AA9-4B6B-8C7C-CE9AC889A50E}.Debug|x64.ActiveCfg = Debug|Any CPU + {71FF6EB5-2AA9-4B6B-8C7C-CE9AC889A50E}.Debug|x64.Build.0 = Debug|Any CPU + {71FF6EB5-2AA9-4B6B-8C7C-CE9AC889A50E}.Debug|x86.ActiveCfg = Debug|Any CPU + {71FF6EB5-2AA9-4B6B-8C7C-CE9AC889A50E}.Debug|x86.Build.0 = Debug|Any CPU + {71FF6EB5-2AA9-4B6B-8C7C-CE9AC889A50E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {71FF6EB5-2AA9-4B6B-8C7C-CE9AC889A50E}.Release|Any CPU.Build.0 = Release|Any CPU + {71FF6EB5-2AA9-4B6B-8C7C-CE9AC889A50E}.Release|x64.ActiveCfg = Release|Any CPU + {71FF6EB5-2AA9-4B6B-8C7C-CE9AC889A50E}.Release|x64.Build.0 = Release|Any CPU + {71FF6EB5-2AA9-4B6B-8C7C-CE9AC889A50E}.Release|x86.ActiveCfg = Release|Any CPU + {71FF6EB5-2AA9-4B6B-8C7C-CE9AC889A50E}.Release|x86.Build.0 = Release|Any CPU + {AF8E3CF5-EEAD-477C-80DF-E0CF576D5A73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AF8E3CF5-EEAD-477C-80DF-E0CF576D5A73}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AF8E3CF5-EEAD-477C-80DF-E0CF576D5A73}.Debug|x64.ActiveCfg = Debug|Any CPU + {AF8E3CF5-EEAD-477C-80DF-E0CF576D5A73}.Debug|x64.Build.0 = Debug|Any CPU + {AF8E3CF5-EEAD-477C-80DF-E0CF576D5A73}.Debug|x86.ActiveCfg = Debug|Any CPU + {AF8E3CF5-EEAD-477C-80DF-E0CF576D5A73}.Debug|x86.Build.0 = Debug|Any CPU + {AF8E3CF5-EEAD-477C-80DF-E0CF576D5A73}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AF8E3CF5-EEAD-477C-80DF-E0CF576D5A73}.Release|Any CPU.Build.0 = Release|Any CPU + {AF8E3CF5-EEAD-477C-80DF-E0CF576D5A73}.Release|x64.ActiveCfg = Release|Any CPU + {AF8E3CF5-EEAD-477C-80DF-E0CF576D5A73}.Release|x64.Build.0 = Release|Any CPU + {AF8E3CF5-EEAD-477C-80DF-E0CF576D5A73}.Release|x86.ActiveCfg = Release|Any CPU + {AF8E3CF5-EEAD-477C-80DF-E0CF576D5A73}.Release|x86.Build.0 = Release|Any CPU + {4CFC3947-9763-4FD1-869B-EEDFA7EB53AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4CFC3947-9763-4FD1-869B-EEDFA7EB53AC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4CFC3947-9763-4FD1-869B-EEDFA7EB53AC}.Debug|x64.ActiveCfg = Debug|Any CPU + {4CFC3947-9763-4FD1-869B-EEDFA7EB53AC}.Debug|x64.Build.0 = Debug|Any CPU + {4CFC3947-9763-4FD1-869B-EEDFA7EB53AC}.Debug|x86.ActiveCfg = Debug|Any CPU + {4CFC3947-9763-4FD1-869B-EEDFA7EB53AC}.Debug|x86.Build.0 = Debug|Any CPU + {4CFC3947-9763-4FD1-869B-EEDFA7EB53AC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4CFC3947-9763-4FD1-869B-EEDFA7EB53AC}.Release|Any CPU.Build.0 = Release|Any CPU + {4CFC3947-9763-4FD1-869B-EEDFA7EB53AC}.Release|x64.ActiveCfg = Release|Any CPU + {4CFC3947-9763-4FD1-869B-EEDFA7EB53AC}.Release|x64.Build.0 = Release|Any CPU + {4CFC3947-9763-4FD1-869B-EEDFA7EB53AC}.Release|x86.ActiveCfg = Release|Any CPU + {4CFC3947-9763-4FD1-869B-EEDFA7EB53AC}.Release|x86.Build.0 = Release|Any CPU + {3076E116-F160-4C5D-A3D9-B3B51845675C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3076E116-F160-4C5D-A3D9-B3B51845675C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3076E116-F160-4C5D-A3D9-B3B51845675C}.Debug|x64.ActiveCfg = Debug|Any CPU + {3076E116-F160-4C5D-A3D9-B3B51845675C}.Debug|x64.Build.0 = Debug|Any CPU + {3076E116-F160-4C5D-A3D9-B3B51845675C}.Debug|x86.ActiveCfg = Debug|Any CPU + {3076E116-F160-4C5D-A3D9-B3B51845675C}.Debug|x86.Build.0 = Debug|Any CPU + {3076E116-F160-4C5D-A3D9-B3B51845675C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3076E116-F160-4C5D-A3D9-B3B51845675C}.Release|Any CPU.Build.0 = Release|Any CPU + {3076E116-F160-4C5D-A3D9-B3B51845675C}.Release|x64.ActiveCfg = Release|Any CPU + {3076E116-F160-4C5D-A3D9-B3B51845675C}.Release|x64.Build.0 = Release|Any CPU + {3076E116-F160-4C5D-A3D9-B3B51845675C}.Release|x86.ActiveCfg = Release|Any CPU + {3076E116-F160-4C5D-A3D9-B3B51845675C}.Release|x86.Build.0 = Release|Any CPU + {A1890199-5E68-4AF3-A2AD-21A1D84AF22B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A1890199-5E68-4AF3-A2AD-21A1D84AF22B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A1890199-5E68-4AF3-A2AD-21A1D84AF22B}.Debug|x64.ActiveCfg = Debug|Any CPU + {A1890199-5E68-4AF3-A2AD-21A1D84AF22B}.Debug|x64.Build.0 = Debug|Any CPU + {A1890199-5E68-4AF3-A2AD-21A1D84AF22B}.Debug|x86.ActiveCfg = Debug|Any CPU + {A1890199-5E68-4AF3-A2AD-21A1D84AF22B}.Debug|x86.Build.0 = Debug|Any CPU + {A1890199-5E68-4AF3-A2AD-21A1D84AF22B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A1890199-5E68-4AF3-A2AD-21A1D84AF22B}.Release|Any CPU.Build.0 = Release|Any CPU + {A1890199-5E68-4AF3-A2AD-21A1D84AF22B}.Release|x64.ActiveCfg = Release|Any CPU + {A1890199-5E68-4AF3-A2AD-21A1D84AF22B}.Release|x64.Build.0 = Release|Any CPU + {A1890199-5E68-4AF3-A2AD-21A1D84AF22B}.Release|x86.ActiveCfg = Release|Any CPU + {A1890199-5E68-4AF3-A2AD-21A1D84AF22B}.Release|x86.Build.0 = Release|Any CPU + {358A6DC8-866C-4C8D-8F41-682F6683E683}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {358A6DC8-866C-4C8D-8F41-682F6683E683}.Debug|Any CPU.Build.0 = Debug|Any CPU + {358A6DC8-866C-4C8D-8F41-682F6683E683}.Debug|x64.ActiveCfg = Debug|Any CPU + {358A6DC8-866C-4C8D-8F41-682F6683E683}.Debug|x64.Build.0 = Debug|Any CPU + {358A6DC8-866C-4C8D-8F41-682F6683E683}.Debug|x86.ActiveCfg = Debug|Any CPU + {358A6DC8-866C-4C8D-8F41-682F6683E683}.Debug|x86.Build.0 = Debug|Any CPU + {358A6DC8-866C-4C8D-8F41-682F6683E683}.Release|Any CPU.ActiveCfg = Release|Any CPU + {358A6DC8-866C-4C8D-8F41-682F6683E683}.Release|Any CPU.Build.0 = Release|Any CPU + {358A6DC8-866C-4C8D-8F41-682F6683E683}.Release|x64.ActiveCfg = Release|Any CPU + {358A6DC8-866C-4C8D-8F41-682F6683E683}.Release|x64.Build.0 = Release|Any CPU + {358A6DC8-866C-4C8D-8F41-682F6683E683}.Release|x86.ActiveCfg = Release|Any CPU + {358A6DC8-866C-4C8D-8F41-682F6683E683}.Release|x86.Build.0 = Release|Any CPU + {CBE8E2D0-B1DE-422D-BF66-7FF02AE81CB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CBE8E2D0-B1DE-422D-BF66-7FF02AE81CB9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CBE8E2D0-B1DE-422D-BF66-7FF02AE81CB9}.Debug|x64.ActiveCfg = Debug|Any CPU + {CBE8E2D0-B1DE-422D-BF66-7FF02AE81CB9}.Debug|x64.Build.0 = Debug|Any CPU + {CBE8E2D0-B1DE-422D-BF66-7FF02AE81CB9}.Debug|x86.ActiveCfg = Debug|Any CPU + {CBE8E2D0-B1DE-422D-BF66-7FF02AE81CB9}.Debug|x86.Build.0 = Debug|Any CPU + {CBE8E2D0-B1DE-422D-BF66-7FF02AE81CB9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CBE8E2D0-B1DE-422D-BF66-7FF02AE81CB9}.Release|Any CPU.Build.0 = Release|Any CPU + {CBE8E2D0-B1DE-422D-BF66-7FF02AE81CB9}.Release|x64.ActiveCfg = Release|Any CPU + {CBE8E2D0-B1DE-422D-BF66-7FF02AE81CB9}.Release|x64.Build.0 = Release|Any CPU + {CBE8E2D0-B1DE-422D-BF66-7FF02AE81CB9}.Release|x86.ActiveCfg = Release|Any CPU + {CBE8E2D0-B1DE-422D-BF66-7FF02AE81CB9}.Release|x86.Build.0 = Release|Any CPU + {5C59C1E1-6392-41AA-AD73-6DA34B1B369B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5C59C1E1-6392-41AA-AD73-6DA34B1B369B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5C59C1E1-6392-41AA-AD73-6DA34B1B369B}.Debug|x64.ActiveCfg = Debug|Any CPU + {5C59C1E1-6392-41AA-AD73-6DA34B1B369B}.Debug|x64.Build.0 = Debug|Any CPU + {5C59C1E1-6392-41AA-AD73-6DA34B1B369B}.Debug|x86.ActiveCfg = Debug|Any CPU + {5C59C1E1-6392-41AA-AD73-6DA34B1B369B}.Debug|x86.Build.0 = Debug|Any CPU + {5C59C1E1-6392-41AA-AD73-6DA34B1B369B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5C59C1E1-6392-41AA-AD73-6DA34B1B369B}.Release|Any CPU.Build.0 = Release|Any CPU + {5C59C1E1-6392-41AA-AD73-6DA34B1B369B}.Release|x64.ActiveCfg = Release|Any CPU + {5C59C1E1-6392-41AA-AD73-6DA34B1B369B}.Release|x64.Build.0 = Release|Any CPU + {5C59C1E1-6392-41AA-AD73-6DA34B1B369B}.Release|x86.ActiveCfg = Release|Any CPU + {5C59C1E1-6392-41AA-AD73-6DA34B1B369B}.Release|x86.Build.0 = Release|Any CPU + {51868FC9-C052-4C2D-98F9-10379AAD2671}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {51868FC9-C052-4C2D-98F9-10379AAD2671}.Debug|Any CPU.Build.0 = Debug|Any CPU + {51868FC9-C052-4C2D-98F9-10379AAD2671}.Debug|x64.ActiveCfg = Debug|Any CPU + {51868FC9-C052-4C2D-98F9-10379AAD2671}.Debug|x64.Build.0 = Debug|Any CPU + {51868FC9-C052-4C2D-98F9-10379AAD2671}.Debug|x86.ActiveCfg = Debug|Any CPU + {51868FC9-C052-4C2D-98F9-10379AAD2671}.Debug|x86.Build.0 = Debug|Any CPU + {51868FC9-C052-4C2D-98F9-10379AAD2671}.Release|Any CPU.ActiveCfg = Release|Any CPU + {51868FC9-C052-4C2D-98F9-10379AAD2671}.Release|Any CPU.Build.0 = Release|Any CPU + {51868FC9-C052-4C2D-98F9-10379AAD2671}.Release|x64.ActiveCfg = Release|Any CPU + {51868FC9-C052-4C2D-98F9-10379AAD2671}.Release|x64.Build.0 = Release|Any CPU + {51868FC9-C052-4C2D-98F9-10379AAD2671}.Release|x86.ActiveCfg = Release|Any CPU + {51868FC9-C052-4C2D-98F9-10379AAD2671}.Release|x86.Build.0 = Release|Any CPU + {23172004-FF6B-45D8-9653-944CECE741E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {23172004-FF6B-45D8-9653-944CECE741E1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {23172004-FF6B-45D8-9653-944CECE741E1}.Debug|x64.ActiveCfg = Debug|Any CPU + {23172004-FF6B-45D8-9653-944CECE741E1}.Debug|x64.Build.0 = Debug|Any CPU + {23172004-FF6B-45D8-9653-944CECE741E1}.Debug|x86.ActiveCfg = Debug|Any CPU + {23172004-FF6B-45D8-9653-944CECE741E1}.Debug|x86.Build.0 = Debug|Any CPU + {23172004-FF6B-45D8-9653-944CECE741E1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {23172004-FF6B-45D8-9653-944CECE741E1}.Release|Any CPU.Build.0 = Release|Any CPU + {23172004-FF6B-45D8-9653-944CECE741E1}.Release|x64.ActiveCfg = Release|Any CPU + {23172004-FF6B-45D8-9653-944CECE741E1}.Release|x64.Build.0 = Release|Any CPU + {23172004-FF6B-45D8-9653-944CECE741E1}.Release|x86.ActiveCfg = Release|Any CPU + {23172004-FF6B-45D8-9653-944CECE741E1}.Release|x86.Build.0 = Release|Any CPU + {04E05BC4-5769-4FC1-BBA0-06EC9D8E3130}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {04E05BC4-5769-4FC1-BBA0-06EC9D8E3130}.Debug|Any CPU.Build.0 = Debug|Any CPU + {04E05BC4-5769-4FC1-BBA0-06EC9D8E3130}.Debug|x64.ActiveCfg = Debug|Any CPU + {04E05BC4-5769-4FC1-BBA0-06EC9D8E3130}.Debug|x64.Build.0 = Debug|Any CPU + {04E05BC4-5769-4FC1-BBA0-06EC9D8E3130}.Debug|x86.ActiveCfg = Debug|Any CPU + {04E05BC4-5769-4FC1-BBA0-06EC9D8E3130}.Debug|x86.Build.0 = Debug|Any CPU + {04E05BC4-5769-4FC1-BBA0-06EC9D8E3130}.Release|Any CPU.ActiveCfg = Release|Any CPU + {04E05BC4-5769-4FC1-BBA0-06EC9D8E3130}.Release|Any CPU.Build.0 = Release|Any CPU + {04E05BC4-5769-4FC1-BBA0-06EC9D8E3130}.Release|x64.ActiveCfg = Release|Any CPU + {04E05BC4-5769-4FC1-BBA0-06EC9D8E3130}.Release|x64.Build.0 = Release|Any CPU + {04E05BC4-5769-4FC1-BBA0-06EC9D8E3130}.Release|x86.ActiveCfg = Release|Any CPU + {04E05BC4-5769-4FC1-BBA0-06EC9D8E3130}.Release|x86.Build.0 = Release|Any CPU + {98C25360-F03A-4929-959B-C80A48D21FF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {98C25360-F03A-4929-959B-C80A48D21FF2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {98C25360-F03A-4929-959B-C80A48D21FF2}.Debug|x64.ActiveCfg = Debug|Any CPU + {98C25360-F03A-4929-959B-C80A48D21FF2}.Debug|x64.Build.0 = Debug|Any CPU + {98C25360-F03A-4929-959B-C80A48D21FF2}.Debug|x86.ActiveCfg = Debug|Any CPU + {98C25360-F03A-4929-959B-C80A48D21FF2}.Debug|x86.Build.0 = Debug|Any CPU + {98C25360-F03A-4929-959B-C80A48D21FF2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {98C25360-F03A-4929-959B-C80A48D21FF2}.Release|Any CPU.Build.0 = Release|Any CPU + {98C25360-F03A-4929-959B-C80A48D21FF2}.Release|x64.ActiveCfg = Release|Any CPU + {98C25360-F03A-4929-959B-C80A48D21FF2}.Release|x64.Build.0 = Release|Any CPU + {98C25360-F03A-4929-959B-C80A48D21FF2}.Release|x86.ActiveCfg = Release|Any CPU + {98C25360-F03A-4929-959B-C80A48D21FF2}.Release|x86.Build.0 = Release|Any CPU + {FD32964B-4144-43CD-B313-2A5DD6A05DEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FD32964B-4144-43CD-B313-2A5DD6A05DEA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FD32964B-4144-43CD-B313-2A5DD6A05DEA}.Debug|x64.ActiveCfg = Debug|Any CPU + {FD32964B-4144-43CD-B313-2A5DD6A05DEA}.Debug|x64.Build.0 = Debug|Any CPU + {FD32964B-4144-43CD-B313-2A5DD6A05DEA}.Debug|x86.ActiveCfg = Debug|Any CPU + {FD32964B-4144-43CD-B313-2A5DD6A05DEA}.Debug|x86.Build.0 = Debug|Any CPU + {FD32964B-4144-43CD-B313-2A5DD6A05DEA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FD32964B-4144-43CD-B313-2A5DD6A05DEA}.Release|Any CPU.Build.0 = Release|Any CPU + {FD32964B-4144-43CD-B313-2A5DD6A05DEA}.Release|x64.ActiveCfg = Release|Any CPU + {FD32964B-4144-43CD-B313-2A5DD6A05DEA}.Release|x64.Build.0 = Release|Any CPU + {FD32964B-4144-43CD-B313-2A5DD6A05DEA}.Release|x86.ActiveCfg = Release|Any CPU + {FD32964B-4144-43CD-B313-2A5DD6A05DEA}.Release|x86.Build.0 = Release|Any CPU + {859A77A8-73F0-447B-9076-B42D5CA3CA33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {859A77A8-73F0-447B-9076-B42D5CA3CA33}.Debug|Any CPU.Build.0 = Debug|Any CPU + {859A77A8-73F0-447B-9076-B42D5CA3CA33}.Debug|x64.ActiveCfg = Debug|Any CPU + {859A77A8-73F0-447B-9076-B42D5CA3CA33}.Debug|x64.Build.0 = Debug|Any CPU + {859A77A8-73F0-447B-9076-B42D5CA3CA33}.Debug|x86.ActiveCfg = Debug|Any CPU + {859A77A8-73F0-447B-9076-B42D5CA3CA33}.Debug|x86.Build.0 = Debug|Any CPU + {859A77A8-73F0-447B-9076-B42D5CA3CA33}.Release|Any CPU.ActiveCfg = Release|Any CPU + {859A77A8-73F0-447B-9076-B42D5CA3CA33}.Release|Any CPU.Build.0 = Release|Any CPU + {859A77A8-73F0-447B-9076-B42D5CA3CA33}.Release|x64.ActiveCfg = Release|Any CPU + {859A77A8-73F0-447B-9076-B42D5CA3CA33}.Release|x64.Build.0 = Release|Any CPU + {859A77A8-73F0-447B-9076-B42D5CA3CA33}.Release|x86.ActiveCfg = Release|Any CPU + {859A77A8-73F0-447B-9076-B42D5CA3CA33}.Release|x86.Build.0 = Release|Any CPU + {92FCD7CC-52BE-487F-B990-1B5CACF9D40F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {92FCD7CC-52BE-487F-B990-1B5CACF9D40F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {92FCD7CC-52BE-487F-B990-1B5CACF9D40F}.Debug|x64.ActiveCfg = Debug|Any CPU + {92FCD7CC-52BE-487F-B990-1B5CACF9D40F}.Debug|x64.Build.0 = Debug|Any CPU + {92FCD7CC-52BE-487F-B990-1B5CACF9D40F}.Debug|x86.ActiveCfg = Debug|Any CPU + {92FCD7CC-52BE-487F-B990-1B5CACF9D40F}.Debug|x86.Build.0 = Debug|Any CPU + {92FCD7CC-52BE-487F-B990-1B5CACF9D40F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {92FCD7CC-52BE-487F-B990-1B5CACF9D40F}.Release|Any CPU.Build.0 = Release|Any CPU + {92FCD7CC-52BE-487F-B990-1B5CACF9D40F}.Release|x64.ActiveCfg = Release|Any CPU + {92FCD7CC-52BE-487F-B990-1B5CACF9D40F}.Release|x64.Build.0 = Release|Any CPU + {92FCD7CC-52BE-487F-B990-1B5CACF9D40F}.Release|x86.ActiveCfg = Release|Any CPU + {92FCD7CC-52BE-487F-B990-1B5CACF9D40F}.Release|x86.Build.0 = Release|Any CPU + {64E177FC-38AA-45AE-B748-419E91F95EC7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {64E177FC-38AA-45AE-B748-419E91F95EC7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {64E177FC-38AA-45AE-B748-419E91F95EC7}.Debug|x64.ActiveCfg = Debug|Any CPU + {64E177FC-38AA-45AE-B748-419E91F95EC7}.Debug|x64.Build.0 = Debug|Any CPU + {64E177FC-38AA-45AE-B748-419E91F95EC7}.Debug|x86.ActiveCfg = Debug|Any CPU + {64E177FC-38AA-45AE-B748-419E91F95EC7}.Debug|x86.Build.0 = Debug|Any CPU + {64E177FC-38AA-45AE-B748-419E91F95EC7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {64E177FC-38AA-45AE-B748-419E91F95EC7}.Release|Any CPU.Build.0 = Release|Any CPU + {64E177FC-38AA-45AE-B748-419E91F95EC7}.Release|x64.ActiveCfg = Release|Any CPU + {64E177FC-38AA-45AE-B748-419E91F95EC7}.Release|x64.Build.0 = Release|Any CPU + {64E177FC-38AA-45AE-B748-419E91F95EC7}.Release|x86.ActiveCfg = Release|Any CPU + {64E177FC-38AA-45AE-B748-419E91F95EC7}.Release|x86.Build.0 = Release|Any CPU + {F16B4AE5-F68F-42A2-8AB5-029282032CE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F16B4AE5-F68F-42A2-8AB5-029282032CE0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F16B4AE5-F68F-42A2-8AB5-029282032CE0}.Debug|x64.ActiveCfg = Debug|Any CPU + {F16B4AE5-F68F-42A2-8AB5-029282032CE0}.Debug|x64.Build.0 = Debug|Any CPU + {F16B4AE5-F68F-42A2-8AB5-029282032CE0}.Debug|x86.ActiveCfg = Debug|Any CPU + {F16B4AE5-F68F-42A2-8AB5-029282032CE0}.Debug|x86.Build.0 = Debug|Any CPU + {F16B4AE5-F68F-42A2-8AB5-029282032CE0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F16B4AE5-F68F-42A2-8AB5-029282032CE0}.Release|Any CPU.Build.0 = Release|Any CPU + {F16B4AE5-F68F-42A2-8AB5-029282032CE0}.Release|x64.ActiveCfg = Release|Any CPU + {F16B4AE5-F68F-42A2-8AB5-029282032CE0}.Release|x64.Build.0 = Release|Any CPU + {F16B4AE5-F68F-42A2-8AB5-029282032CE0}.Release|x86.ActiveCfg = Release|Any CPU + {F16B4AE5-F68F-42A2-8AB5-029282032CE0}.Release|x86.Build.0 = Release|Any CPU + {AB59F09A-9BD9-4CBB-8497-87B768C7C949}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AB59F09A-9BD9-4CBB-8497-87B768C7C949}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AB59F09A-9BD9-4CBB-8497-87B768C7C949}.Debug|x64.ActiveCfg = Debug|Any CPU + {AB59F09A-9BD9-4CBB-8497-87B768C7C949}.Debug|x64.Build.0 = Debug|Any CPU + {AB59F09A-9BD9-4CBB-8497-87B768C7C949}.Debug|x86.ActiveCfg = Debug|Any CPU + {AB59F09A-9BD9-4CBB-8497-87B768C7C949}.Debug|x86.Build.0 = Debug|Any CPU + {AB59F09A-9BD9-4CBB-8497-87B768C7C949}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AB59F09A-9BD9-4CBB-8497-87B768C7C949}.Release|Any CPU.Build.0 = Release|Any CPU + {AB59F09A-9BD9-4CBB-8497-87B768C7C949}.Release|x64.ActiveCfg = Release|Any CPU + {AB59F09A-9BD9-4CBB-8497-87B768C7C949}.Release|x64.Build.0 = Release|Any CPU + {AB59F09A-9BD9-4CBB-8497-87B768C7C949}.Release|x86.ActiveCfg = Release|Any CPU + {AB59F09A-9BD9-4CBB-8497-87B768C7C949}.Release|x86.Build.0 = Release|Any CPU + {86B6B40E-EA8F-47F0-9D1F-FDBAFBE2842C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {86B6B40E-EA8F-47F0-9D1F-FDBAFBE2842C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {86B6B40E-EA8F-47F0-9D1F-FDBAFBE2842C}.Debug|x64.ActiveCfg = Debug|Any CPU + {86B6B40E-EA8F-47F0-9D1F-FDBAFBE2842C}.Debug|x64.Build.0 = Debug|Any CPU + {86B6B40E-EA8F-47F0-9D1F-FDBAFBE2842C}.Debug|x86.ActiveCfg = Debug|Any CPU + {86B6B40E-EA8F-47F0-9D1F-FDBAFBE2842C}.Debug|x86.Build.0 = Debug|Any CPU + {86B6B40E-EA8F-47F0-9D1F-FDBAFBE2842C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {86B6B40E-EA8F-47F0-9D1F-FDBAFBE2842C}.Release|Any CPU.Build.0 = Release|Any CPU + {86B6B40E-EA8F-47F0-9D1F-FDBAFBE2842C}.Release|x64.ActiveCfg = Release|Any CPU + {86B6B40E-EA8F-47F0-9D1F-FDBAFBE2842C}.Release|x64.Build.0 = Release|Any CPU + {86B6B40E-EA8F-47F0-9D1F-FDBAFBE2842C}.Release|x86.ActiveCfg = Release|Any CPU + {86B6B40E-EA8F-47F0-9D1F-FDBAFBE2842C}.Release|x86.Build.0 = Release|Any CPU + {D1DD841D-9F34-47A6-91EB-A8632D577BD7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D1DD841D-9F34-47A6-91EB-A8632D577BD7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D1DD841D-9F34-47A6-91EB-A8632D577BD7}.Debug|x64.ActiveCfg = Debug|Any CPU + {D1DD841D-9F34-47A6-91EB-A8632D577BD7}.Debug|x64.Build.0 = Debug|Any CPU + {D1DD841D-9F34-47A6-91EB-A8632D577BD7}.Debug|x86.ActiveCfg = Debug|Any CPU + {D1DD841D-9F34-47A6-91EB-A8632D577BD7}.Debug|x86.Build.0 = Debug|Any CPU + {D1DD841D-9F34-47A6-91EB-A8632D577BD7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D1DD841D-9F34-47A6-91EB-A8632D577BD7}.Release|Any CPU.Build.0 = Release|Any CPU + {D1DD841D-9F34-47A6-91EB-A8632D577BD7}.Release|x64.ActiveCfg = Release|Any CPU + {D1DD841D-9F34-47A6-91EB-A8632D577BD7}.Release|x64.Build.0 = Release|Any CPU + {D1DD841D-9F34-47A6-91EB-A8632D577BD7}.Release|x86.ActiveCfg = Release|Any CPU + {D1DD841D-9F34-47A6-91EB-A8632D577BD7}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -2489,6 +2839,31 @@ Global {43896917-9904-4AE7-B634-32850471789F} = {235C692C-AD31-443F-872F-BD57E75830C4} {89B03DDB-EBCA-4E6A-80AB-9FFD48110097} = {39B598E9-44BA-4A61-A1BB-7C543734DBA6} {0DF430D1-39E6-46F5-AE58-B6DE0BD3F72B} = {72E7FA64-5B1E-477D-BD30-63B7F206B3C4} + {591836FE-0DAC-48A5-86AB-4C317A6B009A} = {90471225-AC23-424E-B62E-F6EC4C6ECAC0} + {960CCDC0-5327-4DD6-A4FE-90466B27F9C9} = {90471225-AC23-424E-B62E-F6EC4C6ECAC0} + {749B0BAE-63F0-4B22-A883-CD521F725DAA} = {90471225-AC23-424E-B62E-F6EC4C6ECAC0} + {A1D90A8D-B1FE-463A-884E-AEC201FB75EF} = {90471225-AC23-424E-B62E-F6EC4C6ECAC0} + {60AFD661-4BE5-4040-896A-CE2EA95F98B7} = {90471225-AC23-424E-B62E-F6EC4C6ECAC0} + {71FF6EB5-2AA9-4B6B-8C7C-CE9AC889A50E} = {90471225-AC23-424E-B62E-F6EC4C6ECAC0} + {AF8E3CF5-EEAD-477C-80DF-E0CF576D5A73} = {90471225-AC23-424E-B62E-F6EC4C6ECAC0} + {4CFC3947-9763-4FD1-869B-EEDFA7EB53AC} = {90471225-AC23-424E-B62E-F6EC4C6ECAC0} + {3076E116-F160-4C5D-A3D9-B3B51845675C} = {90471225-AC23-424E-B62E-F6EC4C6ECAC0} + {A1890199-5E68-4AF3-A2AD-21A1D84AF22B} = {90471225-AC23-424E-B62E-F6EC4C6ECAC0} + {358A6DC8-866C-4C8D-8F41-682F6683E683} = {90471225-AC23-424E-B62E-F6EC4C6ECAC0} + {CBE8E2D0-B1DE-422D-BF66-7FF02AE81CB9} = {90471225-AC23-424E-B62E-F6EC4C6ECAC0} + {5C59C1E1-6392-41AA-AD73-6DA34B1B369B} = {90471225-AC23-424E-B62E-F6EC4C6ECAC0} + {51868FC9-C052-4C2D-98F9-10379AAD2671} = {90471225-AC23-424E-B62E-F6EC4C6ECAC0} + {04E05BC4-5769-4FC1-BBA0-06EC9D8E3130} = {49BC383A-D7E6-4013-93C7-371479B984CC} + {98C25360-F03A-4929-959B-C80A48D21FF2} = {49BC383A-D7E6-4013-93C7-371479B984CC} + {64E177FC-38AA-45AE-B748-419E91F95EC7} = {49BC383A-D7E6-4013-93C7-371479B984CC} + {FD32964B-4144-43CD-B313-2A5DD6A05DEA} = {49BC383A-D7E6-4013-93C7-371479B984CC} + {86B6B40E-EA8F-47F0-9D1F-FDBAFBE2842C} = {49BC383A-D7E6-4013-93C7-371479B984CC} + {859A77A8-73F0-447B-9076-B42D5CA3CA33} = {49BC383A-D7E6-4013-93C7-371479B984CC} + {92FCD7CC-52BE-487F-B990-1B5CACF9D40F} = {49BC383A-D7E6-4013-93C7-371479B984CC} + {F16B4AE5-F68F-42A2-8AB5-029282032CE0} = {49BC383A-D7E6-4013-93C7-371479B984CC} + {AB59F09A-9BD9-4CBB-8497-87B768C7C949} = {49BC383A-D7E6-4013-93C7-371479B984CC} + {23172004-FF6B-45D8-9653-944CECE741E1} = {757F2B10-B69D-4C19-BFE0-D99070A00AD9} + {D1DD841D-9F34-47A6-91EB-A8632D577BD7} = {49BC383A-D7E6-4013-93C7-371479B984CC} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {F5273D7F-3334-48DF-94E3-41AE6816CD4D} diff --git a/build/cache/cl.json.gz b/build/cache/cl.json.gz index 12c4e2887d..ea0a6d80c9 100644 Binary files a/build/cache/cl.json.gz and b/build/cache/cl.json.gz differ diff --git a/build/cache/gles2.json.gz b/build/cache/gles2.json.gz index 0e3ab1595f..93d7a22fa9 100644 Binary files a/build/cache/gles2.json.gz and b/build/cache/gles2.json.gz differ diff --git a/build/cache/openxr.json.gz b/build/cache/openxr.json.gz index 232f1cab37..aeeabd68e9 100644 Binary files a/build/cache/openxr.json.gz and b/build/cache/openxr.json.gz differ diff --git a/build/cache/vulkan.json.gz b/build/cache/vulkan.json.gz index 5a74d9ed8f..f691641878 100644 Binary files a/build/cache/vulkan.json.gz and b/build/cache/vulkan.json.gz differ diff --git a/build/nuke/Build.cs b/build/nuke/Build.cs index 44fb3684ac..21c2292224 100644 --- a/build/nuke/Build.cs +++ b/build/nuke/Build.cs @@ -121,6 +121,58 @@ Dictionary ProcessedMsbuildProperties AbsolutePath SourceDirectory => RootDirectory / "src"; + // ReSharper disable once RedundantEmptyObjectOrCollectionInitializer + readonly HashSet AllowedExclusions = new() + { + + }; + + Target ValidateSolution => _ => _ + .Executes + ( + () => + { + var files = RootDirectory.GlobFiles("**/*.csproj").ToArray(); + Logger.Info($"Found {files.Length} csproj files in \"{RootDirectory}\""); + var missedOut = new List(); + foreach (var file in files) + { + var found = false; + foreach (var project in Solution.GetProjects("*")) + { + if (new FileInfo(file).FullName.Equals(new FileInfo(project.Path).FullName)) + { + found = true; + break; + } + } + + if (!found && !AllowedExclusions.Contains(Path.GetFileNameWithoutExtension(file))) + { + Logger.Error + ( + "A project has not been included in the solution and will not be shipped! " + + $"\"{file}\" if this is acceptable please add the project name (excluding the path and " + + "extension) to the AllowedExclusions array in the NUKE Build.cs file." + ); + + missedOut.Add(file); + } + } + + if (missedOut.Any()) + { + Logger.Warn("Commands to add these for your convenience:"); + foreach (var file in missedOut) + { + Logger.Warn($"dotnet sln \"{Path.GetFileName(Solution.FileName)}\" add \"{file}\""); + } + + ControlFlow.Fail("Action required."); + } + } + ); + Target Clean => _ => _ .Before(Restore) .Executes(() => diff --git a/build/props/common.props b/build/props/common.props index 6b2d89e184..6eee926998 100644 --- a/build/props/common.props +++ b/build/props/common.props @@ -6,30 +6,29 @@ preview .NET Foundation and Contributors - Silk.NET May 2021 Update + Silk.NET June 2021 Update - - Add As methods to all Maths types & other miscellaneous API additions - - Add support for provisional Vulkan Video encoding & decoding extensions - - Update to latest OpenGL specification - - Update to latest OpenCL specification - - Update to Vulkan 1.2.177 - - Update to OpenXR 1.0.15 - - Fix ImGui robustness - - Fix disposal and reset robustness - - Fix SDL input backend not respecting deadzones - - Fix GLFW input backend not respecting start-up state - - Fix Vulkan device function pointer loader bugs - - Fix BSTR GlobalMemory issues - - Fix Vulkan codegen issues - - Fix bitfield codegen for Vulkan & clang-generated bindings - - Miscellaneous windowing & input bugfixes + - OpenXR bindings are now production-ready & no longer experimental! + - Add (optional) native binaries for OpenAL Soft + - Add support for reversed-z projection matrices in Silk.NET.Maths + - Add bindings for a number of missing Vulkan and OpenCL extensions + - Add OpenGL-OpenXR interoperability helper APIs + - Add more helper APIs in Silk.NET.Core and Silk.NET.Maths + - Update to latest OpenGL and OpenGLES specifications + - Update to OpenXR 1.0.16 + - Update to Vulkan 1.2.180 + - Fix SDL OpenGL context issues when not using OpenGL + - Fix GLFW native window issues on 32-bit Windows + - Fix OpenXR loading issues + - Fix incorrect bindings in OpenXR + - Miscellaneous windowing & input bugfixes & improvements OpenCL;OpenGL;OpenAL;OpenGLES;GLES;Vulkan;Assimp;DirectX;GLFW;SDL;Windowing;Input;Gamepad;Joystick;Keyboard;Mouse;SilkTouch;Source;Generator;C#;F#;.NET;DotNet;Mono;Vector;Math;Maths;Numerics;Game;Graphics;Compute;Audio;Sound;Engine;Silk;Silk.NET;Slim.NET;ElgarTK;GPU;Sharp;Science;Scientific;Visualization;Visual;Audiovisual;Windows;macOS;Linux;Android;Bindings;OSX;Wrapper;Native true $(MSBuildThisFileDirectory)/../output_packages https://github.com/dotnet/Silk.NET Git - 2.4.0 + 2.5.0 Silk.NET is a high-speed, advanced library, providing bindings to popular low-level APIs such as OpenGL, OpenCL, OpenAL, OpenXR, GLFW, SDL, Vulkan, Assimp, and DirectX. diff --git a/generator.json b/generator.json index e7e5c074bf..61851243cd 100644 --- a/generator.json +++ b/generator.json @@ -281,7 +281,9 @@ "cl_version": "cl_uint", "cl_mem_properties": "CLenum", "cl_mipmap_filter_mode_img": "CLenum", - "cl_command_queue_capabilities_intel": "CLenum" + "cl_command_queue_capabilities_intel": "CLenum", + "cl_icd_dispatch": "void", + "cl_layer_info": "uint" }, { "$include.commonTypeMap": "build/csharp_typemap.json" @@ -641,7 +643,8 @@ "EGLConfig": "nint", "EGLContext": "nint", "GLXFBConfig": "nint", - "VkFormat": "uint" + "VkFormat": "uint", + "EGLenum": "uint" }, { "$include.commonTypeMap": "build/csharp_typemap.json" diff --git a/src/Core/Silk.NET.BuildTools/Converters/Khronos/TypedefDefinition.cs b/src/Core/Silk.NET.BuildTools/Converters/Khronos/TypedefDefinition.cs index 58a21da29e..0b0d5d253e 100644 --- a/src/Core/Silk.NET.BuildTools/Converters/Khronos/TypedefDefinition.cs +++ b/src/Core/Silk.NET.BuildTools/Converters/Khronos/TypedefDefinition.cs @@ -6,13 +6,15 @@ public class TypedefDefinition { public string Name { get; } public string Requires { get; } + public string BitValues { get; } public string Type { get; } - public TypedefDefinition(string name, string requires, string type) + public TypedefDefinition(string name, string requires, string type, string bitValues = null) { Name = name; Requires = requires; Type = type; + BitValues = bitValues; } public static TypedefDefinition CreateFromXml(XElement xe) @@ -20,7 +22,8 @@ public static TypedefDefinition CreateFromXml(XElement xe) var name = xe.GetNameElement(); var requires = xe.Attribute("requires")?.Value; var type = xe.GetTypeElement(); - return new TypedefDefinition(name, requires, type); + var bitValues = xe.Attribute("bitvalues")?.Value; + return new(name, requires, type, bitValues); } public override string ToString() diff --git a/src/Core/Silk.NET.BuildTools/Converters/Khronos/VulkanSpecification.cs b/src/Core/Silk.NET.BuildTools/Converters/Khronos/VulkanSpecification.cs index ee1157d448..f5d620d23a 100644 --- a/src/Core/Silk.NET.BuildTools/Converters/Khronos/VulkanSpecification.cs +++ b/src/Core/Silk.NET.BuildTools/Converters/Khronos/VulkanSpecification.cs @@ -33,15 +33,19 @@ public VulkanSpecification( Commands = commands; Constants = constants; Typedefs = typedefs; - Enums = enums; Structures = structures; Unions = unions; Handles = handles; BaseTypes = baseTypes; Extensions = extensions; Features = features; - AddExtensionEnums(Enums, Extensions); - AddExtensionEnums(Enums, Features); + + var wipEnums = enums.ToList(); + AddExtensionEnums(wipEnums, Extensions); + AddExtensionEnums(wipEnums, Features); + MixinEnumTypeFixups(wipEnums, Typedefs); + + Enums = enums.ToArray(); } public static VulkanSpecification LoadFromXmlStream(Stream specFileStream) @@ -114,7 +118,7 @@ public static VulkanSpecification LoadFromXmlStream(Stream specFileStream) features); } - private void AddExtensionEnums(EnumDefinition[] enums, ExtensionDefinition[] extensions) + private void AddExtensionEnums(List enums, ExtensionDefinition[] extensions) { foreach (var exDef in extensions) { @@ -132,7 +136,7 @@ private void AddExtensionEnums(EnumDefinition[] enums, ExtensionDefinition[] ext } } - private void AddExtensionEnums(EnumDefinition[] enums, FeatureDefinition[] extensions) + private void AddExtensionEnums(List enums, FeatureDefinition[] extensions) { foreach (var exDef in extensions) { @@ -144,10 +148,42 @@ private void AddExtensionEnums(EnumDefinition[] enums, FeatureDefinition[] exten } } } + + private void MixinEnumTypeFixups(List enums, TypedefDefinition[] typedefs) + { + foreach (var typedefDefinition in typedefs) + { + if (typedefDefinition.BitValues is not null) + { + foreach (var enumDefinition in enums) + { + // if the bit width is default and we have a typedef for this enum + if ((enumDefinition.Name == typedefDefinition.Name || + enumDefinition.Name == typedefDefinition.BitValues) && + enumDefinition.BitWidth == 32) + { + enumDefinition.BitWidth = typedefDefinition.Type switch + { + "XrFlags64" => 64, + _ => 32 + }; + } + } + } + } + } - private EnumDefinition GetEnumDef(EnumDefinition[] enums, string name) + private EnumDefinition GetEnumDef(List enums, string name) { - return enums.Single(ed => ed.Name == name); + var ret = enums.SingleOrDefault(ed => ed.Name == name); + if (ret == default) + { + // bandage around the fact that khronos always slip up on their xml specs + ret = EnumDefinition.CreateFromXml(XElement.Parse($"")); + enums.Add(ret); + } + + return ret; } } } diff --git a/src/Core/Silk.NET.Core/Miscellaneous/Version64.cs b/src/Core/Silk.NET.Core/Miscellaneous/Version64.cs new file mode 100644 index 0000000000..52e4f01324 --- /dev/null +++ b/src/Core/Silk.NET.Core/Miscellaneous/Version64.cs @@ -0,0 +1,78 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; + +namespace Silk.NET.Core +{ + /// + /// A 64-bit version structure. + /// + public readonly struct Version64 + { + /// + /// The underlying OpenXR-compatible 64-bit version integer. + /// + public ulong Value { get; } + + /// + /// Creates a OpenXR version structure from the given major, minor, and patch values. + /// + /// The major value. + /// The minor value. + /// The patch value. + public Version64(uint major, uint minor, uint patch) + => Value = ((major & 0xffffUL) << 48) | ((minor & 0xffffUL) << 32) | (patch & 0xffffffffUL); + + /// + /// Creates a OpenXR version structure from the given OpenXR-compatible value. + /// + /// The value. + private Version64(ulong value) => Value = value; + + /// + /// Gets the major component of this version structure. + /// + public uint Major => (uint) ((Value >> 48) & 0xffffUL); + + /// + /// Gets the minor component of this version structure. + /// + public uint Minor => (uint) ((Value >> 32) & 0xffffUL); + + /// + /// Gets the patch component of this version structure. + /// + public uint Patch => (uint) (Value & 0xffffffffUL); + + /// + /// Creates a 64-bit version structure from the given 64-bit unsigned integer. + /// + /// The uint value. + /// The 64-bit version structure. + public static explicit operator Version64(ulong val) => new(val); + + /// + /// Creates a 64-bit version structure from the given managed version class. + /// + /// The version instance. + /// The 64-bit version structure. + public static implicit operator Version64 + (Version version) => new((uint) version.Major, (uint) version.Minor, (uint) version.Build); + + /// + /// Gets the 64-bit unsigned integer representation for this 64-bit version structure. + /// + /// The 64-bit version structure. + /// The 64-bit unsigned integer. + public static implicit operator ulong(Version64 version) => version.Value; + + /// + /// Converts this 64-bit version structure to a managed version class. + /// + /// The 64-bit version structure. + /// The managed representation. + public static implicit operator Version + (Version64 version) => new((int) version.Major, (int) version.Minor, (int) version.Patch); + } +} diff --git a/src/Core/Silk.NET.Core/Native/SilkMarshal.cs b/src/Core/Silk.NET.Core/Native/SilkMarshal.cs index 4349b40096..ef5c7a6007 100644 --- a/src/Core/Silk.NET.Core/Native/SilkMarshal.cs +++ b/src/Core/Silk.NET.Core/Native/SilkMarshal.cs @@ -112,61 +112,111 @@ public static GlobalMemory StringToMemory NativeStringEncoding encoding = NativeStringEncoding.Ansi ) { - return encoding switch + if (encoding == NativeStringEncoding.BStr) { - NativeStringEncoding.BStr => BStrToMemory(Marshal.StringToBSTR(input), input.Length), - NativeStringEncoding.LPStr => AnsiToMemory(input), - NativeStringEncoding.LPTStr => Utf8ToMemory(input), - NativeStringEncoding.LPUTF8Str => Utf8ToMemory(input), - NativeStringEncoding.LPWStr => WideToMemory(input), - _ => ThrowInvalidEncoding() + return BStrToMemory(Marshal.StringToBSTR(input), input.Length); + } + + var memory = GlobalMemory.Allocate(GetMaxSizeOf(input)); + StringIntoSpan(input, memory.AsSpan(), encoding); + return memory; + } + +#nullable enable + + /// + /// Gets the maximum bytes this string can consume in memory once marshalled using the given native + /// encoding (including any null terminators) + /// + /// The string to get the maximum potential byte consumption of. + /// The native string encoding in question. + /// + /// The number of bytes this string can consume in memory when marshalled, or -1 if the given + /// is not supported. + /// + public static int GetMaxSizeOf(string? input, NativeStringEncoding encoding = NativeStringEncoding.Ansi) + => encoding switch + { + NativeStringEncoding.BStr => -1, + NativeStringEncoding.LPStr => ((input?.Length ?? 0) + 1) * Marshal.SystemMaxDBCSCharSize, + NativeStringEncoding.LPTStr => (input is null ? 0 : Encoding.UTF8.GetMaxByteCount(input.Length)) + 1, + NativeStringEncoding.LPUTF8Str => (input is null ? 0 : Encoding.UTF8.GetMaxByteCount(input.Length)) + 1, + NativeStringEncoding.LPWStr => ((input?.Length ?? 0) + 1) * 2, + _ => -1 }; - static unsafe GlobalMemory Utf8ToMemory(string input) + /// + /// Marshals the input string per the specified native string encoding, and stores the marshalled bytes into + /// the given span + /// + /// The string to marshal. + /// The span to marshal the string into. + /// The target native string encoding. + /// The number of bytes copied into the span including the null terminator. + public static unsafe int StringIntoSpan + ( + string? input, + Span span, + NativeStringEncoding encoding = NativeStringEncoding.Ansi + ) + { + if (input is null) { - var memory = GlobalMemory.Allocate(Encoding.UTF8.GetMaxByteCount(input.Length) + 1); - int convertedBytes; - fixed (char* firstChar = input) + span[0] = 0; + return 1; + } + + switch (encoding) + { + case NativeStringEncoding.BStr: { - fixed (byte* bytes = memory) - { - convertedBytes = Encoding.UTF8.GetBytes(firstChar, input.Length, bytes, memory.Length - 1); - } + static void ThrowNoBStr() => throw new InvalidOperationException + ( + "BSTR encoded strings can only be marshalled into known BSTR memory." + ); + + ThrowNoBStr(); + return -1; } + case NativeStringEncoding.LPStr: + case NativeStringEncoding.LPTStr: + case NativeStringEncoding.LPUTF8Str: + { + int convertedBytes; - memory[convertedBytes] = 0; - return memory; - } - - static unsafe GlobalMemory AnsiToMemory(string input) - { - var memory = GlobalMemory.Allocate((input.Length + 1) * Marshal.SystemMaxDBCSCharSize); - int convertedBytes; + fixed (char* firstChar = input) + { + fixed (byte* bytes = span) + { + convertedBytes = Encoding.UTF8.GetBytes(firstChar, input.Length, bytes, span.Length - 1); + } + } - fixed (char* firstChar = input) + span[convertedBytes] = 0; + return ++convertedBytes; + } + case NativeStringEncoding.LPWStr: { - fixed (byte* bytes = memory) + fixed (char* firstChar = input) { - convertedBytes = Encoding.UTF8.GetBytes(firstChar, input.Length, bytes, memory.Length); + fixed (byte* bytes = span) + { + Buffer.MemoryCopy(firstChar, bytes, span.Length, input.Length + 1); + } } - } - memory[convertedBytes] = 0; - return memory; - } - - static unsafe GlobalMemory WideToMemory(string input) - { - var memory = GlobalMemory.Allocate((input.Length + 1) * 2); - fixed (char* firstChar = input) + return input.Length + 1; + } + default: { - Buffer.MemoryCopy(firstChar, (void*) memory.Handle, memory.Length, input.Length + 1); + ThrowInvalidEncoding(); + return -1; } - - return memory; } } +#nullable disable + /// /// Allocates a string pointer /// @@ -264,6 +314,24 @@ static unsafe string BStrToString(nint ptr) public static string MemoryToString(GlobalMemory input, NativeStringEncoding e = NativeStringEncoding.Ansi) => PtrToString(input.Handle, e)!; // TODO tolerate a GlobalMemory.Null if we introduce one in the future? + /// + /// Reads a null-terminated string from the given span, with the given native encoding. + /// + /// A span containing a null-terminated string. + /// The encoding of the string in memory. + /// The string read from memory. + public static unsafe string SpanToString + ( + Span input, + NativeStringEncoding encoding = NativeStringEncoding.Ansi + ) + { + fixed (byte* ptr = input) + { + return PtrToString((nint) ptr, encoding)!; + } + } + #nullable disable /// @@ -783,4 +851,4 @@ public static unsafe uint WaitWindowsObjects public static ref T NullRef() => ref Unsafe.NullRef(); #endif } -} \ No newline at end of file +} diff --git a/src/Maths/Silk.NET.Maths/PublicAPI.Shipped.txt b/src/Maths/Silk.NET.Maths/PublicAPI.Shipped.txt index 3e442430c4..dade5ed786 100644 --- a/src/Maths/Silk.NET.Maths/PublicAPI.Shipped.txt +++ b/src/Maths/Silk.NET.Maths/PublicAPI.Shipped.txt @@ -1267,4 +1267,34 @@ static Silk.NET.Maths.Vector4D.UnitW.get -> Silk.NET.Maths.Vector4D static Silk.NET.Maths.Vector4D.UnitX.get -> Silk.NET.Maths.Vector4D static Silk.NET.Maths.Vector4D.UnitY.get -> Silk.NET.Maths.Vector4D static Silk.NET.Maths.Vector4D.UnitZ.get -> Silk.NET.Maths.Vector4D -static Silk.NET.Maths.Vector4D.Zero.get -> Silk.NET.Maths.Vector4D \ No newline at end of file +static Silk.NET.Maths.Vector4D.Zero.get -> Silk.NET.Maths.Vector4D +Silk.NET.Maths.Box2D.As() -> Silk.NET.Maths.Box2D +Silk.NET.Maths.Box3D.As() -> Silk.NET.Maths.Box3D +Silk.NET.Maths.Circle.As() -> Silk.NET.Maths.Circle +Silk.NET.Maths.Cube.As() -> Silk.NET.Maths.Cube +Silk.NET.Maths.Matrix2X2.As() -> Silk.NET.Maths.Matrix2X2 +Silk.NET.Maths.Matrix2X3.As() -> Silk.NET.Maths.Matrix2X3 +Silk.NET.Maths.Matrix2X4.As() -> Silk.NET.Maths.Matrix2X4 +Silk.NET.Maths.Matrix3X2.As() -> Silk.NET.Maths.Matrix3X2 +Silk.NET.Maths.Matrix3X3.As() -> Silk.NET.Maths.Matrix3X3 +Silk.NET.Maths.Matrix3X4.As() -> Silk.NET.Maths.Matrix3X4 +Silk.NET.Maths.Matrix4X2.As() -> Silk.NET.Maths.Matrix4X2 +Silk.NET.Maths.Matrix4X3.As() -> Silk.NET.Maths.Matrix4X3 +Silk.NET.Maths.Matrix4X4.As() -> Silk.NET.Maths.Matrix4X4 +Silk.NET.Maths.Plane.As() -> Silk.NET.Maths.Plane +Silk.NET.Maths.Quaternion.As() -> Silk.NET.Maths.Quaternion +Silk.NET.Maths.Ray2D.As() -> Silk.NET.Maths.Ray2D +Silk.NET.Maths.Ray3D.As() -> Silk.NET.Maths.Ray3D +Silk.NET.Maths.Rectangle.As() -> Silk.NET.Maths.Rectangle +Silk.NET.Maths.Sphere.As() -> Silk.NET.Maths.Sphere +Silk.NET.Maths.Vector2D.As() -> Silk.NET.Maths.Vector2D +Silk.NET.Maths.Vector3D.As() -> Silk.NET.Maths.Vector3D +Silk.NET.Maths.Vector4D.As() -> Silk.NET.Maths.Vector4D +Silk.NET.Maths.Box2D.GetScaled(Silk.NET.Maths.Vector2D scale, Silk.NET.Maths.Vector2D anchor) -> Silk.NET.Maths.Box2D +Silk.NET.Maths.Box3D.GetScaled(Silk.NET.Maths.Vector3D scale, Silk.NET.Maths.Vector3D anchor) -> Silk.NET.Maths.Box3D +Silk.NET.Maths.Rectangle.GetScaled(Silk.NET.Maths.Vector2D scale, Silk.NET.Maths.Vector2D anchor) -> Silk.NET.Maths.Rectangle +Silk.NET.Maths.Cube.GetScaled(Silk.NET.Maths.Vector3D scale, Silk.NET.Maths.Vector3D anchor) -> Silk.NET.Maths.Cube +static Silk.NET.Maths.Scalar.DegreesToRadians(T degrees) -> T +static Silk.NET.Maths.Scalar.RadiansToDegrees(T radians) -> T +static readonly Silk.NET.Maths.Scalar.RadiansPerDegree -> T +static readonly Silk.NET.Maths.Scalar.DegreesPerRadian -> T \ No newline at end of file diff --git a/src/Maths/Silk.NET.Maths/PublicAPI.Unshipped.txt b/src/Maths/Silk.NET.Maths/PublicAPI.Unshipped.txt index 1d36d75860..815c92006a 100644 --- a/src/Maths/Silk.NET.Maths/PublicAPI.Unshipped.txt +++ b/src/Maths/Silk.NET.Maths/PublicAPI.Unshipped.txt @@ -1,27 +1 @@ -#nullable enable -Silk.NET.Maths.Box2D.As() -> Silk.NET.Maths.Box2D -Silk.NET.Maths.Box3D.As() -> Silk.NET.Maths.Box3D -Silk.NET.Maths.Circle.As() -> Silk.NET.Maths.Circle -Silk.NET.Maths.Cube.As() -> Silk.NET.Maths.Cube -Silk.NET.Maths.Matrix2X2.As() -> Silk.NET.Maths.Matrix2X2 -Silk.NET.Maths.Matrix2X3.As() -> Silk.NET.Maths.Matrix2X3 -Silk.NET.Maths.Matrix2X4.As() -> Silk.NET.Maths.Matrix2X4 -Silk.NET.Maths.Matrix3X2.As() -> Silk.NET.Maths.Matrix3X2 -Silk.NET.Maths.Matrix3X3.As() -> Silk.NET.Maths.Matrix3X3 -Silk.NET.Maths.Matrix3X4.As() -> Silk.NET.Maths.Matrix3X4 -Silk.NET.Maths.Matrix4X2.As() -> Silk.NET.Maths.Matrix4X2 -Silk.NET.Maths.Matrix4X3.As() -> Silk.NET.Maths.Matrix4X3 -Silk.NET.Maths.Matrix4X4.As() -> Silk.NET.Maths.Matrix4X4 -Silk.NET.Maths.Plane.As() -> Silk.NET.Maths.Plane -Silk.NET.Maths.Quaternion.As() -> Silk.NET.Maths.Quaternion -Silk.NET.Maths.Ray2D.As() -> Silk.NET.Maths.Ray2D -Silk.NET.Maths.Ray3D.As() -> Silk.NET.Maths.Ray3D -Silk.NET.Maths.Rectangle.As() -> Silk.NET.Maths.Rectangle -Silk.NET.Maths.Sphere.As() -> Silk.NET.Maths.Sphere -Silk.NET.Maths.Vector2D.As() -> Silk.NET.Maths.Vector2D -Silk.NET.Maths.Vector3D.As() -> Silk.NET.Maths.Vector3D -Silk.NET.Maths.Vector4D.As() -> Silk.NET.Maths.Vector4D -Silk.NET.Maths.Box2D.GetScaled(Silk.NET.Maths.Vector2D scale, Silk.NET.Maths.Vector2D anchor) -> Silk.NET.Maths.Box2D -Silk.NET.Maths.Box3D.GetScaled(Silk.NET.Maths.Vector3D scale, Silk.NET.Maths.Vector3D anchor) -> Silk.NET.Maths.Box3D -Silk.NET.Maths.Rectangle.GetScaled(Silk.NET.Maths.Vector2D scale, Silk.NET.Maths.Vector2D anchor) -> Silk.NET.Maths.Rectangle -Silk.NET.Maths.Cube.GetScaled(Silk.NET.Maths.Vector3D scale, Silk.NET.Maths.Vector3D anchor) -> Silk.NET.Maths.Cube \ No newline at end of file +#nullable enable \ No newline at end of file diff --git a/src/Maths/Silk.NET.Maths/Scalar.Constants.cs b/src/Maths/Silk.NET.Maths/Scalar.Constants.cs index 1a5352b79e..b57e0741d6 100644 --- a/src/Maths/Silk.NET.Maths/Scalar.Constants.cs +++ b/src/Maths/Silk.NET.Maths/Scalar.Constants.cs @@ -87,6 +87,22 @@ public static partial class Scalar where T : unmanaged /// public static readonly T Tau; + /// + /// Represents the number of degrees in a single radian. + /// + /// + /// This is equivalent to 180 / MathF.Pi + /// + public static readonly T DegreesPerRadian; + + /// + /// Represents the number of radians in a single degree. + /// + /// + /// This is equivalent to MathF.Pi / 180. + /// + public static readonly T RadiansPerDegree; + internal static readonly bool IntrinsicsApplicable = typeof(T) == typeof(byte) || typeof(T) == typeof(sbyte) || typeof(T) == typeof(ushort) @@ -315,6 +331,8 @@ static Scalar() } PiOver2 = Scalar.Divide(Pi, Two); + DegreesPerRadian = Scalar.Divide(Scalar.As(180), Pi); + RadiansPerDegree = Scalar.Divide(Pi, Scalar.As(180)); } } } \ No newline at end of file diff --git a/src/Maths/Silk.NET.Maths/Scalar.Conversions.cs b/src/Maths/Silk.NET.Maths/Scalar.Conversions.cs new file mode 100644 index 0000000000..e1a7f72d14 --- /dev/null +++ b/src/Maths/Silk.NET.Maths/Scalar.Conversions.cs @@ -0,0 +1,22 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace Silk.NET.Maths +{ + public partial class Scalar + { + /// + /// Convert degrees to radians. + /// + /// An angle in degrees. + /// The angle expressed in radians. + public static T DegreesToRadians(T degrees) where T : unmanaged => Multiply(degrees, Scalar.RadiansPerDegree); + + /// + /// Convert radians to degrees. + /// + /// An angle in radians. + /// The angle expressed in degrees. + public static T RadiansToDegrees(T radians) where T : unmanaged => Multiply(radians, Scalar.DegreesPerRadian); + } +} diff --git a/src/OpenCL/Extensions/Silk.NET.OpenCL.Extensions.LOADER/LoaderLayers.gen.cs b/src/OpenCL/Extensions/Silk.NET.OpenCL.Extensions.LOADER/LoaderLayers.gen.cs index d4fc3aef32..7c18dd9b44 100644 --- a/src/OpenCL/Extensions/Silk.NET.OpenCL.Extensions.LOADER/LoaderLayers.gen.cs +++ b/src/OpenCL/Extensions/Silk.NET.OpenCL.Extensions.LOADER/LoaderLayers.gen.cs @@ -21,40 +21,40 @@ public unsafe partial class LoaderLayers : NativeExtension { public const string ExtensionName = "LOADER_layers"; [NativeApi(EntryPoint = "clGetLayerInfo")] - public unsafe partial int GetLayerInfo([Flow(FlowDirection.In)] nuint param_value_size, [Flow(FlowDirection.In)] cl_layer_info param_name, [Flow(FlowDirection.Out)] void* param_value, [Flow(FlowDirection.Out)] nuint* param_value_size_ret); + public unsafe partial int GetLayerInfo([Flow(FlowDirection.In)] nuint param_value_size, [Flow(FlowDirection.In)] uint param_name, [Flow(FlowDirection.Out)] void* param_value, [Flow(FlowDirection.Out)] nuint* param_value_size_ret); [NativeApi(EntryPoint = "clGetLayerInfo")] - public unsafe partial int GetLayerInfo([Flow(FlowDirection.In)] nuint param_value_size, [Flow(FlowDirection.In)] cl_layer_info param_name, [Flow(FlowDirection.Out)] void* param_value, [Flow(FlowDirection.Out)] out nuint param_value_size_ret); + public unsafe partial int GetLayerInfo([Flow(FlowDirection.In)] nuint param_value_size, [Flow(FlowDirection.In)] uint param_name, [Flow(FlowDirection.Out)] void* param_value, [Flow(FlowDirection.Out)] out nuint param_value_size_ret); [NativeApi(EntryPoint = "clGetLayerInfo")] - public unsafe partial int GetLayerInfo([Flow(FlowDirection.In)] nuint param_value_size, [Flow(FlowDirection.In)] cl_layer_info param_name, [Flow(FlowDirection.Out)] out T0 param_value, [Flow(FlowDirection.Out)] nuint* param_value_size_ret) where T0 : unmanaged; + public unsafe partial int GetLayerInfo([Flow(FlowDirection.In)] nuint param_value_size, [Flow(FlowDirection.In)] uint param_name, [Flow(FlowDirection.Out)] out T0 param_value, [Flow(FlowDirection.Out)] nuint* param_value_size_ret) where T0 : unmanaged; [NativeApi(EntryPoint = "clGetLayerInfo")] - public partial int GetLayerInfo([Flow(FlowDirection.In)] nuint param_value_size, [Flow(FlowDirection.In)] cl_layer_info param_name, [Flow(FlowDirection.Out)] out T0 param_value, [Flow(FlowDirection.Out)] out nuint param_value_size_ret) where T0 : unmanaged; + public partial int GetLayerInfo([Flow(FlowDirection.In)] nuint param_value_size, [Flow(FlowDirection.In)] uint param_name, [Flow(FlowDirection.Out)] out T0 param_value, [Flow(FlowDirection.Out)] out nuint param_value_size_ret) where T0 : unmanaged; [NativeApi(EntryPoint = "clInitLayer")] - public unsafe partial int InitLayer([Flow(FlowDirection.In)] uint num_entries, [Flow(FlowDirection.In)] cl_icd_dispatch* target_dispatch, [Flow(FlowDirection.Out)] uint* num_entries_ret, [Flow(FlowDirection.In)] cl_icd_dispatch** layer_dispatch); + public unsafe partial int InitLayer([Flow(FlowDirection.In)] uint num_entries, [Flow(FlowDirection.In)] void* target_dispatch, [Flow(FlowDirection.Out)] uint* num_entries_ret, [Flow(FlowDirection.In)] void** layer_dispatch); [NativeApi(EntryPoint = "clInitLayer")] - public unsafe partial int InitLayer([Flow(FlowDirection.In)] uint num_entries, [Flow(FlowDirection.In)] cl_icd_dispatch* target_dispatch, [Flow(FlowDirection.Out)] uint* num_entries_ret, [Flow(FlowDirection.In)] in cl_icd_dispatch* layer_dispatch); + public unsafe partial int InitLayer([Flow(FlowDirection.In)] uint num_entries, [Flow(FlowDirection.In)] void* target_dispatch, [Flow(FlowDirection.Out)] uint* num_entries_ret, [Flow(FlowDirection.In)] in void* layer_dispatch); [NativeApi(EntryPoint = "clInitLayer")] - public unsafe partial int InitLayer([Flow(FlowDirection.In)] uint num_entries, [Flow(FlowDirection.In)] cl_icd_dispatch* target_dispatch, [Flow(FlowDirection.Out)] out uint num_entries_ret, [Flow(FlowDirection.In)] cl_icd_dispatch** layer_dispatch); + public unsafe partial int InitLayer([Flow(FlowDirection.In)] uint num_entries, [Flow(FlowDirection.In)] void* target_dispatch, [Flow(FlowDirection.Out)] out uint num_entries_ret, [Flow(FlowDirection.In)] void** layer_dispatch); [NativeApi(EntryPoint = "clInitLayer")] - public unsafe partial int InitLayer([Flow(FlowDirection.In)] uint num_entries, [Flow(FlowDirection.In)] cl_icd_dispatch* target_dispatch, [Flow(FlowDirection.Out)] out uint num_entries_ret, [Flow(FlowDirection.In)] in cl_icd_dispatch* layer_dispatch); + public unsafe partial int InitLayer([Flow(FlowDirection.In)] uint num_entries, [Flow(FlowDirection.In)] void* target_dispatch, [Flow(FlowDirection.Out)] out uint num_entries_ret, [Flow(FlowDirection.In)] in void* layer_dispatch); [NativeApi(EntryPoint = "clInitLayer")] - public unsafe partial int InitLayer([Flow(FlowDirection.In)] uint num_entries, [Flow(FlowDirection.In)] in cl_icd_dispatch target_dispatch, [Flow(FlowDirection.Out)] uint* num_entries_ret, [Flow(FlowDirection.In)] cl_icd_dispatch** layer_dispatch); + public unsafe partial int InitLayer([Flow(FlowDirection.In)] uint num_entries, [Flow(FlowDirection.In)] in T0 target_dispatch, [Flow(FlowDirection.Out)] uint* num_entries_ret, [Flow(FlowDirection.In)] void** layer_dispatch) where T0 : unmanaged; [NativeApi(EntryPoint = "clInitLayer")] - public unsafe partial int InitLayer([Flow(FlowDirection.In)] uint num_entries, [Flow(FlowDirection.In)] in cl_icd_dispatch target_dispatch, [Flow(FlowDirection.Out)] uint* num_entries_ret, [Flow(FlowDirection.In)] in cl_icd_dispatch* layer_dispatch); + public unsafe partial int InitLayer([Flow(FlowDirection.In)] uint num_entries, [Flow(FlowDirection.In)] in T0 target_dispatch, [Flow(FlowDirection.Out)] uint* num_entries_ret, [Flow(FlowDirection.In)] in void* layer_dispatch) where T0 : unmanaged; [NativeApi(EntryPoint = "clInitLayer")] - public unsafe partial int InitLayer([Flow(FlowDirection.In)] uint num_entries, [Flow(FlowDirection.In)] in cl_icd_dispatch target_dispatch, [Flow(FlowDirection.Out)] out uint num_entries_ret, [Flow(FlowDirection.In)] cl_icd_dispatch** layer_dispatch); + public unsafe partial int InitLayer([Flow(FlowDirection.In)] uint num_entries, [Flow(FlowDirection.In)] in T0 target_dispatch, [Flow(FlowDirection.Out)] out uint num_entries_ret, [Flow(FlowDirection.In)] void** layer_dispatch) where T0 : unmanaged; [NativeApi(EntryPoint = "clInitLayer")] - public unsafe partial int InitLayer([Flow(FlowDirection.In)] uint num_entries, [Flow(FlowDirection.In)] in cl_icd_dispatch target_dispatch, [Flow(FlowDirection.Out)] out uint num_entries_ret, [Flow(FlowDirection.In)] in cl_icd_dispatch* layer_dispatch); + public unsafe partial int InitLayer([Flow(FlowDirection.In)] uint num_entries, [Flow(FlowDirection.In)] in T0 target_dispatch, [Flow(FlowDirection.Out)] out uint num_entries_ret, [Flow(FlowDirection.In)] in void* layer_dispatch) where T0 : unmanaged; public LoaderLayers(INativeContext ctx) : base(ctx) diff --git a/src/OpenCL/Extensions/Silk.NET.OpenCL.Extensions.LOADER/LoaderLayersOverloads.gen.cs b/src/OpenCL/Extensions/Silk.NET.OpenCL.Extensions.LOADER/LoaderLayersOverloads.gen.cs index d745093a46..cf79333837 100644 --- a/src/OpenCL/Extensions/Silk.NET.OpenCL.Extensions.LOADER/LoaderLayersOverloads.gen.cs +++ b/src/OpenCL/Extensions/Silk.NET.OpenCL.Extensions.LOADER/LoaderLayersOverloads.gen.cs @@ -16,55 +16,55 @@ namespace Silk.NET.OpenCL.Extensions.LOADER { public static class LoaderLayersOverloads { - public static unsafe int GetLayerInfo(this LoaderLayers thisApi, [Flow(FlowDirection.In)] nuint param_value_size, [Flow(FlowDirection.In)] cl_layer_info param_name, [Flow(FlowDirection.Out)] void* param_value, [Flow(FlowDirection.Out)] Span param_value_size_ret) + public static unsafe int GetLayerInfo(this LoaderLayers thisApi, [Flow(FlowDirection.In)] nuint param_value_size, [Flow(FlowDirection.In)] uint param_name, [Flow(FlowDirection.Out)] void* param_value, [Flow(FlowDirection.Out)] Span param_value_size_ret) { // SpanOverloader return thisApi.GetLayerInfo(param_value_size, param_name, param_value, out param_value_size_ret.GetPinnableReference()); } - public static unsafe int GetLayerInfo(this LoaderLayers thisApi, [Flow(FlowDirection.In)] nuint param_value_size, [Flow(FlowDirection.In)] cl_layer_info param_name, [Flow(FlowDirection.Out)] Span param_value, [Flow(FlowDirection.Out)] nuint* param_value_size_ret) where T0 : unmanaged + public static unsafe int GetLayerInfo(this LoaderLayers thisApi, [Flow(FlowDirection.In)] nuint param_value_size, [Flow(FlowDirection.In)] uint param_name, [Flow(FlowDirection.Out)] Span param_value, [Flow(FlowDirection.Out)] nuint* param_value_size_ret) where T0 : unmanaged { // SpanOverloader return thisApi.GetLayerInfo(param_value_size, param_name, out param_value.GetPinnableReference(), param_value_size_ret); } - public static unsafe int GetLayerInfo(this LoaderLayers thisApi, [Flow(FlowDirection.In)] nuint param_value_size, [Flow(FlowDirection.In)] cl_layer_info param_name, [Flow(FlowDirection.Out)] Span param_value, [Flow(FlowDirection.Out)] Span param_value_size_ret) where T0 : unmanaged + public static unsafe int GetLayerInfo(this LoaderLayers thisApi, [Flow(FlowDirection.In)] nuint param_value_size, [Flow(FlowDirection.In)] uint param_name, [Flow(FlowDirection.Out)] Span param_value, [Flow(FlowDirection.Out)] Span param_value_size_ret) where T0 : unmanaged { // SpanOverloader return thisApi.GetLayerInfo(param_value_size, param_name, out param_value.GetPinnableReference(), out param_value_size_ret.GetPinnableReference()); } - public static unsafe int InitLayer(this LoaderLayers thisApi, [Flow(FlowDirection.In)] uint num_entries, [Flow(FlowDirection.In)] cl_icd_dispatch* target_dispatch, [Flow(FlowDirection.Out)] Span num_entries_ret, [Flow(FlowDirection.In)] cl_icd_dispatch** layer_dispatch) + public static unsafe int InitLayer(this LoaderLayers thisApi, [Flow(FlowDirection.In)] uint num_entries, [Flow(FlowDirection.In)] void* target_dispatch, [Flow(FlowDirection.Out)] Span num_entries_ret, [Flow(FlowDirection.In)] void** layer_dispatch) { // SpanOverloader return thisApi.InitLayer(num_entries, target_dispatch, out num_entries_ret.GetPinnableReference(), layer_dispatch); } - public static unsafe int InitLayer(this LoaderLayers thisApi, [Flow(FlowDirection.In)] uint num_entries, [Flow(FlowDirection.In)] cl_icd_dispatch* target_dispatch, [Flow(FlowDirection.Out)] Span num_entries_ret, [Flow(FlowDirection.In)] in cl_icd_dispatch* layer_dispatch) + public static unsafe int InitLayer(this LoaderLayers thisApi, [Flow(FlowDirection.In)] uint num_entries, [Flow(FlowDirection.In)] void* target_dispatch, [Flow(FlowDirection.Out)] Span num_entries_ret, [Flow(FlowDirection.In)] in void* layer_dispatch) { // SpanOverloader return thisApi.InitLayer(num_entries, target_dispatch, out num_entries_ret.GetPinnableReference(), in layer_dispatch); } - public static unsafe int InitLayer(this LoaderLayers thisApi, [Flow(FlowDirection.In)] uint num_entries, [Flow(FlowDirection.In)] ReadOnlySpan target_dispatch, [Flow(FlowDirection.Out)] uint* num_entries_ret, [Flow(FlowDirection.In)] cl_icd_dispatch** layer_dispatch) + public static unsafe int InitLayer(this LoaderLayers thisApi, [Flow(FlowDirection.In)] uint num_entries, [Flow(FlowDirection.In)] ReadOnlySpan target_dispatch, [Flow(FlowDirection.Out)] uint* num_entries_ret, [Flow(FlowDirection.In)] void** layer_dispatch) where T0 : unmanaged { // SpanOverloader return thisApi.InitLayer(num_entries, in target_dispatch.GetPinnableReference(), num_entries_ret, layer_dispatch); } - public static unsafe int InitLayer(this LoaderLayers thisApi, [Flow(FlowDirection.In)] uint num_entries, [Flow(FlowDirection.In)] ReadOnlySpan target_dispatch, [Flow(FlowDirection.Out)] uint* num_entries_ret, [Flow(FlowDirection.In)] in cl_icd_dispatch* layer_dispatch) + public static unsafe int InitLayer(this LoaderLayers thisApi, [Flow(FlowDirection.In)] uint num_entries, [Flow(FlowDirection.In)] ReadOnlySpan target_dispatch, [Flow(FlowDirection.Out)] uint* num_entries_ret, [Flow(FlowDirection.In)] in void* layer_dispatch) where T0 : unmanaged { // SpanOverloader return thisApi.InitLayer(num_entries, in target_dispatch.GetPinnableReference(), num_entries_ret, in layer_dispatch); } - public static unsafe int InitLayer(this LoaderLayers thisApi, [Flow(FlowDirection.In)] uint num_entries, [Flow(FlowDirection.In)] ReadOnlySpan target_dispatch, [Flow(FlowDirection.Out)] Span num_entries_ret, [Flow(FlowDirection.In)] cl_icd_dispatch** layer_dispatch) + public static unsafe int InitLayer(this LoaderLayers thisApi, [Flow(FlowDirection.In)] uint num_entries, [Flow(FlowDirection.In)] ReadOnlySpan target_dispatch, [Flow(FlowDirection.Out)] Span num_entries_ret, [Flow(FlowDirection.In)] void** layer_dispatch) where T0 : unmanaged { // SpanOverloader return thisApi.InitLayer(num_entries, in target_dispatch.GetPinnableReference(), out num_entries_ret.GetPinnableReference(), layer_dispatch); } - public static unsafe int InitLayer(this LoaderLayers thisApi, [Flow(FlowDirection.In)] uint num_entries, [Flow(FlowDirection.In)] ReadOnlySpan target_dispatch, [Flow(FlowDirection.Out)] Span num_entries_ret, [Flow(FlowDirection.In)] in cl_icd_dispatch* layer_dispatch) + public static unsafe int InitLayer(this LoaderLayers thisApi, [Flow(FlowDirection.In)] uint num_entries, [Flow(FlowDirection.In)] ReadOnlySpan target_dispatch, [Flow(FlowDirection.Out)] Span num_entries_ret, [Flow(FlowDirection.In)] in void* layer_dispatch) where T0 : unmanaged { // SpanOverloader return thisApi.InitLayer(num_entries, in target_dispatch.GetPinnableReference(), out num_entries_ret.GetPinnableReference(), in layer_dispatch); diff --git a/src/OpenGL/Extensions/Silk.NET.OpenGLES.Extensions.MESA/Enums/MESA.gen.cs b/src/OpenGL/Extensions/Silk.NET.OpenGLES.Extensions.MESA/Enums/MESA.gen.cs index a44b887b20..99b39ae9c8 100644 --- a/src/OpenGL/Extensions/Silk.NET.OpenGLES.Extensions.MESA/Enums/MESA.gen.cs +++ b/src/OpenGL/Extensions/Silk.NET.OpenGLES.Extensions.MESA/Enums/MESA.gen.cs @@ -12,6 +12,10 @@ namespace Silk.NET.OpenGLES.Extensions.MESA [NativeName("Name", "GLenum")] public enum MESA : int { + [NativeName("Name", "GL_BGR_EXT")] + BgrExt = 0x80E0, + [NativeName("Name", "GL_BGRA_EXT")] + BgraExt = 0x80E1, [NativeName("Name", "GL_FRAMEBUFFER_FLIP_X_MESA")] FramebufferFlipXMesa = 0x8BBC, [NativeName("Name", "GL_FRAMEBUFFER_FLIP_Y_MESA")] diff --git a/src/OpenXR/Extensions/Silk.NET.OpenXR.Extensions.FB/FBSwapchainUpdateState.gen.cs b/src/OpenXR/Extensions/Silk.NET.OpenXR.Extensions.FB/FBSwapchainUpdateState.gen.cs new file mode 100644 index 0000000000..97c435a794 --- /dev/null +++ b/src/OpenXR/Extensions/Silk.NET.OpenXR.Extensions.FB/FBSwapchainUpdateState.gen.cs @@ -0,0 +1,37 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +using System; +using System.Runtime.InteropServices; +using System.Runtime.CompilerServices; +using System.Text; +using Silk.NET.Core; +using Silk.NET.Core.Native; +using Silk.NET.Core.Attributes; +using Silk.NET.Core.Contexts; +using Silk.NET.Core.Loader; +using Silk.NET.OpenXR; +using Extension = Silk.NET.Core.Attributes.ExtensionAttribute; + +#pragma warning disable 1591 + +namespace Silk.NET.OpenXR.Extensions.FB +{ + [Extension("XR_FB_swapchain_update_state")] + public unsafe partial class FBSwapchainUpdateState : NativeExtension + { + public const string ExtensionName = "XR_FB_swapchain_update_state"; + /// To be documented. + [NativeApi(EntryPoint = "xrUpdateSwapchainFB")] + public unsafe partial Result UpdateSwapchainFB([Count(Count = 0)] Swapchain swapchain, [Count(Count = 0), Flow(FlowDirection.In)] SwapchainStateBaseHeaderFB* state); + + /// To be documented. + [NativeApi(EntryPoint = "xrUpdateSwapchainFB")] + public partial Result UpdateSwapchainFB([Count(Count = 0)] Swapchain swapchain, [Count(Count = 0), Flow(FlowDirection.In)] in SwapchainStateBaseHeaderFB state); + + public FBSwapchainUpdateState(INativeContext ctx) + : base(ctx) + { + } + } +} + diff --git a/src/OpenXR/Extensions/Silk.NET.OpenXR.Extensions.FB/FBSwapchainUpdateStateOverloads.gen.cs b/src/OpenXR/Extensions/Silk.NET.OpenXR.Extensions.FB/FBSwapchainUpdateStateOverloads.gen.cs new file mode 100644 index 0000000000..5d38ab52fc --- /dev/null +++ b/src/OpenXR/Extensions/Silk.NET.OpenXR.Extensions.FB/FBSwapchainUpdateStateOverloads.gen.cs @@ -0,0 +1,28 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +using System; +using System.Runtime.InteropServices; +using System.Runtime.CompilerServices; +using System.Text; +using Silk.NET.Core; +using Silk.NET.Core.Native; +using Silk.NET.Core.Attributes; +using Silk.NET.Core.Contexts; +using Silk.NET.Core.Loader; + +#pragma warning disable 1591 + +namespace Silk.NET.OpenXR.Extensions.FB +{ + public static class FBSwapchainUpdateStateOverloads + { + /// To be documented. + public static unsafe Result UpdateSwapchainFB(this FBSwapchainUpdateState thisApi, [Count(Count = 0)] Swapchain swapchain, [Count(Count = 0), Flow(FlowDirection.In)] ReadOnlySpan state) + { + // SpanOverloader + return thisApi.UpdateSwapchainFB(swapchain, in state.GetPinnableReference()); + } + + } +} + diff --git a/src/OpenXR/Silk.NET.OpenXR/Enums/AndroidSurfaceSwapchainFlagsFB.gen.cs b/src/OpenXR/Silk.NET.OpenXR/Enums/AndroidSurfaceSwapchainFlagsFB.gen.cs index f0fcc201f3..aad3fd760f 100644 --- a/src/OpenXR/Silk.NET.OpenXR/Enums/AndroidSurfaceSwapchainFlagsFB.gen.cs +++ b/src/OpenXR/Silk.NET.OpenXR/Enums/AndroidSurfaceSwapchainFlagsFB.gen.cs @@ -11,7 +11,7 @@ namespace Silk.NET.OpenXR { [Flags()] [NativeName("Name", "XrAndroidSurfaceSwapchainFlagsFB")] - public enum AndroidSurfaceSwapchainFlagsFB : int + public enum AndroidSurfaceSwapchainFlagsFB : long { [NativeName("Name", "XR_ANDROID_SURFACE_SWAPCHAIN_SYNCHRONOUS_BIT_FB")] AndroidSurfaceSwapchainSynchronousBitFB = 1, diff --git a/src/OpenXR/Silk.NET.OpenXR/Enums/CompositionLayerFlags.gen.cs b/src/OpenXR/Silk.NET.OpenXR/Enums/CompositionLayerFlags.gen.cs index ebc4ea4c57..7cda0a9141 100644 --- a/src/OpenXR/Silk.NET.OpenXR/Enums/CompositionLayerFlags.gen.cs +++ b/src/OpenXR/Silk.NET.OpenXR/Enums/CompositionLayerFlags.gen.cs @@ -11,7 +11,7 @@ namespace Silk.NET.OpenXR { [Flags()] [NativeName("Name", "XrCompositionLayerFlags")] - public enum CompositionLayerFlags : int + public enum CompositionLayerFlags : long { [NativeName("Name", "XR_COMPOSITION_LAYER_CORRECT_CHROMATIC_ABERRATION_BIT")] CompositionLayerCorrectChromaticAberrationBit = 1, diff --git a/src/OpenXR/Silk.NET.OpenXR/Enums/DebugUtilsMessageSeverityFlagsEXT.gen.cs b/src/OpenXR/Silk.NET.OpenXR/Enums/DebugUtilsMessageSeverityFlagsEXT.gen.cs index 72c6ce514c..2afedd6169 100644 --- a/src/OpenXR/Silk.NET.OpenXR/Enums/DebugUtilsMessageSeverityFlagsEXT.gen.cs +++ b/src/OpenXR/Silk.NET.OpenXR/Enums/DebugUtilsMessageSeverityFlagsEXT.gen.cs @@ -11,7 +11,7 @@ namespace Silk.NET.OpenXR { [Flags()] [NativeName("Name", "XrDebugUtilsMessageSeverityFlagsEXT")] - public enum DebugUtilsMessageSeverityFlagsEXT : int + public enum DebugUtilsMessageSeverityFlagsEXT : long { [NativeName("Name", "XR_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT")] DebugUtilsMessageSeverityVerboseBitExt = 1, diff --git a/src/OpenXR/Silk.NET.OpenXR/Enums/DebugUtilsMessageTypeFlagsEXT.gen.cs b/src/OpenXR/Silk.NET.OpenXR/Enums/DebugUtilsMessageTypeFlagsEXT.gen.cs index bc17cc94c7..aa42e5e1b7 100644 --- a/src/OpenXR/Silk.NET.OpenXR/Enums/DebugUtilsMessageTypeFlagsEXT.gen.cs +++ b/src/OpenXR/Silk.NET.OpenXR/Enums/DebugUtilsMessageTypeFlagsEXT.gen.cs @@ -11,7 +11,7 @@ namespace Silk.NET.OpenXR { [Flags()] [NativeName("Name", "XrDebugUtilsMessageTypeFlagsEXT")] - public enum DebugUtilsMessageTypeFlagsEXT : int + public enum DebugUtilsMessageTypeFlagsEXT : long { [NativeName("Name", "XR_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT")] DebugUtilsMessageTypeGeneralBitExt = 1, diff --git a/src/OpenXR/Silk.NET.OpenXR/Enums/HandJointsMotionRangeEXT.gen.cs b/src/OpenXR/Silk.NET.OpenXR/Enums/HandJointsMotionRangeEXT.gen.cs new file mode 100644 index 0000000000..2349b7a723 --- /dev/null +++ b/src/OpenXR/Silk.NET.OpenXR/Enums/HandJointsMotionRangeEXT.gen.cs @@ -0,0 +1,20 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + + +using System; +using Silk.NET.Core.Attributes; + +#pragma warning disable 1591 + +namespace Silk.NET.OpenXR +{ + [NativeName("Name", "XrHandJointsMotionRangeEXT")] + public enum HandJointsMotionRangeEXT : int + { + [NativeName("Name", "XR_HAND_JOINTS_MOTION_RANGE_UNOBSTRUCTED_EXT")] + HandJointsMotionRangeUnobstructedExt = 1, + [NativeName("Name", "XR_HAND_JOINTS_MOTION_RANGE_CONFORMING_TO_CONTROLLER_EXT")] + HandJointsMotionRangeConformingToControllerExt = 2, + } +} diff --git a/src/OpenXR/Silk.NET.OpenXR/Enums/InputSourceLocalizedNameFlags.gen.cs b/src/OpenXR/Silk.NET.OpenXR/Enums/InputSourceLocalizedNameFlags.gen.cs index b1ada28bf6..025df72826 100644 --- a/src/OpenXR/Silk.NET.OpenXR/Enums/InputSourceLocalizedNameFlags.gen.cs +++ b/src/OpenXR/Silk.NET.OpenXR/Enums/InputSourceLocalizedNameFlags.gen.cs @@ -11,7 +11,7 @@ namespace Silk.NET.OpenXR { [Flags()] [NativeName("Name", "XrInputSourceLocalizedNameFlags")] - public enum InputSourceLocalizedNameFlags : int + public enum InputSourceLocalizedNameFlags : long { [NativeName("Name", "XR_INPUT_SOURCE_LOCALIZED_NAME_USER_PATH_BIT")] InputSourceLocalizedNameUserPathBit = 1, diff --git a/src/OpenXR/Silk.NET.OpenXR/Enums/InstanceCreateFlags.gen.cs b/src/OpenXR/Silk.NET.OpenXR/Enums/InstanceCreateFlags.gen.cs index d55640f252..6ef0614428 100644 --- a/src/OpenXR/Silk.NET.OpenXR/Enums/InstanceCreateFlags.gen.cs +++ b/src/OpenXR/Silk.NET.OpenXR/Enums/InstanceCreateFlags.gen.cs @@ -11,7 +11,7 @@ namespace Silk.NET.OpenXR { [Flags()] [NativeName("Name", "XrInstanceCreateFlags")] - public enum InstanceCreateFlags : int + public enum InstanceCreateFlags : long { } } diff --git a/src/OpenXR/Silk.NET.OpenXR/Enums/OverlayMainSessionFlagsEXTX.gen.cs b/src/OpenXR/Silk.NET.OpenXR/Enums/OverlayMainSessionFlagsEXTX.gen.cs index b29980609f..114b859a33 100644 --- a/src/OpenXR/Silk.NET.OpenXR/Enums/OverlayMainSessionFlagsEXTX.gen.cs +++ b/src/OpenXR/Silk.NET.OpenXR/Enums/OverlayMainSessionFlagsEXTX.gen.cs @@ -11,7 +11,7 @@ namespace Silk.NET.OpenXR { [Flags()] [NativeName("Name", "XrOverlayMainSessionFlagsEXTX")] - public enum OverlayMainSessionFlagsEXTX : int + public enum OverlayMainSessionFlagsEXTX : long { [NativeName("Name", "XR_OVERLAY_MAIN_SESSION_ENABLED_COMPOSITION_LAYER_INFO_DEPTH_BIT_EXTX")] OverlayMainSessionEnabledCompositionLayerInfoDepthBitExtx = 1, diff --git a/src/OpenXR/Silk.NET.OpenXR/Enums/OverlaySessionCreateFlagsEXTX.gen.cs b/src/OpenXR/Silk.NET.OpenXR/Enums/OverlaySessionCreateFlagsEXTX.gen.cs index 5d3a1f1c39..6c7dc68a75 100644 --- a/src/OpenXR/Silk.NET.OpenXR/Enums/OverlaySessionCreateFlagsEXTX.gen.cs +++ b/src/OpenXR/Silk.NET.OpenXR/Enums/OverlaySessionCreateFlagsEXTX.gen.cs @@ -11,7 +11,7 @@ namespace Silk.NET.OpenXR { [Flags()] [NativeName("Name", "XrOverlaySessionCreateFlagsEXTX")] - public enum OverlaySessionCreateFlagsEXTX : int + public enum OverlaySessionCreateFlagsEXTX : long { } } diff --git a/src/OpenXR/Silk.NET.OpenXR/Enums/Result.gen.cs b/src/OpenXR/Silk.NET.OpenXR/Enums/Result.gen.cs index fa990814c4..5eb4fe6cf6 100644 --- a/src/OpenXR/Silk.NET.OpenXR/Enums/Result.gen.cs +++ b/src/OpenXR/Silk.NET.OpenXR/Enums/Result.gen.cs @@ -120,6 +120,8 @@ public enum Result : int ErrorLocalizedNameInvalid = -49, [NativeName("Name", "XR_ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING")] ErrorGraphicsRequirementsCallMissing = -50, + [NativeName("Name", "XR_ERROR_RUNTIME_UNAVAILABLE")] + ErrorRuntimeUnavailable = -51, [NativeName("Name", "XR_ERROR_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR")] ErrorAndroidThreadSettingsIDInvalidKhr = -1000003000, [NativeName("Name", "XR_ERROR_ANDROID_THREAD_SETTINGS_FAILURE_KHR")] diff --git a/src/OpenXR/Silk.NET.OpenXR/Enums/SessionCreateFlags.gen.cs b/src/OpenXR/Silk.NET.OpenXR/Enums/SessionCreateFlags.gen.cs index 876c10197b..4a417ad1f3 100644 --- a/src/OpenXR/Silk.NET.OpenXR/Enums/SessionCreateFlags.gen.cs +++ b/src/OpenXR/Silk.NET.OpenXR/Enums/SessionCreateFlags.gen.cs @@ -11,7 +11,7 @@ namespace Silk.NET.OpenXR { [Flags()] [NativeName("Name", "XrSessionCreateFlags")] - public enum SessionCreateFlags : int + public enum SessionCreateFlags : long { } } diff --git a/src/OpenXR/Silk.NET.OpenXR/Enums/SpaceLocationFlags.gen.cs b/src/OpenXR/Silk.NET.OpenXR/Enums/SpaceLocationFlags.gen.cs index 771f93ba56..9958b72106 100644 --- a/src/OpenXR/Silk.NET.OpenXR/Enums/SpaceLocationFlags.gen.cs +++ b/src/OpenXR/Silk.NET.OpenXR/Enums/SpaceLocationFlags.gen.cs @@ -11,7 +11,7 @@ namespace Silk.NET.OpenXR { [Flags()] [NativeName("Name", "XrSpaceLocationFlags")] - public enum SpaceLocationFlags : int + public enum SpaceLocationFlags : long { [NativeName("Name", "XR_SPACE_LOCATION_ORIENTATION_VALID_BIT")] SpaceLocationOrientationValidBit = 1, diff --git a/src/OpenXR/Silk.NET.OpenXR/Enums/SpaceVelocityFlags.gen.cs b/src/OpenXR/Silk.NET.OpenXR/Enums/SpaceVelocityFlags.gen.cs index 818f0e10da..ae2f0362b2 100644 --- a/src/OpenXR/Silk.NET.OpenXR/Enums/SpaceVelocityFlags.gen.cs +++ b/src/OpenXR/Silk.NET.OpenXR/Enums/SpaceVelocityFlags.gen.cs @@ -11,7 +11,7 @@ namespace Silk.NET.OpenXR { [Flags()] [NativeName("Name", "XrSpaceVelocityFlags")] - public enum SpaceVelocityFlags : int + public enum SpaceVelocityFlags : long { [NativeName("Name", "XR_SPACE_VELOCITY_LINEAR_VALID_BIT")] SpaceVelocityLinearValidBit = 1, diff --git a/src/OpenXR/Silk.NET.OpenXR/Enums/StructureType.gen.cs b/src/OpenXR/Silk.NET.OpenXR/Enums/StructureType.gen.cs index b3fa3b677a..e48853c5d1 100644 --- a/src/OpenXR/Silk.NET.OpenXR/Enums/StructureType.gen.cs +++ b/src/OpenXR/Silk.NET.OpenXR/Enums/StructureType.gen.cs @@ -242,8 +242,14 @@ public enum StructureType : int TypeHolographicWindowAttachmentMsft = 1000063000, [NativeName("Name", "XR_TYPE_ANDROID_SURFACE_SWAPCHAIN_CREATE_INFO_FB")] TypeAndroidSurfaceSwapchainCreateInfoFB = 1000070000, + [NativeName("Name", "XR_TYPE_SWAPCHAIN_STATE_ANDROID_SURFACE_DIMENSIONS_FB")] + TypeSwapchainStateAndroidSurfaceDimensionsFB = 1000071000, + [NativeName("Name", "XR_TYPE_SWAPCHAIN_STATE_SAMPLER_OPENGL_ES_FB")] + TypeSwapchainStateSamplerOpenglESFB = 1000071001, [NativeName("Name", "XR_TYPE_INTERACTION_PROFILE_ANALOG_THRESHOLD_VALVE")] TypeInteractionProfileAnalogThresholdValve = 1000079000, + [NativeName("Name", "XR_TYPE_HAND_JOINTS_MOTION_RANGE_INFO_EXT")] + TypeHandJointsMotionRangeInfoExt = 1000080000, [NativeName("Name", "XR_TYPE_LOADER_INIT_INFO_ANDROID_KHR")] TypeLoaderInitInfoAndroidKhr = 1000089000, [NativeName("Name", "XR_TYPE_VULKAN_INSTANCE_CREATE_INFO_KHR")] diff --git a/src/OpenXR/Silk.NET.OpenXR/Enums/SwapchainCreateFlags.gen.cs b/src/OpenXR/Silk.NET.OpenXR/Enums/SwapchainCreateFlags.gen.cs index 957885ef74..14b6bfefce 100644 --- a/src/OpenXR/Silk.NET.OpenXR/Enums/SwapchainCreateFlags.gen.cs +++ b/src/OpenXR/Silk.NET.OpenXR/Enums/SwapchainCreateFlags.gen.cs @@ -11,7 +11,7 @@ namespace Silk.NET.OpenXR { [Flags()] [NativeName("Name", "XrSwapchainCreateFlags")] - public enum SwapchainCreateFlags : int + public enum SwapchainCreateFlags : long { [NativeName("Name", "XR_SWAPCHAIN_CREATE_PROTECTED_CONTENT_BIT")] SwapchainCreateProtectedContentBit = 1, diff --git a/src/OpenXR/Silk.NET.OpenXR/Enums/SwapchainUsageFlags.gen.cs b/src/OpenXR/Silk.NET.OpenXR/Enums/SwapchainUsageFlags.gen.cs index 003c040087..dd2b2aebd9 100644 --- a/src/OpenXR/Silk.NET.OpenXR/Enums/SwapchainUsageFlags.gen.cs +++ b/src/OpenXR/Silk.NET.OpenXR/Enums/SwapchainUsageFlags.gen.cs @@ -11,7 +11,7 @@ namespace Silk.NET.OpenXR { [Flags()] [NativeName("Name", "XrSwapchainUsageFlags")] - public enum SwapchainUsageFlags : int + public enum SwapchainUsageFlags : long { [NativeName("Name", "XR_SWAPCHAIN_USAGE_COLOR_ATTACHMENT_BIT")] SwapchainUsageColorAttachmentBit = 1, diff --git a/src/OpenXR/Silk.NET.OpenXR/Enums/ViewStateFlags.gen.cs b/src/OpenXR/Silk.NET.OpenXR/Enums/ViewStateFlags.gen.cs index a721e9c506..cee067c86e 100644 --- a/src/OpenXR/Silk.NET.OpenXR/Enums/ViewStateFlags.gen.cs +++ b/src/OpenXR/Silk.NET.OpenXR/Enums/ViewStateFlags.gen.cs @@ -11,7 +11,7 @@ namespace Silk.NET.OpenXR { [Flags()] [NativeName("Name", "XrViewStateFlags")] - public enum ViewStateFlags : int + public enum ViewStateFlags : long { [NativeName("Name", "XR_VIEW_STATE_ORIENTATION_VALID_BIT")] ViewStateOrientationValidBit = 1, diff --git a/src/OpenXR/Silk.NET.OpenXR/Enums/VulkanDeviceCreateFlagsKHR.gen.cs b/src/OpenXR/Silk.NET.OpenXR/Enums/VulkanDeviceCreateFlagsKHR.gen.cs index 7a854255d0..f20461f72b 100644 --- a/src/OpenXR/Silk.NET.OpenXR/Enums/VulkanDeviceCreateFlagsKHR.gen.cs +++ b/src/OpenXR/Silk.NET.OpenXR/Enums/VulkanDeviceCreateFlagsKHR.gen.cs @@ -11,7 +11,7 @@ namespace Silk.NET.OpenXR { [Flags()] [NativeName("Name", "XrVulkanDeviceCreateFlagsKHR")] - public enum VulkanDeviceCreateFlagsKHR : int + public enum VulkanDeviceCreateFlagsKHR : long { } } diff --git a/src/OpenXR/Silk.NET.OpenXR/Enums/VulkanInstanceCreateFlagsKHR.gen.cs b/src/OpenXR/Silk.NET.OpenXR/Enums/VulkanInstanceCreateFlagsKHR.gen.cs index d08db3172d..167e0e33bb 100644 --- a/src/OpenXR/Silk.NET.OpenXR/Enums/VulkanInstanceCreateFlagsKHR.gen.cs +++ b/src/OpenXR/Silk.NET.OpenXR/Enums/VulkanInstanceCreateFlagsKHR.gen.cs @@ -11,7 +11,7 @@ namespace Silk.NET.OpenXR { [Flags()] [NativeName("Name", "XrVulkanInstanceCreateFlagsKHR")] - public enum VulkanInstanceCreateFlagsKHR : int + public enum VulkanInstanceCreateFlagsKHR : long { } } diff --git a/src/OpenXR/Silk.NET.OpenXR/NativeWindowExtensions.cs b/src/OpenXR/Silk.NET.OpenXR/NativeWindowExtensions.cs new file mode 100644 index 0000000000..f4fc131b0e --- /dev/null +++ b/src/OpenXR/Silk.NET.OpenXR/NativeWindowExtensions.cs @@ -0,0 +1,150 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Runtime.InteropServices; +using Silk.NET.Core; +using Silk.NET.Core.Contexts; + +namespace Silk.NET.OpenXR +{ + public static class NativeWindowExtensions + { + public static GraphicsBinding CreateOpenGLBinding(this T src) + where T : INativeWindowSource, IGLContextSource + { + if (src.Native is null || src.GLContext is null) + { + static void Throw() => throw new ArgumentException + ( + "The given window does not represent an active native window configured for OpenGL." + ); + + Throw(); + } + + return src.Native.CreateOpenGLBinding(src.GLContext); + } + + public static GraphicsBinding CreateOpenGLBinding(this IGLContext ctx, INativeWindow window) + => window.CreateOpenGLBinding(ctx); + + public static unsafe GraphicsBinding CreateOpenGLBinding(this INativeWindow window, IGLContext context) + { + if (!context.IsCurrent) + { + context.MakeCurrent(); + } + + if (window.Wayland is not null) + { + return new GraphicsBindingOpenGLWaylandKHR(display: (nint*) window.Wayland.Value.Display); + } + + if (window.Win32 is not null) + { + return new GraphicsBindingOpenGLWin32KHR + ( + hDC: window.Win32.Value.HDC, + hGlrc: ((delegate* unmanaged[Cdecl]) context.GetProcAddress("wglGetCurrentContext"))() + ); + } + + if (window.X11 is not null) + { + return new GraphicsBindingOpenGLXlibKHR + ( + xDisplay: (nint*) window.X11.Value.Display, + glxDrawable: ((delegate* unmanaged[Cdecl]) context.GetProcAddress("glXGetCurrentDrawable"))(), + glxContext: ((delegate* unmanaged[Cdecl]) context.GetProcAddress("glXGetCurrentContext"))() + ); + } + + static void Throw() => throw new NotSupportedException + ( + "Unable to obtain graphics requirements for the given native window." + ); + + Throw(); + return default; + } + + public static GraphicsBinding CreateOpenGLESBinding(this T src) + where T : INativeWindowSource, IGLContextSource + { + if (src.Native is null || src.GLContext is null) + { + static void Throw() => throw new ArgumentException + ( + "The given window does not represent an active native window configured for OpenGL." + ); + + Throw(); + } + + return src.Native.CreateOpenGLESBinding(src.GLContext); + } + + public static GraphicsBinding CreateOpenGLESBinding(this IGLContext ctx, INativeWindow window) + => window.CreateOpenGLESBinding(ctx); + + public static unsafe GraphicsBinding CreateOpenGLESBinding(this INativeWindow window, IGLContext context) + { + if (!context.IsCurrent) + { + context.MakeCurrent(); + } + + if (window.Android is not null) + { + const int configId = 0x3028; + int config; + var dpy = ((delegate* unmanaged[Cdecl]) context.GetProcAddress("eglGetCurrentDisplay"))(); + var surface = window.Android.Value.Surface; + + ((delegate* unmanaged[Cdecl]) context.GetProcAddress("eglQuerySurface")) + (dpy, surface, configId, &config); + + var getConfigs = (delegate* unmanaged[Cdecl]) context.GetProcAddress + ("eglGetConfigs"); + var getConfigAttrib = (delegate* unmanaged[Cdecl]) context.GetProcAddress + ("eglGetConfigAttrib"); + int numConfigs; + getConfigs(dpy, null, 0, &numConfigs); + + var configs = numConfigs > 512 / sizeof(nint) ? new nint[numConfigs] : stackalloc nint[numConfigs]; + + fixed (nint* configPtr = configs) + { + getConfigs(dpy, configPtr, numConfigs, &numConfigs); + } + + nint theConfig = 0; + for (var i = 0; i < numConfigs; i++) + { + int thisConfig; + getConfigAttrib(dpy, configs[i], configId, &thisConfig); + if (thisConfig == config) + { + theConfig = configs[i]; + } + } + + return new GraphicsBindingOpenGLESAndroidKHR + ( + display: dpy, + context: ((delegate* unmanaged[Cdecl]) context.GetProcAddress("eglGetCurrentContext"))(), + config: theConfig + ); + } + + static void Throw() => throw new NotSupportedException + ( + "Unable to obtain graphics requirements for the given native window." + ); + + Throw(); + return default; + } + } +} diff --git a/src/OpenXR/Silk.NET.OpenXR/Structs/GraphicsBinding.cs b/src/OpenXR/Silk.NET.OpenXR/Structs/GraphicsBinding.cs new file mode 100644 index 0000000000..60e41246ca --- /dev/null +++ b/src/OpenXR/Silk.NET.OpenXR/Structs/GraphicsBinding.cs @@ -0,0 +1,100 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace Silk.NET.OpenXR +{ + /// + /// A union containing known graphics bindings, intended for use by graphics binding creation abstractions. + /// + [StructLayout(LayoutKind.Explicit)] + public struct GraphicsBinding + { + [FieldOffset(0)] public StructureType Type; + + [FieldOffset(0)] public GraphicsBindingD3D11KHR D3D11Khr; + [FieldOffset(0)] public GraphicsBindingD3D12KHR D3D12Khr; + [FieldOffset(0)] public GraphicsBindingEGLMNDX EglMndx; + [FieldOffset(0)] public GraphicsBindingOpenGLESAndroidKHR OpenGLESAndroidKhr; + [FieldOffset(0)] public GraphicsBindingOpenGLWaylandKHR OpenGLWaylandKhr; + [FieldOffset(0)] public GraphicsBindingOpenGLWin32KHR OpenGLWin32Khr; + [FieldOffset(0)] public GraphicsBindingOpenGLXcbKHR OpenGLXcbKhr; + [FieldOffset(0)] public GraphicsBindingOpenGLXlibKHR OpenGLXlibKhr; + [FieldOffset(0)] public GraphicsBindingVulkan2KHR Vulkan2Khr; + [FieldOffset(0)] public GraphicsBindingVulkanKHR VulkanKhr; + + public static implicit operator GraphicsBinding(GraphicsBindingD3D11KHR binding) + => Unsafe.As(ref binding); + + public static implicit operator GraphicsBinding(GraphicsBindingD3D12KHR binding) + => Unsafe.As(ref binding); + + public static implicit operator GraphicsBinding(GraphicsBindingEGLMNDX binding) + => Unsafe.As(ref binding); + + public static implicit operator GraphicsBinding(GraphicsBindingOpenGLESAndroidKHR binding) + => Unsafe.As(ref binding); + + public static implicit operator GraphicsBinding(GraphicsBindingOpenGLWaylandKHR binding) + => Unsafe.As(ref binding); + + public static implicit operator GraphicsBinding(GraphicsBindingOpenGLWin32KHR binding) + => Unsafe.As(ref binding); + + public static implicit operator GraphicsBinding(GraphicsBindingOpenGLXcbKHR binding) + => Unsafe.As(ref binding); + + public static implicit operator GraphicsBinding(GraphicsBindingOpenGLXlibKHR binding) + => Unsafe.As(ref binding); + + public static implicit operator GraphicsBinding(GraphicsBindingVulkan2KHR binding) + => Unsafe.As(ref binding); + + public static implicit operator GraphicsBinding(GraphicsBindingVulkanKHR binding) + => Unsafe.As(ref binding); + + private readonly T Cast(StructureType assertType) + { + if (Type != assertType) + { + static void Throw() => throw new InvalidCastException(); + Throw(); + } + + return Unsafe.As(ref Unsafe.AsRef(in this)); + } + + public static explicit operator GraphicsBindingD3D11KHR(GraphicsBinding binding) + => binding.Cast(StructureType.TypeGraphicsBindingD3D11Khr); + + public static explicit operator GraphicsBindingD3D12KHR(GraphicsBinding binding) + => binding.Cast(StructureType.TypeGraphicsBindingD3D12Khr); + + public static explicit operator GraphicsBindingEGLMNDX(GraphicsBinding binding) + => binding.Cast(StructureType.TypeGraphicsBindingEglMndx); + + public static explicit operator GraphicsBindingOpenGLESAndroidKHR(GraphicsBinding binding) + => binding.Cast(StructureType.TypeGraphicsBindingOpenglESAndroidKhr); + + public static explicit operator GraphicsBindingOpenGLWaylandKHR(GraphicsBinding binding) + => binding.Cast(StructureType.TypeGraphicsBindingOpenglWaylandKhr); + + public static explicit operator GraphicsBindingOpenGLWin32KHR(GraphicsBinding binding) + => binding.Cast(StructureType.TypeGraphicsBindingOpenglWin32Khr); + + public static explicit operator GraphicsBindingOpenGLXcbKHR(GraphicsBinding binding) + => binding.Cast(StructureType.TypeGraphicsBindingOpenglXcbKhr); + + public static explicit operator GraphicsBindingOpenGLXlibKHR(GraphicsBinding binding) + => binding.Cast(StructureType.TypeGraphicsBindingOpenglXlibKhr); + + public static explicit operator GraphicsBindingVulkan2KHR(GraphicsBinding binding) + => binding.Cast(StructureType.TypeGraphicsBindingVulkan2Khr); + + public static explicit operator GraphicsBindingVulkanKHR(GraphicsBinding binding) + => binding.Cast(StructureType.TypeGraphicsBindingVulkanKhr); + } +} diff --git a/src/OpenXR/Silk.NET.OpenXR/Structs/GraphicsRequirements.cs b/src/OpenXR/Silk.NET.OpenXR/Structs/GraphicsRequirements.cs new file mode 100644 index 0000000000..af9a069975 --- /dev/null +++ b/src/OpenXR/Silk.NET.OpenXR/Structs/GraphicsRequirements.cs @@ -0,0 +1,73 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace Silk.NET.OpenXR +{ + /// + /// A union containing all known graphics requirements structures, intended for use by binding creation + /// abstractions. + /// + [StructLayout(LayoutKind.Explicit)] + public struct GraphicsRequirements + { + [FieldOffset(0)] public StructureType Type; + + [FieldOffset(0)] public GraphicsRequirementsD3D11KHR D3D11Khr; + [FieldOffset(0)] public GraphicsRequirementsD3D12KHR D3D12Khr; + [FieldOffset(0)] public GraphicsRequirementsOpenGLESKHR OpenGLESKhr; + [FieldOffset(0)] public GraphicsRequirementsOpenGLKHR OpenGLKhr; + [FieldOffset(0)] public GraphicsRequirementsVulkan2KHR Vulkan2Khr; + [FieldOffset(0)] public GraphicsRequirementsVulkanKHR VulkanKhr; + + public static implicit operator GraphicsRequirements(GraphicsRequirementsD3D11KHR binding) + => Unsafe.As(ref binding); + + public static implicit operator GraphicsRequirements(GraphicsRequirementsD3D12KHR binding) + => Unsafe.As(ref binding); + + public static implicit operator GraphicsRequirements(GraphicsRequirementsOpenGLESKHR binding) + => Unsafe.As(ref binding); + + public static implicit operator GraphicsRequirements(GraphicsRequirementsOpenGLKHR binding) + => Unsafe.As(ref binding); + + public static implicit operator GraphicsRequirements(GraphicsRequirementsVulkan2KHR binding) + => Unsafe.As(ref binding); + + public static implicit operator GraphicsRequirements(GraphicsRequirementsVulkanKHR binding) + => Unsafe.As(ref binding); + + private readonly T Cast(StructureType assertType) + { + if (Type != assertType) + { + static void Throw() => throw new InvalidCastException(); + Throw(); + } + + return Unsafe.As(ref Unsafe.AsRef(in this)); + } + + public static explicit operator GraphicsRequirementsD3D11KHR(GraphicsRequirements requirements) + => requirements.Cast(StructureType.TypeGraphicsRequirementsD3D11Khr); + + public static explicit operator GraphicsRequirementsD3D12KHR(GraphicsRequirements requirements) + => requirements.Cast(StructureType.TypeGraphicsRequirementsD3D12Khr); + + public static explicit operator GraphicsRequirementsOpenGLESKHR(GraphicsRequirements requirements) + => requirements.Cast(StructureType.TypeGraphicsRequirementsOpenglESKhr); + + public static explicit operator GraphicsRequirementsOpenGLKHR(GraphicsRequirements requirements) + => requirements.Cast(StructureType.TypeGraphicsRequirementsOpenglKhr); + + public static explicit operator GraphicsRequirementsVulkan2KHR(GraphicsRequirements requirements) + => requirements.Cast(StructureType.TypeGraphicsRequirementsVulkan2Khr); + + public static explicit operator GraphicsRequirementsVulkanKHR(GraphicsRequirements requirements) + => requirements.Cast(StructureType.TypeGraphicsRequirementsVulkanKhr); + } +} diff --git a/src/OpenXR/Silk.NET.OpenXR/Structs/HandJointsMotionRangeInfoEXT.gen.cs b/src/OpenXR/Silk.NET.OpenXR/Structs/HandJointsMotionRangeInfoEXT.gen.cs new file mode 100644 index 0000000000..8a7f3d1beb --- /dev/null +++ b/src/OpenXR/Silk.NET.OpenXR/Structs/HandJointsMotionRangeInfoEXT.gen.cs @@ -0,0 +1,61 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + + +using System; +using System.Runtime.InteropServices; +using System.Runtime.CompilerServices; +using System.Text; +using Silk.NET.Core; +using Silk.NET.Core.Native; +using Silk.NET.Core.Attributes; +using Silk.NET.Core.Contexts; +using Silk.NET.Core.Loader; + +#pragma warning disable 1591 + +namespace Silk.NET.OpenXR +{ + [NativeName("Name", "XrHandJointsMotionRangeInfoEXT")] + public unsafe partial struct HandJointsMotionRangeInfoEXT + { + public HandJointsMotionRangeInfoEXT + ( + StructureType? type = StructureType.TypeHandJointsMotionRangeInfoExt, + void* next = null, + HandJointsMotionRangeEXT? handJointsMotionRange = null + ) : this() + { + if (type is not null) + { + Type = type.Value; + } + + if (next is not null) + { + Next = next; + } + + if (handJointsMotionRange is not null) + { + HandJointsMotionRange = handJointsMotionRange.Value; + } + } + +/// + [NativeName("Type", "XrStructureType")] + [NativeName("Type.Name", "XrStructureType")] + [NativeName("Name", "type")] + public StructureType Type; +/// + [NativeName("Type", "void*")] + [NativeName("Type.Name", "void")] + [NativeName("Name", "next")] + public void* Next; +/// + [NativeName("Type", "XrHandJointsMotionRangeEXT")] + [NativeName("Type.Name", "XrHandJointsMotionRangeEXT")] + [NativeName("Name", "handJointsMotionRange")] + public HandJointsMotionRangeEXT HandJointsMotionRange; + } +} diff --git a/src/OpenXR/Silk.NET.OpenXR/Structs/SwapchainStateAndroidSurfaceDimensionsFB.gen.cs b/src/OpenXR/Silk.NET.OpenXR/Structs/SwapchainStateAndroidSurfaceDimensionsFB.gen.cs new file mode 100644 index 0000000000..882ffd74e6 --- /dev/null +++ b/src/OpenXR/Silk.NET.OpenXR/Structs/SwapchainStateAndroidSurfaceDimensionsFB.gen.cs @@ -0,0 +1,72 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + + +using System; +using System.Runtime.InteropServices; +using System.Runtime.CompilerServices; +using System.Text; +using Silk.NET.Core; +using Silk.NET.Core.Native; +using Silk.NET.Core.Attributes; +using Silk.NET.Core.Contexts; +using Silk.NET.Core.Loader; + +#pragma warning disable 1591 + +namespace Silk.NET.OpenXR +{ + [NativeName("Name", "XrSwapchainStateAndroidSurfaceDimensionsFB")] + public unsafe partial struct SwapchainStateAndroidSurfaceDimensionsFB + { + public SwapchainStateAndroidSurfaceDimensionsFB + ( + StructureType? type = StructureType.TypeSwapchainStateAndroidSurfaceDimensionsFB, + void* next = null, + uint? width = null, + uint? height = null + ) : this() + { + if (type is not null) + { + Type = type.Value; + } + + if (next is not null) + { + Next = next; + } + + if (width is not null) + { + Width = width.Value; + } + + if (height is not null) + { + Height = height.Value; + } + } + +/// + [NativeName("Type", "XrStructureType")] + [NativeName("Type.Name", "XrStructureType")] + [NativeName("Name", "type")] + public StructureType Type; +/// + [NativeName("Type", "void*")] + [NativeName("Type.Name", "void")] + [NativeName("Name", "next")] + public void* Next; +/// + [NativeName("Type", "uint32_t")] + [NativeName("Type.Name", "uint32_t")] + [NativeName("Name", "width")] + public uint Width; +/// + [NativeName("Type", "uint32_t")] + [NativeName("Type.Name", "uint32_t")] + [NativeName("Name", "height")] + public uint Height; + } +} diff --git a/src/OpenXR/Silk.NET.OpenXR/Structs/SwapchainStateBaseHeaderFB.gen.cs b/src/OpenXR/Silk.NET.OpenXR/Structs/SwapchainStateBaseHeaderFB.gen.cs new file mode 100644 index 0000000000..c52e776d33 --- /dev/null +++ b/src/OpenXR/Silk.NET.OpenXR/Structs/SwapchainStateBaseHeaderFB.gen.cs @@ -0,0 +1,50 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + + +using System; +using System.Runtime.InteropServices; +using System.Runtime.CompilerServices; +using System.Text; +using Silk.NET.Core; +using Silk.NET.Core.Native; +using Silk.NET.Core.Attributes; +using Silk.NET.Core.Contexts; +using Silk.NET.Core.Loader; + +#pragma warning disable 1591 + +namespace Silk.NET.OpenXR +{ + [NativeName("Name", "XrSwapchainStateBaseHeaderFB")] + public unsafe partial struct SwapchainStateBaseHeaderFB + { + public SwapchainStateBaseHeaderFB + ( + StructureType? type = null, + void* next = null + ) : this() + { + if (type is not null) + { + Type = type.Value; + } + + if (next is not null) + { + Next = next; + } + } + +/// + [NativeName("Type", "XrStructureType")] + [NativeName("Type.Name", "XrStructureType")] + [NativeName("Name", "type")] + public StructureType Type; +/// + [NativeName("Type", "void*")] + [NativeName("Type.Name", "void")] + [NativeName("Name", "next")] + public void* Next; + } +} diff --git a/src/OpenXR/Silk.NET.OpenXR/Structs/SwapchainStateSamplerOpenGLESFB.gen.cs b/src/OpenXR/Silk.NET.OpenXR/Structs/SwapchainStateSamplerOpenGLESFB.gen.cs new file mode 100644 index 0000000000..c48a6ed147 --- /dev/null +++ b/src/OpenXR/Silk.NET.OpenXR/Structs/SwapchainStateSamplerOpenGLESFB.gen.cs @@ -0,0 +1,160 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + + +using System; +using System.Runtime.InteropServices; +using System.Runtime.CompilerServices; +using System.Text; +using Silk.NET.Core; +using Silk.NET.Core.Native; +using Silk.NET.Core.Attributes; +using Silk.NET.Core.Contexts; +using Silk.NET.Core.Loader; + +#pragma warning disable 1591 + +namespace Silk.NET.OpenXR +{ + [NativeName("Name", "XrSwapchainStateSamplerOpenGLESFB")] + public unsafe partial struct SwapchainStateSamplerOpenGLESFB + { + public SwapchainStateSamplerOpenGLESFB + ( + StructureType? type = StructureType.TypeSwapchainStateSamplerOpenglESFB, + void* next = null, + uint? minFilter = null, + uint? magFilter = null, + uint? wrapModeS = null, + uint? wrapModeT = null, + uint? swizzleRed = null, + uint? swizzleGreen = null, + uint? swizzleBlue = null, + uint? swizzleAlpha = null, + float? maxAnisotropy = null, + Color4f? borderColor = null + ) : this() + { + if (type is not null) + { + Type = type.Value; + } + + if (next is not null) + { + Next = next; + } + + if (minFilter is not null) + { + MinFilter = minFilter.Value; + } + + if (magFilter is not null) + { + MagFilter = magFilter.Value; + } + + if (wrapModeS is not null) + { + WrapModeS = wrapModeS.Value; + } + + if (wrapModeT is not null) + { + WrapModeT = wrapModeT.Value; + } + + if (swizzleRed is not null) + { + SwizzleRed = swizzleRed.Value; + } + + if (swizzleGreen is not null) + { + SwizzleGreen = swizzleGreen.Value; + } + + if (swizzleBlue is not null) + { + SwizzleBlue = swizzleBlue.Value; + } + + if (swizzleAlpha is not null) + { + SwizzleAlpha = swizzleAlpha.Value; + } + + if (maxAnisotropy is not null) + { + MaxAnisotropy = maxAnisotropy.Value; + } + + if (borderColor is not null) + { + BorderColor = borderColor.Value; + } + } + +/// + [NativeName("Type", "XrStructureType")] + [NativeName("Type.Name", "XrStructureType")] + [NativeName("Name", "type")] + public StructureType Type; +/// + [NativeName("Type", "void*")] + [NativeName("Type.Name", "void")] + [NativeName("Name", "next")] + public void* Next; +/// + [NativeName("Type", "EGLenum")] + [NativeName("Type.Name", "EGLenum")] + [NativeName("Name", "minFilter")] + public uint MinFilter; +/// + [NativeName("Type", "EGLenum")] + [NativeName("Type.Name", "EGLenum")] + [NativeName("Name", "magFilter")] + public uint MagFilter; +/// + [NativeName("Type", "EGLenum")] + [NativeName("Type.Name", "EGLenum")] + [NativeName("Name", "wrapModeS")] + public uint WrapModeS; +/// + [NativeName("Type", "EGLenum")] + [NativeName("Type.Name", "EGLenum")] + [NativeName("Name", "wrapModeT")] + public uint WrapModeT; +/// + [NativeName("Type", "EGLenum")] + [NativeName("Type.Name", "EGLenum")] + [NativeName("Name", "swizzleRed")] + public uint SwizzleRed; +/// + [NativeName("Type", "EGLenum")] + [NativeName("Type.Name", "EGLenum")] + [NativeName("Name", "swizzleGreen")] + public uint SwizzleGreen; +/// + [NativeName("Type", "EGLenum")] + [NativeName("Type.Name", "EGLenum")] + [NativeName("Name", "swizzleBlue")] + public uint SwizzleBlue; +/// + [NativeName("Type", "EGLenum")] + [NativeName("Type.Name", "EGLenum")] + [NativeName("Name", "swizzleAlpha")] + public uint SwizzleAlpha; +/// + [NativeName("Type", "float")] + [NativeName("Type.Name", "float")] + [NativeName("Name", "maxAnisotropy")] + public float MaxAnisotropy; +/// + [NativeName("Type", "XrColor4f")] + [NativeName("Type.Name", "XrColor4f")] + [NativeName("Name", "borderColor")] + public Color4f BorderColor; + } +} diff --git a/src/OpenXR/Silk.NET.OpenXR/XR.cs b/src/OpenXR/Silk.NET.OpenXR/XR.cs index 9dbe6c78dc..6da92552a6 100644 --- a/src/OpenXR/Silk.NET.OpenXR/XR.cs +++ b/src/OpenXR/Silk.NET.OpenXR/XR.cs @@ -16,11 +16,11 @@ namespace Silk.NET.OpenXR public partial class XR { private Instance? _currentInstance; - private ConcurrentDictionary _vTables = new(); + private ConcurrentDictionary _vTables = new(); public Instance? CurrentInstance { get => _currentInstance; - set => SwapVTable(_vTables.GetOrAdd(_currentInstance = value, _ => CreateVTable())); + set => SwapVTable(_vTables.GetOrAdd((_currentInstance = value).GetValueOrDefault(), _ => CreateVTable())); } public static XR GetApi() { @@ -44,7 +44,7 @@ public static XR GetApi() /// to call an extension function from an extension that isn't loaded. /// /// Whether the extension is available and loaded. - public bool TryGetInstanceExtension(string layer, Instance instance, out T ext) where T : NativeExtension => + public bool TryGetInstanceExtension(string? layer, Instance instance, out T ext) where T : NativeExtension => !((ext = IsInstanceExtensionPresent(layer, ExtensionAttribute.GetExtensionAttribute(typeof(T)).Name) ? (T) Activator.CreateInstance (typeof(T), new LamdaNativeContext( @@ -67,10 +67,9 @@ public bool TryGetInstanceExtension(string layer, Instance instance, out T ex /// The layer name. /// The instance extension name. /// Whether the instance extension is available. - public unsafe bool IsInstanceExtensionPresent(string layer, string extension) + public unsafe bool IsInstanceExtensionPresent(string? layer, string extension) { // For a detailed explanation of the logic see Silk.Net.Vulkan.Vk.IsDeviceExtensionPresent - layer ??= string.Empty; var layerSep = layer + '\0'; var fullKey = layerSep + extension; var result = false; @@ -86,21 +85,21 @@ public unsafe bool IsInstanceExtensionPresent(string layer, string extension) // The lack of the device handle indicates we've not been previously initialised. We now need a write lock. _cachedInstanceExtensionsLock.EnterWriteLock(); GlobalMemory mem = null; - var layerName = SilkMarshal.StringToPtr(layer); + var layerName = (byte*) SilkMarshal.StringToPtr(layer); try { var extensionCount = 0u; - EnumerateInstanceExtensionProperties((byte*) layerName, extensionCount, &extensionCount, null); + EnumerateInstanceExtensionProperties(layerName, extensionCount, &extensionCount, null); mem = GlobalMemory.Allocate((int) extensionCount * sizeof(ExtensionProperties)); - var exts = (ExtensionProperties*) Unsafe.AsPointer(ref mem.GetPinnableReference()); + var exts = mem.AsPtr(); - for (int i = 0; i < extensionCount; i++) + for (var i = 0; i < extensionCount; i++) { - exts[i] = new ExtensionProperties(StructureType.TypeExtensionProperties); + exts[i] = new(StructureType.TypeExtensionProperties); } - EnumerateInstanceExtensionProperties((byte*) layerName, extensionCount, &extensionCount, exts); + EnumerateInstanceExtensionProperties(layerName, extensionCount, &extensionCount, exts); for (var i = 0; i < extensionCount; i++) { var newKey = layerSep + Marshal.PtrToStringAnsi((nint) exts[i].ExtensionName); @@ -114,7 +113,11 @@ public unsafe bool IsInstanceExtensionPresent(string layer, string extension) finally { _cachedInstanceExtensionsLock.ExitWriteLock(); - SilkMarshal.Free(layerName); + if (layerName != null) + { + SilkMarshal.Free((nint) layerName); + } + mem?.Dispose(); } } @@ -123,7 +126,7 @@ public unsafe bool IsInstanceExtensionPresent(string layer, string extension) return result; } - protected override void PostInit() => _vTables.TryAdd(null, CurrentVTable); + protected override void PostInit() => _vTables.TryAdd(default, CurrentVTable); } } diff --git a/src/Vulkan/Extensions/Silk.NET.Vulkan.Extensions.FB/Silk.NET.Vulkan.Extensions.FB.csproj b/src/Vulkan/Extensions/Silk.NET.Vulkan.Extensions.FB/Silk.NET.Vulkan.Extensions.FB.csproj new file mode 100644 index 0000000000..ebc72f9598 --- /dev/null +++ b/src/Vulkan/Extensions/Silk.NET.Vulkan.Extensions.FB/Silk.NET.Vulkan.Extensions.FB.csproj @@ -0,0 +1,14 @@ + + + + netstandard2.0;netstandard2.1;netcoreapp3.1;net5.0 + true + preview + + + + + + + + diff --git a/src/Vulkan/Extensions/Silk.NET.Vulkan.Extensions.JUICE/Silk.NET.Vulkan.Extensions.JUICE.csproj b/src/Vulkan/Extensions/Silk.NET.Vulkan.Extensions.JUICE/Silk.NET.Vulkan.Extensions.JUICE.csproj new file mode 100644 index 0000000000..ebc72f9598 --- /dev/null +++ b/src/Vulkan/Extensions/Silk.NET.Vulkan.Extensions.JUICE/Silk.NET.Vulkan.Extensions.JUICE.csproj @@ -0,0 +1,14 @@ + + + + netstandard2.0;netstandard2.1;netcoreapp3.1;net5.0 + true + preview + + + + + + + + diff --git a/src/Vulkan/Extensions/Silk.NET.Vulkan.Extensions.NVX/NvxBinaryImport.gen.cs b/src/Vulkan/Extensions/Silk.NET.Vulkan.Extensions.NVX/NvxBinaryImport.gen.cs new file mode 100644 index 0000000000..f70fb5ae4f --- /dev/null +++ b/src/Vulkan/Extensions/Silk.NET.Vulkan.Extensions.NVX/NvxBinaryImport.gen.cs @@ -0,0 +1,117 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +using System; +using System.Runtime.InteropServices; +using System.Runtime.CompilerServices; +using System.Text; +using Silk.NET.Core; +using Silk.NET.Core.Native; +using Silk.NET.Core.Attributes; +using Silk.NET.Core.Contexts; +using Silk.NET.Core.Loader; +using Silk.NET.Vulkan; +using Extension = Silk.NET.Core.Attributes.ExtensionAttribute; + +#pragma warning disable 1591 + +namespace Silk.NET.Vulkan.Extensions.NVX +{ + [Extension("VK_NVX_binary_import")] + public unsafe partial class NvxBinaryImport : NativeExtension + { + public const string ExtensionName = "VK_NVX_binary_import"; + /// To be documented. + [NativeApi(EntryPoint = "vkCmdCuLaunchKernelNVX")] + public unsafe partial void CmdCuLaunchKernel([Count(Count = 0)] CommandBuffer commandBuffer, [Count(Count = 0), Flow(FlowDirection.In)] CuLaunchInfoNVX* pLaunchInfo); + + /// To be documented. + [NativeApi(EntryPoint = "vkCmdCuLaunchKernelNVX")] + public partial void CmdCuLaunchKernel([Count(Count = 0)] CommandBuffer commandBuffer, [Count(Count = 0), Flow(FlowDirection.In)] in CuLaunchInfoNVX pLaunchInfo); + + /// To be documented. + [NativeApi(EntryPoint = "vkCreateCuFunctionNVX")] + public unsafe partial Result CreateCuFunction([Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] CuFunctionCreateInfoNVX* pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] AllocationCallbacks* pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] CuFunctionNVX* pFunction); + + /// To be documented. + [NativeApi(EntryPoint = "vkCreateCuFunctionNVX")] + public unsafe partial Result CreateCuFunction([Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] CuFunctionCreateInfoNVX* pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] AllocationCallbacks* pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] out CuFunctionNVX pFunction); + + /// To be documented. + [NativeApi(EntryPoint = "vkCreateCuFunctionNVX")] + public unsafe partial Result CreateCuFunction([Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] CuFunctionCreateInfoNVX* pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] in AllocationCallbacks pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] CuFunctionNVX* pFunction); + + /// To be documented. + [NativeApi(EntryPoint = "vkCreateCuFunctionNVX")] + public unsafe partial Result CreateCuFunction([Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] CuFunctionCreateInfoNVX* pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] in AllocationCallbacks pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] out CuFunctionNVX pFunction); + + /// To be documented. + [NativeApi(EntryPoint = "vkCreateCuFunctionNVX")] + public unsafe partial Result CreateCuFunction([Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] in CuFunctionCreateInfoNVX pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] AllocationCallbacks* pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] CuFunctionNVX* pFunction); + + /// To be documented. + [NativeApi(EntryPoint = "vkCreateCuFunctionNVX")] + public unsafe partial Result CreateCuFunction([Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] in CuFunctionCreateInfoNVX pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] AllocationCallbacks* pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] out CuFunctionNVX pFunction); + + /// To be documented. + [NativeApi(EntryPoint = "vkCreateCuFunctionNVX")] + public unsafe partial Result CreateCuFunction([Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] in CuFunctionCreateInfoNVX pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] in AllocationCallbacks pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] CuFunctionNVX* pFunction); + + /// To be documented. + [NativeApi(EntryPoint = "vkCreateCuFunctionNVX")] + public partial Result CreateCuFunction([Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] in CuFunctionCreateInfoNVX pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] in AllocationCallbacks pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] out CuFunctionNVX pFunction); + + /// To be documented. + [NativeApi(EntryPoint = "vkCreateCuModuleNVX")] + public unsafe partial Result CreateCuModule([Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] CuModuleCreateInfoNVX* pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] AllocationCallbacks* pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] CuModuleNVX* pModule); + + /// To be documented. + [NativeApi(EntryPoint = "vkCreateCuModuleNVX")] + public unsafe partial Result CreateCuModule([Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] CuModuleCreateInfoNVX* pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] AllocationCallbacks* pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] out CuModuleNVX pModule); + + /// To be documented. + [NativeApi(EntryPoint = "vkCreateCuModuleNVX")] + public unsafe partial Result CreateCuModule([Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] CuModuleCreateInfoNVX* pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] in AllocationCallbacks pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] CuModuleNVX* pModule); + + /// To be documented. + [NativeApi(EntryPoint = "vkCreateCuModuleNVX")] + public unsafe partial Result CreateCuModule([Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] CuModuleCreateInfoNVX* pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] in AllocationCallbacks pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] out CuModuleNVX pModule); + + /// To be documented. + [NativeApi(EntryPoint = "vkCreateCuModuleNVX")] + public unsafe partial Result CreateCuModule([Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] in CuModuleCreateInfoNVX pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] AllocationCallbacks* pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] CuModuleNVX* pModule); + + /// To be documented. + [NativeApi(EntryPoint = "vkCreateCuModuleNVX")] + public unsafe partial Result CreateCuModule([Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] in CuModuleCreateInfoNVX pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] AllocationCallbacks* pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] out CuModuleNVX pModule); + + /// To be documented. + [NativeApi(EntryPoint = "vkCreateCuModuleNVX")] + public unsafe partial Result CreateCuModule([Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] in CuModuleCreateInfoNVX pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] in AllocationCallbacks pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] CuModuleNVX* pModule); + + /// To be documented. + [NativeApi(EntryPoint = "vkCreateCuModuleNVX")] + public partial Result CreateCuModule([Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] in CuModuleCreateInfoNVX pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] in AllocationCallbacks pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] out CuModuleNVX pModule); + + /// To be documented. + [NativeApi(EntryPoint = "vkDestroyCuFunctionNVX")] + public unsafe partial void DestroyCuFunction([Count(Count = 0)] Device device, [Count(Count = 0)] CuFunctionNVX function, [Count(Count = 0), Flow(FlowDirection.In)] AllocationCallbacks* pAllocator); + + /// To be documented. + [NativeApi(EntryPoint = "vkDestroyCuFunctionNVX")] + public partial void DestroyCuFunction([Count(Count = 0)] Device device, [Count(Count = 0)] CuFunctionNVX function, [Count(Count = 0), Flow(FlowDirection.In)] in AllocationCallbacks pAllocator); + + /// To be documented. + [NativeApi(EntryPoint = "vkDestroyCuModuleNVX")] + public unsafe partial void DestroyCuModule([Count(Count = 0)] Device device, [Count(Count = 0)] CuModuleNVX module, [Count(Count = 0), Flow(FlowDirection.In)] AllocationCallbacks* pAllocator); + + /// To be documented. + [NativeApi(EntryPoint = "vkDestroyCuModuleNVX")] + public partial void DestroyCuModule([Count(Count = 0)] Device device, [Count(Count = 0)] CuModuleNVX module, [Count(Count = 0), Flow(FlowDirection.In)] in AllocationCallbacks pAllocator); + + public NvxBinaryImport(INativeContext ctx) + : base(ctx) + { + } + } +} + diff --git a/src/Vulkan/Extensions/Silk.NET.Vulkan.Extensions.NVX/NvxBinaryImportOverloads.gen.cs b/src/Vulkan/Extensions/Silk.NET.Vulkan.Extensions.NVX/NvxBinaryImportOverloads.gen.cs new file mode 100644 index 0000000000..fc5ac8a5bf --- /dev/null +++ b/src/Vulkan/Extensions/Silk.NET.Vulkan.Extensions.NVX/NvxBinaryImportOverloads.gen.cs @@ -0,0 +1,140 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +using System; +using System.Runtime.InteropServices; +using System.Runtime.CompilerServices; +using System.Text; +using Silk.NET.Core; +using Silk.NET.Core.Native; +using Silk.NET.Core.Attributes; +using Silk.NET.Core.Contexts; +using Silk.NET.Core.Loader; + +#pragma warning disable 1591 + +namespace Silk.NET.Vulkan.Extensions.NVX +{ + public static class NvxBinaryImportOverloads + { + /// To be documented. + public static unsafe void CmdCuLaunchKernel(this NvxBinaryImport thisApi, [Count(Count = 0)] CommandBuffer commandBuffer, [Count(Count = 0), Flow(FlowDirection.In)] ReadOnlySpan pLaunchInfo) + { + // SpanOverloader + thisApi.CmdCuLaunchKernel(commandBuffer, in pLaunchInfo.GetPinnableReference()); + } + + /// To be documented. + public static unsafe Result CreateCuFunction(this NvxBinaryImport thisApi, [Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] CuFunctionCreateInfoNVX* pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] AllocationCallbacks* pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] Span pFunction) + { + // SpanOverloader + return thisApi.CreateCuFunction(device, pCreateInfo, pAllocator, out pFunction.GetPinnableReference()); + } + + /// To be documented. + public static unsafe Result CreateCuFunction(this NvxBinaryImport thisApi, [Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] CuFunctionCreateInfoNVX* pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] ReadOnlySpan pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] CuFunctionNVX* pFunction) + { + // SpanOverloader + return thisApi.CreateCuFunction(device, pCreateInfo, in pAllocator.GetPinnableReference(), pFunction); + } + + /// To be documented. + public static unsafe Result CreateCuFunction(this NvxBinaryImport thisApi, [Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] CuFunctionCreateInfoNVX* pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] ReadOnlySpan pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] Span pFunction) + { + // SpanOverloader + return thisApi.CreateCuFunction(device, pCreateInfo, in pAllocator.GetPinnableReference(), out pFunction.GetPinnableReference()); + } + + /// To be documented. + public static unsafe Result CreateCuFunction(this NvxBinaryImport thisApi, [Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] ReadOnlySpan pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] AllocationCallbacks* pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] CuFunctionNVX* pFunction) + { + // SpanOverloader + return thisApi.CreateCuFunction(device, in pCreateInfo.GetPinnableReference(), pAllocator, pFunction); + } + + /// To be documented. + public static unsafe Result CreateCuFunction(this NvxBinaryImport thisApi, [Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] ReadOnlySpan pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] AllocationCallbacks* pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] Span pFunction) + { + // SpanOverloader + return thisApi.CreateCuFunction(device, in pCreateInfo.GetPinnableReference(), pAllocator, out pFunction.GetPinnableReference()); + } + + /// To be documented. + public static unsafe Result CreateCuFunction(this NvxBinaryImport thisApi, [Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] ReadOnlySpan pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] ReadOnlySpan pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] CuFunctionNVX* pFunction) + { + // SpanOverloader + return thisApi.CreateCuFunction(device, in pCreateInfo.GetPinnableReference(), in pAllocator.GetPinnableReference(), pFunction); + } + + /// To be documented. + public static unsafe Result CreateCuFunction(this NvxBinaryImport thisApi, [Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] ReadOnlySpan pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] ReadOnlySpan pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] Span pFunction) + { + // SpanOverloader + return thisApi.CreateCuFunction(device, in pCreateInfo.GetPinnableReference(), in pAllocator.GetPinnableReference(), out pFunction.GetPinnableReference()); + } + + /// To be documented. + public static unsafe Result CreateCuModule(this NvxBinaryImport thisApi, [Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] CuModuleCreateInfoNVX* pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] AllocationCallbacks* pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] Span pModule) + { + // SpanOverloader + return thisApi.CreateCuModule(device, pCreateInfo, pAllocator, out pModule.GetPinnableReference()); + } + + /// To be documented. + public static unsafe Result CreateCuModule(this NvxBinaryImport thisApi, [Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] CuModuleCreateInfoNVX* pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] ReadOnlySpan pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] CuModuleNVX* pModule) + { + // SpanOverloader + return thisApi.CreateCuModule(device, pCreateInfo, in pAllocator.GetPinnableReference(), pModule); + } + + /// To be documented. + public static unsafe Result CreateCuModule(this NvxBinaryImport thisApi, [Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] CuModuleCreateInfoNVX* pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] ReadOnlySpan pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] Span pModule) + { + // SpanOverloader + return thisApi.CreateCuModule(device, pCreateInfo, in pAllocator.GetPinnableReference(), out pModule.GetPinnableReference()); + } + + /// To be documented. + public static unsafe Result CreateCuModule(this NvxBinaryImport thisApi, [Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] ReadOnlySpan pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] AllocationCallbacks* pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] CuModuleNVX* pModule) + { + // SpanOverloader + return thisApi.CreateCuModule(device, in pCreateInfo.GetPinnableReference(), pAllocator, pModule); + } + + /// To be documented. + public static unsafe Result CreateCuModule(this NvxBinaryImport thisApi, [Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] ReadOnlySpan pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] AllocationCallbacks* pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] Span pModule) + { + // SpanOverloader + return thisApi.CreateCuModule(device, in pCreateInfo.GetPinnableReference(), pAllocator, out pModule.GetPinnableReference()); + } + + /// To be documented. + public static unsafe Result CreateCuModule(this NvxBinaryImport thisApi, [Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] ReadOnlySpan pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] ReadOnlySpan pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] CuModuleNVX* pModule) + { + // SpanOverloader + return thisApi.CreateCuModule(device, in pCreateInfo.GetPinnableReference(), in pAllocator.GetPinnableReference(), pModule); + } + + /// To be documented. + public static unsafe Result CreateCuModule(this NvxBinaryImport thisApi, [Count(Count = 0)] Device device, [Count(Count = 0), Flow(FlowDirection.In)] ReadOnlySpan pCreateInfo, [Count(Count = 0), Flow(FlowDirection.In)] ReadOnlySpan pAllocator, [Count(Count = 0), Flow(FlowDirection.Out)] Span pModule) + { + // SpanOverloader + return thisApi.CreateCuModule(device, in pCreateInfo.GetPinnableReference(), in pAllocator.GetPinnableReference(), out pModule.GetPinnableReference()); + } + + /// To be documented. + public static unsafe void DestroyCuFunction(this NvxBinaryImport thisApi, [Count(Count = 0)] Device device, [Count(Count = 0)] CuFunctionNVX function, [Count(Count = 0), Flow(FlowDirection.In)] ReadOnlySpan pAllocator) + { + // SpanOverloader + thisApi.DestroyCuFunction(device, function, in pAllocator.GetPinnableReference()); + } + + /// To be documented. + public static unsafe void DestroyCuModule(this NvxBinaryImport thisApi, [Count(Count = 0)] Device device, [Count(Count = 0)] CuModuleNVX module, [Count(Count = 0), Flow(FlowDirection.In)] ReadOnlySpan pAllocator) + { + // SpanOverloader + thisApi.DestroyCuModule(device, module, in pAllocator.GetPinnableReference()); + } + + } +} + diff --git a/src/Vulkan/Silk.NET.Vulkan/Enums/BufferUsageFlags.gen.cs b/src/Vulkan/Silk.NET.Vulkan/Enums/BufferUsageFlags.gen.cs index 9701fd1797..8e3a0192a1 100644 --- a/src/Vulkan/Silk.NET.Vulkan/Enums/BufferUsageFlags.gen.cs +++ b/src/Vulkan/Silk.NET.Vulkan/Enums/BufferUsageFlags.gen.cs @@ -35,10 +35,6 @@ public enum BufferUsageFlags : int BufferUsageVideoDecodeSrcBitKhr = 8192, [NativeName("Name", "VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR")] BufferUsageVideoDecodeDstBitKhr = 16384, - [NativeName("Name", "VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR")] - BufferUsageVideoEncodeDstBitKhr = 32768, - [NativeName("Name", "VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR")] - BufferUsageVideoEncodeSrcBitKhr = 65536, [NativeName("Name", "VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT")] BufferUsageTransformFeedbackBufferBitExt = 2048, [NativeName("Name", "VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT")] @@ -59,6 +55,10 @@ public enum BufferUsageFlags : int BufferUsageShaderDeviceAddressBitExt = 131072, [NativeName("Name", "VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR")] BufferUsageShaderDeviceAddressBitKhr = 131072, + [NativeName("Name", "VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR")] + BufferUsageVideoEncodeDstBitKhr = 32768, + [NativeName("Name", "VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR")] + BufferUsageVideoEncodeSrcBitKhr = 65536, [NativeName("Name", "VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT")] BufferUsageShaderDeviceAddressBit = 131072, } diff --git a/src/Vulkan/Silk.NET.Vulkan/Enums/DebugReportObjectTypeEXT.gen.cs b/src/Vulkan/Silk.NET.Vulkan/Enums/DebugReportObjectTypeEXT.gen.cs index 7376998d71..76ba363433 100644 --- a/src/Vulkan/Silk.NET.Vulkan/Enums/DebugReportObjectTypeEXT.gen.cs +++ b/src/Vulkan/Silk.NET.Vulkan/Enums/DebugReportObjectTypeEXT.gen.cs @@ -84,6 +84,10 @@ public enum DebugReportObjectTypeEXT : int DebugReportObjectTypeSamplerYcbcrConversionExt = 1000156000, [NativeName("Name", "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT")] DebugReportObjectTypeDescriptorUpdateTemplateExt = 1000085000, + [NativeName("Name", "VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT")] + DebugReportObjectTypeCUModuleNvxExt = 1000029000, + [NativeName("Name", "VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT")] + DebugReportObjectTypeCUFunctionNvxExt = 1000029001, [NativeName("Name", "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT")] DebugReportObjectTypeDescriptorUpdateTemplateKhrExt = 1000085000, [NativeName("Name", "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT")] diff --git a/src/Vulkan/Silk.NET.Vulkan/Enums/DescriptorSetLayoutCreateFlags.gen.cs b/src/Vulkan/Silk.NET.Vulkan/Enums/DescriptorSetLayoutCreateFlags.gen.cs index 7cc3ff0ba8..3f314c2e8c 100644 --- a/src/Vulkan/Silk.NET.Vulkan/Enums/DescriptorSetLayoutCreateFlags.gen.cs +++ b/src/Vulkan/Silk.NET.Vulkan/Enums/DescriptorSetLayoutCreateFlags.gen.cs @@ -17,6 +17,8 @@ public enum DescriptorSetLayoutCreateFlags : int DescriptorSetLayoutCreatePushDescriptorBitKhr = 1, [NativeName("Name", "VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT")] DescriptorSetLayoutCreateUpdateAfterBindPoolBitExt = 2, + [NativeName("Name", "VK_DESCRIPTOR_SET_LAYOUT_CREATE_RESERVED_3_BIT_AMD")] + DescriptorSetLayoutCreateReserved3BitAmd = 8, [NativeName("Name", "VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE")] DescriptorSetLayoutCreateHostOnlyPoolBitValve = 4, [NativeName("Name", "VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT")] diff --git a/src/Vulkan/Silk.NET.Vulkan/Enums/DriverId.gen.cs b/src/Vulkan/Silk.NET.Vulkan/Enums/DriverId.gen.cs index 74bbb25140..84e568aa6f 100644 --- a/src/Vulkan/Silk.NET.Vulkan/Enums/DriverId.gen.cs +++ b/src/Vulkan/Silk.NET.Vulkan/Enums/DriverId.gen.cs @@ -42,5 +42,7 @@ public enum DriverId : int DriverIDMoltenvk = 14, [NativeName("Name", "VK_DRIVER_ID_COREAVI_PROPRIETARY")] DriverIDCoreaviProprietary = 15, + [NativeName("Name", "VK_DRIVER_ID_JUICE_PROPRIETARY")] + DriverIDJuiceProprietary = 16, } } diff --git a/src/Vulkan/Silk.NET.Vulkan/Enums/DriverIdKHR.gen.cs b/src/Vulkan/Silk.NET.Vulkan/Enums/DriverIdKHR.gen.cs index 7a34e80e3c..6c8f12ddb1 100644 --- a/src/Vulkan/Silk.NET.Vulkan/Enums/DriverIdKHR.gen.cs +++ b/src/Vulkan/Silk.NET.Vulkan/Enums/DriverIdKHR.gen.cs @@ -42,5 +42,7 @@ public enum DriverIdKHR : int DriverIDMoltenvk = 14, [NativeName("Name", "VK_DRIVER_ID_COREAVI_PROPRIETARY")] DriverIDCoreaviProprietary = 15, + [NativeName("Name", "VK_DRIVER_ID_JUICE_PROPRIETARY")] + DriverIDJuiceProprietary = 16, } } diff --git a/src/Vulkan/Silk.NET.Vulkan/Enums/ExternalMemoryHandleTypeFlags.gen.cs b/src/Vulkan/Silk.NET.Vulkan/Enums/ExternalMemoryHandleTypeFlags.gen.cs index 5861230560..800228a3a1 100644 --- a/src/Vulkan/Silk.NET.Vulkan/Enums/ExternalMemoryHandleTypeFlags.gen.cs +++ b/src/Vulkan/Silk.NET.Vulkan/Enums/ExternalMemoryHandleTypeFlags.gen.cs @@ -39,5 +39,7 @@ public enum ExternalMemoryHandleTypeFlags : int ExternalMemoryHandleTypeZirconVmoBitFuchsia = 2048, [NativeName("Name", "VK_EXTERNAL_MEMORY_HANDLE_TYPE_RESERVED_12_BIT_NV")] ExternalMemoryHandleTypeReserved12BitNV = 4096, + [NativeName("Name", "VK_EXTERNAL_MEMORY_HANDLE_TYPE_RESERVED_13_BIT_NV")] + ExternalMemoryHandleTypeReserved13BitNV = 8192, } } diff --git a/src/Vulkan/Silk.NET.Vulkan/Enums/FormatFeatureFlags.gen.cs b/src/Vulkan/Silk.NET.Vulkan/Enums/FormatFeatureFlags.gen.cs index bc9177b56a..76c2b622a2 100644 --- a/src/Vulkan/Silk.NET.Vulkan/Enums/FormatFeatureFlags.gen.cs +++ b/src/Vulkan/Silk.NET.Vulkan/Enums/FormatFeatureFlags.gen.cs @@ -45,10 +45,6 @@ public enum FormatFeatureFlags : int FormatFeatureVideoDecodeOutputBitKhr = 33554432, [NativeName("Name", "VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR")] FormatFeatureVideoDecodeDpbBitKhr = 67108864, - [NativeName("Name", "VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR")] - FormatFeatureVideoEncodeInputBitKhr = 134217728, - [NativeName("Name", "VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR")] - FormatFeatureVideoEncodeDpbBitKhr = 268435456, [NativeName("Name", "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR")] FormatFeatureTransferSrcBitKhr = 16384, [NativeName("Name", "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR")] @@ -77,6 +73,10 @@ public enum FormatFeatureFlags : int FormatFeatureFragmentDensityMapBitExt = 16777216, [NativeName("Name", "VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR")] FormatFeatureFragmentShadingRateAttachmentBitKhr = 1073741824, + [NativeName("Name", "VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR")] + FormatFeatureVideoEncodeInputBitKhr = 134217728, + [NativeName("Name", "VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR")] + FormatFeatureVideoEncodeDpbBitKhr = 268435456, [NativeName("Name", "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT")] FormatFeatureTransferSrcBit = 16384, [NativeName("Name", "VK_FORMAT_FEATURE_TRANSFER_DST_BIT")] diff --git a/src/Vulkan/Silk.NET.Vulkan/Enums/ImageLayout.gen.cs b/src/Vulkan/Silk.NET.Vulkan/Enums/ImageLayout.gen.cs index 8ffd5d8d6c..1624cf523b 100644 --- a/src/Vulkan/Silk.NET.Vulkan/Enums/ImageLayout.gen.cs +++ b/src/Vulkan/Silk.NET.Vulkan/Enums/ImageLayout.gen.cs @@ -38,12 +38,6 @@ public enum ImageLayout : int VideoDecodeSrcKhr = 1000024001, [NativeName("Name", "VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR")] VideoDecodeDpbKhr = 1000024002, - [NativeName("Name", "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR")] - VideoEncodeDstKhr = 1000299000, - [NativeName("Name", "VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR")] - VideoEncodeSrcKhr = 1000299001, - [NativeName("Name", "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR")] - VideoEncodeDpbKhr = 1000299002, [NativeName("Name", "VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR")] SharedPresentKhr = 1000111000, [NativeName("Name", "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR")] @@ -55,7 +49,7 @@ public enum ImageLayout : int [NativeName("Name", "VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT")] FragmentDensityMapOptimalExt = 1000218000, [NativeName("Name", "VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR")] - FragmentShadingRateAttachmentOptimalKhr = 1000226003, + FragmentShadingRateAttachmentOptimalKhr = 1000164003, [NativeName("Name", "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR")] DepthAttachmentOptimalKhr = 1000241000, [NativeName("Name", "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR")] @@ -64,6 +58,12 @@ public enum ImageLayout : int StencilAttachmentOptimalKhr = 1000241002, [NativeName("Name", "VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR")] StencilReadOnlyOptimalKhr = 1000241003, + [NativeName("Name", "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR")] + VideoEncodeDstKhr = 1000299000, + [NativeName("Name", "VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR")] + VideoEncodeSrcKhr = 1000299001, + [NativeName("Name", "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR")] + VideoEncodeDpbKhr = 1000299002, [NativeName("Name", "VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR")] ReadOnlyOptimalKhr = 1000314000, [NativeName("Name", "VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR")] diff --git a/src/Vulkan/Silk.NET.Vulkan/Enums/ImageUsageFlags.gen.cs b/src/Vulkan/Silk.NET.Vulkan/Enums/ImageUsageFlags.gen.cs index 5f484c4ef1..ab0ffe92aa 100644 --- a/src/Vulkan/Silk.NET.Vulkan/Enums/ImageUsageFlags.gen.cs +++ b/src/Vulkan/Silk.NET.Vulkan/Enums/ImageUsageFlags.gen.cs @@ -35,12 +35,6 @@ public enum ImageUsageFlags : int ImageUsageVideoDecodeSrcBitKhr = 2048, [NativeName("Name", "VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR")] ImageUsageVideoDecodeDpbBitKhr = 4096, - [NativeName("Name", "VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR")] - ImageUsageVideoEncodeDstBitKhr = 8192, - [NativeName("Name", "VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR")] - ImageUsageVideoEncodeSrcBitKhr = 16384, - [NativeName("Name", "VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR")] - ImageUsageVideoEncodeDpbBitKhr = 32768, [NativeName("Name", "VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV")] ImageUsageShadingRateImageBitNV = 256, [NativeName("Name", "VK_IMAGE_USAGE_RESERVED_16_BIT_QCOM")] @@ -51,5 +45,11 @@ public enum ImageUsageFlags : int ImageUsageFragmentDensityMapBitExt = 512, [NativeName("Name", "VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR")] ImageUsageFragmentShadingRateAttachmentBitKhr = 256, + [NativeName("Name", "VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR")] + ImageUsageVideoEncodeDstBitKhr = 8192, + [NativeName("Name", "VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR")] + ImageUsageVideoEncodeSrcBitKhr = 16384, + [NativeName("Name", "VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR")] + ImageUsageVideoEncodeDpbBitKhr = 32768, } } diff --git a/src/Vulkan/Silk.NET.Vulkan/Enums/ObjectType.gen.cs b/src/Vulkan/Silk.NET.Vulkan/Enums/ObjectType.gen.cs index 269f9ced3c..c2e6f7accb 100644 --- a/src/Vulkan/Silk.NET.Vulkan/Enums/ObjectType.gen.cs +++ b/src/Vulkan/Silk.NET.Vulkan/Enums/ObjectType.gen.cs @@ -78,6 +78,10 @@ public enum ObjectType : int VideoSessionKhr = 1000023000, [NativeName("Name", "VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR")] VideoSessionParametersKhr = 1000023001, + [NativeName("Name", "VK_OBJECT_TYPE_CU_MODULE_NVX")] + CUModuleNvx = 1000029000, + [NativeName("Name", "VK_OBJECT_TYPE_CU_FUNCTION_NVX")] + CUFunctionNvx = 1000029001, [NativeName("Name", "VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR")] DescriptorUpdateTemplateKhr = 1000085000, [NativeName("Name", "VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT")] diff --git a/src/Vulkan/Silk.NET.Vulkan/Enums/PipelineCacheCreateFlags.gen.cs b/src/Vulkan/Silk.NET.Vulkan/Enums/PipelineCacheCreateFlags.gen.cs index 0e6e90551e..6651642e49 100644 --- a/src/Vulkan/Silk.NET.Vulkan/Enums/PipelineCacheCreateFlags.gen.cs +++ b/src/Vulkan/Silk.NET.Vulkan/Enums/PipelineCacheCreateFlags.gen.cs @@ -17,7 +17,9 @@ public enum PipelineCacheCreateFlags : int PipelineCacheCreateReserved1BitExt = 2, [NativeName("Name", "VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT")] PipelineCacheCreateExternallySynchronizedBitExt = 1, - [NativeName("Name", "VK_PIPELINE_CACHE_CREATE_RESERVED_2_BIT_EXT")] - PipelineCacheCreateReserved2BitExt = 4, + [NativeName("Name", "VK_PIPELINE_CACHE_CREATE_RESERVED_1_BIT_KHR")] + PipelineCacheCreateReserved1BitKhr = 2, + [NativeName("Name", "VK_PIPELINE_CACHE_CREATE_RESERVED_2_BIT_KHR")] + PipelineCacheCreateReserved2BitKhr = 4, } } diff --git a/src/Vulkan/Silk.NET.Vulkan/Enums/PipelineCreateFlags.gen.cs b/src/Vulkan/Silk.NET.Vulkan/Enums/PipelineCreateFlags.gen.cs index 197846b57f..27904e9394 100644 --- a/src/Vulkan/Silk.NET.Vulkan/Enums/PipelineCreateFlags.gen.cs +++ b/src/Vulkan/Silk.NET.Vulkan/Enums/PipelineCreateFlags.gen.cs @@ -19,6 +19,10 @@ public enum PipelineCreateFlags : int PipelineCreateAllowDerivativesBit = 2, [NativeName("Name", "VK_PIPELINE_CREATE_DERIVATIVE_BIT")] PipelineCreateDerivativeBit = 4, + [NativeName("Name", "VK_PIPELINE_CREATE_RESERVED_21_BIT_AMD")] + PipelineCreateReserved21BitAmd = 2097152, + [NativeName("Name", "VK_PIPELINE_CREATE_RESERVED_22_BIT_AMD")] + PipelineCreateReserved22BitAmd = 4194304, [NativeName("Name", "VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR")] PipelineCreateViewIndexFromDeviceIndexBitKhr = 8, [NativeName("Name", "VK_PIPELINE_CREATE_DISPATCH_BASE_KHR")] @@ -51,6 +55,10 @@ public enum PipelineCreateFlags : int PipelineCreateFailOnPipelineCompileRequiredBitExt = 256, [NativeName("Name", "VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT")] PipelineCreateEarlyReturnOnFailureBitExt = 512, + [NativeName("Name", "VK_PIPELINE_CREATE_RESERVED_23_BIT_AMD")] + PipelineCreateReserved23BitAmd = 8388608, + [NativeName("Name", "VK_PIPELINE_CREATE_RESERVED_10_BIT_AMD")] + PipelineCreateReserved10BitAmd = 1024, [NativeName("Name", "VK_PIPELINE_CREATE_RESERVED_BIT_20_NV")] PipelineCreateReservedBit20NV = 1048576, [NativeName("Name", "VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT")] diff --git a/src/Vulkan/Silk.NET.Vulkan/Enums/QueryType.gen.cs b/src/Vulkan/Silk.NET.Vulkan/Enums/QueryType.gen.cs index 823f3caea8..c371e80321 100644 --- a/src/Vulkan/Silk.NET.Vulkan/Enums/QueryType.gen.cs +++ b/src/Vulkan/Silk.NET.Vulkan/Enums/QueryType.gen.cs @@ -20,8 +20,6 @@ public enum QueryType : int Timestamp = 2, [NativeName("Name", "VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR")] ResultStatusOnlyKhr = 1000023000, - [NativeName("Name", "VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR")] - VideoEncodeBitstreamBufferRangeKhr = 1000299000, [NativeName("Name", "VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT")] TransformFeedbackStreamExt = 1000028004, [NativeName("Name", "VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR")] @@ -34,5 +32,7 @@ public enum QueryType : int AccelerationStructureCompactedSizeNV = 1000165000, [NativeName("Name", "VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL")] PerformanceQueryIntel = 1000210000, + [NativeName("Name", "VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR")] + VideoEncodeBitstreamBufferRangeKhr = 1000299000, } } diff --git a/src/Vulkan/Silk.NET.Vulkan/Enums/StructureType.gen.cs b/src/Vulkan/Silk.NET.Vulkan/Enums/StructureType.gen.cs index 985f7da988..194e34f7fe 100644 --- a/src/Vulkan/Silk.NET.Vulkan/Enums/StructureType.gen.cs +++ b/src/Vulkan/Silk.NET.Vulkan/Enums/StructureType.gen.cs @@ -194,10 +194,6 @@ public enum StructureType : int VideoFormatPropertiesKhr = 1000023015, [NativeName("Name", "VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR")] VideoDecodeInfoKhr = 1000024000, - [NativeName("Name", "VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR")] - VideoEncodeInfoKhr = 1000299000, - [NativeName("Name", "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR")] - VideoEncodeRateControlInfoKhr = 1000299001, [NativeName("Name", "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV")] DedicatedAllocationImageCreateInfoNV = 1000026000, [NativeName("Name", "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV")] @@ -210,6 +206,12 @@ public enum StructureType : int PhysicalDeviceTransformFeedbackPropertiesExt = 1000028001, [NativeName("Name", "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT")] PipelineRasterizationStateStreamCreateInfoExt = 1000028002, + [NativeName("Name", "VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX")] + CUModuleCreateInfoNvx = 1000029000, + [NativeName("Name", "VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX")] + CUFunctionCreateInfoNvx = 1000029001, + [NativeName("Name", "VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX")] + CULaunchInfoNvx = 1000029002, [NativeName("Name", "VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX")] ImageViewHandleInfoNvx = 1000030000, [NativeName("Name", "VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX")] @@ -1004,6 +1006,10 @@ public enum StructureType : int PrivateDataSlotCreateInfoExt = 1000295002, [NativeName("Name", "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT")] PhysicalDevicePipelineCreationCacheControlFeaturesExt = 1000297000, + [NativeName("Name", "VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR")] + VideoEncodeInfoKhr = 1000299000, + [NativeName("Name", "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR")] + VideoEncodeRateControlInfoKhr = 1000299001, [NativeName("Name", "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV")] PhysicalDeviceDiagnosticsConfigFeaturesNV = 1000300000, [NativeName("Name", "VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV")] @@ -1030,6 +1036,8 @@ public enum StructureType : int QueueFamilyCheckpointProperties2NV = 1000314008, [NativeName("Name", "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV")] CheckpointData2NV = 1000314009, + [NativeName("Name", "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR")] + PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKhr = 1000323000, [NativeName("Name", "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR")] PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKhr = 1000325000, [NativeName("Name", "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV")] @@ -1104,6 +1112,10 @@ public enum StructureType : int PhysicalDeviceColorWriteEnableFeaturesExt = 1000381000, [NativeName("Name", "VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT")] PipelineColorWriteCreateInfoExt = 1000381001, + [NativeName("Name", "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT")] + PhysicalDeviceGlobalPriorityQueryFeaturesExt = 1000388000, + [NativeName("Name", "VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT")] + QueueFamilyGlobalPriorityPropertiesExt = 1000388001, [NativeName("Name", "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES")] PhysicalDeviceSubgroupProperties = 1000094000, [NativeName("Name", "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO")] diff --git a/src/Vulkan/Silk.NET.Vulkan/Enums/ValidationFeatureDisableEXT.gen.cs b/src/Vulkan/Silk.NET.Vulkan/Enums/ValidationFeatureDisableEXT.gen.cs index 823f08f14b..370bdb5f14 100644 --- a/src/Vulkan/Silk.NET.Vulkan/Enums/ValidationFeatureDisableEXT.gen.cs +++ b/src/Vulkan/Silk.NET.Vulkan/Enums/ValidationFeatureDisableEXT.gen.cs @@ -26,5 +26,7 @@ public enum ValidationFeatureDisableEXT : int ValidationFeatureDisableCoreChecksExt = 5, [NativeName("Name", "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT")] ValidationFeatureDisableUniqueHandlesExt = 6, + [NativeName("Name", "VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT")] + ValidationFeatureDisableShaderValidationCacheExt = 7, } } diff --git a/src/Vulkan/Silk.NET.Vulkan/Structs/CuFunctionCreateInfoNVX.gen.cs b/src/Vulkan/Silk.NET.Vulkan/Structs/CuFunctionCreateInfoNVX.gen.cs new file mode 100644 index 0000000000..8e56e46f55 --- /dev/null +++ b/src/Vulkan/Silk.NET.Vulkan/Structs/CuFunctionCreateInfoNVX.gen.cs @@ -0,0 +1,72 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + + +using System; +using System.Runtime.InteropServices; +using System.Runtime.CompilerServices; +using System.Text; +using Silk.NET.Core; +using Silk.NET.Core.Native; +using Silk.NET.Core.Attributes; +using Silk.NET.Core.Contexts; +using Silk.NET.Core.Loader; + +#pragma warning disable 1591 + +namespace Silk.NET.Vulkan +{ + [NativeName("Name", "VkCuFunctionCreateInfoNVX")] + public unsafe partial struct CuFunctionCreateInfoNVX + { + public CuFunctionCreateInfoNVX + ( + StructureType? sType = StructureType.CUFunctionCreateInfoNvx, + void* pNext = null, + CuModuleNVX? module = null, + byte* pName = null + ) : this() + { + if (sType is not null) + { + SType = sType.Value; + } + + if (pNext is not null) + { + PNext = pNext; + } + + if (module is not null) + { + Module = module.Value; + } + + if (pName is not null) + { + PName = pName; + } + } + +/// + [NativeName("Type", "VkStructureType")] + [NativeName("Type.Name", "VkStructureType")] + [NativeName("Name", "sType")] + public StructureType SType; +/// + [NativeName("Type", "void*")] + [NativeName("Type.Name", "void")] + [NativeName("Name", "pNext")] + public void* PNext; +/// + [NativeName("Type", "VkCuModuleNVX")] + [NativeName("Type.Name", "VkCuModuleNVX")] + [NativeName("Name", "module")] + public CuModuleNVX Module; +/// + [NativeName("Type", "char*")] + [NativeName("Type.Name", "char")] + [NativeName("Name", "pName")] + public byte* PName; + } +} diff --git a/src/Vulkan/Silk.NET.Vulkan/Structs/CuFunctionNVX.gen.cs b/src/Vulkan/Silk.NET.Vulkan/Structs/CuFunctionNVX.gen.cs new file mode 100644 index 0000000000..1011b27bf3 --- /dev/null +++ b/src/Vulkan/Silk.NET.Vulkan/Structs/CuFunctionNVX.gen.cs @@ -0,0 +1,39 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + + +using System; +using System.Runtime.InteropServices; +using System.Runtime.CompilerServices; +using System.Text; +using Silk.NET.Core; +using Silk.NET.Core.Native; +using Silk.NET.Core.Attributes; +using Silk.NET.Core.Contexts; +using Silk.NET.Core.Loader; + +#pragma warning disable 1591 + +namespace Silk.NET.Vulkan +{ + [NativeName("Name", "VkCuFunctionNVX")] + public unsafe partial struct CuFunctionNVX + { + public CuFunctionNVX + ( + ulong? handle = null + ) : this() + { + if (handle is not null) + { + Handle = handle.Value; + } + } + + + [NativeName("Type", "")] + [NativeName("Type.Name", "")] + [NativeName("Name", "")] + public ulong Handle; + } +} diff --git a/src/Vulkan/Silk.NET.Vulkan/Structs/CuLaunchInfoNVX.gen.cs b/src/Vulkan/Silk.NET.Vulkan/Structs/CuLaunchInfoNVX.gen.cs new file mode 100644 index 0000000000..c62828123e --- /dev/null +++ b/src/Vulkan/Silk.NET.Vulkan/Structs/CuLaunchInfoNVX.gen.cs @@ -0,0 +1,182 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + + +using System; +using System.Runtime.InteropServices; +using System.Runtime.CompilerServices; +using System.Text; +using Silk.NET.Core; +using Silk.NET.Core.Native; +using Silk.NET.Core.Attributes; +using Silk.NET.Core.Contexts; +using Silk.NET.Core.Loader; + +#pragma warning disable 1591 + +namespace Silk.NET.Vulkan +{ + [NativeName("Name", "VkCuLaunchInfoNVX")] + public unsafe partial struct CuLaunchInfoNVX + { + public CuLaunchInfoNVX + ( + StructureType? sType = StructureType.CULaunchInfoNvx, + void* pNext = null, + CuFunctionNVX? function = null, + uint? gridDimX = null, + uint? gridDimY = null, + uint? gridDimZ = null, + uint? blockDimX = null, + uint? blockDimY = null, + uint? blockDimZ = null, + uint? sharedMemBytes = null, + nuint? paramCount = null, + void* pParams = null, + nuint? extraCount = null, + void* pExtras = null + ) : this() + { + if (sType is not null) + { + SType = sType.Value; + } + + if (pNext is not null) + { + PNext = pNext; + } + + if (function is not null) + { + Function = function.Value; + } + + if (gridDimX is not null) + { + GridDimX = gridDimX.Value; + } + + if (gridDimY is not null) + { + GridDimY = gridDimY.Value; + } + + if (gridDimZ is not null) + { + GridDimZ = gridDimZ.Value; + } + + if (blockDimX is not null) + { + BlockDimX = blockDimX.Value; + } + + if (blockDimY is not null) + { + BlockDimY = blockDimY.Value; + } + + if (blockDimZ is not null) + { + BlockDimZ = blockDimZ.Value; + } + + if (sharedMemBytes is not null) + { + SharedMemBytes = sharedMemBytes.Value; + } + + if (paramCount is not null) + { + ParamCount = paramCount.Value; + } + + if (pParams is not null) + { + PParams = pParams; + } + + if (extraCount is not null) + { + ExtraCount = extraCount.Value; + } + + if (pExtras is not null) + { + PExtras = pExtras; + } + } + +/// + [NativeName("Type", "VkStructureType")] + [NativeName("Type.Name", "VkStructureType")] + [NativeName("Name", "sType")] + public StructureType SType; +/// + [NativeName("Type", "void*")] + [NativeName("Type.Name", "void")] + [NativeName("Name", "pNext")] + public void* PNext; +/// + [NativeName("Type", "VkCuFunctionNVX")] + [NativeName("Type.Name", "VkCuFunctionNVX")] + [NativeName("Name", "function")] + public CuFunctionNVX Function; +/// + [NativeName("Type", "uint32_t")] + [NativeName("Type.Name", "uint32_t")] + [NativeName("Name", "gridDimX")] + public uint GridDimX; +/// + [NativeName("Type", "uint32_t")] + [NativeName("Type.Name", "uint32_t")] + [NativeName("Name", "gridDimY")] + public uint GridDimY; +/// + [NativeName("Type", "uint32_t")] + [NativeName("Type.Name", "uint32_t")] + [NativeName("Name", "gridDimZ")] + public uint GridDimZ; +/// + [NativeName("Type", "uint32_t")] + [NativeName("Type.Name", "uint32_t")] + [NativeName("Name", "blockDimX")] + public uint BlockDimX; +/// + [NativeName("Type", "uint32_t")] + [NativeName("Type.Name", "uint32_t")] + [NativeName("Name", "blockDimY")] + public uint BlockDimY; +/// + [NativeName("Type", "uint32_t")] + [NativeName("Type.Name", "uint32_t")] + [NativeName("Name", "blockDimZ")] + public uint BlockDimZ; +/// + [NativeName("Type", "uint32_t")] + [NativeName("Type.Name", "uint32_t")] + [NativeName("Name", "sharedMemBytes")] + public uint SharedMemBytes; +/// + [NativeName("Type", "size_t")] + [NativeName("Type.Name", "size_t")] + [NativeName("Name", "paramCount")] + public nuint ParamCount; +/// + [NativeName("Type", "void*")] + [NativeName("Type.Name", "void")] + [NativeName("Name", "pParams")] + public void* PParams; +/// + [NativeName("Type", "size_t")] + [NativeName("Type.Name", "size_t")] + [NativeName("Name", "extraCount")] + public nuint ExtraCount; +/// + [NativeName("Type", "void*")] + [NativeName("Type.Name", "void")] + [NativeName("Name", "pExtras")] + public void* PExtras; + } +} diff --git a/src/Vulkan/Silk.NET.Vulkan/Structs/CuModuleCreateInfoNVX.gen.cs b/src/Vulkan/Silk.NET.Vulkan/Structs/CuModuleCreateInfoNVX.gen.cs new file mode 100644 index 0000000000..8fced1ee39 --- /dev/null +++ b/src/Vulkan/Silk.NET.Vulkan/Structs/CuModuleCreateInfoNVX.gen.cs @@ -0,0 +1,72 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + + +using System; +using System.Runtime.InteropServices; +using System.Runtime.CompilerServices; +using System.Text; +using Silk.NET.Core; +using Silk.NET.Core.Native; +using Silk.NET.Core.Attributes; +using Silk.NET.Core.Contexts; +using Silk.NET.Core.Loader; + +#pragma warning disable 1591 + +namespace Silk.NET.Vulkan +{ + [NativeName("Name", "VkCuModuleCreateInfoNVX")] + public unsafe partial struct CuModuleCreateInfoNVX + { + public CuModuleCreateInfoNVX + ( + StructureType? sType = StructureType.CUModuleCreateInfoNvx, + void* pNext = null, + nuint? dataSize = null, + void* pData = null + ) : this() + { + if (sType is not null) + { + SType = sType.Value; + } + + if (pNext is not null) + { + PNext = pNext; + } + + if (dataSize is not null) + { + DataSize = dataSize.Value; + } + + if (pData is not null) + { + PData = pData; + } + } + +/// + [NativeName("Type", "VkStructureType")] + [NativeName("Type.Name", "VkStructureType")] + [NativeName("Name", "sType")] + public StructureType SType; +/// + [NativeName("Type", "void*")] + [NativeName("Type.Name", "void")] + [NativeName("Name", "pNext")] + public void* PNext; +/// + [NativeName("Type", "size_t")] + [NativeName("Type.Name", "size_t")] + [NativeName("Name", "dataSize")] + public nuint DataSize; +/// + [NativeName("Type", "void*")] + [NativeName("Type.Name", "void")] + [NativeName("Name", "pData")] + public void* PData; + } +} diff --git a/src/Vulkan/Silk.NET.Vulkan/Structs/CuModuleNVX.gen.cs b/src/Vulkan/Silk.NET.Vulkan/Structs/CuModuleNVX.gen.cs new file mode 100644 index 0000000000..6c81dd6af4 --- /dev/null +++ b/src/Vulkan/Silk.NET.Vulkan/Structs/CuModuleNVX.gen.cs @@ -0,0 +1,39 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + + +using System; +using System.Runtime.InteropServices; +using System.Runtime.CompilerServices; +using System.Text; +using Silk.NET.Core; +using Silk.NET.Core.Native; +using Silk.NET.Core.Attributes; +using Silk.NET.Core.Contexts; +using Silk.NET.Core.Loader; + +#pragma warning disable 1591 + +namespace Silk.NET.Vulkan +{ + [NativeName("Name", "VkCuModuleNVX")] + public unsafe partial struct CuModuleNVX + { + public CuModuleNVX + ( + ulong? handle = null + ) : this() + { + if (handle is not null) + { + Handle = handle.Value; + } + } + + + [NativeName("Type", "")] + [NativeName("Type.Name", "")] + [NativeName("Name", "")] + public ulong Handle; + } +} diff --git a/src/Vulkan/Silk.NET.Vulkan/Structs/PhysicalDeviceGlobalPriorityQueryFeaturesEXT.gen.cs b/src/Vulkan/Silk.NET.Vulkan/Structs/PhysicalDeviceGlobalPriorityQueryFeaturesEXT.gen.cs new file mode 100644 index 0000000000..4eb645bca2 --- /dev/null +++ b/src/Vulkan/Silk.NET.Vulkan/Structs/PhysicalDeviceGlobalPriorityQueryFeaturesEXT.gen.cs @@ -0,0 +1,61 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + + +using System; +using System.Runtime.InteropServices; +using System.Runtime.CompilerServices; +using System.Text; +using Silk.NET.Core; +using Silk.NET.Core.Native; +using Silk.NET.Core.Attributes; +using Silk.NET.Core.Contexts; +using Silk.NET.Core.Loader; + +#pragma warning disable 1591 + +namespace Silk.NET.Vulkan +{ + [NativeName("Name", "VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT")] + public unsafe partial struct PhysicalDeviceGlobalPriorityQueryFeaturesEXT + { + public PhysicalDeviceGlobalPriorityQueryFeaturesEXT + ( + StructureType? sType = StructureType.PhysicalDeviceGlobalPriorityQueryFeaturesExt, + void* pNext = null, + Bool32? globalPriorityQuery = null + ) : this() + { + if (sType is not null) + { + SType = sType.Value; + } + + if (pNext is not null) + { + PNext = pNext; + } + + if (globalPriorityQuery is not null) + { + GlobalPriorityQuery = globalPriorityQuery.Value; + } + } + +/// + [NativeName("Type", "VkStructureType")] + [NativeName("Type.Name", "VkStructureType")] + [NativeName("Name", "sType")] + public StructureType SType; +/// + [NativeName("Type", "void*")] + [NativeName("Type.Name", "void")] + [NativeName("Name", "pNext")] + public void* PNext; +/// + [NativeName("Type", "VkBool32")] + [NativeName("Type.Name", "VkBool32")] + [NativeName("Name", "globalPriorityQuery")] + public Bool32 GlobalPriorityQuery; + } +} diff --git a/src/Vulkan/Silk.NET.Vulkan/Structs/PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR.gen.cs b/src/Vulkan/Silk.NET.Vulkan/Structs/PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR.gen.cs new file mode 100644 index 0000000000..d47801bd4e --- /dev/null +++ b/src/Vulkan/Silk.NET.Vulkan/Structs/PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR.gen.cs @@ -0,0 +1,61 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + + +using System; +using System.Runtime.InteropServices; +using System.Runtime.CompilerServices; +using System.Text; +using Silk.NET.Core; +using Silk.NET.Core.Native; +using Silk.NET.Core.Attributes; +using Silk.NET.Core.Contexts; +using Silk.NET.Core.Loader; + +#pragma warning disable 1591 + +namespace Silk.NET.Vulkan +{ + [NativeName("Name", "VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR")] + public unsafe partial struct PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR + { + public PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR + ( + StructureType? sType = StructureType.PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKhr, + void* pNext = null, + Bool32? shaderSubgroupUniformControlFlow = null + ) : this() + { + if (sType is not null) + { + SType = sType.Value; + } + + if (pNext is not null) + { + PNext = pNext; + } + + if (shaderSubgroupUniformControlFlow is not null) + { + ShaderSubgroupUniformControlFlow = shaderSubgroupUniformControlFlow.Value; + } + } + +/// + [NativeName("Type", "VkStructureType")] + [NativeName("Type.Name", "VkStructureType")] + [NativeName("Name", "sType")] + public StructureType SType; +/// + [NativeName("Type", "void*")] + [NativeName("Type.Name", "void")] + [NativeName("Name", "pNext")] + public void* PNext; +/// + [NativeName("Type", "VkBool32")] + [NativeName("Type.Name", "VkBool32")] + [NativeName("Name", "shaderSubgroupUniformControlFlow")] + public Bool32 ShaderSubgroupUniformControlFlow; + } +} diff --git a/src/Vulkan/Silk.NET.Vulkan/Structs/QueueFamilyGlobalPriorityPropertiesEXT.gen.cs b/src/Vulkan/Silk.NET.Vulkan/Structs/QueueFamilyGlobalPriorityPropertiesEXT.gen.cs new file mode 100644 index 0000000000..78f7b0e3cc --- /dev/null +++ b/src/Vulkan/Silk.NET.Vulkan/Structs/QueueFamilyGlobalPriorityPropertiesEXT.gen.cs @@ -0,0 +1,107 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + + +using System; +using System.Runtime.InteropServices; +using System.Runtime.CompilerServices; +using System.Text; +using Silk.NET.Core; +using Silk.NET.Core.Native; +using Silk.NET.Core.Attributes; +using Silk.NET.Core.Contexts; +using Silk.NET.Core.Loader; + +#pragma warning disable 1591 + +namespace Silk.NET.Vulkan +{ + [NativeName("Name", "VkQueueFamilyGlobalPriorityPropertiesEXT")] + public unsafe partial struct QueueFamilyGlobalPriorityPropertiesEXT + { + public QueueFamilyGlobalPriorityPropertiesEXT + ( + StructureType? sType = StructureType.QueueFamilyGlobalPriorityPropertiesExt, + void* pNext = null, + uint? priorityCount = null + ) : this() + { + if (sType is not null) + { + SType = sType.Value; + } + + if (pNext is not null) + { + PNext = pNext; + } + + if (priorityCount is not null) + { + PriorityCount = priorityCount.Value; + } + } + +/// + [NativeName("Type", "VkStructureType")] + [NativeName("Type.Name", "VkStructureType")] + [NativeName("Name", "sType")] + public StructureType SType; +/// + [NativeName("Type", "void*")] + [NativeName("Type.Name", "void")] + [NativeName("Name", "pNext")] + public void* PNext; +/// + [NativeName("Type", "uint32_t")] + [NativeName("Type.Name", "uint32_t")] + [NativeName("Name", "priorityCount")] + public uint PriorityCount; + /// + [NativeName("Type", "VkQueueGlobalPriorityEXT")] + [NativeName("Type.Name", "VkQueueGlobalPriorityEXT")] + [NativeName("Name", "priorities")] + public PrioritiesBuffer Priorities; + + public struct PrioritiesBuffer + { + public QueueGlobalPriorityEXT Element0; + public QueueGlobalPriorityEXT Element1; + public QueueGlobalPriorityEXT Element2; + public QueueGlobalPriorityEXT Element3; + public QueueGlobalPriorityEXT Element4; + public QueueGlobalPriorityEXT Element5; + public QueueGlobalPriorityEXT Element6; + public QueueGlobalPriorityEXT Element7; + public QueueGlobalPriorityEXT Element8; + public QueueGlobalPriorityEXT Element9; + public QueueGlobalPriorityEXT Element10; + public QueueGlobalPriorityEXT Element11; + public QueueGlobalPriorityEXT Element12; + public QueueGlobalPriorityEXT Element13; + public QueueGlobalPriorityEXT Element14; + public QueueGlobalPriorityEXT Element15; + public ref QueueGlobalPriorityEXT this[int index] + { + get + { + if (index > 15 || index < 0) + { + throw new ArgumentOutOfRangeException(nameof(index)); + } + + fixed (QueueGlobalPriorityEXT* ptr = &Element0) + { + return ref ptr[index]; + } + } + } + +#if NETSTANDARD2_1 + public Span AsSpan() + => MemoryMarshal.CreateSpan(ref Element0, 16); +#endif + } + + } +} diff --git a/src/Vulkan/Silk.NET.Vulkan/Vk.gen.cs b/src/Vulkan/Silk.NET.Vulkan/Vk.gen.cs index 976abf4270..de6fba6de9 100644 --- a/src/Vulkan/Silk.NET.Vulkan/Vk.gen.cs +++ b/src/Vulkan/Silk.NET.Vulkan/Vk.gen.cs @@ -56,6 +56,9 @@ public unsafe partial class Vk : NativeAPI [NativeName("Name", "VK_MAX_EXTENSION_NAME_SIZE")] public const uint MaxExtensionNameSize = unchecked((uint) 256); [NativeName("Type", "")] + [NativeName("Name", "VK_MAX_GLOBAL_PRIORITY_SIZE_EXT")] + public const uint MaxGlobalPrioritySizeExt = unchecked((uint) 16); + [NativeName("Type", "")] [NativeName("Name", "VK_MAX_MEMORY_HEAPS")] public const uint MaxMemoryHeaps = unchecked((uint) 16); [NativeName("Type", "")] diff --git a/src/Windowing/Silk.NET.Windowing.Common/Structs/ViewOptions.cs b/src/Windowing/Silk.NET.Windowing.Common/Structs/ViewOptions.cs index eda4695610..6f4370db06 100644 --- a/src/Windowing/Silk.NET.Windowing.Common/Structs/ViewOptions.cs +++ b/src/Windowing/Silk.NET.Windowing.Common/Structs/ViewOptions.cs @@ -40,10 +40,10 @@ Vector2D IViewProperties.Size public int? PreferredDepthBufferBits { get; set; } /// - public int? PreferredStencilBufferBits { get; } + public int? PreferredStencilBufferBits { get; set; } /// - public Vector4D? PreferredBitDepth { get; } + public Vector4D? PreferredBitDepth { get; set; } /// /// Creates a new WindowOptions struct. diff --git a/src/Windowing/Silk.NET.Windowing.Common/Structs/WindowOptions.cs b/src/Windowing/Silk.NET.Windowing.Common/Structs/WindowOptions.cs index f92ce419a9..79b0c55e8d 100644 --- a/src/Windowing/Silk.NET.Windowing.Common/Structs/WindowOptions.cs +++ b/src/Windowing/Silk.NET.Windowing.Common/Structs/WindowOptions.cs @@ -61,7 +61,7 @@ public WindowOptions(ViewOptions opts) public int? PreferredStencilBufferBits { get; set; } /// - public Vector4D? PreferredBitDepth { get; } + public Vector4D? PreferredBitDepth { get; set; } /// public Vector2D Position { get; set; }