From b21cefd4ef904674996f1d430b700fe00a2694ec Mon Sep 17 00:00:00 2001 From: Dylan Perks Date: Fri, 4 Jun 2021 23:46:05 +0100 Subject: [PATCH 01/11] Add helper for making XrGraphicsBindingOpenGL* instances, start XR demo --- Silk.NET.sln | 228 ++++++++++++++++++ .../OpenGL VR Demo/OpenGL VR Demo.csproj | 19 ++ .../OpenGL VR Demo/OpenXR/OpenGLXRGame.cs | 219 +++++++++++++++++ .../OpenGL VR Demo/OpenXR/Renderer.cs | 144 +++++++++++ .../OpenGL VR Demo/OpenXR/System.cs | 113 +++++++++ .../OpenGL Demos/OpenGL VR Demo/Program.cs | 12 + .../Silk.NET.Core/Miscellaneous/Version64.cs | 78 ++++++ src/Core/Silk.NET.Core/Native/SilkMarshal.cs | 126 +++++++--- .../Silk.NET.OpenXR/NativeWindowExtensions.cs | 150 ++++++++++++ .../Structs/GraphicsBinding.cs | 100 ++++++++ .../Structs/GraphicsRequirements.cs | 73 ++++++ src/OpenXR/Silk.NET.OpenXR/XR.cs | 23 +- .../Structs/ViewOptions.cs | 4 +- .../Structs/WindowOptions.cs | 2 +- 14 files changed, 1240 insertions(+), 51 deletions(-) create mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenGL VR Demo.csproj create mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/OpenGLXRGame.cs create mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Renderer.cs create mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/System.cs create mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/Program.cs create mode 100644 src/Core/Silk.NET.Core/Miscellaneous/Version64.cs create mode 100644 src/OpenXR/Silk.NET.OpenXR/NativeWindowExtensions.cs create mode 100644 src/OpenXR/Silk.NET.OpenXR/Structs/GraphicsBinding.cs create mode 100644 src/OpenXR/Silk.NET.OpenXR/Structs/GraphicsRequirements.cs diff --git a/Silk.NET.sln b/Silk.NET.sln index 6c814337d8..913660e538 100644 --- a/Silk.NET.sln +++ b/Silk.NET.sln @@ -394,6 +394,38 @@ 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("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "OpenGL Demos", "OpenGL Demos", "{5EA44062-D9BC-4C51-99D9-DA4FB95C055B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenGL VR Demo", "examples\CSharp\OpenGL Demos\OpenGL VR Demo\OpenGL VR Demo.csproj", "{96C1ED0B-EB5B-474D-A54D-5C65B40DB03B}" +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 Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -2311,6 +2343,186 @@ 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 + {96C1ED0B-EB5B-474D-A54D-5C65B40DB03B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {96C1ED0B-EB5B-474D-A54D-5C65B40DB03B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {96C1ED0B-EB5B-474D-A54D-5C65B40DB03B}.Debug|x64.ActiveCfg = Debug|Any CPU + {96C1ED0B-EB5B-474D-A54D-5C65B40DB03B}.Debug|x64.Build.0 = Debug|Any CPU + {96C1ED0B-EB5B-474D-A54D-5C65B40DB03B}.Debug|x86.ActiveCfg = Debug|Any CPU + {96C1ED0B-EB5B-474D-A54D-5C65B40DB03B}.Debug|x86.Build.0 = Debug|Any CPU + {96C1ED0B-EB5B-474D-A54D-5C65B40DB03B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {96C1ED0B-EB5B-474D-A54D-5C65B40DB03B}.Release|Any CPU.Build.0 = Release|Any CPU + {96C1ED0B-EB5B-474D-A54D-5C65B40DB03B}.Release|x64.ActiveCfg = Release|Any CPU + {96C1ED0B-EB5B-474D-A54D-5C65B40DB03B}.Release|x64.Build.0 = Release|Any CPU + {96C1ED0B-EB5B-474D-A54D-5C65B40DB03B}.Release|x86.ActiveCfg = Release|Any CPU + {96C1ED0B-EB5B-474D-A54D-5C65B40DB03B}.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 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -2489,6 +2701,22 @@ 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} + {5EA44062-D9BC-4C51-99D9-DA4FB95C055B} = {6842A2C6-5C7B-42DD-9825-0EDE91BFEBF7} + {96C1ED0B-EB5B-474D-A54D-5C65B40DB03B} = {5EA44062-D9BC-4C51-99D9-DA4FB95C055B} + {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} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {F5273D7F-3334-48DF-94E3-41AE6816CD4D} diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenGL VR Demo.csproj b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenGL VR Demo.csproj new file mode 100644 index 0000000000..6f0e94b433 --- /dev/null +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenGL VR Demo.csproj @@ -0,0 +1,19 @@ + + + + Exe + net5.0 + OpenGL_VR_Demo + enable + true + + + + + + + + + + + diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/OpenGLXRGame.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/OpenGLXRGame.cs new file mode 100644 index 0000000000..9af688724f --- /dev/null +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/OpenGLXRGame.cs @@ -0,0 +1,219 @@ +// 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.Collections.Generic; +using System.Diagnostics; +using System.Runtime.InteropServices; +using Silk.NET.Core; +using Silk.NET.Core.Native; +using Silk.NET.Maths; +using Silk.NET.OpenGL; +using Silk.NET.OpenXR; +using Silk.NET.OpenXR.Extensions.EXT; +using Silk.NET.OpenXR.Extensions.KHR; +using Silk.NET.Windowing; + +namespace OpenGL_VR_Demo.OpenXR +{ + public abstract class OpenGLXRGame : IDisposable + { + // API Objects for accessing OpenXR and OpenGL + public XR Xr; + public GL Gl; + + // ExtDebugUtils is a handy OpenXR debugging extension which we'll enable if available unless told otherwise. + public bool? IsDebugUtilsSupported; + public ExtDebugUtils? ExtDebugUtils; + + // Hooking OpenXR up to graphics APIs requires specialized extensions. OpenGL and OpenGLES have separate ones, + // but we'll make variables for both so we can support both. + public KhrOpenglEnable? GlEnable; + public KhrOpenglEsEnable? GlesEnable; + public bool IsGles; + public bool UseMinimumVersion; + + // Maintain a list of extensions we're using. Both for sanity and so we can tell OpenXR about them when creating + // the instance. + protected List Extensions = new(); + + // Our windowing objects! We're using IView so we can potentially expand into mobile later. + public IView View; + public string Name; + + // OpenXR handles + public Instance Instance; + public DebugUtilsMessengerEXT MessengerExt; + public System System; + + protected OpenGLXRGame(string name, bool forceNoDebug = false, bool useMinimumVersion = false) + { + Name = name; + if (forceNoDebug) + { + IsDebugUtilsSupported = false; + } + + UseMinimumVersion = useMinimumVersion; + } + + public void Run() + { + } + + /// + /// A simple function which throws an exception if the given OpenXR result indicates an error has been raised. + /// + /// The OpenXR result in question. + /// + /// The same result passed in, just in case it's meaningful and we just want to use this to filter out errors. + /// + /// An exception for the given result if it indicates an error. + internal static Result CheckResult(Result result) + { + if ((int) result < 0) + { + throw new($"OpenXR raised an error! Code: {result} ({result:X})"); + } + + return result; + } + + /// + /// A function which checks if the extension with the given name is available, and adds it to the list of + /// requested if so, returning true; or just returns false otherwise. + /// + /// The extension name to check for and request. + /// Whether the extension was present or not. + private bool TryRequestExtension(string name) + { + // Check if OpenXR supports the extension. + if (Xr.IsInstanceExtensionPresent(null, name)) + { + // It does! Add it to our list of requested extensions, for use when creating the instance later... + Extensions.Add(name); + return true; + } + + // Oh dear! Not supported. + return false; + } + + private unsafe void PrepareOpenXR() + { + // Create our API object for OpenXR. + Xr = XR.GetApi(); + + // If forceNoDebug is specified in the constructor, IsDebugUtilsSupported will already be false so we won't + // request the extension whatsoever. Otherwise, request the extension! + IsDebugUtilsSupported ??= TryRequestExtension(ExtDebugUtils.ExtensionName); + + // Let's request desktop GL first. + if (!TryRequestExtension(KhrOpenglEnable.ExtensionName)) + { + // No desktop GL? What about OpenGLES? + if (!TryRequestExtension(KhrOpenglEsEnable.ExtensionName)) + { + throw new PlatformNotSupportedException + ( + "Neither OpenGL nor OpenGLES is supported by OpenXR on this platform!" + ); + } + + // I guess we're using OpenGLES from now on! + IsGles = true; + } + + // Before we do anything, OpenXR needs to know a little about our application. + var appInfo = new ApplicationInfo + { + ApiVersion = new Version64(1, 0, 9) // this is the OpenXR version number this demo is written against + }; + + // We've got to marshal our strings and put them into global, immovable memory. To do that, we use + // SilkMarshal. + SilkMarshal.StringIntoSpan(Name, MemoryMarshal.CreateSpan(ref appInfo.ApplicationName[0], 128)); + SilkMarshal.StringIntoSpan("Silk.NET Examples", MemoryMarshal.CreateSpan(ref appInfo.EngineName[0], 128)); + var requestedExtensions = SilkMarshal.StringArrayToPtr(Extensions); + var instanceCreateInfo = new InstanceCreateInfo + ( + applicationInfo: appInfo, + enabledExtensionCount: (uint) Extensions.Count, + enabledExtensionNames: (byte**) requestedExtensions + ); + + // Now we're ready to make our instance! + CheckResult(Xr.CreateInstance(in instanceCreateInfo, ref Instance)); + + // If debug utils is supported, enable it! + if (IsDebugUtilsSupported.Value && Xr.TryGetInstanceExtension(null, Instance, out ExtDebugUtils)) + { + // This local function is called by OpenXR. There are a lot of advanced things you can do with the data + // you get in DebugUtilsMessengerCallbackDataEXT, such as inspecting objects, but for now we're just + // going to use the debug messenger as a simple OpenXR logger. + static uint OnDebug + ( + DebugUtilsMessageSeverityFlagsEXT severity, + DebugUtilsMessageTypeFlagsEXT type, + DebugUtilsMessengerCallbackDataEXT* data, + void* userData + ) + { + var severityString = severity + .ToString()["DebugUtilsMessageSeverity".Length..^"BitExt".Length] + .ToUpper(); + + var typeString = type.ToString()["DebugUtilsMessageType".Length..^"BitExt".Length]; + + // Marshal OpenXR's byte* back to C# strings + var msgString = SilkMarshal.PtrToString((nint) data->Message); + var idString = SilkMarshal.PtrToString((nint) data->MessageId); + + Console.WriteLine($"[{severityString}] {typeString}: {msgString} ({idString})"); + return 0; + } + + // Now that we've defined the callback, let's tell OpenXR about it and create our messenger! + var debugUtilsCreateInfo = new DebugUtilsMessengerCreateInfoEXT + ( + messageSeverities: DebugUtilsMessageSeverityFlagsEXT.DebugUtilsMessageSeverityErrorBitExt | + DebugUtilsMessageSeverityFlagsEXT.DebugUtilsMessageSeverityWarningBitExt | + DebugUtilsMessageSeverityFlagsEXT.DebugUtilsMessageSeverityInfoBitExt, + messageTypes: DebugUtilsMessageTypeFlagsEXT.DebugUtilsMessageTypeGeneralBitExt | + DebugUtilsMessageTypeFlagsEXT.DebugUtilsMessageTypeConformanceBitExt | + DebugUtilsMessageTypeFlagsEXT.DebugUtilsMessageTypePerformanceBitExt | + DebugUtilsMessageTypeFlagsEXT.DebugUtilsMessageTypeValidationBitExt, + userCallback: (DebugUtilsMessengerCallbackFunctionEXT) OnDebug + ); + + if (ExtDebugUtils!.CreateDebugUtilsMessenger(Instance, in debugUtilsCreateInfo, ref MessengerExt) + != Result.Success) + { + Console.WriteLine("[WARNING] Application: Failed to create OpenXR debug messenger!"); + } + } + + // For our benefit, let's log some information about the instance we've just created. + InstanceProperties properties = new(); + CheckResult(Xr.GetInstanceProperties(Instance, ref properties)); + + var runtimeName = SilkMarshal.PtrToString((nint) properties.RuntimeName); + var runtimeVersion = ((Version) (Version64) properties.RuntimeVersion).ToString(3); + + Console.WriteLine($"[INFO] Application: Using OpenXR Runtime \"{runtimeName}\" v{runtimeVersion}"); + + // We're creating a head-mounted-display (HMD, i.e. a VR headset) example, so we ask for a runtime which + // supports that form factor. The response we get is a ulong that is the System ID. + var systemId = 0UL; + var getInfo = new SystemGetInfo(formFactor: FormFactor.HeadMountedDisplay); + CheckResult(Xr.GetSystem(Instance, in getInfo, ref systemId)); + + // Let our System abstraction take it from here! + System = new(this, systemId); + } + + private void PrepareView() + { + } + } +} diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Renderer.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Renderer.cs new file mode 100644 index 0000000000..d98b1b3d50 --- /dev/null +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Renderer.cs @@ -0,0 +1,144 @@ +// 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.Diagnostics; +using Silk.NET.Core; +using Silk.NET.Maths; +using Silk.NET.OpenGL; +using Silk.NET.OpenXR; +using Silk.NET.Windowing; +using static OpenGL_VR_Demo.OpenXR.OpenGLXRGame; +using Action = System.Action; + +namespace OpenGL_VR_Demo.OpenXR +{ + public class Renderer : IDisposable + { + private IView _view; + private OpenGLXRGame _game; + + // OpenXR handles + public Session Session; + public Space ReferenceSpace; + + public GL Gl { get; private set; } + public XR Xr { get; init; } + public bool IsStage { get; private set; } + + public Renderer(OpenGLXRGame game) + { + _game = game; + + Xr = game.Xr; + + var opts = ViewOptions.Default; + opts.VSync = false; + opts.FramesPerSecond = 0; + opts.PreferredBitDepth = new(8, 8, 8, 8); + opts.PreferredDepthBufferBits = 24; + if (game.IsGles) + { + GraphicsRequirementsOpenGLESKHR esReqs = new(); + CheckResult + (game.GlesEnable!.GetOpenGlesgraphicsRequirements(game.Instance, game.System.Id, ref esReqs)); + var version = (Version64) (game.UseMinimumVersion + ? esReqs.MinApiVersionSupported + : esReqs.MaxApiVersionSupported); + opts.API = new + ( + ContextAPI.OpenGLES, ContextProfile.Core, + Debugger.IsAttached ? ContextFlags.Debug : ContextFlags.Default, + new((int) version.Major, (int) version.Minor) + ); + } + else + { + GraphicsRequirementsOpenGLKHR reqs = new(); + CheckResult(game.GlEnable!.GetOpenGlgraphicsRequirements(game.Instance, game.System.Id, ref reqs)); + var version = (Version64) (game.UseMinimumVersion + ? reqs.MinApiVersionSupported + : reqs.MaxApiVersionSupported); + opts.API = new + ( + ContextAPI.OpenGL, ContextProfile.Core, + Debugger.IsAttached ? ContextFlags.Debug : ContextFlags.Default, + new((int) version.Major, (int) version.Minor) + ); + } + + if (Window.IsViewOnly) + { + _view = Window.GetView(opts); + } + else + { + var wOpts = new WindowOptions(opts) + { + Position = -Vector2D.One, + Size = new + ((int) (game.System.RenderTargetSize.X / ((float) game.System.RenderTargetSize.Y / 720)), 720) + }; + + _view = Window.Create(wOpts); + } + + _view.Load += ViewOnLoad; + } + + public event Action? Load; + public event Action? Render; + public event Action? Unload; + + private void ViewOnLoad() + { + Gl = _view.CreateOpenGL(); + Load?.Invoke(this); + } + + private unsafe void PrepareSession() + { + var binding = _game.IsGles ? _view.CreateOpenGLESBinding() : _view.CreateOpenGLBinding(); + var sessionCreateInfo = new SessionCreateInfo(systemId: _game.System.Id, next: &binding); + CheckResult(Xr.CreateSession(_game.Instance, in sessionCreateInfo, ref Session)); + + // Now, let's create the reference space that describes the real-world environment where the VR game is + // being played. + + // First we need to check what kinds of spaces we have. OpenXR (OOTB) has: + // - view, where the content doesn't take into account eye orientation. + // - local, where the content knows about the user's eye orientation but not about their physical location. + // i'll refer to this as "seated-scale", as you're unlikely to move in a seat and this is what the spec + // calls it. + // - stage, where the content knows about both eye orientation and physical location. this can be used for + // "room-scale" and "standing-scale" content, where the user's physical movements affect the content. + var numRefSpaces = 0u; + CheckResult(Xr.EnumerateReferenceSpaces(Session, numRefSpaces, ref numRefSpaces, null)); + Span refSpaces = stackalloc ReferenceSpaceType[(int) numRefSpaces]; + CheckResult(Xr.EnumerateReferenceSpaces(Session, ref numRefSpaces, refSpaces)); + + var refSpaceCreateInfo = new ReferenceSpaceCreateInfo(); + foreach (var referenceSpaceType in refSpaces) + { + if (referenceSpaceType == ReferenceSpaceType.Stage) + { + refSpaceCreateInfo.ReferenceSpaceType = ReferenceSpaceType.Stage; + IsStage = true; + } + } + + if (!IsStage) + { + // use seated-scale instead. all OpenXR runtimes MUST support seated-scale content. + refSpaceCreateInfo.ReferenceSpaceType = ReferenceSpaceType.Local; + } + + CheckResult(Xr.CreateReferenceSpace(Session, in refSpaceCreateInfo, ref ReferenceSpace)); + + // Next up, the swapchain. + } + + public void Run() => _view.Run(); + + } +} diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/System.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/System.cs new file mode 100644 index 0000000000..93a3d54af6 --- /dev/null +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/System.cs @@ -0,0 +1,113 @@ +// 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 Silk.NET.Core.Native; +using Silk.NET.Maths; +using Silk.NET.OpenXR; +using static OpenGL_VR_Demo.OpenXR.OpenGLXRGame; + +namespace OpenGL_VR_Demo.OpenXR +{ + /// + /// An abstraction over an OpenXR system. + /// + public class System + { + // Variables + private readonly OpenGLXRGame _game; // keep a reference to our game, it probably has some APIs we want. + private readonly XR _xr; // ease-of-access variable for our XR API + private readonly SystemProperties _props; // cache this system's properties. + + // Properties + /// The System ID. + public ulong Id { get; init; } + + /// The System Name, marshalled from the Name property in the SystemProperties struct. + public unsafe string Name + => SilkMarshal.PtrToString((nint) Unsafe.AsPointer(ref Unsafe.AsRef(in _props.SystemName[0])))!; + + /// The maximum width of swapchain images for this system + public uint MaxSwapchainImageWidth => _props.GraphicsProperties.MaxSwapchainImageWidth; + + /// The maximum width of swapchain images for this system + public uint MaxSwapchainImageHeight => _props.GraphicsProperties.MaxSwapchainImageHeight; + + /// The maximum number of layers in swapchain images for this system + public uint MaxLayerCount => _props.GraphicsProperties.MaxLayerCount; + + /// A for each eye on the HMD system. + public ViewConfigurationView[] ViewConfigs { get; init; } + + /// The size of the render target. This render target encapsulates both eyes. + public Vector2D RenderTargetSize { get; init; } + + public unsafe System(OpenGLXRGame game, ulong id) + { + _game = game; + _xr = game.Xr; + Id = id; + + CheckResult(_xr.GetSystemProperties(_game.Instance, Id, ref _props)); + + // Log some stuff about the system we've selected for our benefit + Console.WriteLine($"[INFO] Application: Using OpenXR System with ID {Id}."); + Console.WriteLine($" Name: {Name}"); + Console.WriteLine($" Max Swapchain Image Size: {MaxSwapchainImageWidth}x{MaxSwapchainImageHeight}"); + Console.WriteLine($" Max Swapchain Image Layers: {MaxLayerCount}"); + + // Get the ViewConfigurationViews - these tell us about the images we should create for the eyes in the + // headset. + var viewConfigCount = 0u; + CheckResult + ( + // First, get the number of configurations. + _xr.EnumerateViewConfigurationView + ( + _game.Instance, Id, ViewConfigurationType.PrimaryStereo, viewConfigCount, ref viewConfigCount, null + ) + ); + + // Last time I checked humans only have 2 eyes, and I don't feel like making an example for spiders today. + if (viewConfigCount != 2) + { + throw new($"Unexpected number of eyes (got {viewConfigCount})"); + } + + ViewConfigs = new ViewConfigurationView[viewConfigCount]; // make an appropriately-sized array + CheckResult + ( + _xr.EnumerateViewConfigurationView + ( + _game.Instance, Id, ViewConfigurationType.PrimaryStereo, ref viewConfigCount, ViewConfigs + ) + ); + + var recommended = $"{ViewConfigs[0].RecommendedImageRectWidth}x{ViewConfigs[0].RecommendedImageRectHeight}"; + var max = $"{ViewConfigs[0].MaxImageRectWidth}x{ViewConfigs[0].MaxImageRectHeight}"; + + // More sanity checking, making sure each eye has the same recommended/max resolution. + if (ViewConfigs[0].RecommendedImageRectWidth != ViewConfigs[1].RecommendedImageRectWidth || + ViewConfigs[0].RecommendedImageRectHeight != ViewConfigs[1].RecommendedImageRectHeight || + ViewConfigs[0].MaxImageRectWidth != ViewConfigs[1].MaxImageRectWidth || + ViewConfigs[0].MaxImageRectHeight != ViewConfigs[1].MaxImageRectHeight) + { + throw new + ( + "Per-eye images have different max or recommended dimensions!\n"+ + $"Eye 0: recommended {recommended} max {max}\n" + + "Eye 1: recommended " + + $"{ViewConfigs[1].RecommendedImageRectWidth}x{ViewConfigs[1].RecommendedImageRectHeight}" + + "max " + + $"{ViewConfigs[1].MaxImageRectWidth}x{ViewConfigs[1].MaxImageRectHeight}" + ); + } + + Console.WriteLine($"[INFO] Application: Using recommended per-eye resolution {recommended} (max {max})"); + + // Instead of creating a swapchain per-eye, we create a single swapchain of double width. + RenderTargetSize = new(ViewConfigs[0].RecommendedImageRectWidth, ViewConfigs[0].RecommendedImageRectHeight); + } + } +} diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Program.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Program.cs new file mode 100644 index 0000000000..e817bd2e0a --- /dev/null +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Program.cs @@ -0,0 +1,12 @@ +using System; + +namespace OpenGL_VR_Demo +{ + class Program + { + static void Main(string[] args) + { + Console.WriteLine("Hello World!"); + } + } +} 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..cda5c4ab41 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 /// diff --git a/src/OpenXR/Silk.NET.OpenXR/NativeWindowExtensions.cs b/src/OpenXR/Silk.NET.OpenXR/NativeWindowExtensions.cs new file mode 100644 index 0000000000..36538aafc8 --- /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; + 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/XR.cs b/src/OpenXR/Silk.NET.OpenXR/XR.cs index 9dbe6c78dc..40cc8616c3 100644 --- a/src/OpenXR/Silk.NET.OpenXR/XR.cs +++ b/src/OpenXR/Silk.NET.OpenXR/XR.cs @@ -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(); } } 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; } From ed793a914ef6437c71e5da20bccbf1681d27e9ad Mon Sep 17 00:00:00 2001 From: Dylan Perks Date: Sat, 5 Jun 2021 22:50:36 +0100 Subject: [PATCH 02/11] Fix OpenXR flags being 32-bit not 64-bit, "almost" working OpenXR demo --- build/cache/gles2.json.gz | Bin 341644 -> 341644 bytes build/cache/openxr.json.gz | Bin 45411 -> 46146 bytes build/cache/vulkan.json.gz | Bin 210623 -> 212279 bytes .../OpenGL VR Demo/BufferObject.cs | 36 ++ .../OpenGL Demos/OpenGL VR Demo/Camera.cs | 74 +++ .../OpenGL Demos/OpenGL VR Demo/Game.cs | 168 +++++++ .../OpenGL Demos/OpenGL VR Demo/MathHelper.cs | 12 + .../OpenGL VR Demo/OpenGL VR Demo.csproj | 16 + .../OpenGL VR Demo/OpenXR/OpenGLXRGame.cs | 112 ++++- .../OpenGL VR Demo/OpenXR/Renderer.cs | 467 +++++++++++++++++- .../OpenGL VR Demo/OpenXR/Utilities.cs | 56 +++ .../OpenGL Demos/OpenGL VR Demo/Program.cs | 5 +- .../OpenGL Demos/OpenGL VR Demo/Shader.cs | 100 ++++ .../OpenGL Demos/OpenGL VR Demo/Texture.cs | 62 +++ .../OpenGL Demos/OpenGL VR Demo/Transform.cs | 24 + .../OpenGL VR Demo/VertexArrayObject.cs | 39 ++ .../OpenGL Demos/OpenGL VR Demo/lighting.frag | 32 ++ .../OpenGL Demos/OpenGL VR Demo/shader.frag | 7 + .../OpenGL Demos/OpenGL VR Demo/shader.vert | 20 + generator.json | 3 +- .../Converters/Khronos/TypedefDefinition.cs | 7 +- .../Converters/Khronos/VulkanSpecification.cs | 25 + .../Enums/MESA.gen.cs | 4 + .../FBSwapchainUpdateState.gen.cs | 37 ++ .../FBSwapchainUpdateStateOverloads.gen.cs | 28 ++ .../AndroidSurfaceSwapchainFlagsFB.gen.cs | 2 +- .../Enums/CompositionLayerFlags.gen.cs | 2 +- .../DebugUtilsMessageSeverityFlagsEXT.gen.cs | 2 +- .../DebugUtilsMessageTypeFlagsEXT.gen.cs | 2 +- .../Enums/HandJointsMotionRangeEXT.gen.cs | 20 + .../InputSourceLocalizedNameFlags.gen.cs | 2 +- .../Enums/InstanceCreateFlags.gen.cs | 2 +- .../Enums/OverlayMainSessionFlagsEXTX.gen.cs | 2 +- .../OverlaySessionCreateFlagsEXTX.gen.cs | 2 +- .../Silk.NET.OpenXR/Enums/Result.gen.cs | 2 + .../Enums/SessionCreateFlags.gen.cs | 2 +- .../Enums/SpaceLocationFlags.gen.cs | 2 +- .../Enums/SpaceVelocityFlags.gen.cs | 2 +- .../Enums/StructureType.gen.cs | 6 + .../Enums/SwapchainCreateFlags.gen.cs | 2 +- .../Enums/SwapchainUsageFlags.gen.cs | 2 +- .../Enums/ViewStateFlags.gen.cs | 2 +- .../Enums/VulkanDeviceCreateFlagsKHR.gen.cs | 2 +- .../Enums/VulkanInstanceCreateFlagsKHR.gen.cs | 2 +- .../Silk.NET.OpenXR/NativeWindowExtensions.cs | 2 +- .../HandJointsMotionRangeInfoEXT.gen.cs | 61 +++ ...hainStateAndroidSurfaceDimensionsFB.gen.cs | 72 +++ .../Structs/SwapchainStateBaseHeaderFB.gen.cs | 50 ++ .../SwapchainStateSamplerOpenGLESFB.gen.cs | 160 ++++++ src/OpenXR/Silk.NET.OpenXR/XR.cs | 6 +- .../Silk.NET.Vulkan.Extensions.JUICE.csproj | 14 + .../NvxBinaryImport.gen.cs | 117 +++++ .../NvxBinaryImportOverloads.gen.cs | 140 ++++++ .../Enums/BufferUsageFlags.gen.cs | 8 +- .../Enums/DebugReportObjectTypeEXT.gen.cs | 4 + .../Silk.NET.Vulkan/Enums/DriverId.gen.cs | 2 + .../Silk.NET.Vulkan/Enums/DriverIdKHR.gen.cs | 2 + .../ExternalMemoryHandleTypeFlags.gen.cs | 2 + .../Enums/FormatFeatureFlags.gen.cs | 8 +- .../Silk.NET.Vulkan/Enums/ImageLayout.gen.cs | 14 +- .../Enums/ImageUsageFlags.gen.cs | 12 +- .../Silk.NET.Vulkan/Enums/ObjectType.gen.cs | 4 + .../Enums/PipelineCacheCreateFlags.gen.cs | 6 +- .../Silk.NET.Vulkan/Enums/QueryType.gen.cs | 4 +- .../Enums/StructureType.gen.cs | 14 +- .../Structs/CuFunctionCreateInfoNVX.gen.cs | 72 +++ .../Structs/CuFunctionNVX.gen.cs | 39 ++ .../Structs/CuLaunchInfoNVX.gen.cs | 182 +++++++ .../Structs/CuModuleCreateInfoNVX.gen.cs | 72 +++ .../Structs/CuModuleNVX.gen.cs | 39 ++ 70 files changed, 2410 insertions(+), 90 deletions(-) create mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/BufferObject.cs create mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/Camera.cs create mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/Game.cs create mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/MathHelper.cs create mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Utilities.cs create mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/Shader.cs create mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/Texture.cs create mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/Transform.cs create mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/VertexArrayObject.cs create mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/lighting.frag create mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/shader.frag create mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/shader.vert create mode 100644 src/OpenXR/Extensions/Silk.NET.OpenXR.Extensions.FB/FBSwapchainUpdateState.gen.cs create mode 100644 src/OpenXR/Extensions/Silk.NET.OpenXR.Extensions.FB/FBSwapchainUpdateStateOverloads.gen.cs create mode 100644 src/OpenXR/Silk.NET.OpenXR/Enums/HandJointsMotionRangeEXT.gen.cs create mode 100644 src/OpenXR/Silk.NET.OpenXR/Structs/HandJointsMotionRangeInfoEXT.gen.cs create mode 100644 src/OpenXR/Silk.NET.OpenXR/Structs/SwapchainStateAndroidSurfaceDimensionsFB.gen.cs create mode 100644 src/OpenXR/Silk.NET.OpenXR/Structs/SwapchainStateBaseHeaderFB.gen.cs create mode 100644 src/OpenXR/Silk.NET.OpenXR/Structs/SwapchainStateSamplerOpenGLESFB.gen.cs create mode 100644 src/Vulkan/Extensions/Silk.NET.Vulkan.Extensions.JUICE/Silk.NET.Vulkan.Extensions.JUICE.csproj create mode 100644 src/Vulkan/Extensions/Silk.NET.Vulkan.Extensions.NVX/NvxBinaryImport.gen.cs create mode 100644 src/Vulkan/Extensions/Silk.NET.Vulkan.Extensions.NVX/NvxBinaryImportOverloads.gen.cs create mode 100644 src/Vulkan/Silk.NET.Vulkan/Structs/CuFunctionCreateInfoNVX.gen.cs create mode 100644 src/Vulkan/Silk.NET.Vulkan/Structs/CuFunctionNVX.gen.cs create mode 100644 src/Vulkan/Silk.NET.Vulkan/Structs/CuLaunchInfoNVX.gen.cs create mode 100644 src/Vulkan/Silk.NET.Vulkan/Structs/CuModuleCreateInfoNVX.gen.cs create mode 100644 src/Vulkan/Silk.NET.Vulkan/Structs/CuModuleNVX.gen.cs diff --git a/build/cache/gles2.json.gz b/build/cache/gles2.json.gz index 0e3ab1595fabb94b66207f9ed120e38312bd7000..93d7a22fa90f8311d2eacc711004b7902caa50c0 100644 GIT binary patch delta 86071 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 diff --git a/build/cache/openxr.json.gz b/build/cache/openxr.json.gz index 232f1cab37ee5ba636fa0fd1c17460dca6e881ec..aeeabd68e929689506b1e3a6de3f0272aefb9149 100644 GIT binary patch literal 46146 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 bjd$bDuC0R)NHDMu(2mFC0cW%j3+(>@N!EGv diff --git a/build/cache/vulkan.json.gz b/build/cache/vulkan.json.gz index 5a74d9ed8ff62562509f59e96c60b1e82ccb298f..92235648248e5981d4c41ae48f1f7a6d6ef7fbb8 100644 GIT binary patch delta 199911 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

-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 MfvrRzTyu#32Mo^nmH+?% delta 198406 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%0Dif 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 z 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 z�Ite%GD{HC<$EW|c?{a8%KLHhgYpdA&UkuO+narxP}@InH7|@4ww1e&M_0-9pwo z=tq1ItgU}psZ{VH*`{lAn}Q`d=f{TTBpmAuptsMpPSg_Y9ilZOOQ(e6qb1)j@6BP;gDbnBJ@640oB1tEUj%!^qqZ|QznL7B{GM)L zV9KMl&A3;s$XuoO;Q`L0D0yAi!ol}{wLGk@M>$UDl&^Qb@EySy+PYVzxKb(n_G{|s zMrQj>$do1q^d_{HXsp!(p}$kU^M@^)2Qf$m1^{)Yj($zzO#t)5;6x2;I`BxHy6)d) z2|MKDfgE!lcm!Qwv+mlvib{@c_AIGMsi7MwE11TdUA-5G+6tei3o<@YQG5! z1Yc(^NUk|C>1|%e#h=j+twnBSte)R1(VGVts#BHtx$@h*zXxp*c1vUL43)1&wLcJo zLtoqY)A~lAV_fzdAf<2JYyVaFI=VL49AwHo3h^t@oN}(d^`eypg(;X8dGg%5SpyY} zX@Dw@yC3&}rR&amtol=lGjxlvsVfQ@NzKT9TX3u<7kcf|(<`EwHW=ny~w2WG?UtgvN$XT_X z6=F1R7t;DA1h|S>k`9yMbQ0^0D z*xL3)JSz8$Xs&~Ox+b0(?#dhm)faehvRb(RbJmd2oeSV9t-KFT)ceAR_+TU<(&K{j ztL505%C03qAd5fCtT;ljM>J|1$Q%_&oKEJHkE1nDR~Z7la;v*G&u-5@Uwm%;_1tR~ z)ObADq#fY4KR^}6U5S#=NZ2!M$K*1J)pf@5HJ$J+%#t`~e-!V+-Y39EM{dI4z0{KQ z{O}KM;VNQ**W2j_`ub*lbOrOS#FD;Ii;JcS=29IrT)5fF^0mU_nBe*iFlDMx;{7Lo z_O7#)KWnw{Y_`Re==9$HVr87Sm(t_Q{+}3ACVkpxcz1baUP#A3la7^Uj+5JZ^-8IC z)rMMCMqC$~8xW*klm3I5DWW@!HaxyfS-#Ro7g*~Dhf(qj>n?8Fu3;_O0T-h&Gj42| zOgxYZU+PZxb^G?6JW*l30E43e3DZ^~VPNYoV2_ynoMAq)A{rby0lHcr)DY@$Jl$-U zNyQIOUGkxmU7Swu_zS+y_;_<4yCqMp9zL^A7eD6`4{!69H~eO@cQ(Fd<qq-M{KukLVqGbCXE2vA79t-e1E|-t1@h0q*se>Saxs29b?Y z5ME1bsD?>d3NVV-@n@$4ut&Gj+93XUlyIN$?e?w&&9OhG!`BHE)u!*wEGqg--BLEEy=LaEUSLRvpEH*~tta_Ep_8b^xNHw|uirk%i>dvP3Eo3Og* zE?CnT9FnZFYLk}=0lM(87^W}zMe6|x9cA34t2Q8=9y(rA{qS%33*O56v%Goxji$aE z_pSq@QpVmG=)z0+Uc5~)9^M$n-z%n0V@7sP=w{=HS&_>+AR~5Tg%j$p+$)aPnVk>y zJxA&Qb9Lug9#uL*pb98yNCO);8i@74PA1dz8ZQ%F15fk?(&*M47WV!lEE+G}?HPEV zz3=wF&8@5~Hg^g_FZS)~?bnuqm@g;K>RzrEtv0>ii>M7nwPQx+u#(afyHLNtolZSY z=P^)IM8ozkumD}ydFg`L>*^zd&%6u|3q}^sTlgGxen-j(e<2=KS$Cg3ES&xCfBQE| z6vPa?=K!N^Je-FXL5ydDq9R3>#8w})v3^j^IKJ@bXl&0*o3r$`067OmgwYq$C}Jup zT(GjV{E>kgWYP#2%$4!p$Hq>$(F8F1YAuWyUC^XYKIelzs}@D+@&2Lg6d~K|edYe5 zxs!1^ErvYb;iKGV-pc*_TBG?x`wg*tZB+jq0|+}=4f78-N(mGUD<%Lp;2;3Elp=Vp z-Ug+udDXa4CSmg@6u?7>*0HJSdNsu7XteuDCPI=nj2(9>sWqi0@h5m-9%*%Ifh1ZI zyarFb0Wq}#2P`TW|E>AVCp&`GgKqJu8GjcijQ+HHwR2VYu*7AtwdLg1gEztkudWG* z0=kX1Dn7!oJ0%-?L<9$DWO{)md89x_DLSwQ^jZYm^NcFiY@WnYnU`g6C%%t9x1iXz zZ>dcd;Mb5;{Z;M4H@{}jpoh>6ngk8jJnVgfqRPuJXN5Jw=g#~;Jz<7h>C_IYPu+9Y z4j2rp=YW6r%ZB=#SApD~-BRuR)9)ulq&DJY7in5(=GVU!P773!Mz>CvH~gQtD{tk%UV$l3 z18~8sQ~t*<*-)V9iOGErGP@V#TWH-IL5!8V7>_@U{fY|=Z=Iy^WY;-=;HN;l{#H(SXtjnOT|@MMmZBnEr2B!&Xpej#eG<1jU6JOi`^qc zG$926R%N|4qc(&$Ol}!pR)#$#CE{T*Y2I`iI@_wPpZ9C?c_NXu_4>W;jTU%u%0XDu zYu|J*&=VtV({5huCF@w#KTLf5sImvJ;`AE@H;DJUF|-XzX9F$$&fF8H|7fti{)j*%LKM)cI=7wF^=Bcw*TjI@ToTMEEKN{0gnWrg z<)^Dp6gu^el}8#o0kG|13U55{;}$+FPsl$em>N)uV*9Qe8F&!%OL9F`IVku!P|bXv z#FBR-`%2w^NB|GVTX6~8Gv4*Lr*NV>zJlV30xyTQ%mnae&)w%8-TX@cu2+9ZkIJjo z$7!x$RhP8PTr-!f<^x)>z;xSFEUQzu(WL~>wh>eHw$IgXAU(S8!$}ZuEL^00te&W_ z&?yv}*BL@_hIWRg`obM_pOlm(?DTyY$Ca7f8Jg5NG!&e>f6V}!CN?ddrGqh%1(IF- z1Y!RK!2;1S47jL3Ob#z|+hdSh<3^gyFek4;Wg6Su)zO0o&bMqv6@-Y;%QH`63 zI#I2H3IU}QKsAL(hNfH_9!^-@1+hFswJ9Hu*TFMLwVLs^TGW;R-Tnrh_IDw5eVqploHAJ?bfQpMSD zkYn(xgg{T!cdbG9q4%qQCV3=s`snxSPrj?uKRXcXfVVohYA^F5JYqG?Fq&kw*L-R3 z;{nCuA7I%-ip5&%WeF#VH0pP3Xk+8DCBZ*$OFB`Q$UCD6N=yS!s{*OnZ!wZ(&#i@3 zl#!UyP%}_vr78*Z(opv~(@7m^ zqV7#H1f-eBL1m@NS2EA*81$sQx1s*4VSP|Ud#wCTS($5Qrl_a|wt&j&fR$JpnLHd- z6tNo_8?^tg%XWZ|ivCl}FF^4tMX3i%!qjuNsW1Cq*>ahN0Y$-*T z@G4fF?CnwU4Ehq;Afo!wW~aRMDtUZ27+6e{vwJd~{EvVTfu{fYTXrqqO0M#>>(qE?>vyP$hzPhYE?W{MP)(bsUcR(YNh)f_RRpZXhQ$k>&+$*_=!Cg5Nu zc!=^a&+s49UspySj#qHwk&}Kvz)mIw3+-|-MP1UV-9<9QtKUdJW6~H98CTHF|bn7Y=5ASs6x5)60-e!(YMdh-3JA`*SS4 zLz_s49=#%q7PI}>0=K9n1FErJN`8Dg`znn8Ff_c7Oe`&d%t$2t-101hElq5-fi%;Y;qh2Br2oU8w(sPPG zP>*M=AW6TG@fe*Uh!_1}{SL~CdPL3=fSeE7pvpYXv*-&~m5==|dv82!G)x3c#8J#k zxWCR))I2u94*)#A)NU7D#D4?Nz-rrRdaJOS@d)4*83eKaK zhw%cx<^Z=aJbi=@-SFne!FK_q`T^GPmWI?=ei5FhMnFKDJ+PjRcoU#yS$p3uR=n*1 zGlU=BuSe*hLK9P)p-P6I;bp$%s;7Z%*q@~aue68E7P1Ks){@FIn?ZGI63R-Zp+T{T zs8>ykByT``L(|@cl)KiNXJX;VC7Oa$bsFZl#$o?YkOqsfN#>ZF3JF6Tv-DDKE4wOMC;rrc{CRf9<7FXH5{Kwh~uH>6R zWuBrOTtA5^Jg5O0 z{}Yg`G5cDQe__EH|Bn65Ccklhf+Bb!Lpmd`@fRs%<@`WWUgO}*N@!?k1h zSoe9(9}zkY2ZUT6F8Gkw4I)SX^97Cj*?@h`+l7)d36@C z`RxcE@+=vmoJj$m0q4ZN6~YDh!}uu)A*SYaaA*%DrBVGFcGL}a6cM72Wuz`(#QC3h zQ-w}Q>V>jGN5{h62)PaeW(pGDT!pJw+s&+U$m1LBZ}>|q+O6vW8<+HXwwi&X6g-^# zquM4g(c+~4>Ei$O@D2M#80!@WG98mpT72QY@3hB<{8Jn!fdIPh2u#(SVjS%;38ipy zTrxVgE4kJXBeSs#HimRr!)l4t+k2aPrTdv+0-RzHG|bmre(^+Y8j&XHW1GighOf!sYE7oTQ!*|_JBx9P9E=cfYm zNZT;)S5ux^UkzT3>Z5vl(yk7nJ$@i6;`}@c=G6%XpzfKebe%RLWy!z5Y4UFE?<>PB z<%hV96`O=A6O8@m@4&WWoV?TKw!em4`VQRypQopT0yXm%y24$w`V$-CxC&M=&R$J1 z(6!vwf|7h4(N3y4M{l{fmm|W3)Rk7`cx#Q~l*jQr;}g^&N4N_o8*-b?pT4Qq(_oIQ z%mVYp-t7EV7=MSFL}nep-M^2lGM(ez5;1zT#C>rPfKcap05v`{o}B5NG@33V`&$+>Rh!MYxjPhVs{x+{`X*G@Ls>p0 z7J+Yv>^6rIdCa)(1IPeL<oLg^U%LfaL{VkC{EB30%B)|{9F|@xq1sazP zBCD%XH*FLC0@;h)n$DmxPQ6Y`vretlViMCnP}1*%{yqkWf$SdPituawQ%?@~N!18) zSKEPZs!W=++t^>7a~88G?kb4W6BxrWdDBFieUf{5B7S)d#OV}En-pB4l?AZkj_Ia+ zmj<;K7O5I~qL`42zo3PN5!+GIrq$TE0d*5fd1IYwV8DIUv7W^4nPo^I4C-z#q*LRx6R8W963R5$yI<{X3+aktI#aT< zS+U}Wpro@&4C(zSW|kS*#MvT=8JhTW0?&bt8hEpnN4|SCi}~ye*;JNuKVzSb{l<5? zT^SuUK;nhhP-q3~t{Har%KCZgS0ov-WwP=Hn09fQPMG>UQhi{fi*L*t@lAO@Miz@)tA#!} zEl1?V-+ZY;@1(?m5dFdkC9Z6i^&Fo8>3G8B22gKQwWw&M^&Y~Gm;A}C6V=moKlfo! z?X1y=6%-zB3nG)YfX0Y%(^f57ns))eLS@t)U_Y*&q{DVS*uclDcMJUc*8m zjj^J)Z2s1kYNTC7DT|zgpEiZFt)6y0Tp0OZ0s@7m zMXGoM3LxO#MZpvjsYhIej`eTLiXh;?q@k$FHjiz?j}+QS!rp`5ApzyYygtlas;%B! zYXg5Vf91uXZ@D0IO5NlYDK#n++!V+p4ioNA(=lU#7eQ13*HD>fvcy&!Ig_n4>*ngC z_^F*As+4T%OJ$60oc8VSSIkgsaR=;9kGQ z3-#w2xgOCHRvjZ0vPLJ6;gT;?S-ES6VuxZ6282d_rHnB$=h16m`X2zA*xJ}b(&Yq| z@qKZ9vdMkg_qOLg)jsuS(m&vQK-Nl!FKBGS5$QwCA*}CZOX<)@;58`{&?Xn@zTH(~ z$NM7IL%y}s4BOHO+p^4Os5NviT3Q(4D*+PPm=! zj14ICh_dm4VYzW~NhoksN6k!}fgHm~DO#wVD2kS^kRuAz9j+fPrn5GzSuSW`muD`_ z!BwBa^z}X|*FD{Chh?Zq<($7Z$W}GINRW|RmeCIXfjcT89@E?Oan)_V#h%=Et7ADG zAScquTeO+nP8MOXKN`6#u7>FMc3YGopAY^^D!CQ>*Bh=Z*cP}EaTlqN8~0*AkpK-< zDp-{fOQL^g{0$n(R`<(O=aHmr^t+i-1HcAZzg*pDS-uh5Aoa_t$K4S-# zG+4Tbk$Eb_W zyf60*DX5%ZDoD2zho(`s)e}on+msu>qa<6~OSyLEo4lL)>}>w+Hg{|!5v(E|<4u{P z6R2?iDzKWv?p5dV2~bCVyt@PWW+*(7$DPVAsHELG?Qu%FC#$hZHf1n_CD@7EGDeY- z>9_?GEo)=%SV`Xd%t|%&NqbTc#Oy99S6VyTay31*!Q0|3`ALwJ_Mk5Z2 zm;Oxf&z4u}kT|zc7GC2p2CC{=Fg9as3kV1K8qfM@jWS_2Xlw!l{XoVC+~LER2YWzl!^RfoBWQ za~=dcC!?(<$}3@MifN`x&!*|=j+$h9pQ`l4Z*>sQhfAN_&Bl_5~e3}6H$IdjaAkWHePZU32#u7FT z@UN-=i&#t%cvX8o^4&5@{Up!Z@6n)E{0}6ard~09KrPMsY9TA0_-M>b4X}JTCNO?;Bf6%bhr&5@XM#ks8 zB^Drog!YezcJuQ&@e$en#b>bQum`D6Izn3c0VT88;8RAp(b$pyXygBSHPrp)(u5sL z|8e(!QKXJ}JCn}_AFob#$&V(hn}_i_dR^=wsU7sf0$pyeE&CWi`I;)HKfpdPbn)&) zVb8EIZaxvT%X71MspaQHQFxi_3F1vdx@)?_2tCaCSHG^yuPxr)=y#WlUxoXI{l6Fz z?UM}{di6aN(v$C)xT0f!ynVH;c|$y=zQae{A$t1qGy(g0Wi6cZ{uhsvgSTZS(}hKO~~795K4-w zY$Qjs>XP{vmdWAc&wg$B2sL#he29G+Qd2z#-f=0~fDkd%4j_M{YA*F;qP=M-=R+D* zQ3VU9&0_HTwR`qCy^Huvsd^=0dFka zH?e8rn}7tqIVK)Fc>t-?}GNjPB{gC(=w{&^vw zP@30!Zez2o-L9@PH(YLDkQTXC?)F^PbV}NZ%uplEScCINfU1u9C_QyE0InaHl=*1_ z8Ihzd1?@ik$bm8kZJPZGRn(P)$3>xmY5uF_$qe;#d|1vLix^`^Z8o|d7^AQdWghFV z(C{joNPjs|%7W8@yzryj)-ombN!M&yED|x`1%17_GKras?C^TT>v@)pevvC&fz)uc ziHEWaJ5y%Vc1HFkxrAg9fGt`+lWVCuMXYQ+OacSFpABXbM3ZUu#|?4lD#`5PHUkpz35@vw2}sa8Ow z)hSM%v0|mL2j3zcE4&^HT0p2Bw`kcBHB-<6G&@tb`n@8?R6{B+`nEVR^7T>=RYrA zb(oN6PF}63q|4!j26loAyvPQ+z;TM zb^o!i;k`7;V^D-|ZR+yyv!JWH!r}#P3F}$X7=uNk`f>iT*GyY+!=&76^ieOs`>EAa zpaj+=tO>GwtVNAc4TEVVbvGnvx%sOUwFT3)G`t>@vm69u^xE7M5@|K!Xi)rV(7X=w zb!b3zR=}G!iZj{utXq!oaAWMg4fhuBE&Og{u&5VzPS1Sr#n;C=f- z9BXk4QtP6Ke?vt4rmwMyL|lzHmwaC#G<-+C2eW65OXHjM0|V088X zV2gA)c8;hh&+fhZoiIC?9U6?QI%k{B7s~dodkLEA{6KouR2khtrxr8cM#Tw7c#M`N z5h)~y?`;{UY9s`!_l-~3sNK?vR7j}}yNN1F2k zdS}$${}bm8sjh?c=qBQOlXtph*EV=Jm8KXRk7%v}e0`P~DYkLRSeIt#U;o^K#xdRM zr+*4EfVhVI?^SbU)W9dXXVmtj=21|vgTQqUv+o&XJ`?FJbpG`fo3^mu|9Fo4dwOe^ zUmAX-)W4lz4M_|KO~9NgMY_$k$3!9VtSrY}Qsk`)J&sb?v_TMQX~o4uz8t|CKS>M;{**=uwDPPbovdFEt|_elUj zd8Ptth(5`OLzc>lX3a|eMCwFJOvS2MN-Qzb+^&2=m2HH^DoGD*!!k<#`En=Y;iuws z1-_|iGF+gvx|WB6w6KbuFO{Y8R4{3maI7spTt;tDJBY73=lHk6hZLOpb@^SD48XMr z2-A7z&SsqSXVslrefCGYcF)mp;cIIUn?a>NV@OR|TeEWZ_}FNg01+{b5iUm&&6X@} zx_puFsbwQ<4-Dv|sbslB=wm*aQrnE*s)%G-$fSerL9{Au3 z(;O?YgK=zn6jp<$ zWDTp>m^g3c(qmlynvQwzN*Icd{sRRQTAEZ^#Hcjc*x5+(;Q+gG;Em1v4n~Mn=%)Q=GNm*s zS)VRg;k2Edk$6%#QYo~Mbm1Nf?)4%BWg|Ius=&(>qE2@1p9M}r{{@s8(P_HxVkRTs z07A7ecBZY1Y_|`A(Uz6nUsEVqW{IWar!}n`TK58jdm$Ms!&dzlA*bFVHs?=fM7sL_ z*9vP+Kte0RBV12&ZG^Qf)9SgT`?~fM6sG zVuc2ZFg1}WV9<%kn)46Gy&6*~x16OW-CNTlS_I$}&-4qea6G7TL&6SOy?R zNYU4Tf?80(sAR9Zk+XA?QJ9f3$jL_H62T?PpQD1}I0P~YrxD41bPLaSe;0<=%((nt?FLI-kWgEKk#%t=DGRjP0hV0 z;aqifFyb^2>!dvYb*(Na+nu4oSH-wEzd{T>^cH`#`7|%qT^vE6TDt-bnwu+DCDey4$9e!kDfT)bKM z2EZPx{?(nE3EBOeBhFM6fw+TVxh`>X94kNh~oECxXVF;SoeJ!xOgsvbe18TADI5x0=yL381F(A zC(C_-l%QSz#=p&nPKB5V1fAF~zXVz78GI4mYwGZTQRE<*;^3e$wTuk-pwFmpx6}6( zJ408yZf;O&k5{2p{{IhGZvhrZ)2t2SF2UX13GPmCcXuZt1edV5yK7)^cMtBtg1fuB z>%TnD`=0Zk@4BxYmhS1A>e;z^s=KT1B2=xaB}k#Tqga2k+h8I(5oEfXHg!WW7_$=2@?y9u*7bnKZn;mttJ&Q(Tc?b5tE&^vBNN$8Q{m|csU@>q?Kv{vXg zDzsb)R!eHGNW+}`cp8kdRtS2t#9$7`4i!_0rB1L~@Xs_cZbhzOwTRcoTwb24weC1i z)I>$T@OP(@@{ag=4Y-D-vv-;AGg253jyplmkd8Yr5r7sV4{{zPu%o=CAg0R`dtFKW1hzPa_HnqKOz`Gaoq z-nk(i6^}WS|Bjv9l^OH1H6}@l;WuF#=GBKW5jN&_V3AzNS=sR<;^1t3Pth88Zb(gp9&)f8QQRn@2^~j*cti<=U8gThwYxydrtKeih*Y6c(!Hs`}FD zfp)ux@EKlW^LiklcBD;0z<5>Hti+>d2KG62LSe)kzH@{UkP)`)IKq6(uQm%I=#Jtz zfYE5SB3Xr7h5II}OlAhjuA%P9gbZFPOxK72F<6)9=8s&BKn& zx`kU8cEuXii#rIfBipUE|Et>9XEiK`f%w#2cG?^5uGPbvV_e(-SXtzDK!9_<-*ad5 z``3Old`lG78IfQ7Hhd^+jLwx6~ScEd}_0)mu3WnJT<^p%0EmC;l{M`@)mHJ?ZPXl;ZuiC zX8F`>_a4F5)29fQ(p3jhZ0sYy>4Wm4o{Ytujw+^^R8D10F1BEXNVFDn42(if1&5#( z)2S{oxKby4Sc5G-F+Oj`jPTjb>do6Krl^t=H9d{CEKx?gk%XEG+bQpM{!p5<&4P<+ zd{VmIvIp%Jc0OgO9)b`8c$~6V4-v;=He*4RTB9FQ;}8*H6*`3Um}EYfhRRVk=x*N0 zvrBCRa$J)JC0ck64lXCBSq)4nXn?o^96Zi5ds8HnCC^GQVo*J{oVOD@xTpP*A~-wk z5x8JX(<^LV-v8eGbeQd&cqlaxxl&BSxe#8gFf$iOf!2W63IL@Wo`LdjaaV0ie<60i{+({YRW;u5e}$N7U=2~xN@jWu`I zXcn}73ec}Sl#=tD%&x0l?n38+t&Nl-pH_SW|4H3a^s`8?pK;OdAWX~dALDH#MP~TJ z=fYyk22uJ7p)ZPac)U|i0f2?F`sbxQ2}--i&6sK(kDl?Q8%=%3m5(7n-QR$FUMreW zAULPbAyVwFT=OgSpY8`~sUozJGMh|cvv=1{ltZ^6(U1|AcrwQ%VdVS31V|jlr-9zdURH#iG@8}TmtJ_F9 zSHAU=5@odh#o^;(7uYc`pXq*lXcE0GN&O3Ei~g0HOCR5KTRn-|V=|`$xo}+ekkZaP zFMcNJ6*p4EOPPQ85kMK^LFN&QqBj5K$QWogysk{TYt#a`2BX;K?&X1hf%1V6))n^4 z?o#Se>WP_RX|FQa!3}6}Kn@7+nMqr!JTP2bo?ELkJkP~io%J6zIK8~}Uq=o{`z=#9)|fTC45~p)wx#rY?z7O+mxC^}#U3(^3Bauei*Sd}_h$QT{YKy0 zKfj=^Do>3N>d*__tpuB0)0lxB&5J|Cl2n}$lS4Rr%XQg(wTa{=Yb4gTDn)_^XG>{g zUGw_h!u%#KFxQ+IYlXY5e&R4@W(p51RvZ9oE!9MF!R7JkIvD8lCB>yIQ-N?`z=ZDy zGQL=|GJXP3aHJ~Kf5JaPbWi~TO_H(gF9?~PgVpi^#&hZ~bJ!1pqD}Y$P6+w%@vW^z zPzr%S%P<6FWXo;69H1YeI)U?{73-RK9(yJ}kuyv|6l|6#i}M8DfmKenpAXCv-UQwP zu97DkvxIo{E(-hHWT9_{E&Q*d;xee2z&vPytMxo`i_E% zPmyfDu$Y4`WNnp`<@a$#Yb#bRR0|%+3~C-!X*0yajLn&Yi7`;;KnEN?fHV8Vm$$^1R;zu|gSHM&9vlA9l6B4h-zEW50|BET)rXKi&@iG}yTb9C`oL1e zQhCKU4v+1Xoegpf=?R~ezPDsj)Ixd5T^a923^ob;KLCF57;a$S&I}8xxnKjNi@Kqu zTEbih`Iy5bO^RAhVE>8}%wiYTVER8QEzEzFi1r^fc19RBhuL;9PXExJ{zH{vkSfJU z|9^bhp+&M}<%P6hg=|NH4e?;^BOuNW!T8r$rm;rjM&%hC!{{tlVlyi|V>iWJI&t7X7H6*Fvzss9tUwX^`?k;9MmYEA z8}XZ#)m&Z0UKv6SEp)HRq0ozt4&ayZGw`C8+KL+{9h@6|B9kjjbl0f+gPHKmd%l%QWB1j zhxPv;>CHX^9gB*7uP8zJ^NEtU>EATO?mqC9(9P+ZcNTI1T&JP$&1>UVRwwe zFCa~3ii=g^R1Z^z<5eBk;OVgTok3d62&?69NzkJ_YD};K{`{viw5pE&lvXcu!9Umq zS2s$aXNpIgjBV9RbH99%{J)s41S#@U{Upzn1PdPPxtN3U?j(<`z9jIcx(jwoTGls? zHv7D(RYA2}KHgiPL;;0Kfy6Aq!`!j)*+;Y^M=GD%vI})Lw)7(S`!T zh#TmE^lb7tju(F2v3vB7SD797%$nvO8Qx9Ny1;^$G}#t~j`h2EL9!snWa?TJ zR)n%9ih&-3BG)Ur^~OEX&UJ$slLZ4V-0|V2*AE*mYmngm3`9HnIscL6RLAFW1>=3; zHpw5*h3^~px`ia?g5B`p!@m#O7X}FJC(IRo=`Qg0a^`RN$zb2a6g0cmpQ}Xy-ZJX4 zp`BynWD})e_n<$#)(Wy7{8AdhW_DBvf`uB`J#NU$Sp1g7+<`p$AG`dJkhzmK3=d1u7VN4YaZ&}=7jWw&vOM}8PGCAph1`SphCh2i=2Kx@@jdegFK3|^a-N!p$K4`9lUS&d=J za!N#Hs-tEO$zZu;(EO1hc*2%N{bHOm2LAEU$Rdg zEm^)yr^D1#TPYbFH@w?N*$c1uTrQ?Z>PIs$eb+A;-QI;#%fee6kmt;-GR%-Y{MdS# z4A@ST<0SJ$nAjv$O{%aqAFBY-h&IvnK%{^J?&zi*>33skr78w~nErC?U!-@Y zE3Q6~0TYlK2XvOv z%u)VN6X>Aa*dj&!FG0E@KxPEe%jGR_4V=cdm;yZO z#K^ze7ri$Wz6!5MvMpzD%<3{fGit7W!?sY&)P1#V{{>Wo4pHp?ML8|tvS(4hV@>oY z;YD{-N0P2Ei}g2;6A|D#q8|CC1nnU;ATo4J138eA>v)b?&YsJyGu7Pwn>BU@UPPXb zH8U$o$b`JLr82vh-!W0zpY*sv_^|=vJdrv5!Sb}vMAU(n@sW9qhf?rciQPLLP-icMd5O%+$ORk1OlPEt+b6UBExmrz6(@l|6Pn@zwfrTwYF zrsOpn5J^c}eE&^}sgb&2(%ZX&gs0pPRxd@U2ENVI37CZ$C~JQXzD)PUjMSpZ*jDf7 zV_yq~iA=F!wZ&K??=>QA`(#LI2v^1Bh~1-y7!_-&lQk*6se!_Rfn^AHZWBxgys#zl zR&fVWbOwP01Y8`Qd`5F`@JH;3=t5jC2*K$n)5-i9Kw-&wxXGEu>PVdhdJ-?*#5vnO zBm>}B0&#lE@Ra;7#N3_Eymf0WFCC|Utiswod`(WQGiNayA%my_KNSb1pknsM=|Ehc z9d+z=+x#v6Td)N$_xxy=YxDPi>dMl#gU@?Fbu`@KPi_rY=@YA8TbErb!d5|C5t=+T zNjhy*cNJfSN6ORM6d%Y_G6t3x0s0i01#%D3Q!6F+B24QMZC`<~$pJJKK$ncO)-cte zua1MfgYqnwdW;o99HkG&TGr|=%kMyyrN^(<>QP&){Pv?oD#$@LnA2hkM8BXS{3RU; zF-!}J9nn+4b4y!bm#tmk$0Yk5iN52a! zr&LICg_U=RkRQcj(Fz;6Ha|3E`%KT?*6L#xfR4;x*PePgYwyLv-jP1^vz!>8+|7Xd z9KGe3yW-2Ap$a7m*nP#=AKBFEpPJKJyAyf)53ul>h}F}&qBMO<31hkxHmJX60C1aS zn!}cl8X&2UTL?3L2F5B_=vhp~2vtgcE7bm#rG>xGV_ADVe7q=OlgmL-Tw*%UBg@SZ zF*Q?}@N4l&P+zER^?obFjmd%b`_tth$@`sBklP$u{<{1tb<&)m)V4kckurIL=Hhs< z8b&@Av&!?yj_QKPr~J6zGWlVXwgAd0@ZC1hb{Mm8-GJKs9c)!^2v8Uors*P}lk~gu zNN4W#?&7)B$Qzs{CwBzb8K-gWu@T45<@Du}&cnqXa3zFe`HxK<3>e#gw;V_RdS>c8 zH%gUlviDQ9zg}_@pv81^X=E~Ck}szTcv=kS{c#u=Z!mk1dHJG7!3W?o^2!c6`L6}! zYhXwTHt?U}C(z=KZG!>KNWfadKI`!-IxVX1mJX8arhjXP;BC7vg-7=^AumluNd8s% zw)5w%E@R_98(dr@Bp6Ldn7N5qzr(3a(;<(tUHDY>5CkYB2pI4HU(qfUwCdmv^ac7r zJNyQfE&!?VCsy0o8B%1_=^0W5$;NPeN+@}mn@?RFwc=2$P^_L^)||ZL@3yH6ke0Rn zVu-09zQBbERAOBpE#YwgkvmOgOW~VFF45b$VRXUrfb)X*Ci$w8kQ4O={hkXR3B!ut zWet`GR${iK@SZZB3x9=kl~O`Ls&{7(0D0OD;zQhR@#eWJjjR<}M!pYw$B({GHQyi4 z-Uy!E9&Y6=$_dwM+>@yUT8nW+XMIu#wd5y6)6Jsvv=g}h@pNx|m%>RTq&NPif3|yw z`g%LRh|!YGv`+k$#S+sEsIv0=ucL=Ak$7{1{OVjG)@q{!O2;QUWr1y!5B^{PE^D%3 z5-)VYc)X$B>7FOuzB;kKjuh_pUJnYd0+7)FxCGTDi*yx>XX;%$P$a76nz=#jLdpl# zoL*;5+U5D^2v>c_D(ah5%>`Hexn(p1Z6kOKN;^g6=3>3}`e3v3!f2Y3?!ke{*#CVl z`JD|oH<$L7``!bH$pIad+yL0TPgT5q;V^I?XV9B`y)c3ipm?`6@w99b76AY|?;azG-!86WN#0%o9hA)pOAP!*jHY>*|@~R=T@AsAq0^r-M)uE5bD`&|<_>w>;F|QmB_`f2+sW5Za#&3GJ1~ng|7AxKl|9#&;$A1{MD6 z9UZwi0`RSZ$B=X|eAE&0I!*K`E_g+~7=?0QUcm#6-5<2;9Fg z{#gZaT?c5(2&|UNs7`0uB_0khzS_mdN*e&_$Z0H$0n8`=#v9qyi#I|!BVLkj`Tp}7 zL>iI-<^ z=Eo3iP^10~fL-6s=xqaq0*?mSV(FpA;f*d88EHhJu6Qz_obwFVq^hS+`oYkX)q7e) zCZWU+p)m0s-B=W>L4PGyrdfUAoGGEMNy%fV501e`4T@z;;l)a8K>}r+P`Q?JF6DK~ z<<^wB!TpgJ5Bx|&f#tv?<}}5$l*mY@XC71(+Bd)Q zF|>8j?G4$;c7i9AbomnnOuMD*j*4J=&k45bnRn|M}ds#dSa9-|or(ieT z_}awz^gv{Fe08eEl8MhDucE244!?t0ZT3pYc)K}-tZj~ z+YAtD29M}@uZa>dKj-N2@Ii$Djw<_dlBak}N9>>QKjAx^Z5bpCr}~Y=QgY-bsO~gK z9E=*UU*#e%&2Xc}o#}oDeJ?8Fuyg@Y$I-$W z5+JLQ?k+j?gWL|)4%Gqr6}q#G6^r6^e9Zxn88ioThHr&3@MjiHi9}{^zVSScB;JY_ zlkQHAAGis70vCTOB~{_gW~6xHK%R~~UveTs|5c6;z@yFPB={6tdMa7~ZRQhEgSYoD;Sp(j%#t$fbO!e6UO{Aw`6bVn^S3iZYjNR-E1#Z9TuJF^-=+3vf>a^4P!?7I$YFzRtCFsq zPO4DUBpyg@AV8f7KMrM8>ZGvGRA_oMIo(I-xMzAanwCm|Vw1~Pg$a6JCXK-XE&)AtA$Q(mpf~3CqE)Fu>+h$%Cj&x=op1as;`Y<}TTSWsy*AGi zxTYmWOo}Zz-ukotL$c=mMi@F{k>&Dyl+~Iz+64p1gB-`Rga{xSaxK?By)hH50y%K_ zn51v;kO_2Ch6b_e)LyN%bzioye--NIS4s3wG)`VdMchjq=K(O!!sc#cg~I0cz8nV! zPkL(Hb9bM~Bh4k{&yffM?8p9;mPJgD(8!8al$4Q5WMJk}*hQWhkY^iGaxMMGcqh|K zc4%1cFGX0TXjSD3k=0d`x>1!c@bNB1zl0RhXgCAUR-Je2DssNOx+rff(7mdDK2SG^jZZGZM;KDOU4aYdgU(VF$;w@V&03lrjQ{bmAqk>8 zP;(JQ;48pX4^<0a!rM|$vbW`RzF8uuVJZ;|vVE?Z0xiJd_-V}sYkgfL7gU#>E^Rkf zZw|0M=A*mq07)4AjG+*?M)#1&hb8=wxFrN7CR7m76rz+Cs4nSU3IxxdD)K_$3lb=B zhQxA~btHkvVxyDRqE(s{F96RF%ko#GTjZB)K;_er3L@asz{xM1pmRxKnS~$)*w$N+ zMvB}OM-sandYnD#sA{m>A-7QE<>yG#Fs**1zc@il9PRQ+clNwetk<$25f5+n7@33H4~GfSpMW`{yq8cN(eF?a^)Od@Tmx zr>WUH!a(O$?^il;Px0Q^%Kds7a!-w)%^>$!&#WJQ7?RFd^kkl`o^QFaCGU@}Qa00R=~}b_mC_|65gqM2 zvx0hU)CpTUksx}H_`velXWV(1v)q?Pn6RHA2p#p@FNF+YSAyVudh{ zD`@?!nkb_VwjcymIIS80PZ3p4BdEypd#eL{ywb~^YyCIQ_KCY&+wZM7b(eD#7hz7{ zJ$^TxBjR1aKVjpJmsl+i;;2~oMplQf6U%Yb3({|j)6S{57kg0IxZk1BLU40hvU%ti z=LKMLHjcAl>>JJn7O%T`yo+EuUiZb?hP$(Q`InD3&C(W@>B88d+nF|q)wHrV{z^v1PAr#8ET8^GfpyGhw?XG1 zX{(v#BU(ab%l55;~La2~FO>OZ+Qw2@cl|tyrc+X&PEFXKsdp zP~&Bev7k^<0k#=}S|*1&k6O8|Gekror|?S!vkSFiQ9t1DZRW~Ky_7+=Of8%G_DE*+ zc-H3pi)(n+z1B=6BJCC(D)%67$~hL#er+XK*Hg6Mj7 zw4{}X9=HJBCHxQApVm7SPR`Y%d`c7>Lwc#^L>3j-71uSRz@5T3ukbOzw6#Z=u5%dM zK{lNc#gdF_EmviU*lu)cs$e-TE-cp%{3t#!(2^y~Hb zw2JG(={XcqF*HT?njIMkO~NTe?MXmehPSH85N%!uu}lWweyZ6Yuh>Mg7uZhR@QVAm4_D zYo0+{$6>5BFE9;M_OoXIAbg_mD_bFYU0(;Wm*g;2sV)r9JhBQ}NXxhqXSMA!drTXQ zN8)6?9?DJY=upd5ofmZop7Y~!ghu`u@`DAj|Ie&+im<*5a;)Ame(u41{*uM$zNK$z z(UqdaQpx$*^6T}Y={>e~G)#zF_?XuboXq~a0{b=rIRakn26p!`0PTJzp#xeK+7_2f z-MbsyJc-$4r6N@<2_8@GJN_UW?0no0$8l+viK)Kn%VDgXvYfJ`CT9_?S!lWg`UYnW zaa{u{Ie2(;4frIgSd9jpKGn``v< zvG{AiY0k=NAOkE1dhGG!dOOL6%b-Tewx+`n7_cD8RGNeMV+mInXq@7>Dx>>Jdm83c zN|S?3AYR#PMsZQ)Rc0Uq-jZ*pSPzDAA#j~Jzcc>H;ilw1s8vst+wJivA*mfa}DwSG~)YSWiPhn0exe z#2zj0QD6Xo?3*jN*r4BwaSEArG=*xr*xnyBX)$S;bb`{k)YUr+c1|W}xp+Du583o- zAL7;jcKDOmxibZv%6( z8mfJCcTsGbKJ34B^!kcAz&?ea1i6KVT%mNvfqe4jti5;?CB4d?9eVB*>45X)qP~?P z^IQNEhDbawyKUN20GxXM*BSJtSSdMOkaN#JD76+Nz+wZ|?j&H@xKJC5mMofSD{CtQ zw3R2{Hj`Y$G|mW7NHDQ6vDI^}DSDb+P_}#gWvxUv{d=GVYY~^ySiZsAr9JU*kuIuLNM<@nSfUvL#)MmfNL>V7Ee7fsZTug>SktJ z%yRf#!tNw;J_US>?04SN_yg>!(KcrUutgL*CkjYlch{DCMg{1BatyLbi67v=Wq+M- z>XBwfAL03y-hNjB&V4<_ufYn{L}wO6QWmw&GzpNC->s z0uei8e5~cPEx+ma$MUpV%e0^0-H9~w391~x;@(Ew?U=S+5b5bse z_P!C%zhRdh_(CE*M*t|VYxuqayEjgf^}$yFed*7IznQ z??y1TlMuA$4@`;gDFgam^qj$`Ij1bZgoo8|yy$s4xXuZMYXY2&pIpPcrz7kXB6XI% z8>ubbBSvl^w=L5k&KDaC9XklUOXcOG95n0rLK*MRNNa;n-X@1^wotZZf z<-+B{gkf6MZ^*Zq?|hiJUH2)7Gp!GA)o)3wj&SQF9m3^+S!8H^K=T^{!Fzr>#C#^f z2+i_lDFbd$K#(nBqnqeY(H3$F6H^tloFAzsm=Hdhd;z`7PQe6I%;L7XA};nc4J&~3 zfSu(+YU0`uNaM$CR65U%q+`_hb#`YVe+iLm3hBV7+ZMiP32SL4H05m4A~9MTIq;zG z`SOxIedM8}C5yEDp%cp7p~@kx(0!kFpqmvxL(vAxx+w*VDG$~JiusC(z==Xri<9Qh z@(H9f2%cYPI+vMBCwYch>Iel2Z2&`ylItZ3yOIUq;CcZ37&qg_ z1taosJ+kv;$Z!l5$w}X&%?dVU=O>fSMxzGJw2y#?l~!RLVkZQWr!H5cJq?-@)+`j- zDZhCiHU>72SWL!8C!1I3bDdyybTOHu^rm;4RxNamQa;z>GH6bkazDP~EZr*hdkX$F3Gx~ar zI!`iSgtEPUtE4Uk|5N7A+k!Ls->Tdi;lP$Q2>?2YQ=;A+72Hl2KjsKhuSlXUG7Kb8 zwm~@zCKnj!CvsLDJt^LdLZt)4gB-pbXx5BK$q$AD4xevUzwQU`3lHd`_GeQN5!b~4 zqsfU@>~gSk`f7;hWEZS1rZYh5p%|y6Jjoeq_KN-j0}JHj^J4877EeLX} zAm4Mz4ZmXzQuK#dp;SR`$mFS6;CqB=E6+R2*PO) zH^}}2A3Do8A*Oz!+IR3*nAcz!g$aiSR*DIS;V$)XA3Nzv!1@kdsh_v_LxpZI)MgVt zzFXkBx>R%d1wnWLebw5hp8?+DcbJQ6=1OGiv4TO~pnorrySbs(m7g^q8BzQlW_u-~ zH}u4Jm$;LZn#B+GG>pYA6bh5DTGZ?fiqqA7K`lNYJ}s@YOF+M#vsQhHNuX47S&tu% z50V2|FGcef-_+afCqMvI{ui-)l1G?F$Uts;KFO{6nO_dS{{DE^LDd^;vD@!XO?~Rq z#(z6~F&KMa;$zABt2Exwf)CxR>y_u~i2ir?&w*sTca1S>%g2KYUr}-1IoP4XNtD4_ zbwFBVO6m~c{D*1Bm3y^~%i|W{RDvTdTisNVDVI~F>`m*!8R}L)M1&xc04^8-KD@T$ zXU0slTsPF%yOv3pF~R+fG{b(@sO%PZRB%)f8$H!4)r-t&J$7nkWa@XgRL5-Z5+YZ4 zNW%vJ$ad?>BQ07UT7=$Sk6=NdA}Lzozlx;N53)dSZ7-J!LH%by(*VZ6ujK{UcDC4B z?h(1g5Vdgo_WW^@+FQ=CIoQ$N1&4&Ja-+JI&_VMyQ0#^?v~0?nYtzjey`GqgEJ|1E!(2(%#|G3V08n! zZMkg0OI+Ph^4wIW4x$=2AU)xB_<@W4cK2*$=N0k~Oh)&T>&Y70NJ&wAKl8D>*e{E& z;JvBO26s|;Z`nb0f5IiUc&z5fY(2S^sg7p*Q{rSFWUmA~*ms9E6Z=aYs=QH2$zr^aar~ z6QcTNl8fnoO#K*4+wYf2`+`2_lr5`XebQmxZ@k~7 zHUtb~xtJS4{G7-vtKZX~Fs4eG6c5lao%MxL8$l2WC<#!b!!HN=!Xy+K;85cB7$>ok z#~RC~*#~yd^wia};{J$B(lRbWpk=igf`t#3H`l|ba6(Oiho%o6-a$TVyK{KM4e`&&j_Iw z|EltEN|=7;*(f`;SK}~KT?ESx2dlBy&kLqjzj}LTvGCiVwJx1UUe&d&yQA=_RZ_dX z#&bU6wV-?r*+a`=m#bh-%M>`F`G*3>17fGS54Yh z1!VxK#F(HZ4uVBEGfpS+tQQwUcQ|tPpPsvkb0LxyxzP7 zRkFICoJLVJypt)%HA(~67Jm?TDxzCrSvI&jvZT)PrOkc`8l|VFw5To3muD)s_0U7v zD4**o<=S!8#6n@})#~qn)YiZofiu>yFibGfu=}d9Svu#+zHZlAn)Nv4`Uw)drYuA) z^rUpAkQ1iJx{&iSnC^{XP}}@2f0h0!Jx!4Dq_DU*FsS_u(Muc<6lB25BHQ3%&|G~L z(!e7;QdaS@g}OysbpyMG8*zwqD%h86AD1T4U$C>;2$yV;Y)HJ4Oi_{K0i78D0c<|i z)xw>WG(8+rsGIMY^^MN`+|qSK+{uh_*IZtXb5bKvOLC{ZE2eMawNjia_=U5`e6RVt zD9z~SQO8}`pF3=TLFCyLvt6_7oxD zL+HkpKAZFGsT=VXj+~v6jD8!7lDf{3cG*ECIQio8B8n%8S1KI2yYr_Sn>g8y&|igd zt4TPFRw3z;bUp?C3?d!?fXRMpsyQVxYv}jvcr=q5waG5$5`Gx*6-EYp^}u>jKg;Os ze2{J>4_XRYwP^eaInF$Oza9+9Kkl3u6IS^uH0PP8*jZF3M=pGuZctUfXw<#%@P1aw z+WYLO^>RrTOho~jA_gecuZZyvwXOOR}c=l{jS`8j@d;4~nU%{~zVgPJ5{WqJcH z#Nj>Oa^Un!ibU~p;2YGjxPOQ&$>&QL@6el;joiPI#6OvN4xPZCCN_Xm`(lwoT_KR! zeun}JC=qCiqw8~k!s{L!eO&9_vbXBxlLn60CjPGvNeo@pD}r+G+4t2*x%~tF_Rg#x za5y1sLC(KyVKob&iL_-#W}MpqLh0jNE1m;`os$Z6709n7m5c92tGBvl!E@5W+vK^& z!g@{qA;+l8MOL5KZt*|Wu`UR_jQa8g6&FdeA_ZJ8k51kJaBP{|H|~t^M%+16vYSx~ z3XU@p-YazKh1oKxpoz-|8+w18{0%dH^096`)-g3@yop62wzD`g^7`)Bb` zTD-BBzi*HKE-L@}wUM)%z+JM*Kfj$gZaKt37HJ4#9^we%6ca_OXR4c;0!jN3*W2)P z%a4P?ClgR1#CrKJI5nI=QN_W5)Iuv21;nMLdhV)vu-fh*JeX-ed?Cto-@Uu(2?+@b z36e@BHt|d%;{T{^zPP%=VfL0NZrq!WYYFFpHt2o)#y8ZNaD7h4o|fgdelpjgFI>Hx zQf=hrl~)hSgatk{fn9w?U_CO@e-8LIwB1}31Cy?Lx9+*x$2j*=Yg<{pH$PanZE#Ic zTK+g3Wc6O`P{`bSX0Q;@jFmbI8#pgCv?gyQ}b@v>j9HT@>}`krivQ;cS`%_!PF%LtgnJ_fU||CgK_>-RN+UK;?+Riz&V zm=sv!M$)~0FZN7DN7)UduY4oeH$T2_-M7DjSJ6>|ge9ZpWYc9hR${#hVpww{U3{KH zJh``ZcGy{bmsotQC#XsYamG7wP$R=2!Hw9we>sZJ!C<$Vb0cHx$`~PGw+3Ukl4S*< zv|D1CQj`){$0M%lRCms#>Hq*=GMKqiz5@?o7is?HLzC!U1)MZBhg<$tU5_n~rQ0QM zHXq71=?657;%R!@a2ne%_=t~Tk?63wP`-W4gw9gDfJ*HP!`a*gi|N^ZOxR=>B-!=O zgg)S++B+8>1d!} zzMs*VtYK3{Q#OVw6!q%yV27xAp|;6sF=kk}kY3yAF8w>#J{l*LbrF}g&zNm-tj&() zbawdHbKQ>FcXw~oI@{T)Zw)5X{7fn&Q6X*>m#fOtgGR9FK8qwV&jzoWzpWhN0WNc! zVeMX7W1Ss8BEuTo`#e(mFYuQ~OpT+S11R(3QT$+3p)4CtcIC)*4ZLg{E$@2d150N~ zycK%OmL2Roj~mygeP#+XGj9%U|%-T0?Jrp zzz~IF#)T%``v%n9`-1ncLy;k3;C#{Cce*tarF?_>@|?(H#%%=n_BSVa-6g;xK?UH% z;Mm`^#|c_~ci;P(Y|{yt_FjAR!T3o*b-@W-ZO{)>bct0tFO#kY{ad z+!GX5$7*Td^o^f|$;{>f_CZ(QO2C~I*=tM>&|c>9+*{>Y#%pcp`i*}Z@rPe zkqVY9Vh0VQnZVZz;z7Ifm+r2FXqq%f@O0BcWb4a?dImc#g7kzWKp!3Kc_m*{)046t zAnMgg@f!ZV>#T}@6LKoGQ5XR;&o^1F5^~789DuG$0d)Zvl-$dbU!V`4 ztLnF|LmR(^*^1SB$0;hWbfd@7nSE5!*xML!rfl;JgGh(zr~PSGB4ctYzbsnUZjXqR z;A=J$;TnErxK`dDm$kevOQyo8{7ewy0B$RDpJhS5l-x_XuE|`U>pBkbU4IT}A2ERj z>=Od7^k*c`W)u=%gr^PX-7(ZvVEmM7h<^V{0o?NUyY&hO|G^`xU5$;7^l zU8-GD7KbY@jXuT{t#e9F_=JZ;GEnzhI2Gw2)V1twnL2 zxJyl}xYe@+yv4SlRg7ErVc0bE3?BW>*gyJqvB8mCU<5ve)yI?Kj|Vr63x9!-(O7vX zR~K8DwS@!+ol7Dr&|=rT{#>5eQ&VWE zt=26%PnuuumXY_jRZICZ;H196z($hUD1gvc$O?7-bZok*pVcOCtPL)b3CWGwtggFI zM#Y!5Z;^GBEv>=;2IK#0>MNk)Xo9VAcMTHUf;++8-QC^YWpQ_R4estva0u=eoZ#;8 zZ}Oe@zc=@s-Px_}uAZ5l?&+$!)yT@N{V7Z5o1@x}x2rfjA&Yl*1WDtgg8>G_sC_;c zKX*uP5K$C4554ztIJI$VZM>UZsvzV1H@_d|)U;CQ-M{Yj*A1%3@~sATWgYMWEmrfv-!Hf)sM^5qN!vH!Rm}c>0u&V8J3r9OzAu-v<5~s)O)*5H)6SYW1UhFxh`}* zTRatzu1QD*xky60f}?=TXSsot6U{Dd6KEa`B5N(Rj~s=|G*`*=&Tu6(U=JC;7;|NOmr)>C-}N02BDsG0&UfB{9o z-z;BND#&zFM=UrF!4g_Oe?yF+FduImy^pn@X8k zwNGSR@A`JP*Ufj@LkX|^xvW~t0`1M#sm4ZUU>>=+2dvMI2?N3otW0MH?whg|+za1v9ScaZ=`6734a->se>p=deQ4@m5$Hz`brPs?~M@Wd9bXsGs~?@Mq^Km%L!C( zX$peF{%1%Sr^Fby>1ea3i2ynjEdwR+Y#5tV0|0mrlLdDaG`GgD9SrpaC4D;sC((^v zd|dCx$8vmQ-1`BpVO}Gdak1B?nkYw}{Y*T?DI0k`n+;3bS<$9HCI&6n7#W*kE|W zKm0sxB^s>OX0LYkQZtSw?-7wwOjS!0<@IQh2>NReXK%C#GGW^WQ#A3zt|4EN=^dZW zuxwI^`gP2~-pJJAE`phiZXntfU4!%4D=?)>UW!#vDg?`*j2@{9GDEovGU38nO+dj( zKtZcp!@$5TKmjnGlA{vAT_`s~qwt*t`Ca*43I_U`EHUxeLV7Ts#QP!t?Tqak6pc!6 z`jeCBp$SEXW0UBGdl2u2{M{+5sjWy6>w^bnPzBc$-ZRDLp*UMmA8<6ew+_!>PdnZt z2Ut(0GI>%L^P71TEl^~Hfs>JstP^;2(FG0yRvi*mtl z0eU}}JRS6Rdis0=UcnwkKbr9`q@#1*A#cmFmdD}&*+E6F5;+;dF>FcyKwuS+W7uT+@jm5Yv!dteZ{PcU%Sm4URxfx{ zyqhh21Bv%I>mhR;sC4F2PHMFRcqW0CyV9!|6G8n#uG4IwMfbkidPq zbmRZHXM)nQ(6TH!YM5!5HBnYY*C;J8CTWT4WL1h7`We%fG@@l6uH~d;@)kJc9=JB| z@Khf1$j78GHGE)1`qM7iK<%DpP1se^)OB>*IuuQTphZ}h;WuDPGl=NwdJFUDiCVdqs#YScgO9?9NAmBzLV@ou~%E7C%34CER^PirOoP zV{3clY3ycde0hD^oc`NK3QT{6Wwllf)RZcNfcl`)B>&>En(71i;_>Av5UPi`ARz4^ z{tTjHUSO31@PB8h0F%|4m!>a8aqaS?p0M_)Xk=66UzIbpHwX{>|%7=JT&18 zQ>DR0@%(dTlbiEUxC2fy6KrbA(WZOhsyMSYF+!?N{KQW< zPLe<;fIu0$hs3LjxSU`x0W5KhDR^Y7E*H^BW(||jN#Q(3|G)pe&IofM z6C`0ryh3Bu^2K3Tlz8Jr*WnO+Wiv;Ad}Ys*Fnnb!UWk!>h-R#IDTtB$VUlT&nHhvd z(b}S6+=`{xZ>_E<#l{tVVRKB9lCYeiz{H*-`1muBoKT#hQhuHY9D&AV_`(hd(CZ|s znhAg(b@=7LYARsqnNygR(d(Hov2})qQSgLq5bBxAn1+TGh8f~E#VimC>T!dI*Gf8_ z&eDw8zIp?#6D{%$EWD0B3bnngJD>+j7yA58q0=NhE=n7 zAT3(-BQI+@KauiIGM(2A8(sm{6er!=cz~mQB_5leZy}X*_3CObIF;9rK@PciBR{XY z;e&snFZU0mk6fmDP&+*^?r7}YKq{$Qe0i7?K4Lr@57RbW!Gx_yvs%GZ!f|WDPMxe7 zGz6?Ce?RMhqv^@lwO<%CRBx|^dvmpPs0!&t>O|`FTR}whoikWAT>f1%sH?tO<;^a1 z^wBt-d&GyMY<*qkjXYo7etrB(Xc%C7>4)LNf5+bRx_z;N`NZ>uC*g2R(@00BGuZ5RVp-n`~j7Jo@9J8Trq?w z!IVlGM4ISn0loxbZv2i!L%eW^puCZzWgx4~;-_qEo|wyphQ5K)w_dkrITdIfWKScW zlBuEO$`)D(u2^ZL3ZTMtZ?%q0^#n;K>rcomZ06ZdQLw%v#`9T{8J~_&v-7ElQ2|`*2a|?n9g| zJND^wzuIBtRG&ni?-XGQPOnruoFQ!knRJGvNTZ6iQ~jX&kPTTE{g`WjC-~`ccofHH z2B2}Jc2yrPL>evM()RN0*=!U5Yre)NMeMCc(6AU+YJziaET(2KHNmBWwA4kA3bNEC zw$xQn$OeEvA{@@Pnv~@GG%=%db+?p}d54~u`oi*Hb@Zw~prb`llPYAGI#kR-@snBn8>SSX{PemZqTx9G zH^wN%@9%IX%0Ja%M=5ZYoJLEy@-F?KBmZW{g4K+ z1}$i577Gc|iW<^&gUydg(UM@BdFGm0!78~N*!Ac7F$g6>AeYwy= zg}_3jw--yH=0vx5IIYlYuWaH(4i^}K8)##Fz$0YXqDsfNoh=geE+%`V_PwbaPKGkl z``wKMT_UnC=S4pi4Hn`uBLfv{8yR4VYLXT0CF~bW9q$b1MPq|PWW!{`ias9LyWxC| zti8gK-tGY7hHzO(S$YW`=x;8?B>r_L75NYxU+p@Y3fv32Nzs9(AosgM1srV&ty#ye z_LnQHoc3!Ay;Y>wiTG*;WkwS@#+!RMH~DKOEURA3E#fVc)2l2lGgnbiE!Yde>x{0| zQ8Zzy6KQ`H5Hjoec_EaNEB0>!U;PlvjuonP*^>YR5}Tgx*N-N}g(=@5!Z8^Yvp6w? zs}9nKsi7P8nfj_m4P63aH*5`t_@tWUjKkb5g>(#`bcnNz*e-k?`Ugld03W<3F8f?m3 ztMd+BOeWJ<<`H9sncsThZBc@a@q$mpazY}-Xuue?NL4y`SfoVzmCc;fbG;lG4?4Ig z*w9YMI;SOAUTTxK{E0jkt8q{uoEQXAAgBSvs)Bfzi7X24;PiFk-o@SpZBdmm3>HI{;X z=gwLNl^{Mf+#lfI=U*p#Lu@ZoEp6*_?U!y*qsV2|vIyUrx6SADwPT_9Q#yyvM*w|f zQ^~d;eTP0?I71+aN1Z2Uy{OP$fvO3NJa-eFl{B_x?pcGs&OV#AN3`r0P9E>{8c)CW z?bZg{+yMr!1)~-7UXh%~u& z4mBq;>%)qb>G`m-NsY$@J0QrEHI8zQq06Lhc3RLqz5MzI+rD4wSiM*sz6L_sCUVI$(^(BtyBbXfSyVa!Ol7{z0jqQ?`@o>vsbM*LvnUl9u8p#)we{q<@bun2pdlAEzgpizr=7i2=)@%AY+Z zQ#gk+v2Yz70Q<3n$Dn|dQpk+3~2K?1w^1nKm|LKT|{-*;2r~ZF*L`M4~#K@_zqmB*z zBv*(4`4S^ZA_7MHR;N&nHcREWN|sIr2Xsh8eEEANLsk+KR}vB{iOD+%5`oSQiF`bA z1L8g>!K&%be9R-=tA#_|eAYOyFCpRpgqi^!Fj@?a@Q33-vp9O7mjbfmO6hN*KA;B% zj&|r~30}+f6jI*t6w*rjn}31_nZhcZ#*JZnE-i2}kbDU-c&a8(xXHS%GlI=0ht+Yq z&6Oh9Nelx6G}ivgg^?L*%mRV=w8UPXa0MBSVe)RvT!mULkX;VyM9Bg!P)rej}L$X|bSg1iMjACba}i(e!>F4!U>5K+nj%D~jc6@|IYUJ9d?vz2aLstkcQ z;f;WN@)odzhsck%40abej{xJyMEkv_`7+0rFKZP&G@`qWH80wH;!r6%%UJsrq3H13 zws#TVTcvZsF7q*mFD?>64zRj--n}jG+4793)Sm8(lm0Exn@`?ZfihCb;F}w*_VSCR zTvlZYlV@gD)Z%D5gL%os&#mc8Ep7YQk*OuwW$qBqg)=0(W>jSR?yx_@59J+rJnT93 z-?05Fe_kCJSmJi5_<^+tPM&4N@zFn~J{wzdSK`fk`RqE8dat=U2mo$<#b23^kw;!) zmfCxMUz1^Hg#pdtrGMlxl!!m=W1v<~~Si2W5k+@nX)h+M6_Y6N%gR&;3jPJ(|+s_C;f|SQHydYOJQTBYi zN=Rk)Df?(-W(s~c5CfL-dd%nCzoUN{JhZ4nM8sPvr9h$ZtQ zC_{dLj4I*|Tn#cD8{&+;h5zFPn!j%Rb|sOK43qIh+S3MCp$i?8{Cm^2Y? z6eC}G!fi6Zm_gRuG=qM5Is;Ln`a@wJdhkO4FP3}K{b*IRF#upOKv2QpE z(yOn-x+TzfXJUNr?mL6e%*>1(n3sEam^PF5zAdC5+ABt&sLTLi8nSbAXvg*RQ-&G@ z6XI^1iJ;p=bs6B$i!R~AW~297USa2amyy?ooK<~-7hOIBK6TEM^#PEb=jN!^@uet zUUJz#4Km@7!klFK=XW@eD7^9M-TsogM)yU^x`a)hG+%%X!pbl*7Jola85|m1x&yk! znFjoz=ZRKS`*l*^kL$X5>jsixyV7ObkLh3Ks#iQ}m;SKW%H`od5#;%_g9j>ElhTCSOpE<+1$JFJDy5veDw&l#5idob67P84W+me? zILP!^0qlUhXv;pd6PSg_A$>mnbD@$_LTBzM-<}9D@m0tl)wec0BU_&Aa4JAwnr!`d zlaSV5;K1(G2|1K&DAbJ+1Min8B|d^E*x!CTsNioG)lRvJZzRk;78-L@h%VPa93WPd z)F;W##|(ILn#;tg!Q=b=`j9bIe31KgT8r`sC^vpHFia{xNKe9~$<|;{+iJ}^<&v3d zSq+~y6PWn?NK2}`H`-14(ZKz_?dD+3z4T@&hs=PJDTB_y!+E&L|CYMBx8%caekK;9 zFP9l>+|^X=d6fo{XKVLiqpj?g)?>`ejP0KKcG7HIoAx`j?@AazFn~;2G4r~)%IdlS zn81eGh2pzB`tZVhE^iEfWAwYBu)j6_4hz1n<-w_b>S&0uk?_S6C%4ypl2kbQy?x#L zT=sJ)_gBo%JE!+Pf<7_K+&@eGF-V7RAKq&qlBN6}!mBbdY6#(DhvMvnbnHwt#`SO? zS35O)$fO*weD`irRqBU#k$Geg@xYL ze4dRDIeT6_|AuPM+7l5T6Sbe+mYef|$h&?YGCA*K(tLj&a?xF1=i_c>-%^qRKwVls z^CQ{cPe`ukGNuE7X;c7j>$)tf=Us2T_3v@^hx{cECg+%`8S{X@DH19%ju^+rZYg&% zHv60S>f>^@ly;JU3 zft$Ywp-_A6u2jALTtyjIPX^VG;-GB|uRxG!mT5IG+C&ZKzEfe`;fdJ0u(1$q{&-Wd zStxFfL=x#sMf$xUS||k;9iLzEVb!LHH|nbbn>${<<7??f_Kvsd*H#PgbAKhAZ@O%5 zU&AA#@(L^I%q1t&`4>1X{Bkj+pL&?{a==bl17R3iy zdLHpYlqLMi%o`uXbj2Ucd6+>($ZWXZb+FVaTDM;!kj4WOWgPHx_ObwFA<~SbDpd*D0bwDG91orh8czFB74-4Q5|6vs~VHsI)N@Lj*)qi?LxGO#R9ee1;NVF2> zFxVrvy2`|?-uf_-*z`K6(UPmtqFi>Iy=k($xqmyw zSii;d{K~Zin26kEi$amt{<3W*RInz!o|}_L{!q&I24x_LhbY6Cd2rGE=Dj`I@a>AP z-Fh>cYifqCQ+hD2@q^`Uqc_F&a2@lQ*XZ|qggyY3AazH6R9`z1l0Ri#!xiu~ z@y>VqE#Qo8r3d!tlHo>u0aFm zz^dhoQH(h=CU#`S>*+){m?ae!v0TI1nv=%k6oP(E%y!0Re_yk7j@)~wKnoZ5Nb7sS zPn%`|NT|=p{W@tgP%J36gGA-6m>0!B6&uT<2U=FCwtBTd#gF;L`dG{b_GbJW= zTp3z0YC_b#c&r^mFe4qx&JumXF_V%v&vF27=GS?RjF01fySqb*V{LK%6G~6M)`Zjj z^Pp71EG%o|<<(8n)FjC#xjCx)^(8Xf8BE$@ejjc(_swofM;KUa&~+0V`Nlfi=`Mtm zaW|3t&5dB+4Q8`O`{8|WBj~O(L;qS3A8u~-FI`h~b5f|lT!AWM3OTCWtvNM6VqF0K zBr0m1I_L^Z{tijTrv&EkpgZLk_fV zTn?MoGc$jsu23Ahd4y@mDxBdpg@4PR{{pB|6cFXMgRGSpkY$PNgjojJ1;gU!swP>X zNBb51d0YCizunOlw1>HMOcc@2-_$>1xdZ{PYb5}QrM09Aily}&(n|)vSymV#R!QiI zz*;_wjKGS(YT|tY)lpCgUw!jHld3-xj?g|;I&(cv>F07QTrb)U!z;D`s> zYiH#z$GRkHK2NH7At6FkPs=XrD+H}Cp;lkY76S&X9@?duI?EnY{fN~PWZDv(Idnw9 zOX-H=#S7J8RkLar51IXx9IXAd9@Nlj`Q(r_a{gp2hHwD0@-VwVM!Cgx!DObLpEljP<+|nLeub}m1KnHhwcNMG=Y4|!`eh??S?Y$B zM7(nZ2T_(a&emz3p;Qm@o3$>(8?RDnL&Dgd*?vB%vjy1Iu+Tpbg6(xxPKN=Ng%6kS zP8#fpXGs_DM|H_dx?bjV@2C5DTjn2hHr|ia7E$*;x0G=!@JyPveplNJ0OpT160A3s zbmr3^=h?6J%|Dc=Xlu*?heK{0rP}Ac$k1+KivldHcXEIqaTlTLQ>i7^y>ZQ3W%HLO z-Dc|Cs}6xN@Alu<8gw@i?LM}Xf;lb>CL>zWz-Z~~#H5{_el3B;#Xl>=Kxs+$E{76m zq2^BqM0^kE7!DRGuxk`0nce6F(8oN81xR4b+>|#V<0Qxkgo;rDyoV33p1HA8URtAh z&j|5p*EZO51hPPPkQjvUyI`*+3uH*KqZF2HeG|@;GNt9Q-&2U#3b`8|Y|Pf!t5S_| zX_8{#?XM=rW=zx!6*Zy|fFTCb#}H1RyugTB!H6l02l1?Oq-5`#RqoW*~#eu^wg~$^v+jEdvW}>4InjHz}L;0y^(Sl*p(P;{NJu5uL9VWAe+le z_ZX>lLF_2NeWk1g?}zvYvP)*9ezIoFVZpfuqT&iY5?kS5y}*B{aQ81Kw)dB8A1H$H z>fD#OHq+{-1Nz9&Tkj}*qZ9x{cW8HLXigHN#KffrMwnjZTVCaghTXwPi!clYez5n_ zaOtZ`f6{PomKn!~FuPnN7DN;6mVFyf^V2_M!~VZOPhCm{-$SzmN zULh4lk&K?K+zz-`4CfT&B-T}*%7@f4Qrid<9F@efM<0L%qWn<1MBk7ym(^9y;vu;4 zj|rCCN-Xq2u!-(sXFkzB!~w*C$~V+#YRYooFTvR+f^fu?!P!LF71i>nPC}!wPQ$Pv-$A@=sEBfo{DrN7zAM(0jyL2zd z!We(|uQ%@4`S{P;ZL>BtK>is%9hhH#MXN{T*UU_pB+x zr}f<N!3Q-)fjdR(GD}`x7mhBg7FOL?->Q4D96$L>w$8P&P!yXd z0ALVa=M(mK=iT31ik|OmsFDT5p{p+@^>9D88is(s-2e}=b`{8hUb1oCY-F*Pmo_RUKQ`cbZ-W4*jA%#6e_DSXPgZE(=eF zs)&5mgnccl@V)D$4O`UL;~<~Za><6F`;o>ieps!3j! z58UF1S>lI^f{=>p)6Cfn13`y$X3zUY&5|YH`vd%ow2S zp!dPx8X!1g0O)z#9P?u0z#1;%h5CAbPqY-i`HB#;61Nim{^IC)fQY-k zJteA#?G_s9$7bWk=DYD(b?>BA=UqhD<$X$Xc^L7&j69tG%*C&cOO(6mn z^EXz0okE+r`e5Ac`!Ck3Lr+!$E5KCE){r~*YZ1_H`gX=&;GiMtIToWEJs#G_O7Q^j?CS61%rioQSl_w>gt|r#Y4pv3|B&<)+RkEv0*tJ~mHE2uX&p_C~ zA2?!F&FJ-Ir3gfu^;e-69)9P z5`w&1jH;S02QGWacGu5l>9Xm&@-J#Nbf_~rFfL;{0I;cIoiF=rNSXQ z^ceCaGa+XrB59OdiQX)(yW5h~&cq!=9b0_u;f-2k)AT^`J_&UPf@azWBRCh}u8!9T zd0p?aXK>ZIae4ldJDZn%b;X>fvGi~Y=I&+>@>^%bHlIi^MFzBmgX_h5FU4GW+ zx^>SnW504<=-)|TwyyK1?uo&J8`QfiTJ<9}{i2?s_2fg$%H}kH!>DT%kLsK34;Y0a zs{G6=!wJWfbhT@k`<@R@GZp~vG1>7CtyPUs80PB9ioY?9b;Oq{Ml{3Ac{Kg7-n)!Z~oTA+o^ zk!7gPS%%=hpIfhDsNVz){ z!p7mq*u)r0{1E_GPc{Usm6}QfRa$5qk-EGERyjD4I#|V4R7t9`$*h+5%zdri&+_+? zMW)+OiRIMKh5G99N3`#>gj;M!Ew>HNSHlh^{0JjmK=R4NtyhKZ&P`|e-w5#k0>IaQ z*#j~MAJPsL<{2()YMKn?mYc7roo}N~oIg3{V|LW%^VoZ{KBhho&|Vu*F9W7+$-BR; z#%z{dN=lu!I)i+0`9nX=F8S*@Z?sb~`~KdJ3j5_v+OI_&PIl(6fr+C1tGAvb2d}a7 zqL@9pWlZKz5-fX4AYxwqIyBYKAHMtI5tV?-Z>panFS$2(uT3pw%ZJpCZ+-P?C5;W~ zy@7J&3lL5pKQ6LM_K_-pBp;(g~7W@|c={`prPhq$bodc;f&^M94h#jVA+lFYTKnY2U0!MAxk>Eb{Ti= zSGzEB+wS;qqrXRg$G?_RKxNNfqo{EI^sW+3e#BW5{#uVCdiiW#SGnFhX;91JU40}o z*6vwt@P*Y&yYsS%^U1%rZ+rTFX?Va5a&@?lES3_*i6hk9;2sitP628g9y$hR4ZxL zeEHyw_zJTk*-z*1QG&sU-4Ml-CmO`*BtLQ1IY`Q%NKT|NX0S(lQs!HC;=4OLp?Ks* z7>>XUs7-MxR|g1ePr+pza8$7v`{7bl`yeI)RU~ymOd0!EW{IL8OHz4;H%7Y(Ct~0l9P|(*>L&8hd|=Pd)Q+67Xg#W*ZI@5 zTFMmPcRtm(EWdx;S7Xs=Zuvx49FVHf>90TRP1>`1PESKab})pjuI^DE ztB3|Sku?$6*eD{b@<6@`FDpd@#? z{t+la{!h~VR{~pj8|M;R4~(`mPP=l9MuZp%2SMXJ?57-H5)fI4#LgSV=zJ0}UHM7L z7pUt4)@!kYdh#>Ne^kT~(YyzFy?+#J7A(z&B7!(i^SKzs_%J$Kxom?QKk8=_;8 ze!47q#|4q(LS&@nnm_y5S|;kQLYWN4+V_19>Q$K|0MlmXGsy=dZ_w!?(zH~{Uk5ED zFr8J!Rf;ZvFB4-)hIAr-FvNe$t~4a5tLs#(4nw*7olLMc` z1f?;@iFJ%~_W4>cMUu3D7@wrNFzYrgY?{&TrPjfB|aQt%i*vKf++B37E=O*mRB4 z)~9L_?olGl+?}O`-{DDMHS!#gjIgij zA`!tWCHfLH4*J!yRYAhSR5$N!Oq;*%L1PzpxVP@bZV|BeUR_yUY-;B{bblN#?;}$br4ZY(Bb;mK&VBv`v2d$plT9O zaibJyZAUdwe3HttmPlPeQ_Qq#BfwxEH5#x~#0s^)u!*YO6BB#C=kJjxNS`X9rvxbc z1l1o`qFQyp*O$?H{o_46)D&?FX^$F#!EVnLBpCEOrxPDGs<2taaF|9yoKsre5?57<7UeWQ(kw@t! z`9;WzS^4=8;Nl_hp(`H@(G4*Bej6;#=*Y;L_n|!&Q3kzRTXZ~}t?rYoD4aHHLO$hl z;+_;`l{{V+u>aZKvgWZd?nU>`?JqmcR9(IOINp9h)Fd&%-OzE*!VbGVN@UJ3iaT0p%cwg;2di|cl co@Ab0KfysjK0m?XL24*mGVbs#K`cT39} : IDisposable + where TDataType : unmanaged + { + private uint _handle; + private BufferTargetARB _bufferType; + private GL _gl; + + public unsafe BufferObject(GL gl, Span data, BufferTargetARB bufferType) + { + _gl = gl; + _bufferType = bufferType; + + _handle = _gl.GenBuffer(); + Bind(); + fixed (void* d = data) + { + _gl.BufferData(bufferType, (nuint) (data.Length * sizeof(TDataType)), d, BufferUsageARB.StaticDraw); + } + } + + public void Bind() + { + _gl.BindBuffer(_bufferType, _handle); + } + + public void Dispose() + { + _gl.DeleteBuffer(_handle); + } + } +} diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Camera.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Camera.cs new file mode 100644 index 0000000000..7e52f33e64 --- /dev/null +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Camera.cs @@ -0,0 +1,74 @@ +using System; +using System.Numerics; +using OpenGL_VR_Demo.OpenXR; + +namespace OpenGL_VR_Demo +{ + public class Camera + { + private Quaternion _quat; + + public Vector3 Position { get; set; } + public Vector3 Front { get; set; } + + public Vector3 Up { get; private set; } + public float AspectRatio { get; set; } + + public float Yaw { get; set; } = -90f; + public float Pitch { get; set; } + + private float Zoom = 45f; + + public Camera(Vector3 position, Vector3 front, Vector3 up, float aspectRatio) + { + Position = position; + AspectRatio = aspectRatio; + Front = front; + Up = up; + } + + public void ModifyZoom(float zoomAmount) + { + //We don't want to be able to zoom in too close or too far away so clamp to these values + Zoom = Math.Clamp(Zoom - zoomAmount, 1.0f, 45f); + } + + //public void ModifyDirection(float xOffset, float yOffset) + public void ModifyDirection(Quaternion orientation) + { + // Yaw += xOffset; + // Pitch -= yOffset; + + ////We don't want to be able to look behind us by going over our head or under our feet so make sure it stays within these bounds + //Pitch = Math.Clamp(Pitch, -89f, 89f); + + //var cameraDirection = Vector3.Zero; + var cameraDirection = Vector3.Zero; + cameraDirection.X = MathF.Cos(MathHelper.DegreesToRadians(Yaw)) * MathF.Cos(MathHelper.DegreesToRadians(Pitch)); + cameraDirection.Y = MathF.Sin(MathHelper.DegreesToRadians(Pitch)); + cameraDirection.Z = MathF.Sin(MathHelper.DegreesToRadians(Yaw)) * MathF.Cos(MathHelper.DegreesToRadians(Pitch)); + cameraDirection = Vector3.Transform(cameraDirection, orientation); + Front = Vector3.Normalize(cameraDirection); + + _quat = orientation; + } + + public Matrix4x4 GetViewMatrix() + { + //return Matrix4x4.CreateLookAt(Position, Position + Front, Up); + var s = Matrix4x4.Invert + (Matrix4x4.CreateFromQuaternion(_quat) * Matrix4x4.CreateTranslation(Position), out var ret); + if (!s) + { + throw new(); + } + + return ret; + } + + public Matrix4x4 GetProjectionMatrix() + { + return Matrix4x4.CreatePerspectiveFieldOfView(MathHelper.DegreesToRadians(Zoom), AspectRatio, 0.1f, 100.0f); + } + } +} \ No newline at end of file diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Game.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Game.cs new file mode 100644 index 0000000000..b0a081ae8e --- /dev/null +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Game.cs @@ -0,0 +1,168 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Numerics; +using System.Runtime.CompilerServices; +using OpenGL_VR_Demo.OpenXR; +using Silk.NET.OpenGL; +using Silk.NET.OpenXR; +using Shader = Silk.NET.OpenGL.Shader; + +namespace OpenGL_VR_Demo +{ + public class Game : OpenGLXRGame + { + private static GL Gl; + + private static BufferObject Vbo; + private static BufferObject Ebo; + private static VertexArrayObject VaoCube; + private static Shader LightingShader; + private static Shader LampShader; + private static Vector3 LampPosition = new(1.2f, 1.0f, 2.0f); + + private static Camera Camera; + private static Vector2 LastOrientation; + + private static readonly float[] Vertices = + { + //X Y Z Normals + -0.5f, -0.5f, -0.5f, 0.0f, 0.0f, -1.0f, + 0.5f, -0.5f, -0.5f, 0.0f, 0.0f, -1.0f, + 0.5f, 0.5f, -0.5f, 0.0f, 0.0f, -1.0f, + 0.5f, 0.5f, -0.5f, 0.0f, 0.0f, -1.0f, + -0.5f, 0.5f, -0.5f, 0.0f, 0.0f, -1.0f, + -0.5f, -0.5f, -0.5f, 0.0f, 0.0f, -1.0f, + + -0.5f, -0.5f, 0.5f, 0.0f, 0.0f, 1.0f, + 0.5f, -0.5f, 0.5f, 0.0f, 0.0f, 1.0f, + 0.5f, 0.5f, 0.5f, 0.0f, 0.0f, 1.0f, + 0.5f, 0.5f, 0.5f, 0.0f, 0.0f, 1.0f, + -0.5f, 0.5f, 0.5f, 0.0f, 0.0f, 1.0f, + -0.5f, -0.5f, 0.5f, 0.0f, 0.0f, 1.0f, + + -0.5f, 0.5f, 0.5f, -1.0f, 0.0f, 0.0f, + -0.5f, 0.5f, -0.5f, -1.0f, 0.0f, 0.0f, + -0.5f, -0.5f, -0.5f, -1.0f, 0.0f, 0.0f, + -0.5f, -0.5f, -0.5f, -1.0f, 0.0f, 0.0f, + -0.5f, -0.5f, 0.5f, -1.0f, 0.0f, 0.0f, + -0.5f, 0.5f, 0.5f, -1.0f, 0.0f, 0.0f, + + 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 0.0f, + 0.5f, 0.5f, -0.5f, 1.0f, 0.0f, 0.0f, + 0.5f, -0.5f, -0.5f, 1.0f, 0.0f, 0.0f, + 0.5f, -0.5f, -0.5f, 1.0f, 0.0f, 0.0f, + 0.5f, -0.5f, 0.5f, 1.0f, 0.0f, 0.0f, + 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 0.0f, + + -0.5f, -0.5f, -0.5f, 0.0f, -1.0f, 0.0f, + 0.5f, -0.5f, -0.5f, 0.0f, -1.0f, 0.0f, + 0.5f, -0.5f, 0.5f, 0.0f, -1.0f, 0.0f, + 0.5f, -0.5f, 0.5f, 0.0f, -1.0f, 0.0f, + -0.5f, -0.5f, 0.5f, 0.0f, -1.0f, 0.0f, + -0.5f, -0.5f, -0.5f, 0.0f, -1.0f, 0.0f, + + -0.5f, 0.5f, -0.5f, 0.0f, 1.0f, 0.0f, + 0.5f, 0.5f, -0.5f, 0.0f, 1.0f, 0.0f, + 0.5f, 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, + 0.5f, 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, + -0.5f, 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, + -0.5f, 0.5f, -0.5f, 0.0f, 1.0f, 0.0f + }; + + private static readonly uint[] Indices = + { + 0, 1, 3, + 1, 2, 3 + }; + + + public Game(bool forceNoDebug = false, bool useMinimumVersion = false) + : base("OpenGL VR Demo", forceNoDebug, useMinimumVersion) + { + } + + protected override void Load() + { + Gl = Renderer.Gl; + + Ebo = new(Gl, Indices, BufferTargetARB.ElementArrayBuffer); + Vbo = new(Gl, Vertices, BufferTargetARB.ArrayBuffer); + VaoCube = new(Gl, Vbo, Ebo); + + VaoCube.VertexAttributePointer(0, 3, VertexAttribPointerType.Float, 6, 0); + VaoCube.VertexAttributePointer(1, 3, VertexAttribPointerType.Float, 6, 3); + + //The lighting shader will give our main cube it's colour multiplied by the light's intensity + LightingShader = new(Gl, "shader.vert", "lighting.frag"); + //The Lamp shader uses a fragment shader that just colours it solid white so that we know it is the light source + LampShader = new(Gl, "shader.vert", "shader.frag"); + + //Start a camera at position 3 on the Z axis, looking at position -1 on the Z axis + Camera = new(Vector3.UnitZ * 6, Vector3.UnitZ * -1, Vector3.UnitY, (float)EyeWidth / EyeHeight); + } + + protected override void Update(double delta) + { + var moveSpeed = 2.5f * (float) delta; + // TODO add OpenXR controller input handling + } + + protected override void Render(int eye, double delta) + { + var position = Unsafe.As(ref Renderer.ViewStates[0].Pose.Position); + var orientation = Unsafe.As(ref Renderer.ViewStates[0].Pose.Orientation); + Camera.ModifyDirection(orientation); + + var cameraPosBefore = Camera.Position; + Camera.Position += position * Camera.Front; + + Gl.Enable(EnableCap.DepthTest); + + //Gl.ClearColor(eye, 0, 1 - eye, 0); + var projection = Camera.GetViewMatrix(); + var xrprojection = Renderer.Projections[eye]; + + Gl.Clear((uint) (ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit)); + + VaoCube.Bind(); + LightingShader.Use(); + + //Slightly rotate the cube to give it an angled face to look at + LightingShader.SetUniform("uModel", Matrix4x4.CreateRotationY(MathHelper.DegreesToRadians(25f))); + LightingShader.SetUniform("uView", Camera.GetViewMatrix()); + //LightingShader.SetUniform("uProjection", Camera.GetProjectionMatrix()); + LightingShader.SetUniform("uProjection", xrprojection); + LightingShader.SetUniform("objectColor", new Vector3(1.0f, 0.5f, 0.31f)); + LightingShader.SetUniform("lightColor", Vector3.One); + LightingShader.SetUniform("lightPos", LampPosition); + LightingShader.SetUniform("viewPos", Camera.Position); + + //We're drawing with just vertices and no indicies, and it takes 36 verticies to have a six-sided textured cube + Gl.DrawArrays(PrimitiveType.Triangles, 0, 36); + + LampShader.Use(); + + //The Lamp cube is going to be a scaled down version of the normal cubes verticies moved to a different screen location + var lampMatrix = Matrix4x4.Identity; + lampMatrix *= Matrix4x4.CreateScale(0.2f); + lampMatrix *= Matrix4x4.CreateTranslation(LampPosition); + + LampShader.SetUniform("uModel", lampMatrix); + LampShader.SetUniform("uView", Camera.GetViewMatrix()); + LampShader.SetUniform("uProjection", xrprojection); + + Gl.DrawArrays(PrimitiveType.Triangles, 0, 36); + + Camera.Position = cameraPosBefore; + } + + protected override void Unload() + { + Vbo.Dispose(); + Ebo.Dispose(); + VaoCube.Dispose(); + LightingShader.Dispose(); + } + } +} diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/MathHelper.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/MathHelper.cs new file mode 100644 index 0000000000..cc2462cbbe --- /dev/null +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/MathHelper.cs @@ -0,0 +1,12 @@ +using System; + +namespace OpenGL_VR_Demo +{ + public static class MathHelper + { + public static float DegreesToRadians(float degrees) + { + return MathF.PI / 180f * degrees; + } + } +} \ No newline at end of file diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenGL VR Demo.csproj b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenGL VR Demo.csproj index 6f0e94b433..016ceba949 100644 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenGL VR Demo.csproj +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenGL VR Demo.csproj @@ -16,4 +16,20 @@ + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + + + + + diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/OpenGLXRGame.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/OpenGLXRGame.cs index 9af688724f..88024932a4 100644 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/OpenGLXRGame.cs +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/OpenGLXRGame.cs @@ -7,12 +7,9 @@ using System.Runtime.InteropServices; using Silk.NET.Core; using Silk.NET.Core.Native; -using Silk.NET.Maths; -using Silk.NET.OpenGL; using Silk.NET.OpenXR; using Silk.NET.OpenXR.Extensions.EXT; using Silk.NET.OpenXR.Extensions.KHR; -using Silk.NET.Windowing; namespace OpenGL_VR_Demo.OpenXR { @@ -20,7 +17,6 @@ public abstract class OpenGLXRGame : IDisposable { // API Objects for accessing OpenXR and OpenGL public XR Xr; - public GL Gl; // ExtDebugUtils is a handy OpenXR debugging extension which we'll enable if available unless told otherwise. public bool? IsDebugUtilsSupported; @@ -37,14 +33,21 @@ public abstract class OpenGLXRGame : IDisposable // the instance. protected List Extensions = new(); - // Our windowing objects! We're using IView so we can potentially expand into mobile later. - public IView View; - public string Name; - // OpenXR handles public Instance Instance; public DebugUtilsMessengerEXT MessengerExt; + + // Our abstractions public System System; + public Renderer? Renderer; + + // Ease-of-use properties + public uint EyeWidth => System.RenderTargetSize.X / 2; + public uint EyeHeight => System.RenderTargetSize.Y; + + // Misc + public string Name; + private bool _unmanagedResourcesFreed; protected OpenGLXRGame(string name, bool forceNoDebug = false, bool useMinimumVersion = false) { @@ -59,6 +62,8 @@ protected OpenGLXRGame(string name, bool forceNoDebug = false, bool useMinimumVe public void Run() { + Prepare(); + Renderer?.Run(); } ///

@@ -69,6 +74,8 @@ public void Run() /// The same result passed in, just in case it's meaningful and we just want to use this to filter out errors. /// /// An exception for the given result if it indicates an error. + [DebuggerHidden] + [DebuggerStepThrough] internal static Result CheckResult(Result result) { if ((int) result < 0) @@ -91,15 +98,17 @@ private bool TryRequestExtension(string name) if (Xr.IsInstanceExtensionPresent(null, name)) { // It does! Add it to our list of requested extensions, for use when creating the instance later... + Console.WriteLine($"[INFO] Application: Using extension {name}"); Extensions.Add(name); return true; } // Oh dear! Not supported. + Console.WriteLine($"[WARNING] Application: {name} is not supported."); return false; } - private unsafe void PrepareOpenXR() + private unsafe void Prepare() { // Create our API object for OpenXR. Xr = XR.GetApi(); @@ -142,11 +151,9 @@ private unsafe void PrepareOpenXR() enabledExtensionNames: (byte**) requestedExtensions ); - // Now we're ready to make our instance! - CheckResult(Xr.CreateInstance(in instanceCreateInfo, ref Instance)); - // If debug utils is supported, enable it! - if (IsDebugUtilsSupported.Value && Xr.TryGetInstanceExtension(null, Instance, out ExtDebugUtils)) + DebugUtilsMessengerCreateInfoEXT debugUtilsCreateInfo = default; + if (IsDebugUtilsSupported.Value) { // This local function is called by OpenXR. There are a lot of advanced things you can do with the data // you get in DebugUtilsMessengerCallbackDataEXT, such as inspecting objects, but for now we're just @@ -174,7 +181,7 @@ static uint OnDebug } // Now that we've defined the callback, let's tell OpenXR about it and create our messenger! - var debugUtilsCreateInfo = new DebugUtilsMessengerCreateInfoEXT + debugUtilsCreateInfo = new DebugUtilsMessengerCreateInfoEXT ( messageSeverities: DebugUtilsMessageSeverityFlagsEXT.DebugUtilsMessageSeverityErrorBitExt | DebugUtilsMessageSeverityFlagsEXT.DebugUtilsMessageSeverityWarningBitExt | @@ -186,13 +193,24 @@ static uint OnDebug userCallback: (DebugUtilsMessengerCallbackFunctionEXT) OnDebug ); - if (ExtDebugUtils!.CreateDebugUtilsMessenger(Instance, in debugUtilsCreateInfo, ref MessengerExt) - != Result.Success) - { - Console.WriteLine("[WARNING] Application: Failed to create OpenXR debug messenger!"); - } + instanceCreateInfo.Next = &debugUtilsCreateInfo; } + + // Now we're ready to make our instance! + CheckResult(Xr.CreateInstance(in instanceCreateInfo, ref Instance)); + // Turn on debug logging + if (IsDebugUtilsSupported.Value && Xr.TryGetInstanceExtension(null, Instance, out ExtDebugUtils)) + { + Console.WriteLine + ( + ExtDebugUtils!.CreateDebugUtilsMessenger(Instance, in debugUtilsCreateInfo, ref MessengerExt) + != Result.Success + ? "[WARNING] Application: Failed to create OpenXR debug messenger!" + : "[INFO] Application: Debug messenger active." + ); + } + // For our benefit, let's log some information about the instance we've just created. InstanceProperties properties = new(); CheckResult(Xr.GetInstanceProperties(Instance, ref properties)); @@ -208,12 +226,64 @@ static uint OnDebug var getInfo = new SystemGetInfo(formFactor: FormFactor.HeadMountedDisplay); CheckResult(Xr.GetSystem(Instance, in getInfo, ref systemId)); - // Let our System abstraction take it from here! + // Get the appropriate enabling extension, or fail if we can't. + if (IsGles && !Xr.TryGetInstanceExtension(null, Instance, out GlesEnable) || + !IsGles && !Xr.TryGetInstanceExtension(null, Instance, out GlEnable)) + { + throw new("Failed to get the graphics binding extension!"); + } + + // Let our abstractions take it from here! System = new(this, systemId); + Renderer = new(this); + + // Subscribe to our renderer's callbacks + Renderer.Load += Load; + Renderer.Update += Update; + Renderer.Render += Render; + Renderer.Unload += Unload; + } + + // These methods will be implemented by the game. + protected abstract void Load(); + protected abstract void Update(double delta); + protected abstract void Render(int eye, double delta); + protected abstract void Unload(); + + private void ReleaseUnmanagedResources() + { + if (_unmanagedResourcesFreed) + { + return; + } + + CheckResult(Xr.DestroyInstance(Instance)); + CheckResult(ExtDebugUtils?.DestroyDebugUtilsMessenger(MessengerExt) ?? Result.Success); + _unmanagedResourcesFreed = true; + } + + private void Dispose(bool disposing) + { + ReleaseUnmanagedResources(); + if (disposing) + { + Xr.Dispose(); + ExtDebugUtils?.Dispose(); + GlEnable?.Dispose(); + GlesEnable?.Dispose(); + Renderer?.Dispose(); + } + } + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); } - private void PrepareView() + ~OpenGLXRGame() { + Dispose(false); } } } diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Renderer.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Renderer.cs index d98b1b3d50..2f2cd58925 100644 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Renderer.cs +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Renderer.cs @@ -3,6 +3,8 @@ using System; using System.Diagnostics; +using System.Numerics; +using System.Runtime.CompilerServices; using Silk.NET.Core; using Silk.NET.Maths; using Silk.NET.OpenGL; @@ -15,16 +17,32 @@ namespace OpenGL_VR_Demo.OpenXR { public class Renderer : IDisposable { - private IView _view; - private OpenGLXRGame _game; + // API objects + public GL Gl { get; private set; } + public XR Xr { get; init; } - // OpenXR handles + // OpenXR handles & info public Session Session; public Space ReferenceSpace; - - public GL Gl { get; private set; } - public XR Xr { get; init; } + public Swapchain Swapchain; + public SwapchainCreateInfo SwapchainCreateInfo; + public EventDataBuffer EventData; + public SessionState State { get; private set; } public bool IsStage { get; private set; } + + // OpenGL handles & info + public (uint Framebuffer, uint Renderbuffer) Framebuffers; + public uint[] SwapchainImages; + + // Eye Info - for use in games! + public View[] ViewStates { get; private set; } = new View[2]; + public Matrix4x4[] Views { get; private set; } = new Matrix4x4[2]; + public Matrix4x4[] Projections { get; private set; } = new Matrix4x4[2]; + + // Misc + private IView _view; + private OpenGLXRGame _game; + private bool _unmanagedResourcesFreed; public Renderer(OpenGLXRGame game) { @@ -37,6 +55,7 @@ public Renderer(OpenGLXRGame game) opts.FramesPerSecond = 0; opts.PreferredBitDepth = new(8, 8, 8, 8); opts.PreferredDepthBufferBits = 24; + opts.ShouldSwapAutomatically = false; if (game.IsGles) { GraphicsRequirementsOpenGLESKHR esReqs = new(); @@ -84,19 +103,33 @@ public Renderer(OpenGLXRGame game) } _view.Load += ViewOnLoad; + _view.Update += ViewOnUpdate; + _view.Render += ViewOnRender; + _view.Closing += ViewOnUnload; } - public event Action? Load; - public event Action? Render; + public event Action? Load; + public event Action? Update; + public event Action? Render; public event Action? Unload; private void ViewOnLoad() { Gl = _view.CreateOpenGL(); - Load?.Invoke(this); + PrepareOpenXR(); + PrepareOpenGL(); + Load?.Invoke(); + } + + private void ViewOnUnload() + { + ReleaseUnmanagedResources(); + Unload?.Invoke(); + Gl.Dispose(); + Gl = null!; } - private unsafe void PrepareSession() + private unsafe void PrepareOpenXR() { var binding = _game.IsGles ? _view.CreateOpenGLESBinding() : _view.CreateOpenGLBinding(); var sessionCreateInfo = new SessionCreateInfo(systemId: _game.System.Id, next: &binding); @@ -104,9 +137,10 @@ private unsafe void PrepareSession() // Now, let's create the reference space that describes the real-world environment where the VR game is // being played. - + // First we need to check what kinds of spaces we have. OpenXR (OOTB) has: - // - view, where the content doesn't take into account eye orientation. + // - view, where the content doesn't take into any physical attributes such as eye orientation and + // physical location. could be useful for head-up-displays. // - local, where the content knows about the user's eye orientation but not about their physical location. // i'll refer to this as "seated-scale", as you're unlikely to move in a seat and this is what the spec // calls it. @@ -132,13 +166,420 @@ private unsafe void PrepareSession() // use seated-scale instead. all OpenXR runtimes MUST support seated-scale content. refSpaceCreateInfo.ReferenceSpaceType = ReferenceSpaceType.Local; } + else + { + refSpaceCreateInfo.PoseInReferenceSpace = new(new(0, 0, 0, 1)); + } CheckResult(Xr.CreateReferenceSpace(Session, in refSpaceCreateInfo, ref ReferenceSpace)); - + // Next up, the swapchain. + // First and foremost, let's make sure OpenXR actually supports the pixel format we're going to be using in + // this example (GL_SRGB8_ALPHA8) + const long theFormat = (long) GLEnum.Rgba16; + var numFormats = 0u; + CheckResult(Xr.EnumerateSwapchainFormats(Session, numFormats, ref numFormats, null)); + var formats = numFormats * sizeof(long) > 256 ? new long[numFormats] : stackalloc long[(int) numFormats]; + CheckResult(Xr.EnumerateSwapchainFormats(Session, ref numFormats, formats)); + + var formatSupported = false; + + foreach (var format in formats) + { + if (format == theFormat) + { + formatSupported = true; + break; + } + } + + if (!formatSupported) + { + throw new($"OpenXR does not support the {(GLEnum) theFormat} pixel format ({theFormat})"); + } + + // Now that we know that the format we want to use is actually supported by OpenXR, we're ready to create + // our swapchain. + SwapchainCreateInfo = new + ( + usageFlags: SwapchainUsageFlags.SwapchainUsageTransferDstBit, + format: theFormat, + sampleCount: 1, arraySize: 1, faceCount: 1, mipCount: 1, + width: _game.System.RenderTargetSize.X, + height: _game.System.RenderTargetSize.Y + ); + + CheckResult(Xr.CreateSwapchain(Session, in SwapchainCreateInfo, ref Swapchain)); + + // Now we have to get the swapchain images. That is, the OpenGL texture handles which OpenXR creates itself. + var numImages = 0u; + CheckResult(Xr.EnumerateSwapchainImages(Swapchain, numImages, ref numImages, null)); + var images = numImages * sizeof(SwapchainImageOpenGLKHR) > 256 + ? new SwapchainImageOpenGLKHR[(int) numImages] + : stackalloc SwapchainImageOpenGLKHR[(int) numImages]; + CheckResult + ( + Xr.EnumerateSwapchainImages + ( + Swapchain, numImages, ref numImages, + ref Unsafe.As(ref images[0]) + ) + ); + + SwapchainImages = new uint[numImages]; + for (var i = 0; i < numImages; i++) + { + SwapchainImages[i] = images[i].Image; + } + } + + private void PrepareOpenGL() + { + // First create a depth renderbuffer compatible with the swapchain sample count and size + Framebuffers.Renderbuffer = Gl.GenRenderbuffer(); + Gl.BindRenderbuffer(GLEnum.Renderbuffer, Framebuffers.Renderbuffer); + if (SwapchainCreateInfo.SampleCount == 1) + { + Gl.RenderbufferStorage + ( + GLEnum.Renderbuffer, + GLEnum.Depth24Stencil8, + SwapchainCreateInfo.Width, SwapchainCreateInfo.Height + ); + } + else + { + Gl.RenderbufferStorageMultisample + ( + GLEnum.Renderbuffer, + SwapchainCreateInfo.SampleCount, + GLEnum.Depth24Stencil8, + SwapchainCreateInfo.Width, SwapchainCreateInfo.Height + ); + } + + // Now, create the actual framebuffer. + Framebuffers.Framebuffer = Gl.GenFramebuffer(); + Gl.BindFramebuffer(GLEnum.DrawFramebuffer, Framebuffers.Framebuffer); + + // Attach the depth renderbuffer to the framebuffer + Gl.FramebufferRenderbuffer + ( + GLEnum.DrawFramebuffer, + GLEnum.DepthStencilAttachment, + GLEnum.Renderbuffer, + Framebuffers.Renderbuffer + ); + + // Unbind the framebuffer and renderbuffer now we're done with them + Gl.BindFramebuffer(GLEnum.DrawFramebuffer, 0); + Gl.BindRenderbuffer(GLEnum.Renderbuffer, 0); + } + + public unsafe void ViewOnUpdate(double delta) + { + while (CheckResult(Xr.PollEvent(_game.Instance, ref EventData)) != Result.EventUnavailable) + { + switch (EventData.Type) + { + case StructureType.TypeEventDataInstanceLossPending: + { + Console.WriteLine("[INFO] Application: Instance loss pending, shutting down..."); + _view.Close(); + break; + } + + case StructureType.TypeEventDataSessionStateChanged: + { + ref var sessionStateChanged = ref Unsafe.As + ( + ref EventData + ); + + if (sessionStateChanged.Session.Handle != Session.Handle || Session.Handle is 0) + { + break; + } + + State = sessionStateChanged.State; + + // ReSharper disable once SwitchStatementMissingSomeEnumCasesNoDefault + switch (sessionStateChanged.State) + { + case SessionState.Ready: + { + if (!_view.IsClosing) + { + var sessionBeginInfo = new SessionBeginInfo + ( + primaryViewConfigurationType: ViewConfigurationType.PrimaryStereo + ); + + CheckResult(Xr.BeginSession(Session, in sessionBeginInfo)); + Console.WriteLine("[INFO] Application: Session ready!"); + } + + break; + } + case SessionState.Stopping: + { + Console.WriteLine("[INFO] Application: OpenXR is stopping, ending session..."); + Xr.EndSession(Session); + _view.Close(); + break; + } + case SessionState.LossPending: + { + // NB: A loss of the session doesn't necessarily mean it's game over, you can recreate + // the session but I've left it out for this demo. As I understand it, this might + // happen if a wired VR headset were to accidentally become unplugged, for example. + Console.WriteLine("[INFO] Application: Session loss pending, shutting down..."); + Xr.DestroySession(Session); + Session = default; + _view.Close(); + break; + } + case SessionState.Exiting: + { + Console.WriteLine("[INFO] Application: OpenXR is exiting..."); + _view.Close(); + break; + } + } + + break; + } + } + + // reset the event data to eliminate potential for strange behaviour when passing it back to OpenXR + EventData = default; + } + + if (_view.IsClosing || Session.Handle is 0) + { + return; + } + + Update?.Invoke(delta); + } + + private void ViewOnRender(double delta) + { + if (_view.IsClosing) + { + return; + } + + if (TryStartFrame(out var frameState)) + { + UpdateViews(in frameState); + if ((Bool32) frameState.ShouldRender) + { + DoRender(delta); + _view.SwapBuffers(); + } + + EndFrame(in frameState); + } + } + + private unsafe void DoRender(double delta) + { + // Get the swapchain image + var swapchainIndex = 0u; + var acquireInfo = new SwapchainImageAcquireInfo(); + CheckResult(Xr.AcquireSwapchainImage(Swapchain, in acquireInfo, ref swapchainIndex)); + + var waitInfo = new SwapchainImageWaitInfo(timeout: long.MaxValue); + CheckResult(Xr.WaitSwapchainImage(Swapchain, in waitInfo)); + + // Bind the framebuffer we created earlier, using the acquired image as the texture to render the + // framebuffer into. + Gl.BindFramebuffer(GLEnum.Framebuffer, Framebuffers.Framebuffer); + Gl.FramebufferTexture(GLEnum.Framebuffer, GLEnum.ColorAttachment0, SwapchainImages[swapchainIndex], 0); + + // Render each eye + Gl.Enable(GLEnum.ScissorTest); + for (var eye = 0; eye < 2; eye++) + { + // Set the scissor rectangle to the appropriate half of the image + Gl.Scissor + ( + (int)(_game.System.RenderTargetSize.X / 2) * eye, 0, + _game.System.RenderTargetSize.X / 2, _game.System.RenderTargetSize.Y + ); + + Gl.Viewport + ( + (int)(_game.System.RenderTargetSize.X / 2) * eye, 0, + _game.System.RenderTargetSize.X / 2, _game.System.RenderTargetSize.Y + ); + + Render?.Invoke(eye, delta); + } + + // Quickly blit the swapchain image/texture to the window's framebuffer + Gl.Disable(GLEnum.ScissorTest); + Gl.BindFramebuffer(GLEnum.DrawFramebuffer, 0); + Gl.BlitFramebuffer + ( + 0, 0, + (int) _game.System.RenderTargetSize.X, (int) _game.System.RenderTargetSize.Y, + 0, 0, + _view.Size.X, _view.Size.Y, + ClearBufferMask.ColorBufferBit, + GLEnum.Nearest + ); + + // Release the swapchain image + var releaseInfo = new SwapchainImageReleaseInfo(); + CheckResult(Xr.ReleaseSwapchainImage(Swapchain, in releaseInfo)); + } + + private bool TryStartFrame(out FrameState frameState) + { + frameState = new FrameState(); + var done = State switch + { + SessionState.Ready => WaitFrame(ref frameState), + SessionState.Focused => WaitFrame(ref frameState), + SessionState.Synchronized => WaitFrame(ref frameState), + SessionState.Visible => WaitFrame(ref frameState), + _ => false + }; + + if (done) + { + var beginInfo = new FrameBeginInfo(); + CheckResult(Xr.BeginFrame(Session, in beginInfo)); + } + + return done; + } + + private unsafe bool WaitFrame(ref FrameState frameState) + { + return Xr.WaitFrame(Session, null, ref frameState) == Result.Success; + } + + private unsafe void UpdateViews(in FrameState frameState) + { + var viewState = new ViewState(); + var viewLocateInfo = new ViewLocateInfo + ( + viewConfigurationType: ViewConfigurationType.PrimaryStereo, + displayTime: frameState.PredictedDisplayTime, + space: ReferenceSpace + ); + + var eyeViewStateCount = 0u; + CheckResult + ( + Xr.LocateView(Session, in viewLocateInfo, ref viewState, eyeViewStateCount, ref eyeViewStateCount, null) + ); + + if (ViewStates.Length != eyeViewStateCount) + { + ViewStates = new View[eyeViewStateCount]; + } + + CheckResult(Xr.LocateView(Session, in viewLocateInfo, ref viewState, ref eyeViewStateCount, ViewStates)); + + for (var eye = 0; eye < 2; eye++) + { + var view = ViewStates[eye]; + Projections[eye] = view.Fov.FovfToMatrix(); + if (!Matrix4x4.Invert(view.Pose.PosefToMatrix(), out var inverse)) + { + throw new("Couldn't create inverse pose view matrix."); + } + + Views[eye] = inverse; + } + } + + private unsafe void EndFrame(in FrameState frameState) + { + var frameEndInfo = new FrameEndInfo + ( + displayTime: frameState.PredictedDisplayTime, + environmentBlendMode: EnvironmentBlendMode.Opaque + ); + + if ((Bool32) frameState.ShouldRender) + { + var projectionLayerViews = stackalloc CompositionLayerProjectionView[2]; + var projectionLayer = new CompositionLayerProjection + ( + viewCount:2, + views:projectionLayerViews, + space:ReferenceSpace + ); + + var layerPointer = (CompositionLayerBaseHeader*) &projectionLayer; + for (var eye = 0; eye < 2; eye++) + { + ref var layerView = ref projectionLayerViews[eye]; + layerView.SubImage.Swapchain = Swapchain; + layerView.SubImage.ImageRect.Extent = new + ( + (int) _game.System.RenderTargetSize.X / 2, + (int) _game.System.RenderTargetSize.Y + ); + + layerView.SubImage.ImageRect.Offset.X = (int)(_game.System.RenderTargetSize.X / 2) * eye; + layerView.Fov = ViewStates[eye].Fov; + layerView.Pose = ViewStates[eye].Pose; + Debug.WriteLine($"FOV: {Unsafe.As(ref layerView.Fov)}"); + Debug.WriteLine($"Pose Pos: {Unsafe.As(ref layerView.Pose.Position)}"); + Debug.WriteLine($"Pose Orientation: {Unsafe.As(ref layerView.Pose.Orientation)}"); + } + + frameEndInfo.LayerCount = 1; + frameEndInfo.Layers = &layerPointer; + } + + CheckResult(Xr.EndFrame(Session, in frameEndInfo)); } public void Run() => _view.Run(); + private void ReleaseUnmanagedResources() + { + if (_unmanagedResourcesFreed) + { + return; + } + + CheckResult(Xr.DestroySwapchain(Swapchain)); + CheckResult(Xr.DestroySpace(ReferenceSpace)); + CheckResult(Xr.DestroySession(Session)); + + Gl.DeleteFramebuffer(Framebuffers.Framebuffer); + Gl.DeleteRenderbuffer(Framebuffers.Renderbuffer); + + _unmanagedResourcesFreed = true; + } + + private void Dispose(bool disposing) + { + ReleaseUnmanagedResources(); + if (disposing) + { + _view.Dispose(); + Gl.Dispose(); + } + } + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + ~Renderer() + { + Dispose(false); + } } } diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Utilities.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Utilities.cs new file mode 100644 index 0000000000..0383d023c5 --- /dev/null +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Utilities.cs @@ -0,0 +1,56 @@ +// 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.Numerics; +using System.Runtime.CompilerServices; +using Silk.NET.OpenXR; + +namespace OpenGL_VR_Demo.OpenXR +{ + public static class Utilities + { + public const float DefaultNearZ = 0.01f; + public const float DefaultFarZ = 100.0f; + public const float DefaultOffset = 0f; + + public static Vector4 FovfToTanFovVector(this Fovf fovf) => new + ( + MathF.Tan(fovf.AngleLeft), + MathF.Tan(fovf.AngleRight), + MathF.Tan(fovf.AngleUp), + MathF.Tan(fovf.AngleDown) + ); + + public static Matrix4x4 FovfToMatrix + ( + this Fovf fovf, + float nearZ = DefaultNearZ, + float farZ = DefaultFarZ, + float offsetZ = DefaultOffset + ) + { + var tanFov = fovf.FovfToTanFovVector(); + var tanAngleWidth = tanFov.Y - tanFov.X; + var tanAngleHeight = tanFov.W - tanFov.Z; + return new + ( + 2 / tanAngleWidth, 0, (tanFov.Y + tanFov.X) / tanAngleWidth, 0, + 0, 2 / tanAngleHeight, (tanFov.Z + tanFov.W) / tanAngleHeight, 0, + 0, 0, -(farZ + offsetZ) / (farZ - nearZ), -(farZ * (nearZ + offsetZ)) / (farZ - nearZ), + 0, 0, -1, 0 + ); + } + + public static Quaternion QuaternionfToQuaternion(this Quaternionf quat) + => Unsafe.As(ref quat); + + public static Vector3 Vector3fToVector3(this Vector3f vec) + => Unsafe.As(ref vec); + + public static Matrix4x4 PosefToMatrix(this Posef pose) + => Matrix4x4.Identity + * Matrix4x4.CreateTranslation(pose.Position.Vector3fToVector3()) + * Matrix4x4.CreateFromQuaternion(pose.Orientation.QuaternionfToQuaternion()); + } +} diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Program.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Program.cs index e817bd2e0a..a7ade355de 100644 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Program.cs +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Program.cs @@ -4,9 +4,6 @@ namespace OpenGL_VR_Demo { class Program { - static void Main(string[] args) - { - Console.WriteLine("Hello World!"); - } + static void Main(string[] args) => new Game().Run(); } } diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Shader.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Shader.cs new file mode 100644 index 0000000000..3a8d9b8e8f --- /dev/null +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Shader.cs @@ -0,0 +1,100 @@ +using System; +using System.IO; +using System.Numerics; +using Silk.NET.OpenGL; + +namespace OpenGL_VR_Demo +{ + public class Shader : IDisposable + { + private uint _handle; + private GL _gl; + + public Shader(GL gl, string vertexPath, string fragmentPath) + { + _gl = gl; + + uint vertex = LoadShader(ShaderType.VertexShader, vertexPath); + uint fragment = LoadShader(ShaderType.FragmentShader, fragmentPath); + _handle = _gl.CreateProgram(); + _gl.AttachShader(_handle, vertex); + _gl.AttachShader(_handle, fragment); + _gl.LinkProgram(_handle); + _gl.GetProgram(_handle, GLEnum.LinkStatus, out var status); + if (status == 0) + { + throw new($"Program failed to link with error: {_gl.GetProgramInfoLog(_handle)}"); + } + _gl.DetachShader(_handle, vertex); + _gl.DetachShader(_handle, fragment); + _gl.DeleteShader(vertex); + _gl.DeleteShader(fragment); + } + + public void Use() + { + _gl.UseProgram(_handle); + } + + public void SetUniform(string name, int value) + { + int location = _gl.GetUniformLocation(_handle, name); + if (location == -1) + { + throw new($"{name} uniform not found on shader."); + } + _gl.Uniform1(location, value); + } + + public unsafe void SetUniform(string name, Matrix4x4 value) + { + //A new overload has been created for setting a uniform so we can use the transform in our shader. + int location = _gl.GetUniformLocation(_handle, name); + if (location == -1) + { + throw new($"{name} uniform not found on shader."); + } + _gl.UniformMatrix4(location, 1, false, (float*) &value); + } + + public void SetUniform(string name, float value) + { + int location = _gl.GetUniformLocation(_handle, name); + if (location == -1) + { + throw new($"{name} uniform not found on shader."); + } + _gl.Uniform1(location, value); + } + + public void SetUniform(string name, Vector3 value) + { + int location = _gl.GetUniformLocation(_handle, name); + if (location == -1) + { + throw new($"{name} uniform not found on shader."); + } + _gl.Uniform3(location, value.X, value.Y, value.Z); + } + + public void Dispose() + { + _gl.DeleteProgram(_handle); + } + + private uint LoadShader(ShaderType type, string path) + { + string src = File.ReadAllText(path); + uint handle = _gl.CreateShader(type); + _gl.ShaderSource(handle, src); + _gl.CompileShader(handle); + string infoLog = _gl.GetShaderInfoLog(handle); + if (!string.IsNullOrWhiteSpace(infoLog)) + { + throw new($"Error compiling shader of type {type}, failed with error {infoLog}"); + } + + return handle; + } + } +} diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Texture.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Texture.cs new file mode 100644 index 0000000000..fbb5705562 --- /dev/null +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Texture.cs @@ -0,0 +1,62 @@ +using System; +using System.Runtime.InteropServices; +using Silk.NET.OpenGL; +using SixLabors.ImageSharp; +using SixLabors.ImageSharp.PixelFormats; +using SixLabors.ImageSharp.Processing; + +namespace OpenGL_VR_Demo +{ + public class Texture : IDisposable + { + private uint _handle; + private GL _gl; + + public unsafe Texture(GL gl, string path) + { + Image img = (Image) Image.Load(path); + img.Mutate(x => x.Flip(FlipMode.Vertical)); + + fixed (void* data = &MemoryMarshal.GetReference(img.GetPixelRowSpan(0))) + { + Load(gl, data, (uint) img.Width, (uint) img.Height); + } + + img.Dispose(); + } + + public unsafe Texture(GL gl, Span data, uint width, uint height) + { + fixed (void* d = &data[0]) + { + Load(gl, d, width, height); + } + } + + private unsafe void Load(GL gl, void* data, uint width, uint height) + { + _gl = gl; + + _handle = _gl.GenTexture(); + Bind(); + + _gl.TexImage2D(TextureTarget.Texture2D, 0, (int) InternalFormat.Rgba, width, height, 0, PixelFormat.Rgba, PixelType.UnsignedByte, data); + _gl.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, (int) GLEnum.ClampToEdge); + _gl.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapT, (int) GLEnum.ClampToEdge); + _gl.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int) GLEnum.Linear); + _gl.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int) GLEnum.Linear); + _gl.GenerateMipmap(TextureTarget.Texture2D); + } + + public void Bind(TextureUnit textureSlot = TextureUnit.Texture0) + { + _gl.ActiveTexture(textureSlot); + _gl.BindTexture(TextureTarget.Texture2D, _handle); + } + + public void Dispose() + { + _gl.DeleteTexture(_handle); + } + } +} diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Transform.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Transform.cs new file mode 100644 index 0000000000..4698f5128d --- /dev/null +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Transform.cs @@ -0,0 +1,24 @@ +using System.Numerics; + +namespace OpenGL_VR_Demo +{ + public class Transform + { + //A transform abstraction. + //For a transform we need to have a position, a scale, and a rotation, + //depending on what application you are creating, the type for these may vary. + + //Here we have chosen a vec3 for position, float for scale and quaternion for rotation, + //as that is the most normal to go with. + //Another example could have been vec3, vec3, vec4, so the rotation is an axis angle instead of a quaternion + + public Vector3 Position { get; set; } = new(0, 0, 0); + + public float Scale { get; set; } = 1f; + + public Quaternion Rotation { get; set; } = Quaternion.Identity; + + //Note: The order here does matter. + public Matrix4x4 ViewMatrix => Matrix4x4.Identity * Matrix4x4.CreateFromQuaternion(Rotation) * Matrix4x4.CreateScale(Scale) * Matrix4x4.CreateTranslation(Position); + } +} diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/VertexArrayObject.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/VertexArrayObject.cs new file mode 100644 index 0000000000..0426803f2e --- /dev/null +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/VertexArrayObject.cs @@ -0,0 +1,39 @@ +using System; +using Silk.NET.OpenGL; + +namespace OpenGL_VR_Demo +{ + public class VertexArrayObject : IDisposable + where TVertexType : unmanaged + where TIndexType : unmanaged + { + private uint _handle; + private GL _gl; + + public VertexArrayObject(GL gl, BufferObject vbo, BufferObject ebo) + { + _gl = gl; + + _handle = _gl.GenVertexArray(); + Bind(); + vbo.Bind(); + ebo.Bind(); + } + + public unsafe void VertexAttributePointer(uint index, int count, VertexAttribPointerType type, uint vertexSize, int offSet) + { + _gl.VertexAttribPointer(index, count, type, false, vertexSize * (uint) sizeof(TVertexType), (void*) (offSet * sizeof(TVertexType))); + _gl.EnableVertexAttribArray(index); + } + + public void Bind() + { + _gl.BindVertexArray(_handle); + } + + public void Dispose() + { + _gl.DeleteVertexArray(_handle); + } + } +} diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/lighting.frag b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/lighting.frag new file mode 100644 index 0000000000..142db17569 --- /dev/null +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/lighting.frag @@ -0,0 +1,32 @@ +#version 330 core +in vec3 fNormal; +in vec3 fPos; + +uniform vec3 objectColor; +uniform vec3 lightColor; +uniform vec3 lightPos; +uniform vec3 viewPos; + +out vec4 FragColor; + +void main() +{ + float ambientStrength = 0.1; + vec3 ambient = ambientStrength * lightColor; + + vec3 norm = normalize(fNormal); + vec3 lightDirection = normalize(lightPos - fPos); + float diff = max(dot(norm, lightDirection), 0.0); + vec3 diffuse = diff * lightColor; + + float specularStrength = 0.5; + vec3 viewDirection = normalize(viewPos - fPos); + vec3 reflectDirection = reflect(-lightDirection, norm); + float spec = pow(max(dot(viewDirection, reflectDirection), 0.0), 32); + vec3 specular = specularStrength * spec * lightColor; + + //The resulting colour should be the amount of ambient colour + the amount of additional colour provided by the diffuse of the lamp + the specular amount + vec3 result = (ambient + diffuse + specular) * objectColor; + + FragColor = vec4(result, 1.0); +} \ No newline at end of file diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/shader.frag b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/shader.frag new file mode 100644 index 0000000000..0b99ca4e99 --- /dev/null +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/shader.frag @@ -0,0 +1,7 @@ +#version 330 core +out vec4 FragColor; + +void main() +{ + FragColor = vec4(1.0f); +} \ No newline at end of file diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/shader.vert b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/shader.vert new file mode 100644 index 0000000000..e4b768c39b --- /dev/null +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/shader.vert @@ -0,0 +1,20 @@ +#version 330 core +layout (location = 0) in vec3 vPos; +layout (location = 1) in vec3 vNormal; + +uniform mat4 uModel; +uniform mat4 uView; +uniform mat4 uProjection; + +out vec3 fNormal; +out vec3 fPos; + +void main() +{ + //Multiplying our uniform with the vertex position, the multiplication order here does matter. + gl_Position = uProjection * uView * uModel * vec4(vPos, 1.0); + //We want to know the fragment's position in World space, so we multiply ONLY by uModel and not uView or uProjection + fPos = vec3(uModel * vec4(vPos, 1.0)); + //The Normal needs to be in World space too, but needs to account for Scaling of the object + fNormal = mat3(transpose(inverse(uModel))) * vPos; +} \ No newline at end of file diff --git a/generator.json b/generator.json index e7e5c074bf..a83f5d4578 100644 --- a/generator.json +++ b/generator.json @@ -641,7 +641,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..4ad29e0767 100644 --- a/src/Core/Silk.NET.BuildTools/Converters/Khronos/VulkanSpecification.cs +++ b/src/Core/Silk.NET.BuildTools/Converters/Khronos/VulkanSpecification.cs @@ -42,6 +42,7 @@ public VulkanSpecification( Features = features; AddExtensionEnums(Enums, Extensions); AddExtensionEnums(Enums, Features); + MixinEnumTypeFixups(Enums, Typedefs); } public static VulkanSpecification LoadFromXmlStream(Stream specFileStream) @@ -144,6 +145,30 @@ private void AddExtensionEnums(EnumDefinition[] enums, FeatureDefinition[] exten } } } + + private void MixinEnumTypeFixups(EnumDefinition[] 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) { 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 index 36538aafc8..f4fc131b0e 100644 --- a/src/OpenXR/Silk.NET.OpenXR/NativeWindowExtensions.cs +++ b/src/OpenXR/Silk.NET.OpenXR/NativeWindowExtensions.cs @@ -119,7 +119,7 @@ public static unsafe GraphicsBinding CreateOpenGLESBinding(this INativeWindow wi getConfigs(dpy, configPtr, numConfigs, &numConfigs); } - nint theConfig; + nint theConfig = 0; for (var i = 0; i < numConfigs; i++) { int thisConfig; 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 40cc8616c3..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() { @@ -126,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.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/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/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..db3a93f298 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")] 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; + } +} From 6fadfeee26ca7c267f64914356eaf7271b67f4ff Mon Sep 17 00:00:00 2001 From: Dylan Perks Date: Sun, 6 Jun 2021 00:07:04 +0100 Subject: [PATCH 03/11] Pushing latest demo - crosseyed is gone, replaced with weird fov thing --- .../OpenGL Demos/OpenGL VR Demo/Camera.cs | 10 +- .../OpenGL Demos/OpenGL VR Demo/Game.cs | 19 +-- .../OpenGL VR Demo/OpenXR/Renderer.cs | 4 +- .../OpenGL VR Demo/OpenXR/Utilities.cs | 112 ++++++++++++------ 4 files changed, 85 insertions(+), 60 deletions(-) diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Camera.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Camera.cs index 7e52f33e64..a4b047391e 100644 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Camera.cs +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Camera.cs @@ -55,15 +55,7 @@ public void ModifyDirection(Quaternion orientation) public Matrix4x4 GetViewMatrix() { - //return Matrix4x4.CreateLookAt(Position, Position + Front, Up); - var s = Matrix4x4.Invert - (Matrix4x4.CreateFromQuaternion(_quat) * Matrix4x4.CreateTranslation(Position), out var ret); - if (!s) - { - throw new(); - } - - return ret; + return Matrix4x4.CreateLookAt(Position, Position + Front, Up); } public Matrix4x4 GetProjectionMatrix() diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Game.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Game.cs index b0a081ae8e..9013256e30 100644 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Game.cs +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Game.cs @@ -114,15 +114,7 @@ protected override void Render(int eye, double delta) var orientation = Unsafe.As(ref Renderer.ViewStates[0].Pose.Orientation); Camera.ModifyDirection(orientation); - var cameraPosBefore = Camera.Position; - Camera.Position += position * Camera.Front; - Gl.Enable(EnableCap.DepthTest); - - //Gl.ClearColor(eye, 0, 1 - eye, 0); - var projection = Camera.GetViewMatrix(); - var xrprojection = Renderer.Projections[eye]; - Gl.Clear((uint) (ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit)); VaoCube.Bind(); @@ -130,9 +122,8 @@ protected override void Render(int eye, double delta) //Slightly rotate the cube to give it an angled face to look at LightingShader.SetUniform("uModel", Matrix4x4.CreateRotationY(MathHelper.DegreesToRadians(25f))); - LightingShader.SetUniform("uView", Camera.GetViewMatrix()); - //LightingShader.SetUniform("uProjection", Camera.GetProjectionMatrix()); - LightingShader.SetUniform("uProjection", xrprojection); + LightingShader.SetUniform("uView", Renderer.Views[eye]); + LightingShader.SetUniform("uProjection", Renderer.Projections[eye]); LightingShader.SetUniform("objectColor", new Vector3(1.0f, 0.5f, 0.31f)); LightingShader.SetUniform("lightColor", Vector3.One); LightingShader.SetUniform("lightPos", LampPosition); @@ -149,12 +140,10 @@ protected override void Render(int eye, double delta) lampMatrix *= Matrix4x4.CreateTranslation(LampPosition); LampShader.SetUniform("uModel", lampMatrix); - LampShader.SetUniform("uView", Camera.GetViewMatrix()); - LampShader.SetUniform("uProjection", xrprojection); + LampShader.SetUniform("uView", Renderer.Views[eye]); + LampShader.SetUniform("uProjection", Renderer.Projections[eye]); Gl.DrawArrays(PrimitiveType.Triangles, 0, 36); - - Camera.Position = cameraPosBefore; } protected override void Unload() diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Renderer.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Renderer.cs index 2f2cd58925..fa02e9e4e7 100644 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Renderer.cs +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Renderer.cs @@ -488,8 +488,8 @@ private unsafe void UpdateViews(in FrameState frameState) for (var eye = 0; eye < 2; eye++) { var view = ViewStates[eye]; - Projections[eye] = view.Fov.FovfToMatrix(); - if (!Matrix4x4.Invert(view.Pose.PosefToMatrix(), out var inverse)) + Projections[eye] = view.Fov.ToProjection(); + if (!Matrix4x4.Invert(view.Pose.ToView(), out var inverse)) { throw new("Couldn't create inverse pose view matrix."); } diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Utilities.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Utilities.cs index 0383d023c5..57b446c1a1 100644 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Utilities.cs +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Utilities.cs @@ -14,43 +14,87 @@ public static class Utilities public const float DefaultFarZ = 100.0f; public const float DefaultOffset = 0f; - public static Vector4 FovfToTanFovVector(this Fovf fovf) => new - ( - MathF.Tan(fovf.AngleLeft), - MathF.Tan(fovf.AngleRight), - MathF.Tan(fovf.AngleUp), - MathF.Tan(fovf.AngleDown) - ); - - public static Matrix4x4 FovfToMatrix - ( - this Fovf fovf, - float nearZ = DefaultNearZ, - float farZ = DefaultFarZ, - float offsetZ = DefaultOffset - ) - { - var tanFov = fovf.FovfToTanFovVector(); - var tanAngleWidth = tanFov.Y - tanFov.X; - var tanAngleHeight = tanFov.W - tanFov.Z; - return new + public static Matrix4x4 ToView(this Posef pose) + => Matrix4x4.Identity + * Matrix4x4.CreateTranslation(Unsafe.As(ref pose.Position)) + * Matrix4x4.CreateFromQuaternion(Unsafe.As(ref pose.Orientation)); + + public static Matrix4x4 + ToProjection ( - 2 / tanAngleWidth, 0, (tanFov.Y + tanFov.X) / tanAngleWidth, 0, - 0, 2 / tanAngleHeight, (tanFov.Z + tanFov.W) / tanAngleHeight, 0, - 0, 0, -(farZ + offsetZ) / (farZ - nearZ), -(farZ * (nearZ + offsetZ)) / (farZ - nearZ), - 0, 0, -1, 0 - ); - } + this Fovf fov, + bool isGlSpace = true, + float nearZ = DefaultNearZ, + float farZ = DefaultFarZ + ) + { + Matrix4x4 result = default; - public static Quaternion QuaternionfToQuaternion(this Quaternionf quat) - => Unsafe.As(ref quat); + var tanAngleLeft = MathF.Tan(fov.AngleLeft); + var tanAngleRight = MathF.Tan(fov.AngleRight); - public static Vector3 Vector3fToVector3(this Vector3f vec) - => Unsafe.As(ref vec); + var tanAngleDown = MathF.Tan(fov.AngleDown); + var tanAngleUp = MathF.Tan(fov.AngleUp); - public static Matrix4x4 PosefToMatrix(this Posef pose) - => Matrix4x4.Identity - * Matrix4x4.CreateTranslation(pose.Position.Vector3fToVector3()) - * Matrix4x4.CreateFromQuaternion(pose.Orientation.QuaternionfToQuaternion()); + var tanAngleWidth = tanAngleRight - tanAngleLeft; + + // Set to tanAngleDown - tanAngleUp for a clip space with positive Y + // down (Vulkan). Set to tanAngleUp - tanAngleDown for a clip space with + // positive Y up (OpenGL / D3D / Metal). + var tanAngleHeight = !isGlSpace ? tanAngleDown - tanAngleUp : tanAngleUp - tanAngleDown; + + // Set to nearZ for a [-1,1] Z clip space (OpenGL / OpenGL ES). + // Set to zero for a [0,1] Z clip space (Vulkan / D3D / Metal). + var offsetZ = isGlSpace ? nearZ : 0; + + if (farZ <= nearZ) + { + // place the far plane at infinity + result.M11 = 2 / tanAngleWidth; + result.M21 = 0; + result.M31 = (tanAngleRight + tanAngleLeft) / tanAngleWidth; + result.M41 = 0; + + result.M11 = 0; + result.M21 = 2 / tanAngleHeight; + result.M31 = (tanAngleUp + tanAngleDown) / tanAngleHeight; + result.M41 = 0; + + result.M13 = 0; + result.M23 = 0; + result.M33 = -1; + result.M43 = -(nearZ + offsetZ); + + result.M14 = 0; + result.M24 = 0; + result.M34 = -1; + result.M44 = 0; + } + else + { + // normal projection + result.M11 = 2 / tanAngleWidth; + result.M21 = 0; + result.M31 = (tanAngleRight + tanAngleLeft) / tanAngleWidth; + result.M41 = 0; + + result.M12 = 0; + result.M22 = 2 / tanAngleHeight; + result.M32 = (tanAngleUp + tanAngleDown) / tanAngleHeight; + result.M42 = 0; + + result.M13 = 0; + result.M23 = 0; + result.M33 = -(farZ + offsetZ) / (farZ - nearZ); + result.M43 = -(farZ * (nearZ + offsetZ)) / (farZ - nearZ); + + result.M14 = 0; + result.M24 = 0; + result.M34 = -1; + result.M44 = 0; + } + + return result; + } } } From 4445f62ff23703735f4a096ee7b3fc71fcf28d28 Mon Sep 17 00:00:00 2001 From: Dylan Perks Date: Sun, 6 Jun 2021 12:54:23 +0100 Subject: [PATCH 04/11] Add maths helpers, is this progress I don't even know anymore --- .../OpenGL Demos/OpenGL VR Demo/Camera.cs | 55 ++----------------- .../OpenGL Demos/OpenGL VR Demo/Game.cs | 31 ++++++----- .../OpenGL VR Demo/OpenXR/Renderer.cs | 22 +++++--- .../OpenGL VR Demo/OpenXR/Utilities.cs | 8 +-- .../Silk.NET.Maths/PublicAPI.Unshipped.txt | 6 +- src/Maths/Silk.NET.Maths/Scalar.Constants.cs | 18 ++++++ .../Silk.NET.Maths/Scalar.Conversions.cs | 22 ++++++++ 7 files changed, 86 insertions(+), 76 deletions(-) create mode 100644 src/Maths/Silk.NET.Maths/Scalar.Conversions.cs diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Camera.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Camera.cs index a4b047391e..9b38b8e91e 100644 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Camera.cs +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Camera.cs @@ -6,61 +6,16 @@ namespace OpenGL_VR_Demo { public class Camera { - private Quaternion _quat; + private Renderer _renderer; public Vector3 Position { get; set; } - public Vector3 Front { get; set; } - - public Vector3 Up { get; private set; } - public float AspectRatio { get; set; } - - public float Yaw { get; set; } = -90f; - public float Pitch { get; set; } - - private float Zoom = 45f; - - public Camera(Vector3 position, Vector3 front, Vector3 up, float aspectRatio) + public Camera(Vector3 position, Renderer renderer) { Position = position; - AspectRatio = aspectRatio; - Front = front; - Up = up; - } - - public void ModifyZoom(float zoomAmount) - { - //We don't want to be able to zoom in too close or too far away so clamp to these values - Zoom = Math.Clamp(Zoom - zoomAmount, 1.0f, 45f); - } - - //public void ModifyDirection(float xOffset, float yOffset) - public void ModifyDirection(Quaternion orientation) - { - // Yaw += xOffset; - // Pitch -= yOffset; - - ////We don't want to be able to look behind us by going over our head or under our feet so make sure it stays within these bounds - //Pitch = Math.Clamp(Pitch, -89f, 89f); - - //var cameraDirection = Vector3.Zero; - var cameraDirection = Vector3.Zero; - cameraDirection.X = MathF.Cos(MathHelper.DegreesToRadians(Yaw)) * MathF.Cos(MathHelper.DegreesToRadians(Pitch)); - cameraDirection.Y = MathF.Sin(MathHelper.DegreesToRadians(Pitch)); - cameraDirection.Z = MathF.Sin(MathHelper.DegreesToRadians(Yaw)) * MathF.Cos(MathHelper.DegreesToRadians(Pitch)); - cameraDirection = Vector3.Transform(cameraDirection, orientation); - Front = Vector3.Normalize(cameraDirection); - - _quat = orientation; + _renderer = renderer; } - public Matrix4x4 GetViewMatrix() - { - return Matrix4x4.CreateLookAt(Position, Position + Front, Up); - } - - public Matrix4x4 GetProjectionMatrix() - { - return Matrix4x4.CreatePerspectiveFieldOfView(MathHelper.DegreesToRadians(Zoom), AspectRatio, 0.1f, 100.0f); - } + public Matrix4x4 GetViewMatrix(int eye) => _renderer.GetViewMatrix(eye, Position); + public Matrix4x4 GetProjectionMatrix(int eye) => _renderer.GetProjectionMatrix(eye); } } \ No newline at end of file diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Game.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Game.cs index 9013256e30..12ac07f5e6 100644 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Game.cs +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Game.cs @@ -4,6 +4,7 @@ using System.Numerics; using System.Runtime.CompilerServices; using OpenGL_VR_Demo.OpenXR; +using Silk.NET.Maths; using Silk.NET.OpenGL; using Silk.NET.OpenXR; using Shader = Silk.NET.OpenGL.Shader; @@ -19,6 +20,7 @@ public class Game : OpenGLXRGame private static VertexArrayObject VaoCube; private static Shader LightingShader; private static Shader LampShader; + private static Vector3 CubePosition = new(0.2f, 0.0f, 1.0f); private static Vector3 LampPosition = new(1.2f, 1.0f, 2.0f); private static Camera Camera; @@ -84,7 +86,7 @@ public Game(bool forceNoDebug = false, bool useMinimumVersion = false) protected override void Load() { - Gl = Renderer.Gl; + Gl = Renderer!.Gl; Ebo = new(Gl, Indices, BufferTargetARB.ElementArrayBuffer); Vbo = new(Gl, Vertices, BufferTargetARB.ArrayBuffer); @@ -99,7 +101,7 @@ protected override void Load() LampShader = new(Gl, "shader.vert", "shader.frag"); //Start a camera at position 3 on the Z axis, looking at position -1 on the Z axis - Camera = new(Vector3.UnitZ * 6, Vector3.UnitZ * -1, Vector3.UnitY, (float)EyeWidth / EyeHeight); + Camera = new(Vector3.UnitZ * 6 * 6, Renderer); } protected override void Update(double delta) @@ -110,26 +112,29 @@ protected override void Update(double delta) protected override void Render(int eye, double delta) { - var position = Unsafe.As(ref Renderer.ViewStates[0].Pose.Position); - var orientation = Unsafe.As(ref Renderer.ViewStates[0].Pose.Orientation); - Camera.ModifyDirection(orientation); - Gl.Enable(EnableCap.DepthTest); Gl.Clear((uint) (ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit)); VaoCube.Bind(); LightingShader.Use(); + + // Define the matrix for our cube + var cubeMatrix = Matrix4x4.Identity; + cubeMatrix *= Matrix4x4.CreateTranslation(CubePosition); - //Slightly rotate the cube to give it an angled face to look at - LightingShader.SetUniform("uModel", Matrix4x4.CreateRotationY(MathHelper.DegreesToRadians(25f))); - LightingShader.SetUniform("uView", Renderer.Views[eye]); - LightingShader.SetUniform("uProjection", Renderer.Projections[eye]); + // Slightly rotate the cube to give it an angled face to look at + cubeMatrix *= Matrix4x4.CreateRotationY(Scalar.DegreesToRadians(25f)); + + //LightingShader.SetUniform("uModel", Matrix4x4.CreateRotationY(MathHelper.DegreesToRadians(25f))); + LightingShader.SetUniform("uModel", cubeMatrix); + LightingShader.SetUniform("uView", Camera.GetViewMatrix(eye)); + LightingShader.SetUniform("uProjection", Camera.GetProjectionMatrix(eye)); LightingShader.SetUniform("objectColor", new Vector3(1.0f, 0.5f, 0.31f)); LightingShader.SetUniform("lightColor", Vector3.One); LightingShader.SetUniform("lightPos", LampPosition); LightingShader.SetUniform("viewPos", Camera.Position); - //We're drawing with just vertices and no indicies, and it takes 36 verticies to have a six-sided textured cube + // We're drawing with just vertices and no indicies, and it takes 36 verticies to have a six-sided textured cube Gl.DrawArrays(PrimitiveType.Triangles, 0, 36); LampShader.Use(); @@ -140,8 +145,8 @@ protected override void Render(int eye, double delta) lampMatrix *= Matrix4x4.CreateTranslation(LampPosition); LampShader.SetUniform("uModel", lampMatrix); - LampShader.SetUniform("uView", Renderer.Views[eye]); - LampShader.SetUniform("uProjection", Renderer.Projections[eye]); + LampShader.SetUniform("uView", Camera.GetViewMatrix(eye)); + LampShader.SetUniform("uProjection", Camera.GetProjectionMatrix(eye)); Gl.DrawArrays(PrimitiveType.Triangles, 0, 36); } diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Renderer.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Renderer.cs index fa02e9e4e7..4986ef414e 100644 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Renderer.cs +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Renderer.cs @@ -35,9 +35,20 @@ public class Renderer : IDisposable public uint[] SwapchainImages; // Eye Info - for use in games! + private Posef[] RawViews { get; set; } = new Posef[2]; + private Matrix4x4[] Projections { get; set; } = new Matrix4x4[2]; public View[] ViewStates { get; private set; } = new View[2]; - public Matrix4x4[] Views { get; private set; } = new Matrix4x4[2]; - public Matrix4x4[] Projections { get; private set; } = new Matrix4x4[2]; + public Matrix4x4 GetViewMatrix(int eye, Vector3 offset = default) + { + if (!Matrix4x4.Invert(RawViews[eye].ToView(), out var inverse)) + { + throw new("Couldn't create inverse pose view matrix."); + } + + return inverse; + } + + public Matrix4x4 GetProjectionMatrix(int eye) => Projections[eye]; // Misc private IView _view; @@ -489,12 +500,7 @@ private unsafe void UpdateViews(in FrameState frameState) { var view = ViewStates[eye]; Projections[eye] = view.Fov.ToProjection(); - if (!Matrix4x4.Invert(view.Pose.ToView(), out var inverse)) - { - throw new("Couldn't create inverse pose view matrix."); - } - - Views[eye] = inverse; + RawViews[eye] = view.Pose; } } diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Utilities.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Utilities.cs index 57b446c1a1..e6d251f63a 100644 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Utilities.cs +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Utilities.cs @@ -14,10 +14,10 @@ public static class Utilities public const float DefaultFarZ = 100.0f; public const float DefaultOffset = 0f; - public static Matrix4x4 ToView(this Posef pose) - => Matrix4x4.Identity - * Matrix4x4.CreateTranslation(Unsafe.As(ref pose.Position)) - * Matrix4x4.CreateFromQuaternion(Unsafe.As(ref pose.Orientation)); + public static Matrix4x4 ToView(this Posef pose, Vector3 offset = default) + => Matrix4x4.Transpose(Matrix4x4.Identity + * Matrix4x4.CreateTranslation(Unsafe.As(ref pose.Position) + offset) + * Matrix4x4.CreateFromQuaternion(Unsafe.As(ref pose.Orientation))); public static Matrix4x4 ToProjection diff --git a/src/Maths/Silk.NET.Maths/PublicAPI.Unshipped.txt b/src/Maths/Silk.NET.Maths/PublicAPI.Unshipped.txt index 1d36d75860..e69be7547c 100644 --- a/src/Maths/Silk.NET.Maths/PublicAPI.Unshipped.txt +++ b/src/Maths/Silk.NET.Maths/PublicAPI.Unshipped.txt @@ -24,4 +24,8 @@ 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 +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/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); + } +} From b0b31779ce4db9b68922977fa11772b95f506e09 Mon Sep 17 00:00:00 2001 From: Dylan Perks Date: Sun, 6 Jun 2021 14:37:19 +0100 Subject: [PATCH 05/11] Commit before rewrite --- .../OpenGL Demos/OpenGL VR Demo/Game.cs | 69 ++++++++----------- .../OpenGL Demos/OpenGL VR Demo/MathHelper.cs | 12 ---- .../OpenGL VR Demo/OpenGL VR Demo.csproj | 10 ++- .../OpenGL VR Demo/OpenXR/Renderer.cs | 2 +- .../OpenGL VR Demo/OpenXR/Utilities.cs | 16 +++-- .../OpenGL Demos/OpenGL VR Demo/cubes.frag | 10 +++ .../OpenGL Demos/OpenGL VR Demo/cubes.vert | 12 ++++ 7 files changed, 67 insertions(+), 64 deletions(-) delete mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/MathHelper.cs create mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/cubes.frag create mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/cubes.vert diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Game.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Game.cs index 12ac07f5e6..89c761d4b8 100644 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Game.cs +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Game.cs @@ -18,11 +18,7 @@ public class Game : OpenGLXRGame private static BufferObject Vbo; private static BufferObject Ebo; private static VertexArrayObject VaoCube; - private static Shader LightingShader; - private static Shader LampShader; - private static Vector3 CubePosition = new(0.2f, 0.0f, 1.0f); - private static Vector3 LampPosition = new(1.2f, 1.0f, 2.0f); - + private static Shader CubesShader; private static Camera Camera; private static Vector2 LastOrientation; @@ -95,13 +91,10 @@ protected override void Load() VaoCube.VertexAttributePointer(0, 3, VertexAttribPointerType.Float, 6, 0); VaoCube.VertexAttributePointer(1, 3, VertexAttribPointerType.Float, 6, 3); - //The lighting shader will give our main cube it's colour multiplied by the light's intensity - LightingShader = new(Gl, "shader.vert", "lighting.frag"); - //The Lamp shader uses a fragment shader that just colours it solid white so that we know it is the light source - LampShader = new(Gl, "shader.vert", "shader.frag"); + CubesShader = new(Gl, "cubes.vert", "cubes.frag"); //Start a camera at position 3 on the Z axis, looking at position -1 on the Z axis - Camera = new(Vector3.UnitZ * 6 * 6, Renderer); + Camera = new(Vector3.One + Vector3.One, Renderer); } protected override void Update(double delta) @@ -116,39 +109,31 @@ protected override void Render(int eye, double delta) Gl.Clear((uint) (ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit)); VaoCube.Bind(); - LightingShader.Use(); + CubesShader.Use(); - // Define the matrix for our cube - var cubeMatrix = Matrix4x4.Identity; - cubeMatrix *= Matrix4x4.CreateTranslation(CubePosition); + CubesShader.SetUniform("uniformColor", Vector3.Zero); + CubesShader.SetUniform("view", Matrix4x4.Transpose(Camera.GetViewMatrix(eye))); + CubesShader.SetUniform("proj", Matrix4x4.Transpose(Camera.GetProjectionMatrix(eye))); - // Slightly rotate the cube to give it an angled face to look at - cubeMatrix *= Matrix4x4.CreateRotationY(Scalar.DegreesToRadians(25f)); - - //LightingShader.SetUniform("uModel", Matrix4x4.CreateRotationY(MathHelper.DegreesToRadians(25f))); - LightingShader.SetUniform("uModel", cubeMatrix); - LightingShader.SetUniform("uView", Camera.GetViewMatrix(eye)); - LightingShader.SetUniform("uProjection", Camera.GetProjectionMatrix(eye)); - LightingShader.SetUniform("objectColor", new Vector3(1.0f, 0.5f, 0.31f)); - LightingShader.SetUniform("lightColor", Vector3.One); - LightingShader.SetUniform("lightPos", LampPosition); - LightingShader.SetUniform("viewPos", Camera.Position); - - // We're drawing with just vertices and no indicies, and it takes 36 verticies to have a six-sided textured cube - Gl.DrawArrays(PrimitiveType.Triangles, 0, 36); - - LampShader.Use(); - - //The Lamp cube is going to be a scaled down version of the normal cubes verticies moved to a different screen location - var lampMatrix = Matrix4x4.Identity; - lampMatrix *= Matrix4x4.CreateScale(0.2f); - lampMatrix *= Matrix4x4.CreateTranslation(LampPosition); - - LampShader.SetUniform("uModel", lampMatrix); - LampShader.SetUniform("uView", Camera.GetViewMatrix(eye)); - LampShader.SetUniform("uProjection", Camera.GetProjectionMatrix(eye)); - - Gl.DrawArrays(PrimitiveType.Triangles, 0, 36); + const float rotations_per_sec = .25f; + + float angle = ((long)(delta * 360f * rotations_per_sec)) % 360f; + + float dist = 1.5f; + float height = 0.5f; + DrawRotatedCube(new(0, height, -dist), .33f, angle); + DrawRotatedCube(new(0, height, dist), .33f, angle); + DrawRotatedCube(new(dist, height, 0), .33f, angle); + DrawRotatedCube(new(-dist, height, 0), .33f, angle); + } + + private void DrawRotatedCube(Vector3 position, float cube_size, float rotation) + { + var modelmatrix = Matrix4x4.CreateTranslation(position) + * Matrix4x4.CreateScale(new Vector3(cube_size / 2f, cube_size / 2f, cube_size / 2f)); + modelmatrix *= Matrix4x4.CreateRotationY(Scalar.DegreesToRadians(rotation)); + CubesShader.SetUniform("model", Matrix4x4.Transpose(modelmatrix)); + Gl.DrawArrays(GLEnum.Triangles, 0, 36); } protected override void Unload() @@ -156,7 +141,7 @@ protected override void Unload() Vbo.Dispose(); Ebo.Dispose(); VaoCube.Dispose(); - LightingShader.Dispose(); + CubesShader.Dispose(); } } } diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/MathHelper.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/MathHelper.cs deleted file mode 100644 index cc2462cbbe..0000000000 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/MathHelper.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; - -namespace OpenGL_VR_Demo -{ - public static class MathHelper - { - public static float DegreesToRadians(float degrees) - { - return MathF.PI / 180f * degrees; - } - } -} \ No newline at end of file diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenGL VR Demo.csproj b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenGL VR Demo.csproj index 016ceba949..aa4d504b21 100644 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenGL VR Demo.csproj +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenGL VR Demo.csproj @@ -20,10 +20,16 @@ PreserveNewest - + PreserveNewest - + + PreserveNewest + + + PreserveNewest + + PreserveNewest diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Renderer.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Renderer.cs index 4986ef414e..5315047c08 100644 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Renderer.cs +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Renderer.cs @@ -40,7 +40,7 @@ public class Renderer : IDisposable public View[] ViewStates { get; private set; } = new View[2]; public Matrix4x4 GetViewMatrix(int eye, Vector3 offset = default) { - if (!Matrix4x4.Invert(RawViews[eye].ToView(), out var inverse)) + if (!Matrix4x4.Invert(RawViews[eye].ToView(offset), out var inverse)) { throw new("Couldn't create inverse pose view matrix."); } diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Utilities.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Utilities.cs index e6d251f63a..91c00de6cc 100644 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Utilities.cs +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Utilities.cs @@ -15,9 +15,9 @@ public static class Utilities public const float DefaultOffset = 0f; public static Matrix4x4 ToView(this Posef pose, Vector3 offset = default) - => Matrix4x4.Transpose(Matrix4x4.Identity + => Matrix4x4.Identity * Matrix4x4.CreateTranslation(Unsafe.As(ref pose.Position) + offset) - * Matrix4x4.CreateFromQuaternion(Unsafe.As(ref pose.Orientation))); + * Matrix4x4.CreateFromQuaternion(Unsafe.As(ref pose.Orientation)); public static Matrix4x4 ToProjection @@ -37,6 +37,8 @@ public static Matrix4x4 var tanAngleUp = MathF.Tan(fov.AngleUp); var tanAngleWidth = tanAngleRight - tanAngleLeft; + var angleWidth = fov.AngleRight - fov.AngleLeft; + var angleHeight = !isGlSpace ? fov.AngleDown - fov.AngleUp : fov.AngleUp - fov.AngleDown; // Set to tanAngleDown - tanAngleUp for a clip space with positive Y // down (Vulkan). Set to tanAngleUp - tanAngleDown for a clip space with @@ -55,10 +57,10 @@ public static Matrix4x4 result.M31 = (tanAngleRight + tanAngleLeft) / tanAngleWidth; result.M41 = 0; - result.M11 = 0; - result.M21 = 2 / tanAngleHeight; - result.M31 = (tanAngleUp + tanAngleDown) / tanAngleHeight; - result.M41 = 0; + result.M12 = 0; + result.M22 = 2 / tanAngleHeight; + result.M32 = (tanAngleUp + tanAngleDown) / tanAngleHeight; + result.M42 = 0; result.M13 = 0; result.M23 = 0; @@ -94,7 +96,7 @@ public static Matrix4x4 result.M44 = 0; } - return result; + return Matrix4x4.Transpose(result); } } } diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/cubes.frag b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/cubes.frag new file mode 100644 index 0000000000..99ae71c89a --- /dev/null +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/cubes.frag @@ -0,0 +1,10 @@ +#version 330 core +#extension GL_ARB_explicit_uniform_location : require +layout(location = 0) out vec4 FragColor; +layout(location = 1) uniform vec3 uniformColor; +in vec2 vertexColor; +void main() { + FragColor = (uniformColor.x < 0.01 && uniformColor.y < 0.01 && uniformColor.z < 0.01) + ? vec4(vertexColor, 1.0, 1.0) + : vec4(uniformColor, 1.0); +} diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/cubes.vert b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/cubes.vert new file mode 100644 index 0000000000..06bc52c9a0 --- /dev/null +++ b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/cubes.vert @@ -0,0 +1,12 @@ +#version 330 core +#extension GL_ARB_explicit_uniform_location : require +layout(location = 0) in vec3 aPos; +layout(location = 2) uniform mat4 model; +layout(location = 3) uniform mat4 view; +layout(location = 4) uniform mat4 proj; +layout(location = 5) in vec2 aColor; +out vec2 vertexColor; +void main() { + gl_Position = proj * view * model * vec4(aPos.x, aPos.y, aPos.z, 1.0); + vertexColor = aColor; +} From 6d7dc44843e0cf4cd7420e7868b27d75d86379d3 Mon Sep 17 00:00:00 2001 From: Dylan Perks Date: Sun, 6 Jun 2021 20:15:53 +0100 Subject: [PATCH 06/11] Scrap the demo --- Silk.NET.sln | 18 - .../OpenGL VR Demo/BufferObject.cs | 36 -- .../OpenGL Demos/OpenGL VR Demo/Camera.cs | 21 - .../OpenGL Demos/OpenGL VR Demo/Game.cs | 147 ----- .../OpenGL VR Demo/OpenGL VR Demo.csproj | 41 -- .../OpenGL VR Demo/OpenXR/OpenGLXRGame.cs | 289 --------- .../OpenGL VR Demo/OpenXR/Renderer.cs | 591 ------------------ .../OpenGL VR Demo/OpenXR/System.cs | 113 ---- .../OpenGL VR Demo/OpenXR/Utilities.cs | 102 --- .../OpenGL Demos/OpenGL VR Demo/Program.cs | 9 - .../OpenGL Demos/OpenGL VR Demo/Shader.cs | 100 --- .../OpenGL Demos/OpenGL VR Demo/Texture.cs | 62 -- .../OpenGL Demos/OpenGL VR Demo/Transform.cs | 24 - .../OpenGL VR Demo/VertexArrayObject.cs | 39 -- .../OpenGL Demos/OpenGL VR Demo/cubes.frag | 10 - .../OpenGL Demos/OpenGL VR Demo/cubes.vert | 12 - .../OpenGL Demos/OpenGL VR Demo/lighting.frag | 32 - .../OpenGL Demos/OpenGL VR Demo/shader.frag | 7 - .../OpenGL Demos/OpenGL VR Demo/shader.vert | 20 - src/Core/Silk.NET.Core/Native/SilkMarshal.cs | 27 + 20 files changed, 27 insertions(+), 1673 deletions(-) delete mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/BufferObject.cs delete mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/Camera.cs delete mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/Game.cs delete mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenGL VR Demo.csproj delete mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/OpenGLXRGame.cs delete mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Renderer.cs delete mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/System.cs delete mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Utilities.cs delete mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/Program.cs delete mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/Shader.cs delete mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/Texture.cs delete mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/Transform.cs delete mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/VertexArrayObject.cs delete mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/cubes.frag delete mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/cubes.vert delete mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/lighting.frag delete mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/shader.frag delete mode 100644 examples/CSharp/OpenGL Demos/OpenGL VR Demo/shader.vert diff --git a/Silk.NET.sln b/Silk.NET.sln index 913660e538..e670a4686a 100644 --- a/Silk.NET.sln +++ b/Silk.NET.sln @@ -394,10 +394,6 @@ 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("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "OpenGL Demos", "OpenGL Demos", "{5EA44062-D9BC-4C51-99D9-DA4FB95C055B}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenGL VR Demo", "examples\CSharp\OpenGL Demos\OpenGL VR Demo\OpenGL VR Demo.csproj", "{96C1ED0B-EB5B-474D-A54D-5C65B40DB03B}" -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}" @@ -2343,18 +2339,6 @@ 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 - {96C1ED0B-EB5B-474D-A54D-5C65B40DB03B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {96C1ED0B-EB5B-474D-A54D-5C65B40DB03B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {96C1ED0B-EB5B-474D-A54D-5C65B40DB03B}.Debug|x64.ActiveCfg = Debug|Any CPU - {96C1ED0B-EB5B-474D-A54D-5C65B40DB03B}.Debug|x64.Build.0 = Debug|Any CPU - {96C1ED0B-EB5B-474D-A54D-5C65B40DB03B}.Debug|x86.ActiveCfg = Debug|Any CPU - {96C1ED0B-EB5B-474D-A54D-5C65B40DB03B}.Debug|x86.Build.0 = Debug|Any CPU - {96C1ED0B-EB5B-474D-A54D-5C65B40DB03B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {96C1ED0B-EB5B-474D-A54D-5C65B40DB03B}.Release|Any CPU.Build.0 = Release|Any CPU - {96C1ED0B-EB5B-474D-A54D-5C65B40DB03B}.Release|x64.ActiveCfg = Release|Any CPU - {96C1ED0B-EB5B-474D-A54D-5C65B40DB03B}.Release|x64.Build.0 = Release|Any CPU - {96C1ED0B-EB5B-474D-A54D-5C65B40DB03B}.Release|x86.ActiveCfg = Release|Any CPU - {96C1ED0B-EB5B-474D-A54D-5C65B40DB03B}.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 @@ -2701,8 +2685,6 @@ 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} - {5EA44062-D9BC-4C51-99D9-DA4FB95C055B} = {6842A2C6-5C7B-42DD-9825-0EDE91BFEBF7} - {96C1ED0B-EB5B-474D-A54D-5C65B40DB03B} = {5EA44062-D9BC-4C51-99D9-DA4FB95C055B} {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} diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/BufferObject.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/BufferObject.cs deleted file mode 100644 index d6e43f1d2f..0000000000 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/BufferObject.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System; -using Silk.NET.OpenGL; - -namespace OpenGL_VR_Demo -{ - public class BufferObject : IDisposable - where TDataType : unmanaged - { - private uint _handle; - private BufferTargetARB _bufferType; - private GL _gl; - - public unsafe BufferObject(GL gl, Span data, BufferTargetARB bufferType) - { - _gl = gl; - _bufferType = bufferType; - - _handle = _gl.GenBuffer(); - Bind(); - fixed (void* d = data) - { - _gl.BufferData(bufferType, (nuint) (data.Length * sizeof(TDataType)), d, BufferUsageARB.StaticDraw); - } - } - - public void Bind() - { - _gl.BindBuffer(_bufferType, _handle); - } - - public void Dispose() - { - _gl.DeleteBuffer(_handle); - } - } -} diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Camera.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Camera.cs deleted file mode 100644 index 9b38b8e91e..0000000000 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Camera.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Numerics; -using OpenGL_VR_Demo.OpenXR; - -namespace OpenGL_VR_Demo -{ - public class Camera - { - private Renderer _renderer; - - public Vector3 Position { get; set; } - public Camera(Vector3 position, Renderer renderer) - { - Position = position; - _renderer = renderer; - } - - public Matrix4x4 GetViewMatrix(int eye) => _renderer.GetViewMatrix(eye, Position); - public Matrix4x4 GetProjectionMatrix(int eye) => _renderer.GetProjectionMatrix(eye); - } -} \ No newline at end of file diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Game.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Game.cs deleted file mode 100644 index 89c761d4b8..0000000000 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Game.cs +++ /dev/null @@ -1,147 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Numerics; -using System.Runtime.CompilerServices; -using OpenGL_VR_Demo.OpenXR; -using Silk.NET.Maths; -using Silk.NET.OpenGL; -using Silk.NET.OpenXR; -using Shader = Silk.NET.OpenGL.Shader; - -namespace OpenGL_VR_Demo -{ - public class Game : OpenGLXRGame - { - private static GL Gl; - - private static BufferObject Vbo; - private static BufferObject Ebo; - private static VertexArrayObject VaoCube; - private static Shader CubesShader; - private static Camera Camera; - private static Vector2 LastOrientation; - - private static readonly float[] Vertices = - { - //X Y Z Normals - -0.5f, -0.5f, -0.5f, 0.0f, 0.0f, -1.0f, - 0.5f, -0.5f, -0.5f, 0.0f, 0.0f, -1.0f, - 0.5f, 0.5f, -0.5f, 0.0f, 0.0f, -1.0f, - 0.5f, 0.5f, -0.5f, 0.0f, 0.0f, -1.0f, - -0.5f, 0.5f, -0.5f, 0.0f, 0.0f, -1.0f, - -0.5f, -0.5f, -0.5f, 0.0f, 0.0f, -1.0f, - - -0.5f, -0.5f, 0.5f, 0.0f, 0.0f, 1.0f, - 0.5f, -0.5f, 0.5f, 0.0f, 0.0f, 1.0f, - 0.5f, 0.5f, 0.5f, 0.0f, 0.0f, 1.0f, - 0.5f, 0.5f, 0.5f, 0.0f, 0.0f, 1.0f, - -0.5f, 0.5f, 0.5f, 0.0f, 0.0f, 1.0f, - -0.5f, -0.5f, 0.5f, 0.0f, 0.0f, 1.0f, - - -0.5f, 0.5f, 0.5f, -1.0f, 0.0f, 0.0f, - -0.5f, 0.5f, -0.5f, -1.0f, 0.0f, 0.0f, - -0.5f, -0.5f, -0.5f, -1.0f, 0.0f, 0.0f, - -0.5f, -0.5f, -0.5f, -1.0f, 0.0f, 0.0f, - -0.5f, -0.5f, 0.5f, -1.0f, 0.0f, 0.0f, - -0.5f, 0.5f, 0.5f, -1.0f, 0.0f, 0.0f, - - 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 0.0f, - 0.5f, 0.5f, -0.5f, 1.0f, 0.0f, 0.0f, - 0.5f, -0.5f, -0.5f, 1.0f, 0.0f, 0.0f, - 0.5f, -0.5f, -0.5f, 1.0f, 0.0f, 0.0f, - 0.5f, -0.5f, 0.5f, 1.0f, 0.0f, 0.0f, - 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 0.0f, - - -0.5f, -0.5f, -0.5f, 0.0f, -1.0f, 0.0f, - 0.5f, -0.5f, -0.5f, 0.0f, -1.0f, 0.0f, - 0.5f, -0.5f, 0.5f, 0.0f, -1.0f, 0.0f, - 0.5f, -0.5f, 0.5f, 0.0f, -1.0f, 0.0f, - -0.5f, -0.5f, 0.5f, 0.0f, -1.0f, 0.0f, - -0.5f, -0.5f, -0.5f, 0.0f, -1.0f, 0.0f, - - -0.5f, 0.5f, -0.5f, 0.0f, 1.0f, 0.0f, - 0.5f, 0.5f, -0.5f, 0.0f, 1.0f, 0.0f, - 0.5f, 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, - 0.5f, 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, - -0.5f, 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, - -0.5f, 0.5f, -0.5f, 0.0f, 1.0f, 0.0f - }; - - private static readonly uint[] Indices = - { - 0, 1, 3, - 1, 2, 3 - }; - - - public Game(bool forceNoDebug = false, bool useMinimumVersion = false) - : base("OpenGL VR Demo", forceNoDebug, useMinimumVersion) - { - } - - protected override void Load() - { - Gl = Renderer!.Gl; - - Ebo = new(Gl, Indices, BufferTargetARB.ElementArrayBuffer); - Vbo = new(Gl, Vertices, BufferTargetARB.ArrayBuffer); - VaoCube = new(Gl, Vbo, Ebo); - - VaoCube.VertexAttributePointer(0, 3, VertexAttribPointerType.Float, 6, 0); - VaoCube.VertexAttributePointer(1, 3, VertexAttribPointerType.Float, 6, 3); - - CubesShader = new(Gl, "cubes.vert", "cubes.frag"); - - //Start a camera at position 3 on the Z axis, looking at position -1 on the Z axis - Camera = new(Vector3.One + Vector3.One, Renderer); - } - - protected override void Update(double delta) - { - var moveSpeed = 2.5f * (float) delta; - // TODO add OpenXR controller input handling - } - - protected override void Render(int eye, double delta) - { - Gl.Enable(EnableCap.DepthTest); - Gl.Clear((uint) (ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit)); - - VaoCube.Bind(); - CubesShader.Use(); - - CubesShader.SetUniform("uniformColor", Vector3.Zero); - CubesShader.SetUniform("view", Matrix4x4.Transpose(Camera.GetViewMatrix(eye))); - CubesShader.SetUniform("proj", Matrix4x4.Transpose(Camera.GetProjectionMatrix(eye))); - - const float rotations_per_sec = .25f; - - float angle = ((long)(delta * 360f * rotations_per_sec)) % 360f; - - float dist = 1.5f; - float height = 0.5f; - DrawRotatedCube(new(0, height, -dist), .33f, angle); - DrawRotatedCube(new(0, height, dist), .33f, angle); - DrawRotatedCube(new(dist, height, 0), .33f, angle); - DrawRotatedCube(new(-dist, height, 0), .33f, angle); - } - - private void DrawRotatedCube(Vector3 position, float cube_size, float rotation) - { - var modelmatrix = Matrix4x4.CreateTranslation(position) - * Matrix4x4.CreateScale(new Vector3(cube_size / 2f, cube_size / 2f, cube_size / 2f)); - modelmatrix *= Matrix4x4.CreateRotationY(Scalar.DegreesToRadians(rotation)); - CubesShader.SetUniform("model", Matrix4x4.Transpose(modelmatrix)); - Gl.DrawArrays(GLEnum.Triangles, 0, 36); - } - - protected override void Unload() - { - Vbo.Dispose(); - Ebo.Dispose(); - VaoCube.Dispose(); - CubesShader.Dispose(); - } - } -} diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenGL VR Demo.csproj b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenGL VR Demo.csproj deleted file mode 100644 index aa4d504b21..0000000000 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenGL VR Demo.csproj +++ /dev/null @@ -1,41 +0,0 @@ - - - - Exe - net5.0 - OpenGL_VR_Demo - enable - true - - - - - - - - - - - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - - - - - - diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/OpenGLXRGame.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/OpenGLXRGame.cs deleted file mode 100644 index 88024932a4..0000000000 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/OpenGLXRGame.cs +++ /dev/null @@ -1,289 +0,0 @@ -// 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.Collections.Generic; -using System.Diagnostics; -using System.Runtime.InteropServices; -using Silk.NET.Core; -using Silk.NET.Core.Native; -using Silk.NET.OpenXR; -using Silk.NET.OpenXR.Extensions.EXT; -using Silk.NET.OpenXR.Extensions.KHR; - -namespace OpenGL_VR_Demo.OpenXR -{ - public abstract class OpenGLXRGame : IDisposable - { - // API Objects for accessing OpenXR and OpenGL - public XR Xr; - - // ExtDebugUtils is a handy OpenXR debugging extension which we'll enable if available unless told otherwise. - public bool? IsDebugUtilsSupported; - public ExtDebugUtils? ExtDebugUtils; - - // Hooking OpenXR up to graphics APIs requires specialized extensions. OpenGL and OpenGLES have separate ones, - // but we'll make variables for both so we can support both. - public KhrOpenglEnable? GlEnable; - public KhrOpenglEsEnable? GlesEnable; - public bool IsGles; - public bool UseMinimumVersion; - - // Maintain a list of extensions we're using. Both for sanity and so we can tell OpenXR about them when creating - // the instance. - protected List Extensions = new(); - - // OpenXR handles - public Instance Instance; - public DebugUtilsMessengerEXT MessengerExt; - - // Our abstractions - public System System; - public Renderer? Renderer; - - // Ease-of-use properties - public uint EyeWidth => System.RenderTargetSize.X / 2; - public uint EyeHeight => System.RenderTargetSize.Y; - - // Misc - public string Name; - private bool _unmanagedResourcesFreed; - - protected OpenGLXRGame(string name, bool forceNoDebug = false, bool useMinimumVersion = false) - { - Name = name; - if (forceNoDebug) - { - IsDebugUtilsSupported = false; - } - - UseMinimumVersion = useMinimumVersion; - } - - public void Run() - { - Prepare(); - Renderer?.Run(); - } - - /// - /// A simple function which throws an exception if the given OpenXR result indicates an error has been raised. - /// - /// The OpenXR result in question. - /// - /// The same result passed in, just in case it's meaningful and we just want to use this to filter out errors. - /// - /// An exception for the given result if it indicates an error. - [DebuggerHidden] - [DebuggerStepThrough] - internal static Result CheckResult(Result result) - { - if ((int) result < 0) - { - throw new($"OpenXR raised an error! Code: {result} ({result:X})"); - } - - return result; - } - - /// - /// A function which checks if the extension with the given name is available, and adds it to the list of - /// requested if so, returning true; or just returns false otherwise. - /// - /// The extension name to check for and request. - /// Whether the extension was present or not. - private bool TryRequestExtension(string name) - { - // Check if OpenXR supports the extension. - if (Xr.IsInstanceExtensionPresent(null, name)) - { - // It does! Add it to our list of requested extensions, for use when creating the instance later... - Console.WriteLine($"[INFO] Application: Using extension {name}"); - Extensions.Add(name); - return true; - } - - // Oh dear! Not supported. - Console.WriteLine($"[WARNING] Application: {name} is not supported."); - return false; - } - - private unsafe void Prepare() - { - // Create our API object for OpenXR. - Xr = XR.GetApi(); - - // If forceNoDebug is specified in the constructor, IsDebugUtilsSupported will already be false so we won't - // request the extension whatsoever. Otherwise, request the extension! - IsDebugUtilsSupported ??= TryRequestExtension(ExtDebugUtils.ExtensionName); - - // Let's request desktop GL first. - if (!TryRequestExtension(KhrOpenglEnable.ExtensionName)) - { - // No desktop GL? What about OpenGLES? - if (!TryRequestExtension(KhrOpenglEsEnable.ExtensionName)) - { - throw new PlatformNotSupportedException - ( - "Neither OpenGL nor OpenGLES is supported by OpenXR on this platform!" - ); - } - - // I guess we're using OpenGLES from now on! - IsGles = true; - } - - // Before we do anything, OpenXR needs to know a little about our application. - var appInfo = new ApplicationInfo - { - ApiVersion = new Version64(1, 0, 9) // this is the OpenXR version number this demo is written against - }; - - // We've got to marshal our strings and put them into global, immovable memory. To do that, we use - // SilkMarshal. - SilkMarshal.StringIntoSpan(Name, MemoryMarshal.CreateSpan(ref appInfo.ApplicationName[0], 128)); - SilkMarshal.StringIntoSpan("Silk.NET Examples", MemoryMarshal.CreateSpan(ref appInfo.EngineName[0], 128)); - var requestedExtensions = SilkMarshal.StringArrayToPtr(Extensions); - var instanceCreateInfo = new InstanceCreateInfo - ( - applicationInfo: appInfo, - enabledExtensionCount: (uint) Extensions.Count, - enabledExtensionNames: (byte**) requestedExtensions - ); - - // If debug utils is supported, enable it! - DebugUtilsMessengerCreateInfoEXT debugUtilsCreateInfo = default; - if (IsDebugUtilsSupported.Value) - { - // This local function is called by OpenXR. There are a lot of advanced things you can do with the data - // you get in DebugUtilsMessengerCallbackDataEXT, such as inspecting objects, but for now we're just - // going to use the debug messenger as a simple OpenXR logger. - static uint OnDebug - ( - DebugUtilsMessageSeverityFlagsEXT severity, - DebugUtilsMessageTypeFlagsEXT type, - DebugUtilsMessengerCallbackDataEXT* data, - void* userData - ) - { - var severityString = severity - .ToString()["DebugUtilsMessageSeverity".Length..^"BitExt".Length] - .ToUpper(); - - var typeString = type.ToString()["DebugUtilsMessageType".Length..^"BitExt".Length]; - - // Marshal OpenXR's byte* back to C# strings - var msgString = SilkMarshal.PtrToString((nint) data->Message); - var idString = SilkMarshal.PtrToString((nint) data->MessageId); - - Console.WriteLine($"[{severityString}] {typeString}: {msgString} ({idString})"); - return 0; - } - - // Now that we've defined the callback, let's tell OpenXR about it and create our messenger! - debugUtilsCreateInfo = new DebugUtilsMessengerCreateInfoEXT - ( - messageSeverities: DebugUtilsMessageSeverityFlagsEXT.DebugUtilsMessageSeverityErrorBitExt | - DebugUtilsMessageSeverityFlagsEXT.DebugUtilsMessageSeverityWarningBitExt | - DebugUtilsMessageSeverityFlagsEXT.DebugUtilsMessageSeverityInfoBitExt, - messageTypes: DebugUtilsMessageTypeFlagsEXT.DebugUtilsMessageTypeGeneralBitExt | - DebugUtilsMessageTypeFlagsEXT.DebugUtilsMessageTypeConformanceBitExt | - DebugUtilsMessageTypeFlagsEXT.DebugUtilsMessageTypePerformanceBitExt | - DebugUtilsMessageTypeFlagsEXT.DebugUtilsMessageTypeValidationBitExt, - userCallback: (DebugUtilsMessengerCallbackFunctionEXT) OnDebug - ); - - instanceCreateInfo.Next = &debugUtilsCreateInfo; - } - - // Now we're ready to make our instance! - CheckResult(Xr.CreateInstance(in instanceCreateInfo, ref Instance)); - - // Turn on debug logging - if (IsDebugUtilsSupported.Value && Xr.TryGetInstanceExtension(null, Instance, out ExtDebugUtils)) - { - Console.WriteLine - ( - ExtDebugUtils!.CreateDebugUtilsMessenger(Instance, in debugUtilsCreateInfo, ref MessengerExt) - != Result.Success - ? "[WARNING] Application: Failed to create OpenXR debug messenger!" - : "[INFO] Application: Debug messenger active." - ); - } - - // For our benefit, let's log some information about the instance we've just created. - InstanceProperties properties = new(); - CheckResult(Xr.GetInstanceProperties(Instance, ref properties)); - - var runtimeName = SilkMarshal.PtrToString((nint) properties.RuntimeName); - var runtimeVersion = ((Version) (Version64) properties.RuntimeVersion).ToString(3); - - Console.WriteLine($"[INFO] Application: Using OpenXR Runtime \"{runtimeName}\" v{runtimeVersion}"); - - // We're creating a head-mounted-display (HMD, i.e. a VR headset) example, so we ask for a runtime which - // supports that form factor. The response we get is a ulong that is the System ID. - var systemId = 0UL; - var getInfo = new SystemGetInfo(formFactor: FormFactor.HeadMountedDisplay); - CheckResult(Xr.GetSystem(Instance, in getInfo, ref systemId)); - - // Get the appropriate enabling extension, or fail if we can't. - if (IsGles && !Xr.TryGetInstanceExtension(null, Instance, out GlesEnable) || - !IsGles && !Xr.TryGetInstanceExtension(null, Instance, out GlEnable)) - { - throw new("Failed to get the graphics binding extension!"); - } - - // Let our abstractions take it from here! - System = new(this, systemId); - Renderer = new(this); - - // Subscribe to our renderer's callbacks - Renderer.Load += Load; - Renderer.Update += Update; - Renderer.Render += Render; - Renderer.Unload += Unload; - } - - // These methods will be implemented by the game. - protected abstract void Load(); - protected abstract void Update(double delta); - protected abstract void Render(int eye, double delta); - protected abstract void Unload(); - - private void ReleaseUnmanagedResources() - { - if (_unmanagedResourcesFreed) - { - return; - } - - CheckResult(Xr.DestroyInstance(Instance)); - CheckResult(ExtDebugUtils?.DestroyDebugUtilsMessenger(MessengerExt) ?? Result.Success); - _unmanagedResourcesFreed = true; - } - - private void Dispose(bool disposing) - { - ReleaseUnmanagedResources(); - if (disposing) - { - Xr.Dispose(); - ExtDebugUtils?.Dispose(); - GlEnable?.Dispose(); - GlesEnable?.Dispose(); - Renderer?.Dispose(); - } - } - - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - ~OpenGLXRGame() - { - Dispose(false); - } - } -} diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Renderer.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Renderer.cs deleted file mode 100644 index 5315047c08..0000000000 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Renderer.cs +++ /dev/null @@ -1,591 +0,0 @@ -// 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.Diagnostics; -using System.Numerics; -using System.Runtime.CompilerServices; -using Silk.NET.Core; -using Silk.NET.Maths; -using Silk.NET.OpenGL; -using Silk.NET.OpenXR; -using Silk.NET.Windowing; -using static OpenGL_VR_Demo.OpenXR.OpenGLXRGame; -using Action = System.Action; - -namespace OpenGL_VR_Demo.OpenXR -{ - public class Renderer : IDisposable - { - // API objects - public GL Gl { get; private set; } - public XR Xr { get; init; } - - // OpenXR handles & info - public Session Session; - public Space ReferenceSpace; - public Swapchain Swapchain; - public SwapchainCreateInfo SwapchainCreateInfo; - public EventDataBuffer EventData; - public SessionState State { get; private set; } - public bool IsStage { get; private set; } - - // OpenGL handles & info - public (uint Framebuffer, uint Renderbuffer) Framebuffers; - public uint[] SwapchainImages; - - // Eye Info - for use in games! - private Posef[] RawViews { get; set; } = new Posef[2]; - private Matrix4x4[] Projections { get; set; } = new Matrix4x4[2]; - public View[] ViewStates { get; private set; } = new View[2]; - public Matrix4x4 GetViewMatrix(int eye, Vector3 offset = default) - { - if (!Matrix4x4.Invert(RawViews[eye].ToView(offset), out var inverse)) - { - throw new("Couldn't create inverse pose view matrix."); - } - - return inverse; - } - - public Matrix4x4 GetProjectionMatrix(int eye) => Projections[eye]; - - // Misc - private IView _view; - private OpenGLXRGame _game; - private bool _unmanagedResourcesFreed; - - public Renderer(OpenGLXRGame game) - { - _game = game; - - Xr = game.Xr; - - var opts = ViewOptions.Default; - opts.VSync = false; - opts.FramesPerSecond = 0; - opts.PreferredBitDepth = new(8, 8, 8, 8); - opts.PreferredDepthBufferBits = 24; - opts.ShouldSwapAutomatically = false; - if (game.IsGles) - { - GraphicsRequirementsOpenGLESKHR esReqs = new(); - CheckResult - (game.GlesEnable!.GetOpenGlesgraphicsRequirements(game.Instance, game.System.Id, ref esReqs)); - var version = (Version64) (game.UseMinimumVersion - ? esReqs.MinApiVersionSupported - : esReqs.MaxApiVersionSupported); - opts.API = new - ( - ContextAPI.OpenGLES, ContextProfile.Core, - Debugger.IsAttached ? ContextFlags.Debug : ContextFlags.Default, - new((int) version.Major, (int) version.Minor) - ); - } - else - { - GraphicsRequirementsOpenGLKHR reqs = new(); - CheckResult(game.GlEnable!.GetOpenGlgraphicsRequirements(game.Instance, game.System.Id, ref reqs)); - var version = (Version64) (game.UseMinimumVersion - ? reqs.MinApiVersionSupported - : reqs.MaxApiVersionSupported); - opts.API = new - ( - ContextAPI.OpenGL, ContextProfile.Core, - Debugger.IsAttached ? ContextFlags.Debug : ContextFlags.Default, - new((int) version.Major, (int) version.Minor) - ); - } - - if (Window.IsViewOnly) - { - _view = Window.GetView(opts); - } - else - { - var wOpts = new WindowOptions(opts) - { - Position = -Vector2D.One, - Size = new - ((int) (game.System.RenderTargetSize.X / ((float) game.System.RenderTargetSize.Y / 720)), 720) - }; - - _view = Window.Create(wOpts); - } - - _view.Load += ViewOnLoad; - _view.Update += ViewOnUpdate; - _view.Render += ViewOnRender; - _view.Closing += ViewOnUnload; - } - - public event Action? Load; - public event Action? Update; - public event Action? Render; - public event Action? Unload; - - private void ViewOnLoad() - { - Gl = _view.CreateOpenGL(); - PrepareOpenXR(); - PrepareOpenGL(); - Load?.Invoke(); - } - - private void ViewOnUnload() - { - ReleaseUnmanagedResources(); - Unload?.Invoke(); - Gl.Dispose(); - Gl = null!; - } - - private unsafe void PrepareOpenXR() - { - var binding = _game.IsGles ? _view.CreateOpenGLESBinding() : _view.CreateOpenGLBinding(); - var sessionCreateInfo = new SessionCreateInfo(systemId: _game.System.Id, next: &binding); - CheckResult(Xr.CreateSession(_game.Instance, in sessionCreateInfo, ref Session)); - - // Now, let's create the reference space that describes the real-world environment where the VR game is - // being played. - - // First we need to check what kinds of spaces we have. OpenXR (OOTB) has: - // - view, where the content doesn't take into any physical attributes such as eye orientation and - // physical location. could be useful for head-up-displays. - // - local, where the content knows about the user's eye orientation but not about their physical location. - // i'll refer to this as "seated-scale", as you're unlikely to move in a seat and this is what the spec - // calls it. - // - stage, where the content knows about both eye orientation and physical location. this can be used for - // "room-scale" and "standing-scale" content, where the user's physical movements affect the content. - var numRefSpaces = 0u; - CheckResult(Xr.EnumerateReferenceSpaces(Session, numRefSpaces, ref numRefSpaces, null)); - Span refSpaces = stackalloc ReferenceSpaceType[(int) numRefSpaces]; - CheckResult(Xr.EnumerateReferenceSpaces(Session, ref numRefSpaces, refSpaces)); - - var refSpaceCreateInfo = new ReferenceSpaceCreateInfo(); - foreach (var referenceSpaceType in refSpaces) - { - if (referenceSpaceType == ReferenceSpaceType.Stage) - { - refSpaceCreateInfo.ReferenceSpaceType = ReferenceSpaceType.Stage; - IsStage = true; - } - } - - if (!IsStage) - { - // use seated-scale instead. all OpenXR runtimes MUST support seated-scale content. - refSpaceCreateInfo.ReferenceSpaceType = ReferenceSpaceType.Local; - } - else - { - refSpaceCreateInfo.PoseInReferenceSpace = new(new(0, 0, 0, 1)); - } - - CheckResult(Xr.CreateReferenceSpace(Session, in refSpaceCreateInfo, ref ReferenceSpace)); - - // Next up, the swapchain. - // First and foremost, let's make sure OpenXR actually supports the pixel format we're going to be using in - // this example (GL_SRGB8_ALPHA8) - const long theFormat = (long) GLEnum.Rgba16; - var numFormats = 0u; - CheckResult(Xr.EnumerateSwapchainFormats(Session, numFormats, ref numFormats, null)); - var formats = numFormats * sizeof(long) > 256 ? new long[numFormats] : stackalloc long[(int) numFormats]; - CheckResult(Xr.EnumerateSwapchainFormats(Session, ref numFormats, formats)); - - var formatSupported = false; - - foreach (var format in formats) - { - if (format == theFormat) - { - formatSupported = true; - break; - } - } - - if (!formatSupported) - { - throw new($"OpenXR does not support the {(GLEnum) theFormat} pixel format ({theFormat})"); - } - - // Now that we know that the format we want to use is actually supported by OpenXR, we're ready to create - // our swapchain. - SwapchainCreateInfo = new - ( - usageFlags: SwapchainUsageFlags.SwapchainUsageTransferDstBit, - format: theFormat, - sampleCount: 1, arraySize: 1, faceCount: 1, mipCount: 1, - width: _game.System.RenderTargetSize.X, - height: _game.System.RenderTargetSize.Y - ); - - CheckResult(Xr.CreateSwapchain(Session, in SwapchainCreateInfo, ref Swapchain)); - - // Now we have to get the swapchain images. That is, the OpenGL texture handles which OpenXR creates itself. - var numImages = 0u; - CheckResult(Xr.EnumerateSwapchainImages(Swapchain, numImages, ref numImages, null)); - var images = numImages * sizeof(SwapchainImageOpenGLKHR) > 256 - ? new SwapchainImageOpenGLKHR[(int) numImages] - : stackalloc SwapchainImageOpenGLKHR[(int) numImages]; - CheckResult - ( - Xr.EnumerateSwapchainImages - ( - Swapchain, numImages, ref numImages, - ref Unsafe.As(ref images[0]) - ) - ); - - SwapchainImages = new uint[numImages]; - for (var i = 0; i < numImages; i++) - { - SwapchainImages[i] = images[i].Image; - } - } - - private void PrepareOpenGL() - { - // First create a depth renderbuffer compatible with the swapchain sample count and size - Framebuffers.Renderbuffer = Gl.GenRenderbuffer(); - Gl.BindRenderbuffer(GLEnum.Renderbuffer, Framebuffers.Renderbuffer); - if (SwapchainCreateInfo.SampleCount == 1) - { - Gl.RenderbufferStorage - ( - GLEnum.Renderbuffer, - GLEnum.Depth24Stencil8, - SwapchainCreateInfo.Width, SwapchainCreateInfo.Height - ); - } - else - { - Gl.RenderbufferStorageMultisample - ( - GLEnum.Renderbuffer, - SwapchainCreateInfo.SampleCount, - GLEnum.Depth24Stencil8, - SwapchainCreateInfo.Width, SwapchainCreateInfo.Height - ); - } - - // Now, create the actual framebuffer. - Framebuffers.Framebuffer = Gl.GenFramebuffer(); - Gl.BindFramebuffer(GLEnum.DrawFramebuffer, Framebuffers.Framebuffer); - - // Attach the depth renderbuffer to the framebuffer - Gl.FramebufferRenderbuffer - ( - GLEnum.DrawFramebuffer, - GLEnum.DepthStencilAttachment, - GLEnum.Renderbuffer, - Framebuffers.Renderbuffer - ); - - // Unbind the framebuffer and renderbuffer now we're done with them - Gl.BindFramebuffer(GLEnum.DrawFramebuffer, 0); - Gl.BindRenderbuffer(GLEnum.Renderbuffer, 0); - } - - public unsafe void ViewOnUpdate(double delta) - { - while (CheckResult(Xr.PollEvent(_game.Instance, ref EventData)) != Result.EventUnavailable) - { - switch (EventData.Type) - { - case StructureType.TypeEventDataInstanceLossPending: - { - Console.WriteLine("[INFO] Application: Instance loss pending, shutting down..."); - _view.Close(); - break; - } - - case StructureType.TypeEventDataSessionStateChanged: - { - ref var sessionStateChanged = ref Unsafe.As - ( - ref EventData - ); - - if (sessionStateChanged.Session.Handle != Session.Handle || Session.Handle is 0) - { - break; - } - - State = sessionStateChanged.State; - - // ReSharper disable once SwitchStatementMissingSomeEnumCasesNoDefault - switch (sessionStateChanged.State) - { - case SessionState.Ready: - { - if (!_view.IsClosing) - { - var sessionBeginInfo = new SessionBeginInfo - ( - primaryViewConfigurationType: ViewConfigurationType.PrimaryStereo - ); - - CheckResult(Xr.BeginSession(Session, in sessionBeginInfo)); - Console.WriteLine("[INFO] Application: Session ready!"); - } - - break; - } - case SessionState.Stopping: - { - Console.WriteLine("[INFO] Application: OpenXR is stopping, ending session..."); - Xr.EndSession(Session); - _view.Close(); - break; - } - case SessionState.LossPending: - { - // NB: A loss of the session doesn't necessarily mean it's game over, you can recreate - // the session but I've left it out for this demo. As I understand it, this might - // happen if a wired VR headset were to accidentally become unplugged, for example. - Console.WriteLine("[INFO] Application: Session loss pending, shutting down..."); - Xr.DestroySession(Session); - Session = default; - _view.Close(); - break; - } - case SessionState.Exiting: - { - Console.WriteLine("[INFO] Application: OpenXR is exiting..."); - _view.Close(); - break; - } - } - - break; - } - } - - // reset the event data to eliminate potential for strange behaviour when passing it back to OpenXR - EventData = default; - } - - if (_view.IsClosing || Session.Handle is 0) - { - return; - } - - Update?.Invoke(delta); - } - - private void ViewOnRender(double delta) - { - if (_view.IsClosing) - { - return; - } - - if (TryStartFrame(out var frameState)) - { - UpdateViews(in frameState); - if ((Bool32) frameState.ShouldRender) - { - DoRender(delta); - _view.SwapBuffers(); - } - - EndFrame(in frameState); - } - } - - private unsafe void DoRender(double delta) - { - // Get the swapchain image - var swapchainIndex = 0u; - var acquireInfo = new SwapchainImageAcquireInfo(); - CheckResult(Xr.AcquireSwapchainImage(Swapchain, in acquireInfo, ref swapchainIndex)); - - var waitInfo = new SwapchainImageWaitInfo(timeout: long.MaxValue); - CheckResult(Xr.WaitSwapchainImage(Swapchain, in waitInfo)); - - // Bind the framebuffer we created earlier, using the acquired image as the texture to render the - // framebuffer into. - Gl.BindFramebuffer(GLEnum.Framebuffer, Framebuffers.Framebuffer); - Gl.FramebufferTexture(GLEnum.Framebuffer, GLEnum.ColorAttachment0, SwapchainImages[swapchainIndex], 0); - - // Render each eye - Gl.Enable(GLEnum.ScissorTest); - for (var eye = 0; eye < 2; eye++) - { - // Set the scissor rectangle to the appropriate half of the image - Gl.Scissor - ( - (int)(_game.System.RenderTargetSize.X / 2) * eye, 0, - _game.System.RenderTargetSize.X / 2, _game.System.RenderTargetSize.Y - ); - - Gl.Viewport - ( - (int)(_game.System.RenderTargetSize.X / 2) * eye, 0, - _game.System.RenderTargetSize.X / 2, _game.System.RenderTargetSize.Y - ); - - Render?.Invoke(eye, delta); - } - - // Quickly blit the swapchain image/texture to the window's framebuffer - Gl.Disable(GLEnum.ScissorTest); - Gl.BindFramebuffer(GLEnum.DrawFramebuffer, 0); - Gl.BlitFramebuffer - ( - 0, 0, - (int) _game.System.RenderTargetSize.X, (int) _game.System.RenderTargetSize.Y, - 0, 0, - _view.Size.X, _view.Size.Y, - ClearBufferMask.ColorBufferBit, - GLEnum.Nearest - ); - - // Release the swapchain image - var releaseInfo = new SwapchainImageReleaseInfo(); - CheckResult(Xr.ReleaseSwapchainImage(Swapchain, in releaseInfo)); - } - - private bool TryStartFrame(out FrameState frameState) - { - frameState = new FrameState(); - var done = State switch - { - SessionState.Ready => WaitFrame(ref frameState), - SessionState.Focused => WaitFrame(ref frameState), - SessionState.Synchronized => WaitFrame(ref frameState), - SessionState.Visible => WaitFrame(ref frameState), - _ => false - }; - - if (done) - { - var beginInfo = new FrameBeginInfo(); - CheckResult(Xr.BeginFrame(Session, in beginInfo)); - } - - return done; - } - - private unsafe bool WaitFrame(ref FrameState frameState) - { - return Xr.WaitFrame(Session, null, ref frameState) == Result.Success; - } - - private unsafe void UpdateViews(in FrameState frameState) - { - var viewState = new ViewState(); - var viewLocateInfo = new ViewLocateInfo - ( - viewConfigurationType: ViewConfigurationType.PrimaryStereo, - displayTime: frameState.PredictedDisplayTime, - space: ReferenceSpace - ); - - var eyeViewStateCount = 0u; - CheckResult - ( - Xr.LocateView(Session, in viewLocateInfo, ref viewState, eyeViewStateCount, ref eyeViewStateCount, null) - ); - - if (ViewStates.Length != eyeViewStateCount) - { - ViewStates = new View[eyeViewStateCount]; - } - - CheckResult(Xr.LocateView(Session, in viewLocateInfo, ref viewState, ref eyeViewStateCount, ViewStates)); - - for (var eye = 0; eye < 2; eye++) - { - var view = ViewStates[eye]; - Projections[eye] = view.Fov.ToProjection(); - RawViews[eye] = view.Pose; - } - } - - private unsafe void EndFrame(in FrameState frameState) - { - var frameEndInfo = new FrameEndInfo - ( - displayTime: frameState.PredictedDisplayTime, - environmentBlendMode: EnvironmentBlendMode.Opaque - ); - - if ((Bool32) frameState.ShouldRender) - { - var projectionLayerViews = stackalloc CompositionLayerProjectionView[2]; - var projectionLayer = new CompositionLayerProjection - ( - viewCount:2, - views:projectionLayerViews, - space:ReferenceSpace - ); - - var layerPointer = (CompositionLayerBaseHeader*) &projectionLayer; - for (var eye = 0; eye < 2; eye++) - { - ref var layerView = ref projectionLayerViews[eye]; - layerView.SubImage.Swapchain = Swapchain; - layerView.SubImage.ImageRect.Extent = new - ( - (int) _game.System.RenderTargetSize.X / 2, - (int) _game.System.RenderTargetSize.Y - ); - - layerView.SubImage.ImageRect.Offset.X = (int)(_game.System.RenderTargetSize.X / 2) * eye; - layerView.Fov = ViewStates[eye].Fov; - layerView.Pose = ViewStates[eye].Pose; - Debug.WriteLine($"FOV: {Unsafe.As(ref layerView.Fov)}"); - Debug.WriteLine($"Pose Pos: {Unsafe.As(ref layerView.Pose.Position)}"); - Debug.WriteLine($"Pose Orientation: {Unsafe.As(ref layerView.Pose.Orientation)}"); - } - - frameEndInfo.LayerCount = 1; - frameEndInfo.Layers = &layerPointer; - } - - CheckResult(Xr.EndFrame(Session, in frameEndInfo)); - } - - public void Run() => _view.Run(); - - private void ReleaseUnmanagedResources() - { - if (_unmanagedResourcesFreed) - { - return; - } - - CheckResult(Xr.DestroySwapchain(Swapchain)); - CheckResult(Xr.DestroySpace(ReferenceSpace)); - CheckResult(Xr.DestroySession(Session)); - - Gl.DeleteFramebuffer(Framebuffers.Framebuffer); - Gl.DeleteRenderbuffer(Framebuffers.Renderbuffer); - - _unmanagedResourcesFreed = true; - } - - private void Dispose(bool disposing) - { - ReleaseUnmanagedResources(); - if (disposing) - { - _view.Dispose(); - Gl.Dispose(); - } - } - - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - ~Renderer() - { - Dispose(false); - } - } -} diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/System.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/System.cs deleted file mode 100644 index 93a3d54af6..0000000000 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/System.cs +++ /dev/null @@ -1,113 +0,0 @@ -// 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 Silk.NET.Core.Native; -using Silk.NET.Maths; -using Silk.NET.OpenXR; -using static OpenGL_VR_Demo.OpenXR.OpenGLXRGame; - -namespace OpenGL_VR_Demo.OpenXR -{ - /// - /// An abstraction over an OpenXR system. - /// - public class System - { - // Variables - private readonly OpenGLXRGame _game; // keep a reference to our game, it probably has some APIs we want. - private readonly XR _xr; // ease-of-access variable for our XR API - private readonly SystemProperties _props; // cache this system's properties. - - // Properties - /// The System ID. - public ulong Id { get; init; } - - /// The System Name, marshalled from the Name property in the SystemProperties struct. - public unsafe string Name - => SilkMarshal.PtrToString((nint) Unsafe.AsPointer(ref Unsafe.AsRef(in _props.SystemName[0])))!; - - /// The maximum width of swapchain images for this system - public uint MaxSwapchainImageWidth => _props.GraphicsProperties.MaxSwapchainImageWidth; - - /// The maximum width of swapchain images for this system - public uint MaxSwapchainImageHeight => _props.GraphicsProperties.MaxSwapchainImageHeight; - - /// The maximum number of layers in swapchain images for this system - public uint MaxLayerCount => _props.GraphicsProperties.MaxLayerCount; - - /// A for each eye on the HMD system. - public ViewConfigurationView[] ViewConfigs { get; init; } - - /// The size of the render target. This render target encapsulates both eyes. - public Vector2D RenderTargetSize { get; init; } - - public unsafe System(OpenGLXRGame game, ulong id) - { - _game = game; - _xr = game.Xr; - Id = id; - - CheckResult(_xr.GetSystemProperties(_game.Instance, Id, ref _props)); - - // Log some stuff about the system we've selected for our benefit - Console.WriteLine($"[INFO] Application: Using OpenXR System with ID {Id}."); - Console.WriteLine($" Name: {Name}"); - Console.WriteLine($" Max Swapchain Image Size: {MaxSwapchainImageWidth}x{MaxSwapchainImageHeight}"); - Console.WriteLine($" Max Swapchain Image Layers: {MaxLayerCount}"); - - // Get the ViewConfigurationViews - these tell us about the images we should create for the eyes in the - // headset. - var viewConfigCount = 0u; - CheckResult - ( - // First, get the number of configurations. - _xr.EnumerateViewConfigurationView - ( - _game.Instance, Id, ViewConfigurationType.PrimaryStereo, viewConfigCount, ref viewConfigCount, null - ) - ); - - // Last time I checked humans only have 2 eyes, and I don't feel like making an example for spiders today. - if (viewConfigCount != 2) - { - throw new($"Unexpected number of eyes (got {viewConfigCount})"); - } - - ViewConfigs = new ViewConfigurationView[viewConfigCount]; // make an appropriately-sized array - CheckResult - ( - _xr.EnumerateViewConfigurationView - ( - _game.Instance, Id, ViewConfigurationType.PrimaryStereo, ref viewConfigCount, ViewConfigs - ) - ); - - var recommended = $"{ViewConfigs[0].RecommendedImageRectWidth}x{ViewConfigs[0].RecommendedImageRectHeight}"; - var max = $"{ViewConfigs[0].MaxImageRectWidth}x{ViewConfigs[0].MaxImageRectHeight}"; - - // More sanity checking, making sure each eye has the same recommended/max resolution. - if (ViewConfigs[0].RecommendedImageRectWidth != ViewConfigs[1].RecommendedImageRectWidth || - ViewConfigs[0].RecommendedImageRectHeight != ViewConfigs[1].RecommendedImageRectHeight || - ViewConfigs[0].MaxImageRectWidth != ViewConfigs[1].MaxImageRectWidth || - ViewConfigs[0].MaxImageRectHeight != ViewConfigs[1].MaxImageRectHeight) - { - throw new - ( - "Per-eye images have different max or recommended dimensions!\n"+ - $"Eye 0: recommended {recommended} max {max}\n" + - "Eye 1: recommended " + - $"{ViewConfigs[1].RecommendedImageRectWidth}x{ViewConfigs[1].RecommendedImageRectHeight}" + - "max " + - $"{ViewConfigs[1].MaxImageRectWidth}x{ViewConfigs[1].MaxImageRectHeight}" - ); - } - - Console.WriteLine($"[INFO] Application: Using recommended per-eye resolution {recommended} (max {max})"); - - // Instead of creating a swapchain per-eye, we create a single swapchain of double width. - RenderTargetSize = new(ViewConfigs[0].RecommendedImageRectWidth, ViewConfigs[0].RecommendedImageRectHeight); - } - } -} diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Utilities.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Utilities.cs deleted file mode 100644 index 91c00de6cc..0000000000 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/OpenXR/Utilities.cs +++ /dev/null @@ -1,102 +0,0 @@ -// 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.Numerics; -using System.Runtime.CompilerServices; -using Silk.NET.OpenXR; - -namespace OpenGL_VR_Demo.OpenXR -{ - public static class Utilities - { - public const float DefaultNearZ = 0.01f; - public const float DefaultFarZ = 100.0f; - public const float DefaultOffset = 0f; - - public static Matrix4x4 ToView(this Posef pose, Vector3 offset = default) - => Matrix4x4.Identity - * Matrix4x4.CreateTranslation(Unsafe.As(ref pose.Position) + offset) - * Matrix4x4.CreateFromQuaternion(Unsafe.As(ref pose.Orientation)); - - public static Matrix4x4 - ToProjection - ( - this Fovf fov, - bool isGlSpace = true, - float nearZ = DefaultNearZ, - float farZ = DefaultFarZ - ) - { - Matrix4x4 result = default; - - var tanAngleLeft = MathF.Tan(fov.AngleLeft); - var tanAngleRight = MathF.Tan(fov.AngleRight); - - var tanAngleDown = MathF.Tan(fov.AngleDown); - var tanAngleUp = MathF.Tan(fov.AngleUp); - - var tanAngleWidth = tanAngleRight - tanAngleLeft; - var angleWidth = fov.AngleRight - fov.AngleLeft; - var angleHeight = !isGlSpace ? fov.AngleDown - fov.AngleUp : fov.AngleUp - fov.AngleDown; - - // Set to tanAngleDown - tanAngleUp for a clip space with positive Y - // down (Vulkan). Set to tanAngleUp - tanAngleDown for a clip space with - // positive Y up (OpenGL / D3D / Metal). - var tanAngleHeight = !isGlSpace ? tanAngleDown - tanAngleUp : tanAngleUp - tanAngleDown; - - // Set to nearZ for a [-1,1] Z clip space (OpenGL / OpenGL ES). - // Set to zero for a [0,1] Z clip space (Vulkan / D3D / Metal). - var offsetZ = isGlSpace ? nearZ : 0; - - if (farZ <= nearZ) - { - // place the far plane at infinity - result.M11 = 2 / tanAngleWidth; - result.M21 = 0; - result.M31 = (tanAngleRight + tanAngleLeft) / tanAngleWidth; - result.M41 = 0; - - result.M12 = 0; - result.M22 = 2 / tanAngleHeight; - result.M32 = (tanAngleUp + tanAngleDown) / tanAngleHeight; - result.M42 = 0; - - result.M13 = 0; - result.M23 = 0; - result.M33 = -1; - result.M43 = -(nearZ + offsetZ); - - result.M14 = 0; - result.M24 = 0; - result.M34 = -1; - result.M44 = 0; - } - else - { - // normal projection - result.M11 = 2 / tanAngleWidth; - result.M21 = 0; - result.M31 = (tanAngleRight + tanAngleLeft) / tanAngleWidth; - result.M41 = 0; - - result.M12 = 0; - result.M22 = 2 / tanAngleHeight; - result.M32 = (tanAngleUp + tanAngleDown) / tanAngleHeight; - result.M42 = 0; - - result.M13 = 0; - result.M23 = 0; - result.M33 = -(farZ + offsetZ) / (farZ - nearZ); - result.M43 = -(farZ * (nearZ + offsetZ)) / (farZ - nearZ); - - result.M14 = 0; - result.M24 = 0; - result.M34 = -1; - result.M44 = 0; - } - - return Matrix4x4.Transpose(result); - } - } -} diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Program.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Program.cs deleted file mode 100644 index a7ade355de..0000000000 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Program.cs +++ /dev/null @@ -1,9 +0,0 @@ -using System; - -namespace OpenGL_VR_Demo -{ - class Program - { - static void Main(string[] args) => new Game().Run(); - } -} diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Shader.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Shader.cs deleted file mode 100644 index 3a8d9b8e8f..0000000000 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Shader.cs +++ /dev/null @@ -1,100 +0,0 @@ -using System; -using System.IO; -using System.Numerics; -using Silk.NET.OpenGL; - -namespace OpenGL_VR_Demo -{ - public class Shader : IDisposable - { - private uint _handle; - private GL _gl; - - public Shader(GL gl, string vertexPath, string fragmentPath) - { - _gl = gl; - - uint vertex = LoadShader(ShaderType.VertexShader, vertexPath); - uint fragment = LoadShader(ShaderType.FragmentShader, fragmentPath); - _handle = _gl.CreateProgram(); - _gl.AttachShader(_handle, vertex); - _gl.AttachShader(_handle, fragment); - _gl.LinkProgram(_handle); - _gl.GetProgram(_handle, GLEnum.LinkStatus, out var status); - if (status == 0) - { - throw new($"Program failed to link with error: {_gl.GetProgramInfoLog(_handle)}"); - } - _gl.DetachShader(_handle, vertex); - _gl.DetachShader(_handle, fragment); - _gl.DeleteShader(vertex); - _gl.DeleteShader(fragment); - } - - public void Use() - { - _gl.UseProgram(_handle); - } - - public void SetUniform(string name, int value) - { - int location = _gl.GetUniformLocation(_handle, name); - if (location == -1) - { - throw new($"{name} uniform not found on shader."); - } - _gl.Uniform1(location, value); - } - - public unsafe void SetUniform(string name, Matrix4x4 value) - { - //A new overload has been created for setting a uniform so we can use the transform in our shader. - int location = _gl.GetUniformLocation(_handle, name); - if (location == -1) - { - throw new($"{name} uniform not found on shader."); - } - _gl.UniformMatrix4(location, 1, false, (float*) &value); - } - - public void SetUniform(string name, float value) - { - int location = _gl.GetUniformLocation(_handle, name); - if (location == -1) - { - throw new($"{name} uniform not found on shader."); - } - _gl.Uniform1(location, value); - } - - public void SetUniform(string name, Vector3 value) - { - int location = _gl.GetUniformLocation(_handle, name); - if (location == -1) - { - throw new($"{name} uniform not found on shader."); - } - _gl.Uniform3(location, value.X, value.Y, value.Z); - } - - public void Dispose() - { - _gl.DeleteProgram(_handle); - } - - private uint LoadShader(ShaderType type, string path) - { - string src = File.ReadAllText(path); - uint handle = _gl.CreateShader(type); - _gl.ShaderSource(handle, src); - _gl.CompileShader(handle); - string infoLog = _gl.GetShaderInfoLog(handle); - if (!string.IsNullOrWhiteSpace(infoLog)) - { - throw new($"Error compiling shader of type {type}, failed with error {infoLog}"); - } - - return handle; - } - } -} diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Texture.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Texture.cs deleted file mode 100644 index fbb5705562..0000000000 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Texture.cs +++ /dev/null @@ -1,62 +0,0 @@ -using System; -using System.Runtime.InteropServices; -using Silk.NET.OpenGL; -using SixLabors.ImageSharp; -using SixLabors.ImageSharp.PixelFormats; -using SixLabors.ImageSharp.Processing; - -namespace OpenGL_VR_Demo -{ - public class Texture : IDisposable - { - private uint _handle; - private GL _gl; - - public unsafe Texture(GL gl, string path) - { - Image img = (Image) Image.Load(path); - img.Mutate(x => x.Flip(FlipMode.Vertical)); - - fixed (void* data = &MemoryMarshal.GetReference(img.GetPixelRowSpan(0))) - { - Load(gl, data, (uint) img.Width, (uint) img.Height); - } - - img.Dispose(); - } - - public unsafe Texture(GL gl, Span data, uint width, uint height) - { - fixed (void* d = &data[0]) - { - Load(gl, d, width, height); - } - } - - private unsafe void Load(GL gl, void* data, uint width, uint height) - { - _gl = gl; - - _handle = _gl.GenTexture(); - Bind(); - - _gl.TexImage2D(TextureTarget.Texture2D, 0, (int) InternalFormat.Rgba, width, height, 0, PixelFormat.Rgba, PixelType.UnsignedByte, data); - _gl.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, (int) GLEnum.ClampToEdge); - _gl.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapT, (int) GLEnum.ClampToEdge); - _gl.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int) GLEnum.Linear); - _gl.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int) GLEnum.Linear); - _gl.GenerateMipmap(TextureTarget.Texture2D); - } - - public void Bind(TextureUnit textureSlot = TextureUnit.Texture0) - { - _gl.ActiveTexture(textureSlot); - _gl.BindTexture(TextureTarget.Texture2D, _handle); - } - - public void Dispose() - { - _gl.DeleteTexture(_handle); - } - } -} diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Transform.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Transform.cs deleted file mode 100644 index 4698f5128d..0000000000 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/Transform.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Numerics; - -namespace OpenGL_VR_Demo -{ - public class Transform - { - //A transform abstraction. - //For a transform we need to have a position, a scale, and a rotation, - //depending on what application you are creating, the type for these may vary. - - //Here we have chosen a vec3 for position, float for scale and quaternion for rotation, - //as that is the most normal to go with. - //Another example could have been vec3, vec3, vec4, so the rotation is an axis angle instead of a quaternion - - public Vector3 Position { get; set; } = new(0, 0, 0); - - public float Scale { get; set; } = 1f; - - public Quaternion Rotation { get; set; } = Quaternion.Identity; - - //Note: The order here does matter. - public Matrix4x4 ViewMatrix => Matrix4x4.Identity * Matrix4x4.CreateFromQuaternion(Rotation) * Matrix4x4.CreateScale(Scale) * Matrix4x4.CreateTranslation(Position); - } -} diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/VertexArrayObject.cs b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/VertexArrayObject.cs deleted file mode 100644 index 0426803f2e..0000000000 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/VertexArrayObject.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System; -using Silk.NET.OpenGL; - -namespace OpenGL_VR_Demo -{ - public class VertexArrayObject : IDisposable - where TVertexType : unmanaged - where TIndexType : unmanaged - { - private uint _handle; - private GL _gl; - - public VertexArrayObject(GL gl, BufferObject vbo, BufferObject ebo) - { - _gl = gl; - - _handle = _gl.GenVertexArray(); - Bind(); - vbo.Bind(); - ebo.Bind(); - } - - public unsafe void VertexAttributePointer(uint index, int count, VertexAttribPointerType type, uint vertexSize, int offSet) - { - _gl.VertexAttribPointer(index, count, type, false, vertexSize * (uint) sizeof(TVertexType), (void*) (offSet * sizeof(TVertexType))); - _gl.EnableVertexAttribArray(index); - } - - public void Bind() - { - _gl.BindVertexArray(_handle); - } - - public void Dispose() - { - _gl.DeleteVertexArray(_handle); - } - } -} diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/cubes.frag b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/cubes.frag deleted file mode 100644 index 99ae71c89a..0000000000 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/cubes.frag +++ /dev/null @@ -1,10 +0,0 @@ -#version 330 core -#extension GL_ARB_explicit_uniform_location : require -layout(location = 0) out vec4 FragColor; -layout(location = 1) uniform vec3 uniformColor; -in vec2 vertexColor; -void main() { - FragColor = (uniformColor.x < 0.01 && uniformColor.y < 0.01 && uniformColor.z < 0.01) - ? vec4(vertexColor, 1.0, 1.0) - : vec4(uniformColor, 1.0); -} diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/cubes.vert b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/cubes.vert deleted file mode 100644 index 06bc52c9a0..0000000000 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/cubes.vert +++ /dev/null @@ -1,12 +0,0 @@ -#version 330 core -#extension GL_ARB_explicit_uniform_location : require -layout(location = 0) in vec3 aPos; -layout(location = 2) uniform mat4 model; -layout(location = 3) uniform mat4 view; -layout(location = 4) uniform mat4 proj; -layout(location = 5) in vec2 aColor; -out vec2 vertexColor; -void main() { - gl_Position = proj * view * model * vec4(aPos.x, aPos.y, aPos.z, 1.0); - vertexColor = aColor; -} diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/lighting.frag b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/lighting.frag deleted file mode 100644 index 142db17569..0000000000 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/lighting.frag +++ /dev/null @@ -1,32 +0,0 @@ -#version 330 core -in vec3 fNormal; -in vec3 fPos; - -uniform vec3 objectColor; -uniform vec3 lightColor; -uniform vec3 lightPos; -uniform vec3 viewPos; - -out vec4 FragColor; - -void main() -{ - float ambientStrength = 0.1; - vec3 ambient = ambientStrength * lightColor; - - vec3 norm = normalize(fNormal); - vec3 lightDirection = normalize(lightPos - fPos); - float diff = max(dot(norm, lightDirection), 0.0); - vec3 diffuse = diff * lightColor; - - float specularStrength = 0.5; - vec3 viewDirection = normalize(viewPos - fPos); - vec3 reflectDirection = reflect(-lightDirection, norm); - float spec = pow(max(dot(viewDirection, reflectDirection), 0.0), 32); - vec3 specular = specularStrength * spec * lightColor; - - //The resulting colour should be the amount of ambient colour + the amount of additional colour provided by the diffuse of the lamp + the specular amount - vec3 result = (ambient + diffuse + specular) * objectColor; - - FragColor = vec4(result, 1.0); -} \ No newline at end of file diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/shader.frag b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/shader.frag deleted file mode 100644 index 0b99ca4e99..0000000000 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/shader.frag +++ /dev/null @@ -1,7 +0,0 @@ -#version 330 core -out vec4 FragColor; - -void main() -{ - FragColor = vec4(1.0f); -} \ No newline at end of file diff --git a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/shader.vert b/examples/CSharp/OpenGL Demos/OpenGL VR Demo/shader.vert deleted file mode 100644 index e4b768c39b..0000000000 --- a/examples/CSharp/OpenGL Demos/OpenGL VR Demo/shader.vert +++ /dev/null @@ -1,20 +0,0 @@ -#version 330 core -layout (location = 0) in vec3 vPos; -layout (location = 1) in vec3 vNormal; - -uniform mat4 uModel; -uniform mat4 uView; -uniform mat4 uProjection; - -out vec3 fNormal; -out vec3 fPos; - -void main() -{ - //Multiplying our uniform with the vertex position, the multiplication order here does matter. - gl_Position = uProjection * uView * uModel * vec4(vPos, 1.0); - //We want to know the fragment's position in World space, so we multiply ONLY by uModel and not uView or uProjection - fPos = vec3(uModel * vec4(vPos, 1.0)); - //The Normal needs to be in World space too, but needs to account for Scaling of the object - fNormal = mat3(transpose(inverse(uModel))) * vPos; -} \ No newline at end of file diff --git a/src/Core/Silk.NET.Core/Native/SilkMarshal.cs b/src/Core/Silk.NET.Core/Native/SilkMarshal.cs index cda5c4ab41..6354ac0fd4 100644 --- a/src/Core/Silk.NET.Core/Native/SilkMarshal.cs +++ b/src/Core/Silk.NET.Core/Native/SilkMarshal.cs @@ -314,6 +314,33 @@ 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. + /// + /// Whether to pin the span such that pointers taken from it are not subject to GC movement. + /// + /// The encoding of the string in memory. + /// The string read from memory. + public static unsafe string SpanToString + ( + Span input, + bool pin = false, + NativeStringEncoding e = NativeStringEncoding.Ansi + ) + { + if (pin) // "should" be optimized away if constant + { + fixed (byte* ptr = input) + { + return PtrToString((nint) ptr, e)!; + } + } + + return PtrToString((nint) Unsafe.AsPointer(ref input.GetPinnableReference()), e)!; + } + #nullable disable /// From 058a9e62fc41408f6515edae68351c422717fa5b Mon Sep 17 00:00:00 2001 From: Dylan Perks Date: Sun, 6 Jun 2021 20:50:07 +0100 Subject: [PATCH 07/11] Stop us forgetting to ship bindings! --- .github/workflows/build.yml | 2 ++ build/nuke/Build.cs | 52 +++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) 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/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(() => From 3901264628785d8f74da32fcd2100ded87c83c2b Mon Sep 17 00:00:00 2001 From: Dylan Perks Date: Sun, 6 Jun 2021 21:23:01 +0100 Subject: [PATCH 08/11] Add missing bindings to SLN and missing typemaps, update changelog --- Silk.NET.sln | 150 ++++++++++++++++++ build/cache/cl.json.gz | Bin 103693 -> 103693 bytes build/props/common.props | 33 ++-- generator.json | 4 +- .../Silk.NET.Maths/PublicAPI.Shipped.txt | 32 +++- .../Silk.NET.Maths/PublicAPI.Unshipped.txt | 32 +--- .../LoaderLayers.gen.cs | 24 +-- .../LoaderLayersOverloads.gen.cs | 18 +-- 8 files changed, 222 insertions(+), 71 deletions(-) diff --git a/Silk.NET.sln b/Silk.NET.sln index e670a4686a..529cb2be3c 100644 --- a/Silk.NET.sln +++ b/Silk.NET.sln @@ -422,6 +422,26 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.OpenXR.Extensions. 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 Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -2507,6 +2527,126 @@ Global {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 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -2699,6 +2839,16 @@ Global {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} 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 12c4e2887d92de39fd2acd67636a2d7c00d31968..ea0a6d80c91bdca7c876b70eb36009128557d438 100644 GIT binary patch delta 8692 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 diff --git a/build/props/common.props b/build/props/common.props index 6b2d89e184..384ac569b1 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.169 + - 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 &amp; 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 a83f5d4578..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" 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 e69be7547c..815c92006a 100644 --- a/src/Maths/Silk.NET.Maths/PublicAPI.Unshipped.txt +++ b/src/Maths/Silk.NET.Maths/PublicAPI.Unshipped.txt @@ -1,31 +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 -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 +#nullable enable \ No newline at end of file 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); From 62b77ba9c2b949b12991f7a8a47165c4a9026ade Mon Sep 17 00:00:00 2001 From: Dylan Perks <11160611+Perksey@users.noreply.github.com> Date: Mon, 7 Jun 2021 20:57:40 +0100 Subject: [PATCH 09/11] Update src/Core/Silk.NET.Core/Native/SilkMarshal.cs Co-authored-by: Kai Jellinghaus --- src/Core/Silk.NET.Core/Native/SilkMarshal.cs | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/src/Core/Silk.NET.Core/Native/SilkMarshal.cs b/src/Core/Silk.NET.Core/Native/SilkMarshal.cs index 6354ac0fd4..ef5c7a6007 100644 --- a/src/Core/Silk.NET.Core/Native/SilkMarshal.cs +++ b/src/Core/Silk.NET.Core/Native/SilkMarshal.cs @@ -318,27 +318,18 @@ public static string MemoryToString(GlobalMemory input, NativeStringEncoding e = /// Reads a null-terminated string from the given span, with the given native encoding. /// /// A span containing a null-terminated string. - /// - /// Whether to pin the span such that pointers taken from it are not subject to GC movement. - /// - /// The encoding of the string in memory. + /// The encoding of the string in memory. /// The string read from memory. public static unsafe string SpanToString ( Span input, - bool pin = false, - NativeStringEncoding e = NativeStringEncoding.Ansi + NativeStringEncoding encoding = NativeStringEncoding.Ansi ) { - if (pin) // "should" be optimized away if constant + fixed (byte* ptr = input) { - fixed (byte* ptr = input) - { - return PtrToString((nint) ptr, e)!; - } + return PtrToString((nint) ptr, encoding)!; } - - return PtrToString((nint) Unsafe.AsPointer(ref input.GetPinnableReference()), e)!; } #nullable disable @@ -860,4 +851,4 @@ public static unsafe uint WaitWindowsObjects public static ref T NullRef() => ref Unsafe.NullRef(); #endif } -} \ No newline at end of file +} From 6f3cc3470f9da17e95bdf44475494c8000498d74 Mon Sep 17 00:00:00 2001 From: Dylan Perks Date: Mon, 7 Jun 2021 21:46:03 +0100 Subject: [PATCH 10/11] Bindings updates, fix release notes --- build/cache/vulkan.json.gz | Bin 212279 -> 213146 bytes build/props/common.props | 4 +- .../Converters/Khronos/VulkanSpecification.cs | 29 +++-- .../Silk.NET.Vulkan.Extensions.FB.csproj | 14 +++ .../DescriptorSetLayoutCreateFlags.gen.cs | 2 + .../Enums/PipelineCreateFlags.gen.cs | 8 ++ .../Enums/StructureType.gen.cs | 6 + .../Enums/ValidationFeatureDisableEXT.gen.cs | 2 + ...eviceGlobalPriorityQueryFeaturesEXT.gen.cs | 61 ++++++++++ ...bgroupUniformControlFlowFeaturesKHR.gen.cs | 61 ++++++++++ ...ueFamilyGlobalPriorityPropertiesEXT.gen.cs | 107 ++++++++++++++++++ src/Vulkan/Silk.NET.Vulkan/Vk.gen.cs | 3 + 12 files changed, 286 insertions(+), 11 deletions(-) create mode 100644 src/Vulkan/Extensions/Silk.NET.Vulkan.Extensions.FB/Silk.NET.Vulkan.Extensions.FB.csproj create mode 100644 src/Vulkan/Silk.NET.Vulkan/Structs/PhysicalDeviceGlobalPriorityQueryFeaturesEXT.gen.cs create mode 100644 src/Vulkan/Silk.NET.Vulkan/Structs/PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR.gen.cs create mode 100644 src/Vulkan/Silk.NET.Vulkan/Structs/QueueFamilyGlobalPriorityPropertiesEXT.gen.cs diff --git a/build/cache/vulkan.json.gz b/build/cache/vulkan.json.gz index 92235648248e5981d4c41ae48f1f7a6d6ef7fbb8..f6916418787043c4f5110977562df8ca15b82057 100644 GIT binary patch delta 204830 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 L_1-PI=neP}pzdgL delta 203682 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

+ [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", "")] From f3ed3877cb32f4c8ac6d13a87a679710352210f0 Mon Sep 17 00:00:00 2001 From: Dylan Perks <11160611+Perksey@users.noreply.github.com> Date: Tue, 8 Jun 2021 13:32:28 +0100 Subject: [PATCH 11/11] Update Silk.NET.sln --- Silk.NET.sln | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/Silk.NET.sln b/Silk.NET.sln index 529cb2be3c..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 @@ -442,6 +442,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.Vulkan.Extensions. 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 @@ -2647,6 +2649,18 @@ Global {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 @@ -2849,6 +2863,7 @@ Global {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}

udQWuZhcc#tjX7txG5cUKSvm2(BY8ENfBN1 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 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 diff --git a/src/Core/Silk.NET.BuildTools/Converters/Khronos/VulkanSpecification.cs b/src/Core/Silk.NET.BuildTools/Converters/Khronos/VulkanSpecification.cs index 4ad29e0767..f5d620d23a 100644 --- a/src/Core/Silk.NET.BuildTools/Converters/Khronos/VulkanSpecification.cs +++ b/src/Core/Silk.NET.BuildTools/Converters/Khronos/VulkanSpecification.cs @@ -33,16 +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); - MixinEnumTypeFixups(Enums, Typedefs); + + var wipEnums = enums.ToList(); + AddExtensionEnums(wipEnums, Extensions); + AddExtensionEnums(wipEnums, Features); + MixinEnumTypeFixups(wipEnums, Typedefs); + + Enums = enums.ToArray(); } public static VulkanSpecification LoadFromXmlStream(Stream specFileStream) @@ -115,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) { @@ -133,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) { @@ -146,7 +149,7 @@ private void AddExtensionEnums(EnumDefinition[] enums, FeatureDefinition[] exten } } - private void MixinEnumTypeFixups(EnumDefinition[] enums, TypedefDefinition[] typedefs) + private void MixinEnumTypeFixups(List enums, TypedefDefinition[] typedefs) { foreach (var typedefDefinition in typedefs) { @@ -170,9 +173,17 @@ private void MixinEnumTypeFixups(EnumDefinition[] enums, TypedefDefinition[] typ } } - 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/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/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/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/StructureType.gen.cs b/src/Vulkan/Silk.NET.Vulkan/Enums/StructureType.gen.cs index db3a93f298..194e34f7fe 100644 --- a/src/Vulkan/Silk.NET.Vulkan/Enums/StructureType.gen.cs +++ b/src/Vulkan/Silk.NET.Vulkan/Enums/StructureType.gen.cs @@ -1036,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")] @@ -1110,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/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; + } + } + +///