diff --git a/Directory.Packages.props b/Directory.Packages.props
index de0b8f8952..a1a306a93a 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -44,4 +44,4 @@
-
\ No newline at end of file
+
diff --git a/Silk.NET.sln b/Silk.NET.sln
index 7c83ca6760..ce4449c1aa 100644
--- a/Silk.NET.sln
+++ b/Silk.NET.sln
@@ -1,7 +1,6 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.28922.388
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.12.35527.113
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{60A10DB9-C4D6-48CD-8982-7F02345D7ADF}"
ProjectSection(SolutionItems) = preProject
@@ -10,19 +9,19 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
.gitignore = .gitignore
Directory.Build.props = Directory.Build.props
Directory.Build.targets = Directory.Build.targets
- LICENSE.md = LICENSE.md
+ Directory.Packages.props = Directory.Packages.props
generator.json = generator.json
+ LICENSE.md = LICENSE.md
Silk.NET.sln.DotSettings = Silk.NET.sln.DotSettings
- Directory.Packages.props = Directory.Packages.props
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{9DB0EA3E-7216-4F9C-98F5-8A7483E9F083}"
ProjectSection(SolutionItems) = preProject
- docs\CODE_OF_CONDUCT.md = docs\CODE_OF_CONDUCT.md
+ docs\CHANGELOG.md = docs\CHANGELOG.md
docs\CODEOWNERS = docs\CODEOWNERS
+ docs\CODE_OF_CONDUCT.md = docs\CODE_OF_CONDUCT.md
docs\CONTRIBUTING.md = docs\CONTRIBUTING.md
docs\README.md = docs\README.md
- docs\CHANGELOG.md = docs\CHANGELOG.md
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "scripts", "scripts", "{CFFDBEEC-B112-4844-B65B-56A1029CC130}"
@@ -46,31 +45,31 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{A5578D12
tests\Directory.Build.targets = tests\Directory.Build.targets
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.SilkTouch", "sources\SilkTouch\SilkTouch\Silk.NET.SilkTouch.csproj", "{76F747A6-D971-4162-BF35-A226177FCA08}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Silk.NET.SilkTouch", "sources\SilkTouch\SilkTouch\Silk.NET.SilkTouch.csproj", "{76F747A6-D971-4162-BF35-A226177FCA08}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Silk.NET.SilkTouch.UnitTests", "tests\SilkTouch\SilkTouch\Silk.NET.SilkTouch.UnitTests.csproj", "{600D712C-4ABF-44C4-96C3-B1DEE1F38298}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "eng", "eng", "{475AEF7B-0154-4989-AF82-97E3A95A96AF}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.Core", "sources\Core\Core\Silk.NET.Core.csproj", "{131C09C1-BF4D-47C1-AF13-4A7E30866B1E}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Silk.NET.Core", "sources\Core\Core\Silk.NET.Core.csproj", "{131C09C1-BF4D-47C1-AF13-4A7E30866B1E}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Playground", "sources\Playground\Playground.csproj", "{48F43535-3AFC-45E7-A98D-C2609B3B9757}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Playground", "sources\Playground\Playground.csproj", "{48F43535-3AFC-45E7-A98D-C2609B3B9757}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.Core.UnitTests", "tests\Core\Core\Silk.NET.Core.UnitTests.csproj", "{A87E1861-07E4-4B7A-9173-0853370A7D4E}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Silk.NET.Core.UnitTests", "tests\Core\Core\Silk.NET.Core.UnitTests.csproj", "{A87E1861-07E4-4B7A-9173-0853370A7D4E}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.Maths", "sources\Maths\Maths\Silk.NET.Maths.csproj", "{1B21D783-71C3-48D3-91F5-0EEA90FB0DB2}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Silk.NET.Maths", "sources\Maths\Maths\Silk.NET.Maths.csproj", "{1B21D783-71C3-48D3-91F5-0EEA90FB0DB2}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.Maths.Tests", "tests\Maths\Maths\Silk.NET.Maths.Tests.csproj", "{01683C11-4721-43AB-B53C-15EBE935B48F}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Silk.NET.Maths.Tests", "tests\Maths\Maths\Silk.NET.Maths.Tests.csproj", "{01683C11-4721-43AB-B53C-15EBE935B48F}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "benchmarks", "benchmarks", "{B681E21A-47A2-4635-96EE-60D8D63FBEA9}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.Maths.Benchmarks", "eng\benchmarks\Silk.NET.Maths.Benchmarks\Silk.NET.Maths.Benchmarks.csproj", "{AF6C70ED-D6A8-4C57-8DB3-EAFF94396049}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Silk.NET.Maths.Benchmarks", "eng\benchmarks\Silk.NET.Maths.Benchmarks\Silk.NET.Maths.Benchmarks.csproj", "{AF6C70ED-D6A8-4C57-8DB3-EAFF94396049}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.OpenGL", "sources\OpenGL\OpenGL\Silk.NET.OpenGL.csproj", "{9625C977-25BE-48F3-9B6F-BC94B8B799A6}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Silk.NET.OpenGL", "sources\OpenGL\OpenGL\Silk.NET.OpenGL.csproj", "{9625C977-25BE-48F3-9B6F-BC94B8B799A6}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.SDL", "sources\SDL\SDL\Silk.NET.SDL.csproj", "{19B05730-F97E-43D4-B922-DF4697E5CE5F}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Silk.NET.SDL", "sources\SDL\SDL\Silk.NET.SDL.csproj", "{19B05730-F97E-43D4-B922-DF4697E5CE5F}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.SDL.UnitTests", "tests\SDL\SDL\Silk.NET.SDL.UnitTests.csproj", "{D2B9C43F-A80D-4C9A-9643-BC1AC1B4E807}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Silk.NET.SDL.UnitTests", "tests\SDL\SDL\Silk.NET.SDL.UnitTests.csproj", "{D2B9C43F-A80D-4C9A-9643-BC1AC1B4E807}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Core", "Core", "{5CD096DB-6C44-48F1-9093-AD4C84B6B7EC}"
EndProject
@@ -90,17 +89,23 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SDL", "SDL", "{49D426BF-A00
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SilkTouch", "SilkTouch", "{AB25C482-DA9D-4335-8E26-2F29C3700152}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.NUKE", "eng\build\Silk.NET.NUKE.csproj", "{3CADD95A-179F-4ECF-A49D-4B753832C63C}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Silk.NET.NUKE", "eng\build\Silk.NET.NUKE.csproj", "{3CADD95A-179F-4ECF-A49D-4B753832C63C}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET", "sources\Core\Silk.NET\Silk.NET.csproj", "{6FA628B8-9696-4847-89F9-E58F470AF4FB}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Silk.NET", "sources\Core\Silk.NET\Silk.NET.csproj", "{6FA628B8-9696-4847-89F9-E58F470AF4FB}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Win32", "Win32", "{6E739132-EEAB-43A5-83C7-EB58C50D03A1}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.SDL.Native", "sources\SDL\Native\Silk.NET.SDL.Native.csproj", "{F16C0AB9-DE7E-4C09-9EE9-DAA8B8E935A6}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Silk.NET.SDL.Native", "sources\SDL\Native\Silk.NET.SDL.Native.csproj", "{F16C0AB9-DE7E-4C09-9EE9-DAA8B8E935A6}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Windowing", "Windowing", "{FE4414F8-5370-445D-9F24-C3AD3223F299}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.Windowing", "sources\Windowing\Windowing\Silk.NET.Windowing.csproj", "{EF07CBB5-D253-4CA9-A5DA-8B3DF2B0DF8E}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Silk.NET.Windowing", "sources\Windowing\Windowing\Silk.NET.Windowing.csproj", "{EF07CBB5-D253-4CA9-A5DA-8B3DF2B0DF8E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Silk.NET.Win32", "sources\Win32\Win32\Silk.NET.Win32.csproj", "{BB33CC4A-EA3A-4D4F-879A-F93C617C5E63}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Win32", "Win32", "{BA20152E-2FF8-48F0-A90E-682A7A8CF657}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Silk.NET.Win32.UnitTests", "tests\Win32\Win32\Silk.NET.Win32.UnitTests.csproj", "{C8F32825-1F93-44F0-AB88-26167C21CADF}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Vulkan", "Vulkan", "{5E20252F-E2A0-46C9-BBEF-4CE5C96D0E07}"
EndProject
@@ -196,14 +201,27 @@ Global
{946C912C-5BBB-446A-A566-0D1696D19F59}.Debug|Any CPU.Build.0 = Debug|Any CPU
{946C912C-5BBB-446A-A566-0D1696D19F59}.Release|Any CPU.ActiveCfg = Release|Any CPU
{946C912C-5BBB-446A-A566-0D1696D19F59}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
+ {BB33CC4A-EA3A-4D4F-879A-F93C617C5E63}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BB33CC4A-EA3A-4D4F-879A-F93C617C5E63}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C8F32825-1F93-44F0-AB88-26167C21CADF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C8F32825-1F93-44F0-AB88-26167C21CADF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
+ {76F747A6-D971-4162-BF35-A226177FCA08} = {24BD769C-7379-400C-A67F-00C34756DA32}
+ {600D712C-4ABF-44C4-96C3-B1DEE1F38298} = {AB25C482-DA9D-4335-8E26-2F29C3700152}
+ {131C09C1-BF4D-47C1-AF13-4A7E30866B1E} = {5CD096DB-6C44-48F1-9093-AD4C84B6B7EC}
{48F43535-3AFC-45E7-A98D-C2609B3B9757} = {DD29EA8F-B1A6-45AA-8D2E-B38DA56D9EF6}
+ {A87E1861-07E4-4B7A-9173-0853370A7D4E} = {D9ACA4E5-712F-4F15-B8B8-50C85D23D1D5}
+ {1B21D783-71C3-48D3-91F5-0EEA90FB0DB2} = {2452CED9-5211-4A19-BA44-230EC28F409E}
+ {01683C11-4721-43AB-B53C-15EBE935B48F} = {FCD75AA5-1536-433E-BA9B-3D698C2255EB}
{B681E21A-47A2-4635-96EE-60D8D63FBEA9} = {475AEF7B-0154-4989-AF82-97E3A95A96AF}
{AF6C70ED-D6A8-4C57-8DB3-EAFF94396049} = {B681E21A-47A2-4635-96EE-60D8D63FBEA9}
+ {9625C977-25BE-48F3-9B6F-BC94B8B799A6} = {FA31E483-AD35-4E44-B10A-B33C4539DBCB}
+ {19B05730-F97E-43D4-B922-DF4697E5CE5F} = {EC4D7B06-D277-4411-BD7B-71A6D37683F0}
+ {D2B9C43F-A80D-4C9A-9643-BC1AC1B4E807} = {49D426BF-A009-43D5-A9E2-EFAAAA7196FC}
{5CD096DB-6C44-48F1-9093-AD4C84B6B7EC} = {DD29EA8F-B1A6-45AA-8D2E-B38DA56D9EF6}
{131C09C1-BF4D-47C1-AF13-4A7E30866B1E} = {5CD096DB-6C44-48F1-9093-AD4C84B6B7EC}
{2452CED9-5211-4A19-BA44-230EC28F409E} = {DD29EA8F-B1A6-45AA-8D2E-B38DA56D9EF6}
@@ -235,6 +253,9 @@ Global
{946C912C-5BBB-446A-A566-0D1696D19F59} = {662A1AEC-91F2-48FA-AA29-6F27038D30F2}
{5E20252F-E2A0-46C9-BBEF-4CE5C96D0E07} = {DD29EA8F-B1A6-45AA-8D2E-B38DA56D9EF6}
{E5E8FFBF-1319-4D33-B084-E732656E8A04} = {5E20252F-E2A0-46C9-BBEF-4CE5C96D0E07}
+ {BB33CC4A-EA3A-4D4F-879A-F93C617C5E63} = {6E739132-EEAB-43A5-83C7-EB58C50D03A1}
+ {BA20152E-2FF8-48F0-A90E-682A7A8CF657} = {A5578D12-9E77-4647-8C22-0DBD17760BFF}
+ {C8F32825-1F93-44F0-AB88-26167C21CADF} = {BA20152E-2FF8-48F0-A90E-682A7A8CF657}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {78D2CF6A-60A1-43E3-837B-00B73C9DA384}
diff --git a/eng/benchmarks/Silk.NET.Maths.Benchmarks/Silk.NET.Maths.Benchmarks.csproj b/eng/benchmarks/Silk.NET.Maths.Benchmarks/Silk.NET.Maths.Benchmarks.csproj
index c7059a0c30..e3d9584e48 100644
--- a/eng/benchmarks/Silk.NET.Maths.Benchmarks/Silk.NET.Maths.Benchmarks.csproj
+++ b/eng/benchmarks/Silk.NET.Maths.Benchmarks/Silk.NET.Maths.Benchmarks.csproj
@@ -1,18 +1,14 @@
-
-
- Exe
- net10.0
- $(DefineConstants);MATHF
- true
-
-
-
-
-
-
-
-
-
-
+
+ Exe
+ net10.0
+ $(DefineConstants);MATHF
+ true
+
+
+
+
+
+
+
diff --git a/eng/build/Silk.NET.NUKE.csproj b/eng/build/Silk.NET.NUKE.csproj
index b6071aa7bd..3d42b15783 100644
--- a/eng/build/Silk.NET.NUKE.csproj
+++ b/eng/build/Silk.NET.NUKE.csproj
@@ -1,5 +1,4 @@
-
Exe
net10.0
@@ -10,7 +9,6 @@
false
enable
-
diff --git a/eng/silktouch/win32/includes/cvconst.rsp b/eng/silktouch/win32/includes/cvconst.rsp
new file mode 100644
index 0000000000..e502d07780
--- /dev/null
+++ b/eng/silktouch/win32/includes/cvconst.rsp
@@ -0,0 +1,8 @@
+--include-directory
+C:/Program Files/Microsoft Visual Studio/2022/Community/DIA SDK/include/
+C:/Program Files/Microsoft Visual Studio/2022/Professional/DIA SDK/include/
+C:/Program Files/Microsoft Visual Studio/2022/Enterprise/DIA SDK/include/
+--traverse
+C:/Program Files/Microsoft Visual Studio/2022/Community/DIA SDK/include/cvconst.h
+C:/Program Files/Microsoft Visual Studio/2022/Professional/DIA SDK/include/cvconst.h
+C:/Program Files/Microsoft Visual Studio/2022/Enterprise/DIA SDK/include/cvconst.h
\ No newline at end of file
diff --git a/eng/silktouch/win32/includes/dia2.rsp b/eng/silktouch/win32/includes/dia2.rsp
new file mode 100644
index 0000000000..4339962916
--- /dev/null
+++ b/eng/silktouch/win32/includes/dia2.rsp
@@ -0,0 +1,8 @@
+--include-directory
+C:/Program Files/Microsoft Visual Studio/2022/Community/DIA SDK/include/
+C:/Program Files/Microsoft Visual Studio/2022/Professional/DIA SDK/include/
+C:/Program Files/Microsoft Visual Studio/2022/Enterprise/DIA SDK/include/
+--traverse
+C:/Program Files/Microsoft Visual Studio/2022/Community/DIA SDK/include/dia2.h
+C:/Program Files/Microsoft Visual Studio/2022/Professional/DIA SDK/include/dia2.h
+C:/Program Files/Microsoft Visual Studio/2022/Enterprise/DIA SDK/include/dia2.h
\ No newline at end of file
diff --git a/eng/silktouch/win32/includes/diacreate.rsp b/eng/silktouch/win32/includes/diacreate.rsp
new file mode 100644
index 0000000000..7f124a8245
--- /dev/null
+++ b/eng/silktouch/win32/includes/diacreate.rsp
@@ -0,0 +1,8 @@
+--include-directory
+C:/Program Files/Microsoft Visual Studio/2022/Community/DIA SDK/include/
+C:/Program Files/Microsoft Visual Studio/2022/Professional/DIA SDK/include/
+C:/Program Files/Microsoft Visual Studio/2022/Enterprise/DIA SDK/include/
+--traverse
+C:/Program Files/Microsoft Visual Studio/2022/Community/DIA SDK/include/diacreate.h
+C:/Program Files/Microsoft Visual Studio/2022/Professional/DIA SDK/include/diacreate.h
+C:/Program Files/Microsoft Visual Studio/2022/Enterprise/DIA SDK/include/diacreate.h
\ No newline at end of file
diff --git a/eng/silktouch/win32/libpaths/WinUser.rsp b/eng/silktouch/win32/libpaths/WinUser.rsp
new file mode 100644
index 0000000000..573afd747b
--- /dev/null
+++ b/eng/silktouch/win32/libpaths/WinUser.rsp
@@ -0,0 +1,7 @@
+--with-librarypath
+GetCurrentMonitorTopologyId=user32
+RegisterCloakedNotification=user32
+EnterMoveSizeLoop=user32
+ConvertToInterceptWindow=user32
+IsInterceptWindow=user32
+ApplyWindowAction=user32
\ No newline at end of file
diff --git a/eng/silktouch/win32/libpaths/fileapi.rsp b/eng/silktouch/win32/libpaths/fileapi.rsp
new file mode 100644
index 0000000000..cc41df221d
--- /dev/null
+++ b/eng/silktouch/win32/libpaths/fileapi.rsp
@@ -0,0 +1,8 @@
+--with-librarypath
+CreateFile3=kernel32
+CreateDirectory2A=kernel32
+CreateDirectory2W=kernel32
+RemoveDirectory2A=kernel32
+RemoveDirectory2W=kernel32
+DeleteFile2A=kernel32
+DeleteFile2W=kernel32
\ No newline at end of file
diff --git a/eng/silktouch/win32/libpaths/http.rsp b/eng/silktouch/win32/libpaths/http.rsp
new file mode 100644
index 0000000000..3a214cfbc5
--- /dev/null
+++ b/eng/silktouch/win32/libpaths/http.rsp
@@ -0,0 +1,2 @@
+--with-librarypath
+HttpQueryRequestProperty=httpapi
\ No newline at end of file
diff --git a/eng/silktouch/win32/libpaths/tbs.rsp b/eng/silktouch/win32/libpaths/tbs.rsp
new file mode 100644
index 0000000000..82c5c8ace4
--- /dev/null
+++ b/eng/silktouch/win32/libpaths/tbs.rsp
@@ -0,0 +1,2 @@
+--with-librarypath
+Tbsi_Tpm_Vendor_Maintenance_Mode=tbs
\ No newline at end of file
diff --git a/eng/silktouch/win32/libpaths/winstring.rsp b/eng/silktouch/win32/libpaths/winstring.rsp
new file mode 100644
index 0000000000..b86fdf9f84
--- /dev/null
+++ b/eng/silktouch/win32/libpaths/winstring.rsp
@@ -0,0 +1,5 @@
+--with-librarypath
+HSTRING_UserSize=combase
+HSTRING_UserMarshal=combase
+HSTRING_UserUnmarshal=combase
+HSTRING_UserFree=combase
\ No newline at end of file
diff --git a/eng/silktouch/win32/overrides.rsp b/eng/silktouch/win32/overrides.rsp
new file mode 100644
index 0000000000..2685d32171
--- /dev/null
+++ b/eng/silktouch/win32/overrides.rsp
@@ -0,0 +1,14 @@
+--config
+dont-use-using-statics-for-guid-members
+dont-use-using-statics-for-enums
+--remap
+BOOL=MaybeBool
+HMODULE=HModule
+ROPARAMIIDHANDLE=ROParamIIDHandle
+HANDLE=Handle
+HSTRING=HString
+HRESULT=HResult
+lpVtbl=LpVtbl
+__AnonymousEnum_ShlObj_core_L1245_C1=ISHCUTCMDID
+IEmailMailboxSmimeEncryptionAlgorithm=EmailMailboxSmimeEncryptionAlgorithm
+IEmailMailboxSmimeSigningAlgorithm=EmailMailboxSmimeSigningAlgorithm
\ No newline at end of file
diff --git a/eng/submodules/terrafx.interop.windows b/eng/submodules/terrafx.interop.windows
index a05945883f..55590efae0 160000
--- a/eng/submodules/terrafx.interop.windows
+++ b/eng/submodules/terrafx.interop.windows
@@ -1 +1 @@
-Subproject commit a05945883fe6156d01bc6092bae68ba339eb6e61
+Subproject commit 55590efae0f77f4c8db465a80d18b4f5b679696c
diff --git a/generator.json b/generator.json
index 914ed1551a..f1fc8b87e9 100644
--- a/generator.json
+++ b/generator.json
@@ -2,34 +2,269 @@
"Jobs": {
"Microsoft": {
"Solution": "Silk.NET.sln",
- "SourceProject": "TODO.csproj",
- "TestProject": "tests/TODO.csproj",
+ "SourceProject": "sources/Win32/Win32/Silk.NET.Win32.csproj",
+ "TestProject": "tests/Win32/Win32/Silk.NET.Win32.UnitTests.csproj",
"DefaultLicenseHeader": "eng/silktouch/header.txt",
"Mods": [
- "AddIncludes",
"ClangScraper",
- "ChangeNamespace"
+ "ImportManualFiles",
+ "ChangeNamespace",
+ "RemapTypes",
+ "RemoveStaticUsings",
+ "TransformInterfaces",
+ "TransformCOM",
+ "DisableWarnings",
+ "FixOptionalParams",
+ "TransformFunctions",
+ "PrettifyNames",
+ "DiscardOutput"
],
"ClangScraper": {
"ClangSharpResponseFiles": [
- "eng/submodules/terrafx.interop.windows/generation/**/generate.rsp"
+ "eng/submodules/terrafx.interop.windows/generation/**/generate.rsp",
+ "!eng/submodules/terrafx.interop.windows/generation/DirectX/d3dx12/d3dx12_state_object/generate.rsp",
+ "!eng/submodules/terrafx.interop.windows/generation/Windows/um/Unknwnbase/generate.rsp",
+ "!eng/submodules/terrafx.interop.windows/generation/WinRT/winrt/inspectable/generate.rsp"
],
"ManualOverrides": {
- "sources/Windows/um/icm/Windows.gen.cs": "eng/submodules/terrafx.interop.windows/sources/Interop/Windows/Windows/um/icm/Windows.cs",
- "sources/Gdiplus/um/gdiplustypes/GpRect.gen.cs": "eng/submodules/terrafx.interop.windows/sources/Interop/Windows/Gdiplus/um/gdiplustypes/GpRect.cs",
- "sources/Gdiplus/um/gdiplustypes/GpRectF.gen.cs": "eng/submodules/terrafx.interop.windows/sources/Interop/Windows/Gdiplus/um/gdiplustypes/GpRectF.cs",
- "sources/Gdiplus/um/gdiplustypes/GpPathData.gen.cs": "eng/submodules/terrafx.interop.windows/sources/Interop/Windows/Gdiplus/um/gdiplustypes/GpPathData.cs"
+ "sources/WinRT/winrt/winstring/WinRT.gen.cs": "eng/submodules/terrafx.interop.windows/sources/Interop/Windows/WinRT/winrt/winstring/WinRT.cs"
},
"InputSourceRoot": "eng/submodules/terrafx.interop.windows/sources/Interop/Windows",
"InputTestRoot": "eng/submodules/terrafx.interop.windows/tests/Interop/Windows",
"SkipScrapeIf": [
"!win"
+ ],
+ "CacheOutput": false,
+ "GeneratedToRemove": [
+ "tests/DirectX/d3dx12/d3dx12_core/**.cs",
+ "tests/DirectX/d3dx12/d3dx12_barriers/**.cs",
+ "sources/**/helper-types/*Attribute.gen.cs",
+ "sources/WinRT/um/efswrtinterop/WinRT.gen.cs",
+ "sources/WinRT/um/appserviceinterop/WinRT.gen.cs",
+ "sources/WinRT/winrt/windows.media.casting/CastingConnectionErrorStatus.gen.cs",
+ "sources/WinRT/winrt/windows.media.casting/CastingConnectionState.gen.cs",
+ "sources/WinRT/winrt/roerrorapi/RoErrorReportingFlags.gen.cs"
+ ],
+ "CompositeRsps": {
+ "**": [ "eng/silktouch/win32/overrides.rsp" ],
+ "**/WinUser/generate.rsp": [ "eng/silktouch/win32/libpaths/WinUser.rsp" ],
+ "**/tbs/generate.rsp": [ "eng/silktouch/win32/libpaths/tbs.rsp" ],
+ "**/fileapi/generate.rsp": [ "eng/silktouch/win32/libpaths/fileapi.rsp" ],
+ "**/http/generate.rsp": [ "eng/silktouch/win32/libpaths/http.rsp" ],
+ "**/winstring/generate.rsp": [ "eng/silktouch/win32/libpaths/winstring.rsp" ],
+ "**/cvconst/generate.rsp": [ "eng/silktouch/win32/includes/cvconst.rsp" ],
+ "**/dia2/generate.rsp": [ "eng/silktouch/win32/includes/dia2.rsp" ],
+ "**/diacreate/generate.rsp": [ "eng/silktouch/win32/includes/diacreate.rsp" ]
+ }
+ },
+ "ImportManualFiles": {
+ "ManualImports": {
+ "sources/**.TerraFXAdditions.gen.cs": "eng/submodules/terrafx.interop.windows/sources/Interop/Windows/**.Manual.cs",
+ "!sources/**/INativeGuid.TerraFXAdditions.gen.cs": "!**/INativeGuid.Manual.cs",
+ "!sources/**/HWND.TerraFXAdditions.gen.cs": "!**/HWND.Manual.cs",
+ "!sources/**/HRESULT.TerraFXAdditions.gen.cs": "!**/HRESULT.Manual.cs",
+ "!sources/**/ID2D1*.TerraFXAdditions.gen.cs": "!**/ID2D1*.Manual.cs",
+ "!sources/**/d2d1_1helper/DirectX.TerraFXAdditions.gen.cs": "!**/d2d1_1helper/DirectX.Manual.cs",
+ "!sources/**/DirectXHelpers/DirectX.TerraFXAdditions.gen.cs": "!**/DirectXHelpers/DirectX.Manual.cs",
+ "!sources/**/d2d1/DirectX.TerraFXAdditions.gen.cs": "!**/d2d1/DirectX.Manual.cs",
+ "!sources/**/IWeakReference.TerraFXAdditions.gen.cs": "!**/IWeakReference.Manual.cs",
+ "!sources/**/IDispatchEx.TerraFXAdditions.gen.cs": "!**/IDispatchEx.Manual.cs",
+ "!sources/**/CD3DX12_PIPELINE_STATE_STREAM_PARSE_HELPER.TerraFXAdditions.gen.cs": "!**/CD3DX12_PIPELINE_STATE_STREAM_PARSE_HELPER.Manual.cs",
+ "!sources/**/CD3DX12_PIPELINE_STATE_STREAM1_PARSE_HELPER.TerraFXAdditions.gen.cs": "!**/CD3DX12_PIPELINE_STATE_STREAM1_PARSE_HELPER.Manual.cs",
+ "!sources/**/CD3DX12_PIPELINE_STATE_STREAM2_PARSE_HELPER.TerraFXAdditions.gen.cs": "!**/CD3DX12_PIPELINE_STATE_STREAM2_PARSE_HELPER.Manual.cs",
+ "!sources/**/CD3DX12_PIPELINE_STATE_STREAM3_PARSE_HELPER.TerraFXAdditions.gen.cs": "!**/CD3DX12_PIPELINE_STATE_STREAM3_PARSE_HELPER.Manual.cs",
+ "!sources/**/CD3DX12_PIPELINE_STATE_STREAM4_PARSE_HELPER.TerraFXAdditions.gen.cs": "!**/CD3DX12_PIPELINE_STATE_STREAM4_PARSE_HELPER.Manual.cs",
+ "!sources/**/CD3DX12_PIPELINE_STATE_STREAM5_PARSE_HELPER.TerraFXAdditions.gen.cs": "!**/CD3DX12_PIPELINE_STATE_STREAM5_PARSE_HELPER.Manual.cs",
+ "!sources/**/ShObjIdl_core/Windows.TerraFXAdditions.gen.cs": "!**/ShObjIdl_core/Windows.Manual.cs",
+ "!sources/**/propvarutil/Windows.TerraFXAdditions.gen.cs": "!**/propvarutil/Windows.Manual.cs",
+ "!sources/**/uuids/Windows.TerraFXAdditions.gen.cs": "!**/uuids/Windows.Manual.cs",
+ "!sources/**/gdipluscolor/Color.TerraFXAdditions.gen.cs": "!**/gdipluscolor/Color.Manual.cs",
+ "!sources/**/windows.ui.input/IID.TerraFXAdditions.gen.cs": "!**/windows.ui.input/IID.Manual.cs",
+ "!sources/**/windows.security.authentication.web.core/IID.TerraFXAdditions.gen.cs": "!**/windows.security.authentication.web.core/IID.Manual.cs",
+ "!sources/**/roapi/WinRT.TerraFXAdditions.gen.cs": "!**/roapi/WinRT.Manual.cs",
+ "!sources/**/windows.graphics.directx.direct3d11.interop/WinRT.TerraFXAdditions.gen.cs": "!**/windows.graphics.directx.direct3d11.interop/WinRT.Manual.cs",
+ "!sources/**/roparameterizediid/**.TerraFXAdditions.gen.cs": "!**/roparameterizediid/**.Manual.cs",
+ "!sources/**/d2d1_1/D2D1_**.TerraFXAdditions.gen.cs": "!**/d2d1_1/D2D1_**.Manual.cs"
+ }
+ },
+ "ChangeNamespace": {
+ "Mappings": {
+ "TerraFX.Interop.Windows(.*)": "Silk.NET.Win32$1",
+ "TerraFX.Interop(?!.Windows)(.*)": "Silk.NET$1"
+ }
+ },
+ "RemapTypes": {
+ "Mappings": {
+ "BOOL": "MaybeBool",
+ "BOOLEAN": "MaybeBool",
+ "HSTRING": "HString",
+ "HRESULT": "HResult",
+ "ROPARAMIIDHANDLE": "ROParamIIDHandle",
+ "HMODULE": "HModule",
+ "HANDLE": "Handle",
+ "lpVtbl": "LpVtbl"
+ }
+ },
+ "TransformInterfaces": {
+ "AdditionalInterfaces": [
+ "IDispatchEx"
]
},
+ "TransformCOM": {
+ "AdditionalCOMTypes": {
+ "IDispatchEx.Interface": {
+ "Namespace": "Silk.NET.Win32",
+ "Parent": "IDispatch.Interface"
+ }
+ }
+ },
+ "DisableWarnings": {
+ "WarningCodes": [
+ "CS1589", //XML Comments missing (due to missing docs)
+ "CS0419", //Inheritdoc issue (due to bug)
+ "CA1416", //Function available outside of target os (intended)
+ "CS0618" //Obsolete Warnings (intended)
+ ]
+ },
+ "TransformFunctions": {
+ },
+ "PrettifyNames": {
+ "LongAcronymThreshold": 4,
+ "NameOverrides": {
+ //"BOOL": "MaybeBool",
+ "BIN_COUNT.BinCount": "Count",
+ "BIN_COUNT.BinRange": "Range",
+ "DIK.DIK_EQUALS": "EqualsKey",
+ "DIKEYBOARD.DIKEYBOARD_EQUALS": "EqualsKey",
+ "DIKEYBOARD": "DIKeyboard",
+ "YxyCOLOR.x": "x",
+ "YxyCOLOR.y": "y",
+ "XML_ERROR": "XmlErrorDesc",
+ "HSTRING": "HString",
+ "ROPARAMIIDHANDLE": "ROParamIIDHandle",
+ "HMODULE": "HModule",
+ "HRESULT": "HResult",
+ "Point": "PointF",
+ "GUID": "IID",
+ "ISVGPointList": "ISVGPointList",
+ "ISVGPoint": "ISVGPoint",
+ "DomConstructor.DomConstructor_Max": "MaxValue",
+ "Effect.useAuxData": "UseAuxDataValue",
+ "EXCEPTION_RECORD.ExceptionRecord": "Record",
+ "EXCEPTION_RECORD.ExceptionCode": "Code",
+ "EXCEPTION_RECORD.ExceptionFlags": "Flags",
+ "EXCEPTION_RECORD.ExceptionAddress": "Address",
+ "EXCEPTION_RECORD.ExceptionInformation": "Information",
+ "MF_MEDIAKEY_STATUS": "MFMediaKeyStatusFlags",
+ "FLAG_STGMEDIUM": "FlagSTGMedium",
+ "RemSTGMEDIUM": "RemSTGMedium",
+ "STGMEDIUM": "StgMedium",
+ "userFLAG_STGMEDIUM": "UserFlagSTGMedium",
+ "userSTGMEDIUM": "UserStgMedium",
+ "mediaType": "HtmlMediaType",
+ "PREVENT_MEDIA_REMOVAL.PreventMediaRemoval": "Value",
+ "SHARED_VIRTUAL_DISK_SUPPORT.SharedVirtualDiskSupport": "Type",
+ "TRANSACTION_NOTIFICATION.TransactionNotification": "Notification",
+ "WAVE_FORMAT_G726_ADPCM": "FormatG726ADPCM",
+ "WAVE_FORMAT_GSM_610": "FormatGSM610",
+ "_SIZE_T_MAX": "USizeTMax",
+ "_SIZE_T_ERROR": "USizeTError",
+ "IEmailMailboxSmimeEncryptionAlgorithm": "EmailMailboxSmimeEncryptionAlgorithm",
+ "IEmailMailboxSmimeSigningAlgorithm": "EmailMailboxSmimeSigningAlgorithm",
+ "TRACKMOUSEEVENT": "TrackMouseEvent",
+ "Windows._TrackMouseEvent": "TrackMouseEventCOM",
+ "MEDIASUBTYPE_DVSD": "DVSD"
+ }
+ },
+ "DiscardOutput": {
+ "OutputToDiscard": [
+ "sources/**/helper-types/HRESULT.gen.cs",
+ "sources/**/helper-types/MaybeBool.gen.cs",
+ "sources/**/helper-types/HSTRING.gen.cs",
+ "sources/**/HANDLE.gen.cs"
+ ]
+ },
+ "FixOptionalParams": {
+ "TypesToFix": [
+ "MaybeBool",
+ "BOOL",
+ "HResult",
+ "MaybeBool"
+ ]
+ }
+ },
+ "Core": {
+ "Solution": "Silk.NET.sln",
+ "SourceProject": "sources/Core/Core/Silk.NET.Core.csproj",
+ "TestProject": "tests/Core/Core/Silk.NET.Core.UnitTests.csproj",
+ "DefaultLicenseHeader": "eng/silktouch/header.txt",
+ "Mods": [
+ "ClangScraper",
+ "ChangeNamespace",
+ "TransformInterfaces",
+ "TransformCOM",
+ "DisableWarnings",
+ "FixOptionalParams",
+ "TransformFunctions",
+ "PrettifyNames"
+ ],
+ "ClangScraper": {
+ "ClangSharpResponseFiles": [
+ "eng/submodules/terrafx.interop.windows/generation/Windows/um/Unknwnbase/generate.rsp",
+ "eng/submodules/terrafx.interop.windows/generation/WinRT/winrt/inspectable/generate.rsp",
+ "eng/submodules/terrafx.interop.windows/generation/Windows/other/helper-types/generate.rsp"
+ ],
+ "InputSourceRoot": "eng/submodules/terrafx.interop.windows/sources/Interop/Windows",
+ "InputTestRoot": "eng/submodules/terrafx.interop.windows/tests/Interop/Windows",
+ "SkipScrapeIf": [
+ "!win"
+ ],
+ "CacheOutput": false,
+ "GeneratedToRemove": [
+ "sources/**/helper-types/*.gen.cs",
+ "!sources/**/helper-types/Hresult.gen.cs",
+ "!sources/**/helper-types/Hstring.gen.cs",
+ "!sources/**/helper-types/Handle.gen.cs"
+ ],
+ "CompositeRsps": {
+ "**": [ "eng/silktouch/win32/overrides.rsp" ]
+ }
+ },
"ChangeNamespace": {
"Mappings": {
- "TerraFX.Interop.(.*)": "Silk.NET.$1"
+ "TerraFX.Interop(.*)": "Silk.NET.Core"
+ }
+ },
+ "TransformInterfaces": {
+ },
+ "TransformCOM": {
+ "BaseTypes": {
+ "IUnknown.Interface": "Silk.NET.Core.IUnknown.Interface"
}
+ },
+ "DisableWarnings": {
+ "WarningCodes": [
+ "CS1589", //XML Comments missing (due to missing docs)
+ "CS1591", //Missing Summaries
+ "CS0419", //Inheritdoc issue (due to bug)
+ "CA1416", //Function available outside of target os (intended)
+ "CS0618" //Obsolete Warnings (intended)
+ ]
+ },
+ "TransformFunctions": {
+ },
+ "PrettifyNames": {
+ "NameOverrides": {
+ "HSTRING": "HString",
+ "HRESULT": "HResult",
+ "MaybeBool": "MaybeBool"
+ }
+ },
+ "FixOptionalParams": {
+ "TypesToFix": [
+ "MaybeBool",
+ "HResult"
+ ]
}
},
"SDL": {
diff --git a/sources/Core/Core/DSL/MaybeBool`1.cs b/sources/Core/Core/DSL/MaybeBool`1.cs
index 3daff6a219..be061bce4e 100644
--- a/sources/Core/Core/DSL/MaybeBool`1.cs
+++ b/sources/Core/Core/DSL/MaybeBool`1.cs
@@ -54,4 +54,36 @@ public static implicit operator MaybeBool(bool value)
/// The boolean value.
[MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
public static implicit operator bool(MaybeBool value) => !value.Value.Equals(default);
+
+ ///
+ /// compares boolean value and int
+ ///
+ /// left hand value
+ /// right hand value
+ ///
+ public static bool operator ==(MaybeBool lh, T rh) => lh.Value.Equals(rh);
+
+ ///
+ /// Compares boolean value and int
+ ///
+ /// left hand value
+ /// right hand value
+ ///
+ public static bool operator !=(MaybeBool lh, T rh) => !lh.Value.Equals(rh);
+
+ ///
+ /// compares boolean value and int
+ ///
+ /// left hand value
+ /// right hand value
+ ///
+ public static bool operator ==(T lh, MaybeBool rh) => lh.Equals(rh.Value);
+
+ ///
+ /// Compares boolean value and int
+ ///
+ /// left hand value
+ /// right hand value
+ ///
+ public static bool operator !=(T lh, MaybeBool rh) => !lh.Equals(rh.Value);
}
diff --git a/sources/Core/Core/HRESULT.Manual.cs b/sources/Core/Core/HRESULT.Manual.cs
new file mode 100644
index 0000000000..b81d007a5c
--- /dev/null
+++ b/sources/Core/Core/HRESULT.Manual.cs
@@ -0,0 +1,151 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+#pragma warning disable CS1589, CS0419, CA1416, CS0618
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+namespace Silk.NET.Core;
+
+///
+/// Common error code value returned by Microsoft methods
+///
+public partial struct HResult
+{
+ ///
+ /// Has the function failed
+ ///
+ public bool Failed => Value < 0;
+
+ ///
+ /// Has the function succeeded
+ ///
+ public bool Succeeded => Value >= 0;
+
+ ///
+ /// Does the given HResult value indicates success
+ ///
+ /// HResult value
+ /// Whether the value indicates success
+ [MethodImpl((MethodImplOptions)768)]
+ public static bool IndicatesSuccess(int hr) => hr >= 0;
+
+ ///
+ /// Does the given HResult value indicates failure
+ ///
+ /// HResult value
+ /// Whether the value indicates failure
+ [MethodImpl((MethodImplOptions)768)]
+ public static bool IndicatesFailure(int hr) => hr < 0;
+
+ ///
+ /// Does the given HResult status indicates error
+ ///
+ /// HResult status value
+ /// Whether the value indicates error
+ [MethodImpl((MethodImplOptions)768)]
+ public static bool IndicatesError(int status) => ((uint)status >> 31) == 1;
+
+ ///
+ /// Gets the code from the given HResult value
+ ///
+ /// HResult value
+ /// code of the HResult
+ [MethodImpl((MethodImplOptions)768)]
+ public static int GetCode(int hr) => hr & 0xFFFF;
+
+ ///
+ /// Gets the facility from the given HResult value
+ ///
+ /// HResult value
+ /// facility of the HResult
+ [MethodImpl((MethodImplOptions)768)]
+ public static int GetFacility(int hr) => (hr >> 16) & 0x1FFF;
+
+ ///
+ /// Gets the severity from the given HResult value
+ ///
+ /// HResult value
+ /// severity of the HResult
+ [MethodImpl((MethodImplOptions)768)]
+ public static int GetSeverity(int hr) => (hr >> 31) & 1;
+
+ ///
+ /// Creates a HResult from the given severity, facility, and code values
+ ///
+ /// severity value
+ /// facility value
+ /// code value
+ /// HResult with the given severity, facility, and code
+ [MethodImpl((MethodImplOptions)768)]
+ public static int Create(int severity, int facility, int code) =>
+ (int)(((uint)severity << 31) | ((uint)facility << 16) | (uint)code);
+
+ ///
+ /// Constructs a HResult from the given severity, facility, and code values
+ ///
+ /// severity value
+ /// facility value
+ /// code value
+ public HResult(int severity, int facility, int code) =>
+ Value = Create(severity, facility, code);
+
+ ///
+ /// Does this HResult represent a success
+ ///
+ public bool IsSuccess
+ {
+ [MethodImpl((MethodImplOptions)768)]
+ get => IndicatesSuccess(Value);
+ }
+
+ ///
+ /// Does this HResult represent a failure
+ ///
+ public bool IsFailure
+ {
+ [MethodImpl((MethodImplOptions)768)]
+ get => IndicatesFailure(Value);
+ }
+
+ ///
+ /// Does this HResult represent a error
+ ///
+ public bool IsError
+ {
+ [MethodImpl((MethodImplOptions)768)]
+ get => IndicatesError(Value);
+ }
+
+ ///
+ /// Gets the code for this HResult
+ ///
+ public int Code
+ {
+ [MethodImpl((MethodImplOptions)768)]
+ get => GetCode(Value);
+ }
+
+ ///
+ /// Gets the facility for this HResult
+ ///
+ public int Facility
+ {
+ [MethodImpl((MethodImplOptions)768)]
+ get => GetFacility(Value);
+ }
+
+ ///
+ /// Gets the severity for this HResult
+ ///
+ public int Severity
+ {
+ [MethodImpl((MethodImplOptions)768)]
+ get => GetSeverity(Value);
+ }
+
+ ///
+ /// Throws this HResult as an exception
+ ///
+ public void Throw() => Marshal.ThrowExceptionForHR(Value);
+}
diff --git a/sources/Core/Core/IComVtbl.cs b/sources/Core/Core/IComVtbl.cs
new file mode 100644
index 0000000000..ebdb0d6890
--- /dev/null
+++ b/sources/Core/Core/IComVtbl.cs
@@ -0,0 +1,26 @@
+// 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.Core
+{
+ ///
+ /// Represents a type that can be represented as a pointer to a COM V-Table. (i.e. a pointer to a pointer to the first
+ /// function pointer)
+ ///
+ public interface IComVtbl : INativeGuid
+ {
+ ///
+ /// Gets the address of the pointer to the V-Table as a given interface.
+ ///
+ /// The native interface object type
+ /// the pointer to the V-Table as a given interface
+ Ptr2D GetAddressOf()
+ where TNativeInterface : unmanaged;
+
+ ///
+ /// Gets the address of the pointer to the V-Table.
+ ///
+ /// pointer to the V-Table
+ Ptr2D GetAddressOf();
+ }
+}
diff --git a/sources/Core/Core/IComVtbl`1.cs b/sources/Core/Core/IComVtbl`1.cs
new file mode 100644
index 0000000000..a78568ea57
--- /dev/null
+++ b/sources/Core/Core/IComVtbl`1.cs
@@ -0,0 +1,13 @@
+// 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.Core;
+
+///
+/// A marker interface declaring this type to have a V-table for the given COM type.
+///
+/// The COM type this type contains a V-table to.
+public interface IComVtbl : IComVtbl where T : IComVtbl
+{
+
+}
diff --git a/sources/Core/Core/INativeGuid.cs b/sources/Core/Core/INativeGuid.cs
new file mode 100644
index 0000000000..a5c642acec
--- /dev/null
+++ b/sources/Core/Core/INativeGuid.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.
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Silk.NET.Core
+{
+ ///
+ /// An interface to retrieve Native class Guids
+ ///
+ public unsafe interface INativeGuid
+ {
+ ///
+ /// The guid for the native version of this class
+ ///
+ static abstract Guid* NativeGuid { get; }
+ }
+}
diff --git a/sources/Core/Core/Pointers/Ptr.cs b/sources/Core/Core/Pointers/Ptr.cs
index 4f6a0e2710..ba7124ca90 100644
--- a/sources/Core/Core/Pointers/Ptr.cs
+++ b/sources/Core/Core/Pointers/Ptr.cs
@@ -222,6 +222,24 @@ public T[] ToArray(int length)
)]
public static implicit operator void*(Ptr ptr) => ptr.Native;
+ ///
+ /// Creates a from a
+ ///
+ /// the pointer
+ [MethodImpl(
+ MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization
+ )]
+ public static implicit operator nuint(Ptr ptr) => new(ptr.Native);
+
+ ///
+ /// Creates a from a
+ ///
+ /// the integer
+ [MethodImpl(
+ MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization
+ )]
+ public static explicit operator Ptr(nuint ptr) => new(ptr.ToPointer());
+
///
/// Creates a from a
///
diff --git a/sources/Core/Core/Pointers/Ptr.generic.cs b/sources/Core/Core/Pointers/Ptr.generic.cs
index 8a925b9837..33c2240ccb 100644
--- a/sources/Core/Core/Pointers/Ptr.generic.cs
+++ b/sources/Core/Core/Pointers/Ptr.generic.cs
@@ -311,6 +311,42 @@ public unsafe struct Ptr(T* ptr)
///
public static implicit operator T*(Ptr ptr) => ptr.Native;
+ ///
+ /// Creates a from a
+ ///
+ ///
+ [MethodImpl(
+ MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization
+ )]
+ public static implicit operator nuint(Ptr ptr) => new(ptr.Native);
+
+ ///
+ /// Creates a from a
+ ///
+ ///
+ [MethodImpl(
+ MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization
+ )]
+ public static explicit operator Ptr(nuint ptr) => new((T*)ptr.ToPointer());
+
+ ///
+ /// Creates a from a
+ ///
+ ///
+ [MethodImpl(
+ MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization
+ )]
+ public static implicit operator nint(Ptr ptr) => new(ptr.Native);
+
+ ///
+ /// Creates a from a
+ ///
+ ///
+ [MethodImpl(
+ MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization
+ )]
+ public static explicit operator Ptr(nint ptr) => new((T*)ptr.ToPointer());
+
///
/// Creates a from a
///
diff --git a/sources/Core/Core/Pointers/Ptr2D.cs b/sources/Core/Core/Pointers/Ptr2D.cs
index 679817b472..5cbe5c56e4 100644
--- a/sources/Core/Core/Pointers/Ptr2D.cs
+++ b/sources/Core/Core/Pointers/Ptr2D.cs
@@ -307,7 +307,7 @@ public T[][] ToArray(int length, int[] lengths)
[MethodImpl(
MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization
)]
- public static implicit operator Ptr2D(void* ptr) => new((void**)ptr);
+ public static explicit operator Ptr2D(void* ptr) => new((void**)ptr);
///
/// Creates a from a native pointer
@@ -428,6 +428,6 @@ public T[][] ToArray(int length, int[] lengths)
///
/// The pointer.
/// The wrapped pointer.
- public static implicit operator Ptr2D(Ptr* ptr) => (byte*)ptr;
+ public static implicit operator Ptr2D(Ptr* ptr) => (Ptr2D)(byte**)ptr;
}
}
diff --git a/sources/Core/Core/Pointers/Ptr2D.generic.cs b/sources/Core/Core/Pointers/Ptr2D.generic.cs
index 3b7fc47c85..1593c6a501 100644
--- a/sources/Core/Core/Pointers/Ptr2D.generic.cs
+++ b/sources/Core/Core/Pointers/Ptr2D.generic.cs
@@ -444,7 +444,7 @@ public T[][] ToArray(int length, int[] lengths) =>
[MethodImpl(
MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization
)]
- public static implicit operator Ptr2D(void* ptr) => new((Ptr*)ptr);
+ public static explicit operator Ptr2D(void* ptr) => new((Ptr*)ptr);
///
/// Creates a native pointer from a
diff --git a/sources/Core/Core/Pointers/Ptr3D.cs b/sources/Core/Core/Pointers/Ptr3D.cs
index 8f5e994f98..da51640284 100644
--- a/sources/Core/Core/Pointers/Ptr3D.cs
+++ b/sources/Core/Core/Pointers/Ptr3D.cs
@@ -318,7 +318,7 @@ public T[][][] ToArray(int length, int[] lengths0, int[][] lengths1)
[MethodImpl(
MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization
)]
- public static implicit operator Ptr3D(void* ptr) => new((void***)ptr);
+ public static explicit operator Ptr3D(void* ptr) => new((void***)ptr);
///
/// Creates a from a native pointer
@@ -327,7 +327,7 @@ public T[][][] ToArray(int length, int[] lengths0, int[][] lengths1)
[MethodImpl(
MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization
)]
- public static implicit operator Ptr3D(void** ptr) => new((void***)ptr);
+ public static explicit operator Ptr3D(void** ptr) => new((void***)ptr);
///
/// Creates a from a native pointer
@@ -410,7 +410,7 @@ ptr.Native is not null && ptr.Native->Native is not null
MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization
)]
// TODO analyzer to ensure ptr is on stack or otherwise pinned
- public static explicit operator Ptr3D(Ref2D ptr) => (void**)ptr;
+ public static explicit operator Ptr3D(Ref2D ptr) => (Ptr3D)(void**)ptr;
///
/// Creates a null ptr
@@ -460,6 +460,6 @@ ptr.Native is not null && ptr.Native->Native is not null
///
/// The pointer.
/// The wrapped pointer.
- public static implicit operator Ptr3D(Ptr2D* ptr) => (byte***)ptr;
+ public static implicit operator Ptr3D(Ptr2D* ptr) => (void***)ptr;
}
}
diff --git a/sources/Core/Core/Pointers/Ptr3D.generic.cs b/sources/Core/Core/Pointers/Ptr3D.generic.cs
index bb11492c71..71662d2a37 100644
--- a/sources/Core/Core/Pointers/Ptr3D.generic.cs
+++ b/sources/Core/Core/Pointers/Ptr3D.generic.cs
@@ -443,7 +443,7 @@ public T[][][] ToArray(int length, int[] lengths0, int[][] lengths1) =>
[MethodImpl(
MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization
)]
- public static implicit operator Ptr3D(void* ptr) => new((Ptr2D*)ptr);
+ public static explicit operator Ptr3D(void* ptr) => new((Ptr2D*)ptr);
///
/// Creates a native pointer from a
@@ -461,7 +461,7 @@ ptr.Native is not null && ptr.Native->Native is not null
[MethodImpl(
MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization
)]
- public static implicit operator Ptr3D(void** ptr) => new((Ptr2D*)ptr);
+ public static explicit operator Ptr3D(void** ptr) => new((Ptr2D*)ptr);
///
/// Creates a native pointer from a
diff --git a/sources/Core/Core/PublicAPI/net10.0-android/PublicAPI.Shipped.txt b/sources/Core/Core/PublicAPI/net10.0-android/PublicAPI.Shipped.txt
new file mode 100644
index 0000000000..7dc5c58110
--- /dev/null
+++ b/sources/Core/Core/PublicAPI/net10.0-android/PublicAPI.Shipped.txt
@@ -0,0 +1 @@
+#nullable enable
diff --git a/sources/Core/Core/PublicAPI/net10.0-android/PublicAPI.Unshipped.txt b/sources/Core/Core/PublicAPI/net10.0-android/PublicAPI.Unshipped.txt
new file mode 100644
index 0000000000..7dc5c58110
--- /dev/null
+++ b/sources/Core/Core/PublicAPI/net10.0-android/PublicAPI.Unshipped.txt
@@ -0,0 +1 @@
+#nullable enable
diff --git a/sources/Core/Core/PublicAPI/net10.0/PublicAPI.Unshipped.txt b/sources/Core/Core/PublicAPI/net10.0/PublicAPI.Unshipped.txt
index d6847290ae..82712591a3 100644
--- a/sources/Core/Core/PublicAPI/net10.0/PublicAPI.Unshipped.txt
+++ b/sources/Core/Core/PublicAPI/net10.0/PublicAPI.Unshipped.txt
@@ -4,6 +4,15 @@ override Silk.NET.Core.CocoaPlatformInfo.GetHashCode() -> int
override Silk.NET.Core.Constant.GetHashCode() -> int
override Silk.NET.Core.Constant.GetHashCode() -> int
override Silk.NET.Core.EGLPlatformInfo.GetHashCode() -> int
+override Silk.NET.Core.Handle.Equals(object? obj) -> bool
+override Silk.NET.Core.Handle.GetHashCode() -> int
+override Silk.NET.Core.Handle.ToString() -> string!
+override Silk.NET.Core.HResult.Equals(object? obj) -> bool
+override Silk.NET.Core.HResult.GetHashCode() -> int
+override Silk.NET.Core.HResult.ToString() -> string!
+override Silk.NET.Core.HString.Equals(object? obj) -> bool
+override Silk.NET.Core.HString.GetHashCode() -> int
+override Silk.NET.Core.HString.ToString() -> string!
override Silk.NET.Core.MaybeBool.GetHashCode() -> int
override Silk.NET.Core.MaybeBool.GetHashCode() -> int
override Silk.NET.Core.NullPtr.GetHashCode() -> int
@@ -38,6 +47,9 @@ override Silk.NET.Core.WaylandPlatformInfo.GetHashCode() -> int
override Silk.NET.Core.Win32PlatformInfo.GetHashCode() -> int
override Silk.NET.Core.WinRTPlatformInfo.GetHashCode() -> int
override Silk.NET.Core.X11PlatformInfo.GetHashCode() -> int
+readonly Silk.NET.Core.Handle.Value -> void*
+readonly Silk.NET.Core.HResult.Value -> int
+readonly Silk.NET.Core.HString.Value -> void*
readonly Silk.NET.Core.Ptr.Native -> void*
readonly Silk.NET.Core.Ptr2D.Native -> Silk.NET.Core.Ptr*
readonly Silk.NET.Core.Ptr2D.Native -> Silk.NET.Core.Ptr*
@@ -55,6 +67,60 @@ Silk.NET.Core.AndroidPlatformInfo.Surface.get -> nint
Silk.NET.Core.AndroidPlatformInfo.Surface.init -> void
Silk.NET.Core.AndroidPlatformInfo.Window.get -> nint
Silk.NET.Core.AndroidPlatformInfo.Window.init -> void
+Silk.NET.Core.AsyncIUnknown
+Silk.NET.Core.AsyncIUnknown.AddRef() -> uint
+Silk.NET.Core.AsyncIUnknown.AsyncIUnknown() -> void
+Silk.NET.Core.AsyncIUnknown.AsyncIUnknown(Silk.NET.Core.Ptr3D vtbl) -> void
+Silk.NET.Core.AsyncIUnknown.AsyncIUnknown(Silk.NET.Core.Ptr vtbl) -> void
+Silk.NET.Core.AsyncIUnknown.Begin_AddRef() -> Silk.NET.Core.HResult
+Silk.NET.Core.AsyncIUnknown.Begin_QueryInterface(Silk.NET.Core.Ref riid) -> Silk.NET.Core.HResult
+Silk.NET.Core.AsyncIUnknown.Begin_QueryInterface(System.Guid* riid) -> Silk.NET.Core.HResult
+Silk.NET.Core.AsyncIUnknown.Begin_Release() -> Silk.NET.Core.HResult
+Silk.NET.Core.AsyncIUnknown.Finish_AddRef() -> uint
+Silk.NET.Core.AsyncIUnknown.Finish_QueryInterface(Silk.NET.Core.Ref2D ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.AsyncIUnknown.Finish_QueryInterface(void** ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.AsyncIUnknown.Finish_Release() -> uint
+Silk.NET.Core.AsyncIUnknown.Interface
+Silk.NET.Core.AsyncIUnknown.Interface.Begin_AddRef() -> Silk.NET.Core.HResult
+Silk.NET.Core.AsyncIUnknown.Interface.Begin_QueryInterface(Silk.NET.Core.Ref riid) -> Silk.NET.Core.HResult
+Silk.NET.Core.AsyncIUnknown.Interface.Begin_QueryInterface(System.Guid* riid) -> Silk.NET.Core.HResult
+Silk.NET.Core.AsyncIUnknown.Interface.Begin_Release() -> Silk.NET.Core.HResult
+Silk.NET.Core.AsyncIUnknown.Interface.Finish_AddRef() -> uint
+Silk.NET.Core.AsyncIUnknown.Interface.Finish_QueryInterface(Silk.NET.Core.Ref2D ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.AsyncIUnknown.Interface.Finish_QueryInterface(void** ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.AsyncIUnknown.Interface.Finish_Release() -> uint
+Silk.NET.Core.AsyncIUnknown.LpVtbl -> Silk.NET.Core.AsyncIUnknown.Native*
+Silk.NET.Core.AsyncIUnknown.Native
+Silk.NET.Core.AsyncIUnknown.Native.AddRef() -> uint
+Silk.NET.Core.AsyncIUnknown.Native.Begin_AddRef() -> Silk.NET.Core.HResult
+Silk.NET.Core.AsyncIUnknown.Native.Begin_QueryInterface(Silk.NET.Core.Ref riid) -> Silk.NET.Core.HResult
+Silk.NET.Core.AsyncIUnknown.Native.Begin_QueryInterface(System.Guid* riid) -> Silk.NET.Core.HResult
+Silk.NET.Core.AsyncIUnknown.Native.Begin_Release() -> Silk.NET.Core.HResult
+Silk.NET.Core.AsyncIUnknown.Native.Finish_AddRef() -> uint
+Silk.NET.Core.AsyncIUnknown.Native.Finish_QueryInterface(Silk.NET.Core.Ref2D ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.AsyncIUnknown.Native.Finish_QueryInterface(void** ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.AsyncIUnknown.Native.Finish_Release() -> uint
+Silk.NET.Core.AsyncIUnknown.Native.lpVtbl -> void**
+Silk.NET.Core.AsyncIUnknown.Native.Native() -> void
+Silk.NET.Core.AsyncIUnknown.Native.QueryInterface(Silk.NET.Core.Ref riid, Silk.NET.Core.Ref2D ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.AsyncIUnknown.Native.QueryInterface(System.Guid* riid, void** ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.AsyncIUnknown.Native.QueryInterface(out TCom ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.AsyncIUnknown.Native.Release() -> uint
+Silk.NET.Core.AsyncIUnknown.Native.Vtbl
+Silk.NET.Core.AsyncIUnknown.Native.Vtbl.AddRef -> delegate* unmanaged
+Silk.NET.Core.AsyncIUnknown.Native.Vtbl.Begin_AddRef -> delegate* unmanaged
+Silk.NET.Core.AsyncIUnknown.Native.Vtbl.Begin_QueryInterface -> delegate* unmanaged
+Silk.NET.Core.AsyncIUnknown.Native.Vtbl.Begin_Release -> delegate* unmanaged
+Silk.NET.Core.AsyncIUnknown.Native.Vtbl.Finish_AddRef -> delegate* unmanaged
+Silk.NET.Core.AsyncIUnknown.Native.Vtbl.Finish_QueryInterface -> delegate* unmanaged
+Silk.NET.Core.AsyncIUnknown.Native.Vtbl.Finish_Release -> delegate* unmanaged
+Silk.NET.Core.AsyncIUnknown.Native.Vtbl.QueryInterface -> delegate* unmanaged
+Silk.NET.Core.AsyncIUnknown.Native.Vtbl.Release -> delegate* unmanaged
+Silk.NET.Core.AsyncIUnknown.Native.Vtbl.Vtbl() -> void
+Silk.NET.Core.AsyncIUnknown.QueryInterface(Silk.NET.Core.Ref riid, Silk.NET.Core.Ref2D ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.AsyncIUnknown.QueryInterface(System.Guid* riid, void** ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.AsyncIUnknown.QueryInterface(out TCom ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.AsyncIUnknown.Release() -> uint
Silk.NET.Core.BreakneckLock
Silk.NET.Core.BreakneckLock.BreakneckLock() -> void
Silk.NET.Core.BreakneckLock.Enter(ref bool taken) -> void
@@ -111,10 +177,82 @@ Silk.NET.Core.EGLPlatformInfo.EGLPlatformInfo(nint Display, nint Surface) -> voi
Silk.NET.Core.EGLPlatformInfo.Equals(Silk.NET.Core.EGLPlatformInfo other) -> bool
Silk.NET.Core.EGLPlatformInfo.Surface.get -> nint
Silk.NET.Core.EGLPlatformInfo.Surface.init -> void
+Silk.NET.Core.Handle
+Silk.NET.Core.Handle.CompareTo(object? obj) -> int
+Silk.NET.Core.Handle.CompareTo(Silk.NET.Core.Handle other) -> int
+Silk.NET.Core.Handle.Equals(Silk.NET.Core.Handle other) -> bool
+Silk.NET.Core.Handle.Handle() -> void
+Silk.NET.Core.Handle.Handle(void* value) -> void
+Silk.NET.Core.Handle.ToString(string? format, System.IFormatProvider? formatProvider) -> string!
+Silk.NET.Core.HResult
+Silk.NET.Core.HResult.Code.get -> int
+Silk.NET.Core.HResult.CompareTo(object? obj) -> int
+Silk.NET.Core.HResult.CompareTo(Silk.NET.Core.HResult other) -> int
+Silk.NET.Core.HResult.Equals(Silk.NET.Core.HResult other) -> bool
+Silk.NET.Core.HResult.Facility.get -> int
+Silk.NET.Core.HResult.Failed.get -> bool
+Silk.NET.Core.HResult.HResult() -> void
+Silk.NET.Core.HResult.HResult(int severity, int facility, int code) -> void
+Silk.NET.Core.HResult.HResult(int value) -> void
+Silk.NET.Core.HResult.IsError.get -> bool
+Silk.NET.Core.HResult.IsFailure.get -> bool
+Silk.NET.Core.HResult.IsSuccess.get -> bool
+Silk.NET.Core.HResult.Severity.get -> int
+Silk.NET.Core.HResult.Succeeded.get -> bool
+Silk.NET.Core.HResult.Throw() -> void
+Silk.NET.Core.HResult.ToString(string? format, System.IFormatProvider? formatProvider) -> string!
+Silk.NET.Core.HString
+Silk.NET.Core.HString.CompareTo(object? obj) -> int
+Silk.NET.Core.HString.CompareTo(Silk.NET.Core.HString other) -> int
+Silk.NET.Core.HString.Equals(Silk.NET.Core.HString other) -> bool
+Silk.NET.Core.HString.HString() -> void
+Silk.NET.Core.HString.HString(void* value) -> void
+Silk.NET.Core.HString.ToString(string? format, System.IFormatProvider? formatProvider) -> string!
Silk.NET.Core.IBoolScheme
Silk.NET.Core.IBoolScheme.False() -> T
Silk.NET.Core.IBoolScheme.IsTrue(T value) -> bool
Silk.NET.Core.IBoolScheme.True() -> T
+Silk.NET.Core.IClassFactory
+Silk.NET.Core.IClassFactory.AddRef() -> uint
+Silk.NET.Core.IClassFactory.CreateInstance(Silk.NET.Core.IUnknown pUnkOuter, Silk.NET.Core.Ref riid, Silk.NET.Core.Ref2D ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.IClassFactory.CreateInstance(Silk.NET.Core.IUnknown pUnkOuter, System.Guid* riid, void** ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.IClassFactory.CreateInstance(Silk.NET.Core.IUnknown pUnkOuter, out TCom ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.IClassFactory.IClassFactory() -> void
+Silk.NET.Core.IClassFactory.IClassFactory(Silk.NET.Core.Ptr3D vtbl) -> void
+Silk.NET.Core.IClassFactory.IClassFactory(Silk.NET.Core.Ptr vtbl) -> void
+Silk.NET.Core.IClassFactory.Interface
+Silk.NET.Core.IClassFactory.Interface.CreateInstance(Silk.NET.Core.IUnknown pUnkOuter, Silk.NET.Core.Ref riid, Silk.NET.Core.Ref2D ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.IClassFactory.Interface.CreateInstance(Silk.NET.Core.IUnknown pUnkOuter, System.Guid* riid, void** ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.IClassFactory.Interface.LockServer(Silk.NET.Core.MaybeBool fLock) -> Silk.NET.Core.HResult
+Silk.NET.Core.IClassFactory.LockServer(Silk.NET.Core.MaybeBool fLock) -> Silk.NET.Core.HResult
+Silk.NET.Core.IClassFactory.LpVtbl -> Silk.NET.Core.IClassFactory.Native*
+Silk.NET.Core.IClassFactory.Native
+Silk.NET.Core.IClassFactory.Native.AddRef() -> uint
+Silk.NET.Core.IClassFactory.Native.CreateInstance(Silk.NET.Core.IUnknown pUnkOuter, Silk.NET.Core.Ref riid, Silk.NET.Core.Ref2D ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.IClassFactory.Native.CreateInstance(Silk.NET.Core.IUnknown pUnkOuter, System.Guid* riid, void** ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.IClassFactory.Native.CreateInstance(Silk.NET.Core.IUnknown pUnkOuter, out TCom ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.IClassFactory.Native.LockServer(Silk.NET.Core.MaybeBool fLock) -> Silk.NET.Core.HResult
+Silk.NET.Core.IClassFactory.Native.lpVtbl -> void**
+Silk.NET.Core.IClassFactory.Native.Native() -> void
+Silk.NET.Core.IClassFactory.Native.QueryInterface(Silk.NET.Core.Ref riid, Silk.NET.Core.Ref2D ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.IClassFactory.Native.QueryInterface(System.Guid* riid, void** ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.IClassFactory.Native.QueryInterface(out TCom ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.IClassFactory.Native.Release() -> uint
+Silk.NET.Core.IClassFactory.Native.Vtbl
+Silk.NET.Core.IClassFactory.Native.Vtbl.AddRef -> delegate* unmanaged
+Silk.NET.Core.IClassFactory.Native.Vtbl.CreateInstance -> delegate* unmanaged
+Silk.NET.Core.IClassFactory.Native.Vtbl.LockServer -> delegate* unmanaged, Silk.NET.Core.HResult>
+Silk.NET.Core.IClassFactory.Native.Vtbl.QueryInterface -> delegate* unmanaged
+Silk.NET.Core.IClassFactory.Native.Vtbl.Release -> delegate* unmanaged
+Silk.NET.Core.IClassFactory.Native.Vtbl.Vtbl() -> void
+Silk.NET.Core.IClassFactory.QueryInterface(Silk.NET.Core.Ref riid, Silk.NET.Core.Ref2D ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.IClassFactory.QueryInterface(System.Guid* riid, void** ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.IClassFactory.QueryInterface(out TCom ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.IClassFactory.Release() -> uint
+Silk.NET.Core.IComVtbl
+Silk.NET.Core.IComVtbl.GetAddressOf() -> Silk.NET.Core.Ptr2D
+Silk.NET.Core.IComVtbl.GetAddressOf() -> Silk.NET.Core.Ptr2D
+Silk.NET.Core.IComVtbl
Silk.NET.Core.IGLContext
Silk.NET.Core.IGLContext.IsCurrent.get -> bool
Silk.NET.Core.IGLContext.IsCurrent.set -> void
@@ -125,8 +263,84 @@ Silk.NET.Core.IGLContext.VSync.get -> bool
Silk.NET.Core.IGLContext.VSync.set -> void
Silk.NET.Core.IGLContextSource
Silk.NET.Core.IGLContextSource.GLContext.get -> Silk.NET.Core.IGLContext?
+Silk.NET.Core.IID
+Silk.NET.Core.IInspectable
+Silk.NET.Core.IInspectable.AddRef() -> uint
+Silk.NET.Core.IInspectable.GetIids(Silk.NET.Core.Ref iidCount, Silk.NET.Core.Ref2D iids) -> Silk.NET.Core.HResult
+Silk.NET.Core.IInspectable.GetIids(uint* iidCount, System.Guid** iids) -> Silk.NET.Core.HResult
+Silk.NET.Core.IInspectable.GetRuntimeClassName(Silk.NET.Core.HString* className) -> Silk.NET.Core.HResult
+Silk.NET.Core.IInspectable.GetRuntimeClassName(Silk.NET.Core.Ref className) -> Silk.NET.Core.HResult
+Silk.NET.Core.IInspectable.GetTrustLevel(Silk.NET.Core.Ref trustLevel) -> Silk.NET.Core.HResult
+Silk.NET.Core.IInspectable.GetTrustLevel(Silk.NET.Core.TrustLevel* trustLevel) -> Silk.NET.Core.HResult
+Silk.NET.Core.IInspectable.IInspectable() -> void
+Silk.NET.Core.IInspectable.IInspectable(Silk.NET.Core.Ptr3D vtbl) -> void
+Silk.NET.Core.IInspectable.IInspectable(Silk.NET.Core.Ptr vtbl) -> void
+Silk.NET.Core.IInspectable.Interface
+Silk.NET.Core.IInspectable.Interface.GetIids(Silk.NET.Core.Ref iidCount, Silk.NET.Core.Ref2D iids) -> Silk.NET.Core.HResult
+Silk.NET.Core.IInspectable.Interface.GetIids(uint* iidCount, System.Guid** iids) -> Silk.NET.Core.HResult
+Silk.NET.Core.IInspectable.Interface.GetRuntimeClassName(Silk.NET.Core.HString* className) -> Silk.NET.Core.HResult
+Silk.NET.Core.IInspectable.Interface.GetRuntimeClassName(Silk.NET.Core.Ref className) -> Silk.NET.Core.HResult
+Silk.NET.Core.IInspectable.Interface.GetTrustLevel(Silk.NET.Core.Ref trustLevel) -> Silk.NET.Core.HResult
+Silk.NET.Core.IInspectable.Interface.GetTrustLevel(Silk.NET.Core.TrustLevel* trustLevel) -> Silk.NET.Core.HResult
+Silk.NET.Core.IInspectable.LpVtbl -> Silk.NET.Core.IInspectable.Native*
+Silk.NET.Core.IInspectable.Native
+Silk.NET.Core.IInspectable.Native.AddRef() -> uint
+Silk.NET.Core.IInspectable.Native.GetIids(Silk.NET.Core.Ref iidCount, Silk.NET.Core.Ref2D iids) -> Silk.NET.Core.HResult
+Silk.NET.Core.IInspectable.Native.GetIids(uint* iidCount, System.Guid** iids) -> Silk.NET.Core.HResult
+Silk.NET.Core.IInspectable.Native.GetRuntimeClassName(Silk.NET.Core.HString* className) -> Silk.NET.Core.HResult
+Silk.NET.Core.IInspectable.Native.GetRuntimeClassName(Silk.NET.Core.Ref className) -> Silk.NET.Core.HResult
+Silk.NET.Core.IInspectable.Native.GetTrustLevel(Silk.NET.Core.Ref trustLevel) -> Silk.NET.Core.HResult
+Silk.NET.Core.IInspectable.Native.GetTrustLevel(Silk.NET.Core.TrustLevel* trustLevel) -> Silk.NET.Core.HResult
+Silk.NET.Core.IInspectable.Native.lpVtbl -> void**
+Silk.NET.Core.IInspectable.Native.Native() -> void
+Silk.NET.Core.IInspectable.Native.QueryInterface(Silk.NET.Core.Ref riid, Silk.NET.Core.Ref2D ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.IInspectable.Native.QueryInterface(System.Guid* riid, void** ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.IInspectable.Native.QueryInterface(out TCom ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.IInspectable.Native.Release() -> uint
+Silk.NET.Core.IInspectable.Native.Vtbl
+Silk.NET.Core.IInspectable.Native.Vtbl.AddRef -> delegate* unmanaged
+Silk.NET.Core.IInspectable.Native.Vtbl.GetIids -> delegate* unmanaged
+Silk.NET.Core.IInspectable.Native.Vtbl.GetRuntimeClassName -> delegate* unmanaged
+Silk.NET.Core.IInspectable.Native.Vtbl.GetTrustLevel -> delegate* unmanaged
+Silk.NET.Core.IInspectable.Native.Vtbl.QueryInterface -> delegate* unmanaged
+Silk.NET.Core.IInspectable.Native.Vtbl.Release -> delegate* unmanaged
+Silk.NET.Core.IInspectable.Native.Vtbl.Vtbl() -> void
+Silk.NET.Core.IInspectable.QueryInterface(Silk.NET.Core.Ref riid, Silk.NET.Core.Ref2D ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.IInspectable.QueryInterface(System.Guid* riid, void** ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.IInspectable.QueryInterface(out TCom ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.IInspectable.Release() -> uint
+Silk.NET.Core.INativeGuid
+Silk.NET.Core.INativeGuid.NativeGuid.get -> System.Guid*
Silk.NET.Core.INativeWindow
Silk.NET.Core.INativeWindow.TryGetPlatformInfo(out TPlatformInfo? info) -> bool
+Silk.NET.Core.IUnknown
+Silk.NET.Core.IUnknown.AddRef() -> uint
+Silk.NET.Core.IUnknown.Interface
+Silk.NET.Core.IUnknown.Interface.AddRef() -> uint
+Silk.NET.Core.IUnknown.Interface.QueryInterface(Silk.NET.Core.Ref riid, Silk.NET.Core.Ref2D ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.IUnknown.Interface.QueryInterface(System.Guid* riid, void** ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.IUnknown.Interface.Release() -> uint
+Silk.NET.Core.IUnknown.IUnknown() -> void
+Silk.NET.Core.IUnknown.IUnknown(Silk.NET.Core.Ptr3D vtbl) -> void
+Silk.NET.Core.IUnknown.IUnknown(Silk.NET.Core.Ptr vtbl) -> void
+Silk.NET.Core.IUnknown.LpVtbl -> Silk.NET.Core.IUnknown.Native*
+Silk.NET.Core.IUnknown.Native
+Silk.NET.Core.IUnknown.Native.AddRef() -> uint
+Silk.NET.Core.IUnknown.Native.lpVtbl -> void**
+Silk.NET.Core.IUnknown.Native.Native() -> void
+Silk.NET.Core.IUnknown.Native.QueryInterface(Silk.NET.Core.Ref riid, Silk.NET.Core.Ref2D ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.IUnknown.Native.QueryInterface(System.Guid* riid, void** ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.IUnknown.Native.QueryInterface(out TCom ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.IUnknown.Native.Release() -> uint
+Silk.NET.Core.IUnknown.Native.Vtbl
+Silk.NET.Core.IUnknown.Native.Vtbl.AddRef -> delegate* unmanaged
+Silk.NET.Core.IUnknown.Native.Vtbl.QueryInterface -> delegate* unmanaged
+Silk.NET.Core.IUnknown.Native.Vtbl.Release -> delegate* unmanaged
+Silk.NET.Core.IUnknown.Native.Vtbl.Vtbl() -> void
+Silk.NET.Core.IUnknown.QueryInterface(Silk.NET.Core.Ref riid, Silk.NET.Core.Ref2D ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.IUnknown.QueryInterface(System.Guid* riid, void** ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.IUnknown.QueryInterface(out TCom ppvObject) -> Silk.NET.Core.HResult
+Silk.NET.Core.IUnknown.Release() -> uint
Silk.NET.Core.Loader.DefaultNativeContext
Silk.NET.Core.Loader.DefaultNativeContext.DefaultNativeContext() -> void
Silk.NET.Core.Loader.DefaultNativeContext.Dispose() -> void
@@ -298,6 +512,10 @@ Silk.NET.Core.SupportedApiProfileAttribute.SupportedApiProfileAttribute(string!
Silk.NET.Core.TransformedAttribute
Silk.NET.Core.TransformedAttribute.IsTransformed.get -> bool
Silk.NET.Core.TransformedAttribute.TransformedAttribute(bool isTransformed = true) -> void
+Silk.NET.Core.TrustLevel
+Silk.NET.Core.TrustLevel.BaseTrust = 0 -> Silk.NET.Core.TrustLevel
+Silk.NET.Core.TrustLevel.FullTrust = 2 -> Silk.NET.Core.TrustLevel
+Silk.NET.Core.TrustLevel.PartialTrust = 1 -> Silk.NET.Core.TrustLevel
Silk.NET.Core.UIKitPlatformInfo
Silk.NET.Core.UIKitPlatformInfo.ColorBuffer.get -> uint
Silk.NET.Core.UIKitPlatformInfo.ColorBuffer.init -> void
@@ -357,6 +575,7 @@ Silk.NET.Core.Win32PlatformInfo.Hwnd.get -> nint
Silk.NET.Core.Win32PlatformInfo.Hwnd.init -> void
Silk.NET.Core.Win32PlatformInfo.Win32PlatformInfo() -> void
Silk.NET.Core.Win32PlatformInfo.Win32PlatformInfo(nint Hwnd, nint HDC, nint HInstance) -> void
+Silk.NET.Core.WinRT
Silk.NET.Core.WinRTPlatformInfo
Silk.NET.Core.WinRTPlatformInfo.Deconstruct(out nint Inspectable) -> void
Silk.NET.Core.WinRTPlatformInfo.Equals(Silk.NET.Core.WinRTPlatformInfo other) -> bool
@@ -373,8 +592,26 @@ Silk.NET.Core.X11PlatformInfo.Window.get -> nint
Silk.NET.Core.X11PlatformInfo.Window.init -> void
Silk.NET.Core.X11PlatformInfo.X11PlatformInfo() -> void
Silk.NET.Core.X11PlatformInfo.X11PlatformInfo(nint Display, nint Window) -> void
+static extern Silk.NET.Core.WinRT.Free(uint* param0, Silk.NET.Core.HString* param1) -> void
+static extern Silk.NET.Core.WinRT.Free64(uint* param0, Silk.NET.Core.HString* param1) -> void
+static extern Silk.NET.Core.WinRT.Marshal(uint* param0, byte* param1, Silk.NET.Core.HString* param2) -> byte*
+static extern Silk.NET.Core.WinRT.Marshal64(uint* param0, byte* param1, Silk.NET.Core.HString* param2) -> byte*
+static extern Silk.NET.Core.WinRT.Size(uint* param0, uint param1, Silk.NET.Core.HString* param2) -> uint
+static extern Silk.NET.Core.WinRT.Size64(uint* param0, uint param1, Silk.NET.Core.HString* param2) -> uint
+static extern Silk.NET.Core.WinRT.Unmarshal(uint* param0, byte* param1, Silk.NET.Core.HString* param2) -> byte*
+static extern Silk.NET.Core.WinRT.Unmarshal64(uint* param0, byte* param1, Silk.NET.Core.HString* param2) -> byte*
static Silk.NET.Core.AndroidPlatformInfo.operator !=(Silk.NET.Core.AndroidPlatformInfo left, Silk.NET.Core.AndroidPlatformInfo right) -> bool
static Silk.NET.Core.AndroidPlatformInfo.operator ==(Silk.NET.Core.AndroidPlatformInfo left, Silk.NET.Core.AndroidPlatformInfo right) -> bool
+static Silk.NET.Core.AsyncIUnknown.explicit operator Silk.NET.Core.AsyncIUnknown(nuint value) -> Silk.NET.Core.AsyncIUnknown
+static Silk.NET.Core.AsyncIUnknown.explicit operator Silk.NET.Core.AsyncIUnknown(Silk.NET.Core.Ptr3D value) -> Silk.NET.Core.AsyncIUnknown
+static Silk.NET.Core.AsyncIUnknown.explicit operator Silk.NET.Core.AsyncIUnknown(Silk.NET.Core.Ptr value) -> Silk.NET.Core.AsyncIUnknown
+static Silk.NET.Core.AsyncIUnknown.explicit operator Silk.NET.Core.AsyncIUnknown(void*** value) -> Silk.NET.Core.AsyncIUnknown
+static Silk.NET.Core.AsyncIUnknown.implicit operator nuint(Silk.NET.Core.AsyncIUnknown value) -> nuint
+static Silk.NET.Core.AsyncIUnknown.implicit operator Silk.NET.Core.AsyncIUnknown(Silk.NET.Core.AsyncIUnknown.Native* value) -> Silk.NET.Core.AsyncIUnknown
+static Silk.NET.Core.AsyncIUnknown.implicit operator Silk.NET.Core.AsyncIUnknown.Native*(Silk.NET.Core.AsyncIUnknown value) -> Silk.NET.Core.AsyncIUnknown.Native*
+static Silk.NET.Core.AsyncIUnknown.implicit operator Silk.NET.Core.Ptr3D(Silk.NET.Core.AsyncIUnknown value) -> Silk.NET.Core.Ptr3D
+static Silk.NET.Core.AsyncIUnknown.implicit operator Silk.NET.Core.Ptr(Silk.NET.Core.AsyncIUnknown value) -> Silk.NET.Core.Ptr
+static Silk.NET.Core.AsyncIUnknown.implicit operator void***(Silk.NET.Core.AsyncIUnknown value) -> void***
static Silk.NET.Core.BreakneckLock.Create() -> Silk.NET.Core.BreakneckLock
static Silk.NET.Core.CocoaPlatformInfo.operator !=(Silk.NET.Core.CocoaPlatformInfo left, Silk.NET.Core.CocoaPlatformInfo right) -> bool
static Silk.NET.Core.CocoaPlatformInfo.operator ==(Silk.NET.Core.CocoaPlatformInfo left, Silk.NET.Core.CocoaPlatformInfo right) -> bool
@@ -396,6 +633,135 @@ static Silk.NET.Core.Default.True() -> T
static Silk.NET.Core.DSL.nullptr.get -> Silk.NET.Core.NullPtr
static Silk.NET.Core.EGLPlatformInfo.operator !=(Silk.NET.Core.EGLPlatformInfo left, Silk.NET.Core.EGLPlatformInfo right) -> bool
static Silk.NET.Core.EGLPlatformInfo.operator ==(Silk.NET.Core.EGLPlatformInfo left, Silk.NET.Core.EGLPlatformInfo right) -> bool
+static Silk.NET.Core.Handle.explicit operator byte(Silk.NET.Core.Handle value) -> byte
+static Silk.NET.Core.Handle.explicit operator int(Silk.NET.Core.Handle value) -> int
+static Silk.NET.Core.Handle.explicit operator long(Silk.NET.Core.Handle value) -> long
+static Silk.NET.Core.Handle.explicit operator sbyte(Silk.NET.Core.Handle value) -> sbyte
+static Silk.NET.Core.Handle.explicit operator short(Silk.NET.Core.Handle value) -> short
+static Silk.NET.Core.Handle.explicit operator Silk.NET.Core.Handle(byte value) -> Silk.NET.Core.Handle
+static Silk.NET.Core.Handle.explicit operator Silk.NET.Core.Handle(int value) -> Silk.NET.Core.Handle
+static Silk.NET.Core.Handle.explicit operator Silk.NET.Core.Handle(long value) -> Silk.NET.Core.Handle
+static Silk.NET.Core.Handle.explicit operator Silk.NET.Core.Handle(nint value) -> Silk.NET.Core.Handle
+static Silk.NET.Core.Handle.explicit operator Silk.NET.Core.Handle(nuint value) -> Silk.NET.Core.Handle
+static Silk.NET.Core.Handle.explicit operator Silk.NET.Core.Handle(sbyte value) -> Silk.NET.Core.Handle
+static Silk.NET.Core.Handle.explicit operator Silk.NET.Core.Handle(short value) -> Silk.NET.Core.Handle
+static Silk.NET.Core.Handle.explicit operator Silk.NET.Core.Handle(uint value) -> Silk.NET.Core.Handle
+static Silk.NET.Core.Handle.explicit operator Silk.NET.Core.Handle(ulong value) -> Silk.NET.Core.Handle
+static Silk.NET.Core.Handle.explicit operator Silk.NET.Core.Handle(ushort value) -> Silk.NET.Core.Handle
+static Silk.NET.Core.Handle.explicit operator Silk.NET.Core.Handle(void* value) -> Silk.NET.Core.Handle
+static Silk.NET.Core.Handle.explicit operator uint(Silk.NET.Core.Handle value) -> uint
+static Silk.NET.Core.Handle.explicit operator ulong(Silk.NET.Core.Handle value) -> ulong
+static Silk.NET.Core.Handle.explicit operator ushort(Silk.NET.Core.Handle value) -> ushort
+static Silk.NET.Core.Handle.implicit operator nint(Silk.NET.Core.Handle value) -> nint
+static Silk.NET.Core.Handle.implicit operator nuint(Silk.NET.Core.Handle value) -> nuint
+static Silk.NET.Core.Handle.implicit operator void*(Silk.NET.Core.Handle value) -> void*
+static Silk.NET.Core.Handle.INVALID_VALUE.get -> Silk.NET.Core.Handle
+static Silk.NET.Core.Handle.NULL.get -> Silk.NET.Core.Handle
+static Silk.NET.Core.Handle.operator !=(Silk.NET.Core.Handle left, Silk.NET.Core.Handle right) -> bool
+static Silk.NET.Core.Handle.operator <(Silk.NET.Core.Handle left, Silk.NET.Core.Handle right) -> bool
+static Silk.NET.Core.Handle.operator <=(Silk.NET.Core.Handle left, Silk.NET.Core.Handle right) -> bool
+static Silk.NET.Core.Handle.operator ==(Silk.NET.Core.Handle left, Silk.NET.Core.Handle right) -> bool
+static Silk.NET.Core.Handle.operator >(Silk.NET.Core.Handle left, Silk.NET.Core.Handle right) -> bool
+static Silk.NET.Core.Handle.operator >=(Silk.NET.Core.Handle left, Silk.NET.Core.Handle right) -> bool
+static Silk.NET.Core.HResult.Create(int severity, int facility, int code) -> int
+static Silk.NET.Core.HResult.explicit operator byte(Silk.NET.Core.HResult value) -> byte
+static Silk.NET.Core.HResult.explicit operator nuint(Silk.NET.Core.HResult value) -> nuint
+static Silk.NET.Core.HResult.explicit operator sbyte(Silk.NET.Core.HResult value) -> sbyte
+static Silk.NET.Core.HResult.explicit operator short(Silk.NET.Core.HResult value) -> short
+static Silk.NET.Core.HResult.explicit operator Silk.NET.Core.HResult(long value) -> Silk.NET.Core.HResult
+static Silk.NET.Core.HResult.explicit operator Silk.NET.Core.HResult(nint value) -> Silk.NET.Core.HResult
+static Silk.NET.Core.HResult.explicit operator Silk.NET.Core.HResult(nuint value) -> Silk.NET.Core.HResult
+static Silk.NET.Core.HResult.explicit operator Silk.NET.Core.HResult(uint value) -> Silk.NET.Core.HResult
+static Silk.NET.Core.HResult.explicit operator Silk.NET.Core.HResult(ulong value) -> Silk.NET.Core.HResult
+static Silk.NET.Core.HResult.explicit operator uint(Silk.NET.Core.HResult value) -> uint
+static Silk.NET.Core.HResult.explicit operator ulong(Silk.NET.Core.HResult value) -> ulong
+static Silk.NET.Core.HResult.explicit operator ushort(Silk.NET.Core.HResult value) -> ushort
+static Silk.NET.Core.HResult.GetCode(int hr) -> int
+static Silk.NET.Core.HResult.GetFacility(int hr) -> int
+static Silk.NET.Core.HResult.GetSeverity(int hr) -> int
+static Silk.NET.Core.HResult.implicit operator int(Silk.NET.Core.HResult value) -> int
+static Silk.NET.Core.HResult.implicit operator long(Silk.NET.Core.HResult value) -> long
+static Silk.NET.Core.HResult.implicit operator nint(Silk.NET.Core.HResult value) -> nint
+static Silk.NET.Core.HResult.implicit operator Silk.NET.Core.HResult(byte value) -> Silk.NET.Core.HResult
+static Silk.NET.Core.HResult.implicit operator Silk.NET.Core.HResult(int value) -> Silk.NET.Core.HResult
+static Silk.NET.Core.HResult.implicit operator Silk.NET.Core.HResult(sbyte value) -> Silk.NET.Core.HResult
+static Silk.NET.Core.HResult.implicit operator Silk.NET.Core.HResult(short value) -> Silk.NET.Core.HResult
+static Silk.NET.Core.HResult.implicit operator Silk.NET.Core.HResult(ushort value) -> Silk.NET.Core.HResult
+static Silk.NET.Core.HResult.IndicatesError(int status) -> bool
+static Silk.NET.Core.HResult.IndicatesFailure(int hr) -> bool
+static Silk.NET.Core.HResult.IndicatesSuccess(int hr) -> bool
+static Silk.NET.Core.HResult.operator !=(Silk.NET.Core.HResult left, Silk.NET.Core.HResult right) -> bool
+static Silk.NET.Core.HResult.operator <(Silk.NET.Core.HResult left, Silk.NET.Core.HResult right) -> bool
+static Silk.NET.Core.HResult.operator <=(Silk.NET.Core.HResult left, Silk.NET.Core.HResult right) -> bool
+static Silk.NET.Core.HResult.operator ==(Silk.NET.Core.HResult left, Silk.NET.Core.HResult right) -> bool
+static Silk.NET.Core.HResult.operator >(Silk.NET.Core.HResult left, Silk.NET.Core.HResult right) -> bool
+static Silk.NET.Core.HResult.operator >=(Silk.NET.Core.HResult left, Silk.NET.Core.HResult right) -> bool
+static Silk.NET.Core.HString.explicit operator byte(Silk.NET.Core.HString value) -> byte
+static Silk.NET.Core.HString.explicit operator int(Silk.NET.Core.HString value) -> int
+static Silk.NET.Core.HString.explicit operator long(Silk.NET.Core.HString value) -> long
+static Silk.NET.Core.HString.explicit operator sbyte(Silk.NET.Core.HString value) -> sbyte
+static Silk.NET.Core.HString.explicit operator short(Silk.NET.Core.HString value) -> short
+static Silk.NET.Core.HString.explicit operator Silk.NET.Core.HString(byte value) -> Silk.NET.Core.HString
+static Silk.NET.Core.HString.explicit operator Silk.NET.Core.HString(int value) -> Silk.NET.Core.HString
+static Silk.NET.Core.HString.explicit operator Silk.NET.Core.HString(long value) -> Silk.NET.Core.HString
+static Silk.NET.Core.HString.explicit operator Silk.NET.Core.HString(nint value) -> Silk.NET.Core.HString
+static Silk.NET.Core.HString.explicit operator Silk.NET.Core.HString(nuint value) -> Silk.NET.Core.HString
+static Silk.NET.Core.HString.explicit operator Silk.NET.Core.HString(sbyte value) -> Silk.NET.Core.HString
+static Silk.NET.Core.HString.explicit operator Silk.NET.Core.HString(short value) -> Silk.NET.Core.HString
+static Silk.NET.Core.HString.explicit operator Silk.NET.Core.HString(Silk.NET.Core.Handle value) -> Silk.NET.Core.HString
+static Silk.NET.Core.HString.explicit operator Silk.NET.Core.HString(uint value) -> Silk.NET.Core.HString
+static Silk.NET.Core.HString.explicit operator Silk.NET.Core.HString(ulong value) -> Silk.NET.Core.HString
+static Silk.NET.Core.HString.explicit operator Silk.NET.Core.HString(ushort value) -> Silk.NET.Core.HString
+static Silk.NET.Core.HString.explicit operator Silk.NET.Core.HString(void* value) -> Silk.NET.Core.HString
+static Silk.NET.Core.HString.explicit operator uint(Silk.NET.Core.HString value) -> uint
+static Silk.NET.Core.HString.explicit operator ulong(Silk.NET.Core.HString value) -> ulong
+static Silk.NET.Core.HString.explicit operator ushort(Silk.NET.Core.HString value) -> ushort
+static Silk.NET.Core.HString.implicit operator nint(Silk.NET.Core.HString value) -> nint
+static Silk.NET.Core.HString.implicit operator nuint(Silk.NET.Core.HString value) -> nuint
+static Silk.NET.Core.HString.implicit operator Silk.NET.Core.Handle(Silk.NET.Core.HString value) -> Silk.NET.Core.Handle
+static Silk.NET.Core.HString.implicit operator void*(Silk.NET.Core.HString value) -> void*
+static Silk.NET.Core.HString.INVALID_VALUE.get -> Silk.NET.Core.HString
+static Silk.NET.Core.HString.NULL.get -> Silk.NET.Core.HString
+static Silk.NET.Core.HString.operator !=(Silk.NET.Core.HString left, Silk.NET.Core.HString right) -> bool
+static Silk.NET.Core.HString.operator <(Silk.NET.Core.HString left, Silk.NET.Core.HString right) -> bool
+static Silk.NET.Core.HString.operator <=(Silk.NET.Core.HString left, Silk.NET.Core.HString right) -> bool
+static Silk.NET.Core.HString.operator ==(Silk.NET.Core.HString left, Silk.NET.Core.HString right) -> bool
+static Silk.NET.Core.HString.operator >(Silk.NET.Core.HString left, Silk.NET.Core.HString right) -> bool
+static Silk.NET.Core.HString.operator >=(Silk.NET.Core.HString left, Silk.NET.Core.HString right) -> bool
+static Silk.NET.Core.IClassFactory.explicit operator Silk.NET.Core.IClassFactory(nuint value) -> Silk.NET.Core.IClassFactory
+static Silk.NET.Core.IClassFactory.explicit operator Silk.NET.Core.IClassFactory(Silk.NET.Core.Ptr3D value) -> Silk.NET.Core.IClassFactory
+static Silk.NET.Core.IClassFactory.explicit operator Silk.NET.Core.IClassFactory(Silk.NET.Core.Ptr value) -> Silk.NET.Core.IClassFactory
+static Silk.NET.Core.IClassFactory.explicit operator Silk.NET.Core.IClassFactory(void*** value) -> Silk.NET.Core.IClassFactory
+static Silk.NET.Core.IClassFactory.implicit operator nuint(Silk.NET.Core.IClassFactory value) -> nuint
+static Silk.NET.Core.IClassFactory.implicit operator Silk.NET.Core.IClassFactory(Silk.NET.Core.IClassFactory.Native* value) -> Silk.NET.Core.IClassFactory
+static Silk.NET.Core.IClassFactory.implicit operator Silk.NET.Core.IClassFactory.Native*(Silk.NET.Core.IClassFactory value) -> Silk.NET.Core.IClassFactory.Native*
+static Silk.NET.Core.IClassFactory.implicit operator Silk.NET.Core.Ptr3D(Silk.NET.Core.IClassFactory value) -> Silk.NET.Core.Ptr3D
+static Silk.NET.Core.IClassFactory.implicit operator Silk.NET.Core.Ptr(Silk.NET.Core.IClassFactory value) -> Silk.NET.Core.Ptr
+static Silk.NET.Core.IClassFactory.implicit operator void***(Silk.NET.Core.IClassFactory value) -> void***
+static Silk.NET.Core.IID.AsyncIUnknown.get -> System.Guid
+static Silk.NET.Core.IID.IClassFactory.get -> System.Guid
+static Silk.NET.Core.IID.IInspectable.get -> System.Guid
+static Silk.NET.Core.IID.IUnknown.get -> System.Guid
+static Silk.NET.Core.IInspectable.explicit operator Silk.NET.Core.IInspectable(nuint value) -> Silk.NET.Core.IInspectable
+static Silk.NET.Core.IInspectable.explicit operator Silk.NET.Core.IInspectable(Silk.NET.Core.Ptr3D value) -> Silk.NET.Core.IInspectable
+static Silk.NET.Core.IInspectable.explicit operator Silk.NET.Core.IInspectable(Silk.NET.Core.Ptr value) -> Silk.NET.Core.IInspectable
+static Silk.NET.Core.IInspectable.explicit operator Silk.NET.Core.IInspectable(void*** value) -> Silk.NET.Core.IInspectable
+static Silk.NET.Core.IInspectable.implicit operator nuint(Silk.NET.Core.IInspectable value) -> nuint
+static Silk.NET.Core.IInspectable.implicit operator Silk.NET.Core.IInspectable(Silk.NET.Core.IInspectable.Native* value) -> Silk.NET.Core.IInspectable
+static Silk.NET.Core.IInspectable.implicit operator Silk.NET.Core.IInspectable.Native*(Silk.NET.Core.IInspectable value) -> Silk.NET.Core.IInspectable.Native*
+static Silk.NET.Core.IInspectable.implicit operator Silk.NET.Core.Ptr3D(Silk.NET.Core.IInspectable value) -> Silk.NET.Core.Ptr3D
+static Silk.NET.Core.IInspectable.implicit operator Silk.NET.Core.Ptr(Silk.NET.Core.IInspectable value) -> Silk.NET.Core.Ptr
+static Silk.NET.Core.IInspectable.implicit operator void***(Silk.NET.Core.IInspectable value) -> void***
+static Silk.NET.Core.IUnknown.explicit operator Silk.NET.Core.IUnknown(nuint value) -> Silk.NET.Core.IUnknown
+static Silk.NET.Core.IUnknown.explicit operator Silk.NET.Core.IUnknown(Silk.NET.Core.Ptr3D value) -> Silk.NET.Core.IUnknown
+static Silk.NET.Core.IUnknown.explicit operator Silk.NET.Core.IUnknown(Silk.NET.Core.Ptr value) -> Silk.NET.Core.IUnknown
+static Silk.NET.Core.IUnknown.explicit operator Silk.NET.Core.IUnknown(void*** value) -> Silk.NET.Core.IUnknown
+static Silk.NET.Core.IUnknown.implicit operator nuint(Silk.NET.Core.IUnknown value) -> nuint
+static Silk.NET.Core.IUnknown.implicit operator Silk.NET.Core.IUnknown(Silk.NET.Core.IUnknown.Native* value) -> Silk.NET.Core.IUnknown
+static Silk.NET.Core.IUnknown.implicit operator Silk.NET.Core.IUnknown.Native*(Silk.NET.Core.IUnknown value) -> Silk.NET.Core.IUnknown.Native*
+static Silk.NET.Core.IUnknown.implicit operator Silk.NET.Core.Ptr3D(Silk.NET.Core.IUnknown value) -> Silk.NET.Core.Ptr3D
+static Silk.NET.Core.IUnknown.implicit operator Silk.NET.Core.Ptr(Silk.NET.Core.IUnknown value) -> Silk.NET.Core.Ptr
+static Silk.NET.Core.IUnknown.implicit operator void***(Silk.NET.Core.IUnknown value) -> void***
static Silk.NET.Core.Loader.LoaderInterface.AlternativeNames.get -> System.Collections.Generic.Dictionary!>!
static Silk.NET.Core.Loader.LoaderInterface.LoadAlternativeNames(string! libraryName, System.Reflection.Assembly! assembly, System.Runtime.InteropServices.DllImportSearchPath? searchPath) -> nint
static Silk.NET.Core.Loader.LoaderInterface.LoadLibrary(string! name, System.Reflection.Assembly! asm) -> nint
@@ -413,7 +779,11 @@ static Silk.NET.Core.MaybeBool.implicit operator Silk.NET.Core.MaybeBool(b
static Silk.NET.Core.MaybeBool.implicit operator Silk.NET.Core.MaybeBool(T Value) -> Silk.NET.Core.MaybeBool
static Silk.NET.Core.MaybeBool.implicit operator T(Silk.NET.Core.MaybeBool value) -> T
static Silk.NET.Core.MaybeBool.operator !=(Silk.NET.Core.MaybeBool left, Silk.NET.Core.MaybeBool right) -> bool
+static Silk.NET.Core.MaybeBool.operator !=(Silk.NET.Core.MaybeBool lh, T rh) -> bool
+static Silk.NET.Core.MaybeBool.operator !=(T lh, Silk.NET.Core.MaybeBool rh) -> bool
static Silk.NET.Core.MaybeBool.operator ==(Silk.NET.Core.MaybeBool left, Silk.NET.Core.MaybeBool right) -> bool
+static Silk.NET.Core.MaybeBool.operator ==(Silk.NET.Core.MaybeBool lh, T rh) -> bool
+static Silk.NET.Core.MaybeBool.operator ==(T lh, Silk.NET.Core.MaybeBool rh) -> bool
static Silk.NET.Core.NullPtr.implicit operator void*(Silk.NET.Core.NullPtr _) -> void*
static Silk.NET.Core.NullPtr.operator !=(Silk.NET.Core.NullPtr left, Silk.NET.Core.NullPtr right) -> bool
static Silk.NET.Core.NullPtr.operator ==(Silk.NET.Core.NullPtr left, Silk.NET.Core.NullPtr right) -> bool
@@ -475,8 +845,10 @@ static Silk.NET.Core.PointerExtensions.ReadToStringArray(this Silk.NET.Core.Ref3
static Silk.NET.Core.PointerExtensions.ReadToStringArray(this Silk.NET.Core.Ref3D this, int length, int[]! lengths) -> string?[]?[]?
static Silk.NET.Core.Ptr.explicit operator nint(Silk.NET.Core.Ptr ptr) -> nint
static Silk.NET.Core.Ptr.explicit operator Silk.NET.Core.Ptr(nint ptr) -> Silk.NET.Core.Ptr
+static Silk.NET.Core.Ptr.explicit operator Silk.NET.Core.Ptr(nuint ptr) -> Silk.NET.Core.Ptr
static Silk.NET.Core.Ptr.explicit operator Silk.NET.Core.Ptr(Silk.NET.Core.Ref ptr) -> Silk.NET.Core.Ptr
static Silk.NET.Core.Ptr.explicit operator string!(Silk.NET.Core.Ptr ptr) -> string!
+static Silk.NET.Core.Ptr.implicit operator nuint(Silk.NET.Core.Ptr ptr) -> nuint
static Silk.NET.Core.Ptr.implicit operator Silk.NET.Core.Ptr(Silk.NET.Core.NullPtr ptr) -> Silk.NET.Core.Ptr
static Silk.NET.Core.Ptr.implicit operator Silk.NET.Core.Ptr(void* ptr) -> Silk.NET.Core.Ptr
static Silk.NET.Core.Ptr.implicit operator Silk.NET.Core.Ref(Silk.NET.Core.Ptr ptr) -> Silk.NET.Core.Ref
@@ -496,10 +868,10 @@ static Silk.NET.Core.Ptr.operator ==(Silk.NET.Core.Ptr lh, void* rh) -> bool
static Silk.NET.Core.Ptr.operator ==(Silk.NET.Core.Ref lh, Silk.NET.Core.Ptr rh) -> bool
static Silk.NET.Core.Ptr.operator ==(void* lh, Silk.NET.Core.Ptr rh) -> bool
static Silk.NET.Core.Ptr2D.explicit operator Silk.NET.Core.Ptr2D(Silk.NET.Core.Ref2D ptr) -> Silk.NET.Core.Ptr2D
+static Silk.NET.Core.Ptr2D.explicit operator Silk.NET.Core.Ptr2D(void* ptr) -> Silk.NET.Core.Ptr2D
static Silk.NET.Core.Ptr2D.implicit operator Silk.NET.Core.Ptr(Silk.NET.Core.Ptr2D ptr) -> Silk.NET.Core.Ptr
static Silk.NET.Core.Ptr2D.implicit operator Silk.NET.Core.Ptr2D(Silk.NET.Core.NullPtr ptr) -> Silk.NET.Core.Ptr2D
static Silk.NET.Core.Ptr2D.implicit operator Silk.NET.Core.Ptr2D(Silk.NET.Core.Ptr* ptr) -> Silk.NET.Core.Ptr2D
-static Silk.NET.Core.Ptr2D.implicit operator Silk.NET.Core.Ptr2D(void* ptr) -> Silk.NET.Core.Ptr2D
static Silk.NET.Core.Ptr2D.implicit operator Silk.NET.Core.Ptr2D(void** ptr) -> Silk.NET.Core.Ptr2D
static Silk.NET.Core.Ptr2D.implicit operator Silk.NET.Core.Ref(Silk.NET.Core.Ptr2D ptr) -> Silk.NET.Core.Ref
static Silk.NET.Core.Ptr2D.implicit operator Silk.NET.Core.Ref2D(Silk.NET.Core.Ptr2D ptr) -> Silk.NET.Core.Ref2D
@@ -525,13 +897,13 @@ static Silk.NET.Core.Ptr2D.operator ==(void* lh, Silk.NET.Core.Ptr2D rh) -> bool
static Silk.NET.Core.Ptr2D.operator ==(void** lh, Silk.NET.Core.Ptr2D rh) -> bool
static Silk.NET.Core.Ptr2D.explicit operator Silk.NET.Core.Ptr2D(Silk.NET.Core.Ref2D ptr) -> Silk.NET.Core.Ptr2D
static Silk.NET.Core.Ptr2D.explicit operator Silk.NET.Core.Ptr2D(Silk.NET.Core.Ref2D ptr) -> Silk.NET.Core.Ptr2D
+static Silk.NET.Core.Ptr2D.explicit operator Silk.NET.Core.Ptr2D(void* ptr) -> Silk.NET.Core.Ptr2D
static Silk.NET.Core.Ptr2D.implicit operator Silk.NET.Core.Ptr(Silk.NET.Core.Ptr2D ptr) -> Silk.NET.Core.Ptr
static Silk.NET.Core.Ptr2D.implicit operator Silk.NET.Core.Ptr2D(Silk.NET.Core.Ptr2D ptr) -> Silk.NET.Core.Ptr2D
static Silk.NET.Core.Ptr2D.implicit operator Silk.NET.Core.Ptr2D(Silk.NET.Core.NullPtr ptr) -> Silk.NET.Core.Ptr2D
static Silk.NET.Core.Ptr2D.implicit operator Silk.NET.Core.Ptr2D(Silk.NET.Core.Ptr2D ptr) -> Silk.NET.Core.Ptr2D
static Silk.NET.Core.Ptr2D.implicit operator Silk.NET.Core.Ptr2D(Silk.NET.Core.Ptr* ptr) -> Silk.NET.Core.Ptr2D
static Silk.NET.Core.Ptr2D.implicit operator Silk.NET.Core.Ptr2D(T** ptr) -> Silk.NET.Core.Ptr2D
-static Silk.NET.Core.Ptr2D.implicit operator Silk.NET.Core.Ptr2D(void* ptr) -> Silk.NET.Core.Ptr2D
static Silk.NET.Core.Ptr2D.implicit operator Silk.NET.Core.Ptr2D(void** ptr) -> Silk.NET.Core.Ptr2D
static Silk.NET.Core.Ptr2D.implicit operator Silk.NET.Core.Ref(Silk.NET.Core.Ptr2D ptr) -> Silk.NET.Core.Ref
static Silk.NET.Core.Ptr2D.implicit operator Silk.NET.Core.Ref2D(Silk.NET.Core.Ptr2D ptr) -> Silk.NET.Core.Ref2D
@@ -571,11 +943,11 @@ static Silk.NET.Core.Ptr2D.operator ==(T** lh, Silk.NET.Core.Ptr2D rh) ->
static Silk.NET.Core.Ptr2D.operator ==(void* lh, Silk.NET.Core.Ptr2D rh) -> bool
static Silk.NET.Core.Ptr2D.operator ==(void** lh, Silk.NET.Core.Ptr2D rh) -> bool
static Silk.NET.Core.Ptr3D.explicit operator Silk.NET.Core.Ptr3D(Silk.NET.Core.Ref2D ptr) -> Silk.NET.Core.Ptr3D
+static Silk.NET.Core.Ptr3D.explicit operator Silk.NET.Core.Ptr3D(void* ptr) -> Silk.NET.Core.Ptr3D
+static Silk.NET.Core.Ptr3D.explicit operator Silk.NET.Core.Ptr3D(void** ptr) -> Silk.NET.Core.Ptr3D
static Silk.NET.Core.Ptr3D.implicit operator Silk.NET.Core.Ptr(Silk.NET.Core.Ptr3D ptr) -> Silk.NET.Core.Ptr
static Silk.NET.Core.Ptr3D.implicit operator Silk.NET.Core.Ptr3D(Silk.NET.Core.NullPtr ptr) -> Silk.NET.Core.Ptr3D
static Silk.NET.Core.Ptr3D.implicit operator Silk.NET.Core.Ptr3D(Silk.NET.Core.Ptr2D* ptr) -> Silk.NET.Core.Ptr3D
-static Silk.NET.Core.Ptr3D.implicit operator Silk.NET.Core.Ptr3D(void* ptr) -> Silk.NET.Core.Ptr3D
-static Silk.NET.Core.Ptr3D.implicit operator Silk.NET.Core.Ptr3D(void** ptr) -> Silk.NET.Core.Ptr3D
static Silk.NET.Core.Ptr3D.implicit operator Silk.NET.Core.Ptr3D(void*** ptr) -> Silk.NET.Core.Ptr3D
static Silk.NET.Core.Ptr3D.implicit operator Silk.NET.Core.Ref(Silk.NET.Core.Ptr3D ptr) -> Silk.NET.Core.Ref
static Silk.NET.Core.Ptr3D.implicit operator Silk.NET.Core.Ref3D(Silk.NET.Core.Ptr3D ptr) -> Silk.NET.Core.Ref3D
@@ -602,14 +974,14 @@ static Silk.NET.Core.Ptr3D.operator ==(void* lh, Silk.NET.Core.Ptr3D rh) -> bool
static Silk.NET.Core.Ptr3D.operator ==(void** lh, Silk.NET.Core.Ptr3D rh) -> bool
static Silk.NET.Core.Ptr3D.explicit operator Silk.NET.Core.Ptr3D(Silk.NET.Core.Ref3D ptr) -> Silk.NET.Core.Ptr3D
static Silk.NET.Core.Ptr3D.explicit operator Silk.NET.Core.Ptr3D(Silk.NET.Core.Ref3D ptr) -> Silk.NET.Core.Ptr3D
+static Silk.NET.Core.Ptr3D.explicit operator Silk.NET.Core.Ptr3D(void* ptr) -> Silk.NET.Core.Ptr3D
+static Silk.NET.Core.Ptr3D.explicit operator Silk.NET.Core.Ptr3D(void** ptr) -> Silk.NET.Core.Ptr3D
static Silk.NET.Core.Ptr3D.implicit operator Silk.NET.Core.Ptr(Silk.NET.Core.Ptr3D ptr) -> Silk.NET.Core.Ptr
static Silk.NET.Core.Ptr3D.implicit operator Silk.NET.Core.Ptr3D(Silk.NET.Core.Ptr3D ptr) -> Silk.NET.Core.Ptr3D
static Silk.NET.Core.Ptr3D