diff --git a/内核源代码/.vs/ProjectEvaluation/stgsharp.metadata.v9.bin b/内核源代码/.vs/ProjectEvaluation/stgsharp.metadata.v9.bin
index f3f84e26..3528c3da 100644
Binary files a/内核源代码/.vs/ProjectEvaluation/stgsharp.metadata.v9.bin and b/内核源代码/.vs/ProjectEvaluation/stgsharp.metadata.v9.bin differ
diff --git a/内核源代码/.vs/ProjectEvaluation/stgsharp.projects.v9.bin b/内核源代码/.vs/ProjectEvaluation/stgsharp.projects.v9.bin
index a3d63237..04b2538e 100644
Binary files a/内核源代码/.vs/ProjectEvaluation/stgsharp.projects.v9.bin and b/内核源代码/.vs/ProjectEvaluation/stgsharp.projects.v9.bin differ
diff --git a/内核源代码/.vs/ProjectEvaluation/stgsharp.strings.v9.bin b/内核源代码/.vs/ProjectEvaluation/stgsharp.strings.v9.bin
index 1cbcce60..9d94ac8e 100644
Binary files a/内核源代码/.vs/ProjectEvaluation/stgsharp.strings.v9.bin and b/内核源代码/.vs/ProjectEvaluation/stgsharp.strings.v9.bin differ
diff --git a/内核源代码/.vs/ProjectEvaluation/stgsharpdevelop.metadata.v9.bin b/内核源代码/.vs/ProjectEvaluation/stgsharpdevelop.metadata.v9.bin
index c7bf1772..f6b9127e 100644
Binary files a/内核源代码/.vs/ProjectEvaluation/stgsharpdevelop.metadata.v9.bin and b/内核源代码/.vs/ProjectEvaluation/stgsharpdevelop.metadata.v9.bin differ
diff --git a/内核源代码/.vs/ProjectEvaluation/stgsharpdevelop.projects.v9.bin b/内核源代码/.vs/ProjectEvaluation/stgsharpdevelop.projects.v9.bin
index 4c288fa2..52ce0d59 100644
Binary files a/内核源代码/.vs/ProjectEvaluation/stgsharpdevelop.projects.v9.bin and b/内核源代码/.vs/ProjectEvaluation/stgsharpdevelop.projects.v9.bin differ
diff --git a/内核源代码/.vs/ProjectEvaluation/stgsharpdevelop.strings.v9.bin b/内核源代码/.vs/ProjectEvaluation/stgsharpdevelop.strings.v9.bin
index b85cb7da..57d893a9 100644
Binary files a/内核源代码/.vs/ProjectEvaluation/stgsharpdevelop.strings.v9.bin and b/内核源代码/.vs/ProjectEvaluation/stgsharpdevelop.strings.v9.bin differ
diff --git a/内核源代码/.vs/StgSharp/CopilotIndices/0.2.1634.3922/CodeChunks.db b/内核源代码/.vs/StgSharp/CopilotIndices/0.2.1634.3922/CodeChunks.db
new file mode 100644
index 00000000..5642632e
Binary files /dev/null and b/内核源代码/.vs/StgSharp/CopilotIndices/0.2.1634.3922/CodeChunks.db differ
diff --git a/内核源代码/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db b/内核源代码/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db
new file mode 100644
index 00000000..fb7bb0f5
Binary files /dev/null and b/内核源代码/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db differ
diff --git a/内核源代码/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-shm b/内核源代码/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-shm
new file mode 100644
index 00000000..2eb24f9d
Binary files /dev/null and b/内核源代码/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-shm differ
diff --git a/内核源代码/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-wal b/内核源代码/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-wal
new file mode 100644
index 00000000..2fcc9971
Binary files /dev/null and b/内核源代码/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-wal differ
diff --git a/内核源代码/.vs/StgSharp/DesignTimeBuild/.dtbcache.v2 b/内核源代码/.vs/StgSharp/DesignTimeBuild/.dtbcache.v2
index de29a49a..4db37a43 100644
Binary files a/内核源代码/.vs/StgSharp/DesignTimeBuild/.dtbcache.v2 and b/内核源代码/.vs/StgSharp/DesignTimeBuild/.dtbcache.v2 differ
diff --git a/内核源代码/.vs/StgSharp/FileContentIndex/08c7e83f-f953-4d1f-b1f0-2cc2f63a4f86.vsidx b/内核源代码/.vs/StgSharp/FileContentIndex/08c7e83f-f953-4d1f-b1f0-2cc2f63a4f86.vsidx
new file mode 100644
index 00000000..44b48b3c
Binary files /dev/null and b/内核源代码/.vs/StgSharp/FileContentIndex/08c7e83f-f953-4d1f-b1f0-2cc2f63a4f86.vsidx differ
diff --git a/内核源代码/.vs/StgSharp/FileContentIndex/25fbfe01-64be-4fcf-ace0-636275168236.vsidx b/内核源代码/.vs/StgSharp/FileContentIndex/25fbfe01-64be-4fcf-ace0-636275168236.vsidx
deleted file mode 100644
index 282b90dc..00000000
Binary files a/内核源代码/.vs/StgSharp/FileContentIndex/25fbfe01-64be-4fcf-ace0-636275168236.vsidx and /dev/null differ
diff --git a/内核源代码/.vs/StgSharp/FileContentIndex/5e286df3-ce59-401f-bc25-c646e6caa682.vsidx b/内核源代码/.vs/StgSharp/FileContentIndex/5e286df3-ce59-401f-bc25-c646e6caa682.vsidx
deleted file mode 100644
index 30a8398f..00000000
Binary files a/内核源代码/.vs/StgSharp/FileContentIndex/5e286df3-ce59-401f-bc25-c646e6caa682.vsidx and /dev/null differ
diff --git a/内核源代码/.vs/StgSharp/FileContentIndex/a2a6e272-c09e-4ab6-b9cd-e5bc799ca3aa.vsidx b/内核源代码/.vs/StgSharp/FileContentIndex/a2a6e272-c09e-4ab6-b9cd-e5bc799ca3aa.vsidx
new file mode 100644
index 00000000..b625ab59
Binary files /dev/null and b/内核源代码/.vs/StgSharp/FileContentIndex/a2a6e272-c09e-4ab6-b9cd-e5bc799ca3aa.vsidx differ
diff --git a/内核源代码/.vs/StgSharp/FileContentIndex/b2af4b15-2005-45b7-bc0b-2544eeb4c802.vsidx b/内核源代码/.vs/StgSharp/FileContentIndex/b2af4b15-2005-45b7-bc0b-2544eeb4c802.vsidx
new file mode 100644
index 00000000..6a8e8faa
Binary files /dev/null and b/内核源代码/.vs/StgSharp/FileContentIndex/b2af4b15-2005-45b7-bc0b-2544eeb4c802.vsidx differ
diff --git a/内核源代码/.vs/StgSharp/FileContentIndex/d86c618f-5e44-46d9-b6ab-fcb2f061a544.vsidx b/内核源代码/.vs/StgSharp/FileContentIndex/d86c618f-5e44-46d9-b6ab-fcb2f061a544.vsidx
new file mode 100644
index 00000000..35c13ae3
Binary files /dev/null and b/内核源代码/.vs/StgSharp/FileContentIndex/d86c618f-5e44-46d9-b6ab-fcb2f061a544.vsidx differ
diff --git a/内核源代码/.vs/StgSharp/FileContentIndex/f29e382a-2eb4-4f7e-9bd4-3da0e3848780.vsidx b/内核源代码/.vs/StgSharp/FileContentIndex/f29e382a-2eb4-4f7e-9bd4-3da0e3848780.vsidx
new file mode 100644
index 00000000..e42cba08
Binary files /dev/null and b/内核源代码/.vs/StgSharp/FileContentIndex/f29e382a-2eb4-4f7e-9bd4-3da0e3848780.vsidx differ
diff --git a/内核源代码/.vs/StgSharp/v17/.futdcache.v2 b/内核源代码/.vs/StgSharp/v17/.futdcache.v2
index 4158a3fc..894d8fbf 100644
Binary files a/内核源代码/.vs/StgSharp/v17/.futdcache.v2 and b/内核源代码/.vs/StgSharp/v17/.futdcache.v2 differ
diff --git a/内核源代码/.vs/StgSharp/v17/.suo b/内核源代码/.vs/StgSharp/v17/.suo
index dbe230ab..053638b1 100644
Binary files a/内核源代码/.vs/StgSharp/v17/.suo and b/内核源代码/.vs/StgSharp/v17/.suo differ
diff --git a/内核源代码/.vs/StgSharp/v17/DocumentLayout.backup.json b/内核源代码/.vs/StgSharp/v17/DocumentLayout.backup.json
new file mode 100644
index 00000000..8245954a
--- /dev/null
+++ b/内核源代码/.vs/StgSharp/v17/DocumentLayout.backup.json
@@ -0,0 +1,35 @@
+{
+ "Version": 1,
+ "WorkspaceRootPath": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\",
+ "Documents": [
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Geometries\\PlainGeometry\\Rectangle.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Geometries\\PlainGeometry\\Rectangle.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ }
+ ],
+ "DocumentGroupContainers": [
+ {
+ "Orientation": 0,
+ "VerticalTabListWidth": 256,
+ "DocumentGroups": [
+ {
+ "DockedWidth": 200,
+ "SelectedChildIndex": 0,
+ "Children": [
+ {
+ "$type": "Document",
+ "DocumentIndex": 0,
+ "Title": "Rectangle.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Geometries\\PlainGeometry\\Rectangle.cs",
+ "RelativeDocumentMoniker": "StgSharp\\Geometries\\PlainGeometry\\Rectangle.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Geometries\\PlainGeometry\\Rectangle.cs",
+ "RelativeToolTip": "StgSharp\\Geometries\\PlainGeometry\\Rectangle.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2024-10-06T17:55:17.338Z"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/内核源代码/.vs/StgSharp/v17/DocumentLayout.json b/内核源代码/.vs/StgSharp/v17/DocumentLayout.json
index c79a23af..0ca412c0 100644
--- a/内核源代码/.vs/StgSharp/v17/DocumentLayout.json
+++ b/内核源代码/.vs/StgSharp/v17/DocumentLayout.json
@@ -3,8 +3,32 @@
"WorkspaceRootPath": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\",
"Documents": [
{
- "AbsoluteMoniker": "D:0:0:{5EEA27B3-8FB1-42A0-B710-228923C529C0}|StgSharp\\StgSharp.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\geometries\\plaingeometry\\rectangle.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5EEA27B3-8FB1-42A0-B710-228923C529C0}|StgSharp\\StgSharp.csproj|solutionrelative:stgsharp\\geometries\\plaingeometry\\rectangle.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{B18DE598-5F79-4528-B252-A1BAB0CB840F}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\expression\\element\\exptype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{B18DE598-5F79-4528-B252-A1BAB0CB840F}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\expression\\element\\exptype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{B18DE598-5F79-4528-B252-A1BAB0CB840F}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\expression\\builtin\\expcollection.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{B18DE598-5F79-4528-B252-A1BAB0CB840F}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\expression\\builtin\\expcollection.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{B18DE598-5F79-4528-B252-A1BAB0CB840F}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\expression\\expschema.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{B18DE598-5F79-4528-B252-A1BAB0CB840F}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\expression\\expschema.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{B18DE598-5F79-4528-B252-A1BAB0CB840F}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\expression\\expelementinstancebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{B18DE598-5F79-4528-B252-A1BAB0CB840F}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\expression\\expelementinstancebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{B18DE598-5F79-4528-B252-A1BAB0CB840F}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\expression\\exptoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{B18DE598-5F79-4528-B252-A1BAB0CB840F}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\expression\\exptoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{B18DE598-5F79-4528-B252-A1BAB0CB840F}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\expression\\element\\expconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{B18DE598-5F79-4528-B252-A1BAB0CB840F}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\expression\\element\\expconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Geometries\\PlainGeometry\\Rectangle.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Geometries\\PlainGeometry\\Rectangle.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
"DocumentGroupContainers": [
@@ -14,24 +38,96 @@
"DocumentGroups": [
{
"DockedWidth": 200,
- "SelectedChildIndex": 1,
+ "SelectedChildIndex": 4,
"Children": [
{
- "$type": "Bookmark",
- "Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
+ "$type": "Document",
+ "DocumentIndex": 1,
+ "Title": "ExpCollection.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\ExpCollection.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\Builtin\\ExpCollection.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\ExpCollection.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\Builtin\\ExpCollection.cs",
+ "ViewState": "AgIAADIAAAAAAAAAAAAUwEAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T05:33:29.273Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 2,
+ "Title": "ExpSchema.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpSchema.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\ExpSchema.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpSchema.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\ExpSchema.cs",
+ "ViewState": "AgIAALcAAAAAAAAAAAAkwMcAAAAeAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T05:28:02.148Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 3,
+ "Title": "ExpElementInstanceBase.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpElementInstanceBase.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\ExpElementInstanceBase.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpElementInstanceBase.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\ExpElementInstanceBase.cs",
+ "ViewState": "AgIAAC4AAAAAAAAAAIA5wDcAAAAfAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T05:27:26.12Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 4,
+ "Title": "ExpToken.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpToken.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\ExpToken.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpToken.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\ExpToken.cs",
+ "ViewState": "AgIAADwAAAAAAAAAAAAAAEAAAAALAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T05:26:18.196Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 0,
+ "Title": "ExpType.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpType.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\Element\\ExpType.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpType.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\Element\\ExpType.cs",
+ "ViewState": "AgIAAB4AAAAAAAAAAAAwwCUAAAAUAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T05:25:22.494Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 5,
+ "Title": "ExpConst.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpConst.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\Element\\ExpConst.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpConst.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\Element\\ExpConst.cs",
+ "ViewState": "AgIAADkAAAAAAAAAAAAkwEkAAAAMAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T05:24:24.946Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 6,
"Title": "Rectangle.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Geometries\\PlainGeometry\\Rectangle.cs",
"RelativeDocumentMoniker": "StgSharp\\Geometries\\PlainGeometry\\Rectangle.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Geometries\\PlainGeometry\\Rectangle.cs",
"RelativeToolTip": "StgSharp\\Geometries\\PlainGeometry\\Rectangle.cs",
- "ViewState": "AgIAABkAAAAAAAAAAADwvzcAAAAiAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2024-10-06T17:55:17.338Z",
- "EditorCaption": ""
+ "WhenOpened": "2024-10-06T17:55:17.338Z"
}
]
}
diff --git a/内核源代码/.vs/StgSharp/v17/Solution.VC.db b/内核源代码/.vs/StgSharp/v17/Solution.VC.db
index cfa49738..e1f6a685 100644
Binary files a/内核源代码/.vs/StgSharp/v17/Solution.VC.db and b/内核源代码/.vs/StgSharp/v17/Solution.VC.db differ
diff --git a/内核源代码/.vs/StgSharpDevelop/CopilotIndices/0.2.1634.3922/CodeChunks.db b/内核源代码/.vs/StgSharpDevelop/CopilotIndices/0.2.1634.3922/CodeChunks.db
index 5bccee4c..95ae7c46 100644
Binary files a/内核源代码/.vs/StgSharpDevelop/CopilotIndices/0.2.1634.3922/CodeChunks.db and b/内核源代码/.vs/StgSharpDevelop/CopilotIndices/0.2.1634.3922/CodeChunks.db differ
diff --git a/内核源代码/.vs/StgSharpDevelop/CopilotIndices/0.2.1634.3922/SemanticSymbols.db b/内核源代码/.vs/StgSharpDevelop/CopilotIndices/0.2.1634.3922/SemanticSymbols.db
index 64dbad60..5a8b8928 100644
Binary files a/内核源代码/.vs/StgSharpDevelop/CopilotIndices/0.2.1634.3922/SemanticSymbols.db and b/内核源代码/.vs/StgSharpDevelop/CopilotIndices/0.2.1634.3922/SemanticSymbols.db differ
diff --git a/内核源代码/.vs/StgSharpDevelop/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-shm b/内核源代码/.vs/StgSharpDevelop/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-shm
index f23fa901..b7830f2e 100644
Binary files a/内核源代码/.vs/StgSharpDevelop/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-shm and b/内核源代码/.vs/StgSharpDevelop/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-shm differ
diff --git a/内核源代码/.vs/StgSharpDevelop/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-wal b/内核源代码/.vs/StgSharpDevelop/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-wal
index 304fcd27..b9001ec4 100644
Binary files a/内核源代码/.vs/StgSharpDevelop/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-wal and b/内核源代码/.vs/StgSharpDevelop/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-wal differ
diff --git a/内核源代码/.vs/StgSharpDevelop/DesignTimeBuild/.dtbcache.v2 b/内核源代码/.vs/StgSharpDevelop/DesignTimeBuild/.dtbcache.v2
index bc07a8bc..4508b5f0 100644
Binary files a/内核源代码/.vs/StgSharpDevelop/DesignTimeBuild/.dtbcache.v2 and b/内核源代码/.vs/StgSharpDevelop/DesignTimeBuild/.dtbcache.v2 differ
diff --git a/内核源代码/.vs/StgSharpDevelop/FileContentIndex/18320af7-5f66-4ccc-a515-505f73737605.vsidx b/内核源代码/.vs/StgSharpDevelop/FileContentIndex/18320af7-5f66-4ccc-a515-505f73737605.vsidx
new file mode 100644
index 00000000..f348a770
Binary files /dev/null and b/内核源代码/.vs/StgSharpDevelop/FileContentIndex/18320af7-5f66-4ccc-a515-505f73737605.vsidx differ
diff --git a/内核源代码/.vs/StgSharpDevelop/FileContentIndex/4671fd0b-8c96-4713-98ff-e808a25fdb2a.vsidx b/内核源代码/.vs/StgSharpDevelop/FileContentIndex/4671fd0b-8c96-4713-98ff-e808a25fdb2a.vsidx
new file mode 100644
index 00000000..8ba60ca8
Binary files /dev/null and b/内核源代码/.vs/StgSharpDevelop/FileContentIndex/4671fd0b-8c96-4713-98ff-e808a25fdb2a.vsidx differ
diff --git a/内核源代码/.vs/StgSharpDevelop/FileContentIndex/54e958d5-c565-4cd4-8989-684bde11af18.vsidx b/内核源代码/.vs/StgSharpDevelop/FileContentIndex/54e958d5-c565-4cd4-8989-684bde11af18.vsidx
new file mode 100644
index 00000000..7181aa4f
Binary files /dev/null and b/内核源代码/.vs/StgSharpDevelop/FileContentIndex/54e958d5-c565-4cd4-8989-684bde11af18.vsidx differ
diff --git a/内核源代码/.vs/StgSharpDevelop/FileContentIndex/7c553b0b-aa30-44d4-938f-bdb61a50e5f0.vsidx b/内核源代码/.vs/StgSharpDevelop/FileContentIndex/7c553b0b-aa30-44d4-938f-bdb61a50e5f0.vsidx
deleted file mode 100644
index 1237b855..00000000
Binary files a/内核源代码/.vs/StgSharpDevelop/FileContentIndex/7c553b0b-aa30-44d4-938f-bdb61a50e5f0.vsidx and /dev/null differ
diff --git a/内核源代码/.vs/StgSharpDevelop/FileContentIndex/9b973e85-d20d-43cf-8d8e-f5710021940d.vsidx b/内核源代码/.vs/StgSharpDevelop/FileContentIndex/9b973e85-d20d-43cf-8d8e-f5710021940d.vsidx
new file mode 100644
index 00000000..f7447618
Binary files /dev/null and b/内核源代码/.vs/StgSharpDevelop/FileContentIndex/9b973e85-d20d-43cf-8d8e-f5710021940d.vsidx differ
diff --git a/内核源代码/.vs/StgSharpDevelop/FileContentIndex/b730c963-af99-40a5-8ac1-aa7ee748bd1f.vsidx b/内核源代码/.vs/StgSharpDevelop/FileContentIndex/b730c963-af99-40a5-8ac1-aa7ee748bd1f.vsidx
deleted file mode 100644
index f4a996b4..00000000
Binary files a/内核源代码/.vs/StgSharpDevelop/FileContentIndex/b730c963-af99-40a5-8ac1-aa7ee748bd1f.vsidx and /dev/null differ
diff --git a/内核源代码/.vs/StgSharpDevelop/FileContentIndex/bebd8272-f1da-43d8-967b-447da0be7335.vsidx b/内核源代码/.vs/StgSharpDevelop/FileContentIndex/bebd8272-f1da-43d8-967b-447da0be7335.vsidx
deleted file mode 100644
index 438bea91..00000000
Binary files a/内核源代码/.vs/StgSharpDevelop/FileContentIndex/bebd8272-f1da-43d8-967b-447da0be7335.vsidx and /dev/null differ
diff --git a/内核源代码/.vs/StgSharpDevelop/FileContentIndex/cbeffca0-afbc-4e9b-af9d-c8f6074ffa24.vsidx b/内核源代码/.vs/StgSharpDevelop/FileContentIndex/cbeffca0-afbc-4e9b-af9d-c8f6074ffa24.vsidx
new file mode 100644
index 00000000..e95c03f2
Binary files /dev/null and b/内核源代码/.vs/StgSharpDevelop/FileContentIndex/cbeffca0-afbc-4e9b-af9d-c8f6074ffa24.vsidx differ
diff --git a/内核源代码/.vs/StgSharpDevelop/FileContentIndex/ce0faf02-9cf7-4b0c-94e9-2b71ec774fc1.vsidx b/内核源代码/.vs/StgSharpDevelop/FileContentIndex/ce0faf02-9cf7-4b0c-94e9-2b71ec774fc1.vsidx
deleted file mode 100644
index 2e15b65a..00000000
Binary files a/内核源代码/.vs/StgSharpDevelop/FileContentIndex/ce0faf02-9cf7-4b0c-94e9-2b71ec774fc1.vsidx and /dev/null differ
diff --git a/内核源代码/.vs/StgSharpDevelop/FileContentIndex/f230c4ac-7876-4a4b-8da7-04cd04fd6aef.vsidx b/内核源代码/.vs/StgSharpDevelop/FileContentIndex/f230c4ac-7876-4a4b-8da7-04cd04fd6aef.vsidx
deleted file mode 100644
index 71279933..00000000
Binary files a/内核源代码/.vs/StgSharpDevelop/FileContentIndex/f230c4ac-7876-4a4b-8da7-04cd04fd6aef.vsidx and /dev/null differ
diff --git a/内核源代码/.vs/StgSharpDevelop/v17/.futdcache.v2 b/内核源代码/.vs/StgSharpDevelop/v17/.futdcache.v2
index b3b43bae..06409d85 100644
Binary files a/内核源代码/.vs/StgSharpDevelop/v17/.futdcache.v2 and b/内核源代码/.vs/StgSharpDevelop/v17/.futdcache.v2 differ
diff --git a/内核源代码/.vs/StgSharpDevelop/v17/.suo b/内核源代码/.vs/StgSharpDevelop/v17/.suo
index dfced524..63102971 100644
Binary files a/内核源代码/.vs/StgSharpDevelop/v17/.suo and b/内核源代码/.vs/StgSharpDevelop/v17/.suo differ
diff --git a/内核源代码/.vs/StgSharpDevelop/v17/DocumentLayout.backup.json b/内核源代码/.vs/StgSharpDevelop/v17/DocumentLayout.backup.json
index 972ad024..4a469b0e 100644
--- a/内核源代码/.vs/StgSharpDevelop/v17/DocumentLayout.backup.json
+++ b/内核源代码/.vs/StgSharpDevelop/v17/DocumentLayout.backup.json
@@ -3,287 +3,283 @@
"WorkspaceRootPath": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\",
"Documents": [
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\expression\\expexpressiontree.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\expression\\expexpressiontree.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expcompile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expcompile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\expression\\buildin\\expcollectioninstance.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\expression\\buildin\\expcollectioninstance.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\element\\expconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\element\\expconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\expression\\exptoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\expression\\exptoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expschema.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expschema.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\expression\\element\\exptype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\expression\\element\\exptype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expreader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expreader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\expression\\element\\exprule.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\expression\\element\\exprule.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\builtin\\exprepeat.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\builtin\\exprepeat.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\expression\\element\\expfunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\expression\\element\\expfunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\exptoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\exptoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\expression\\element\\expconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\expression\\element\\expconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\builtin\\expliteraltoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\builtin\\expliteraltoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\expression\\element\\expentity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\expression\\element\\expentity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\builtin\\expiftoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\builtin\\expiftoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\expression\\expelementbase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\expression\\expelementbase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\iexpressiontoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\iexpressiontoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\expression\\buildin\\expcollection.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\expression\\buildin\\expcollection.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\element\\exptype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\element\\exptype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\abstractsyntaxtree.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\abstractsyntaxtree.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\element\\exprule.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\element\\exprule.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\iexpressiontoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\iexpressiontoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\element\\expfunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\element\\expfunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\iscriptsourceprovider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\iscriptsourceprovider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\element\\expentity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\element\\expentity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\scriptsourcetransmitter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\scriptsourcetransmitter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\builtin\\expswitchtoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\builtin\\expswitchtoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\stgsharp.script.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\stgsharp.script.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\builtin\\expcollectioninstance.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\builtin\\expcollectioninstance.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\expression\\exceptions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\expression\\exceptions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\data\\lable.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\data\\lable.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\expression\\expreader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\expression\\expreader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\math\\linear\\vec4.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\math\\linear\\vec4.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\expression\\expschema.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\expression\\expschema.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\global.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\global.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Modeling\\Expression\\ExpConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\internal\\intrinsic\\m128.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\internal\\intrinsic\\m128.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{A74EABDE-B94D-4F8B-9305-F9D3850D4C70}|STgSharpTest\\StgSharpTest.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharptest\\stgsharptest.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
- "RelativeMoniker": "D:0:0:{A74EABDE-B94D-4F8B-9305-F9D3850D4C70}|STgSharpTest\\StgSharpTest.csproj|solutionrelative:stgsharptest\\stgsharptest.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\data\\ssd\\datahead.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\data\\ssd\\datahead.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\global.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\global.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\data\\ssd\\datasegment.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\data\\ssd\\datasegment.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\internal\\intrinsic\\intrinsiccontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\internal\\intrinsic\\intrinsiccontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\internal\\intrinsic\\columnset3.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\internal\\intrinsic\\columnset3.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\stgsharp.common.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\stgsharp.common.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\exceptions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\exceptions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\builtin\\builtintype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\builtin\\builtintype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\explogic.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\explogic.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\collections\\keymultiplexer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\collections\\keymultiplexer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expelementinstancebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expelementinstancebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expschemasource.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expschemasource.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\collections\\istringhashmultiplexer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\collections\\istringhashmultiplexer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{A74EABDE-B94D-4F8B-9305-F9D3850D4C70}|STgSharpTest\\StgSharpTest.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharptest\\unittest1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{A74EABDE-B94D-4F8B-9305-F9D3850D4C70}|STgSharpTest\\StgSharpTest.csproj|solutionrelative:stgsharptest\\unittest1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
- {
- "AbsoluteMoniker": "D:0:0:{D9538DE0-EE4C-4183-86D6-7DFC08A7BDFB}|SthSharp.Model\\SthSharp.Model.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\sthsharp.model\\step\\reader\\stepheadreader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{D9538DE0-EE4C-4183-86D6-7DFC08A7BDFB}|SthSharp.Model\\SthSharp.Model.csproj|solutionrelative:sthsharp.model\\step\\reader\\stepheadreader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\pixels.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\pixels.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\mvvm\\viewmodel\\viewmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\mvvm\\viewmodel\\viewmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\opengl\\glapimanager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\opengl\\glapimanager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\collections\\cachepool.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\collections\\cachepool.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\internal\\glfw.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\internal\\glfw.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\opengl\\glcontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\opengl\\glcontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\framework.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\framework.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\environment\\dialogue.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\environment\\dialogue.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\internal\\clangload\\gl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\internal\\clangload\\gl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\opengl\\glhalfnv.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\opengl\\glhalfnv.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\opengl\\glhandle.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\opengl\\glhandle.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\internal\\structdefine.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\internal\\structdefine.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\opengl\\glenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\opengl\\glenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\internal\\internalio.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\internal\\internalio.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\opengl\\glfunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\opengl\\glfunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\opengl\\glconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\opengl\\glconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{D9538DE0-EE4C-4183-86D6-7DFC08A7BDFB}|SthSharp.Model\\SthSharp.Model.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\sthsharp.model\\step\\filestructure\\stepexpression.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{D9538DE0-EE4C-4183-86D6-7DFC08A7BDFB}|SthSharp.Model\\SthSharp.Model.csproj|solutionrelative:sthsharp.model\\step\\filestructure\\stepexpression.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{D9538DE0-EE4C-4183-86D6-7DFC08A7BDFB}|SthSharp.Model\\SthSharp.Model.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\sthsharp.model\\sthsharp.model.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
- "RelativeMoniker": "D:0:0:{D9538DE0-EE4C-4183-86D6-7DFC08A7BDFB}|SthSharp.Model\\SthSharp.Model.csproj|solutionrelative:sthsharp.model\\sthsharp.model.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
- },
- {
- "AbsoluteMoniker": "D:0:0:{D9538DE0-EE4C-4183-86D6-7DFC08A7BDFB}|SthSharp.Model\\SthSharp.Model.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\sthsharp.model\\sthsharp.model.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
- "RelativeMoniker": "D:0:0:{D9538DE0-EE4C-4183-86D6-7DFC08A7BDFB}|SthSharp.Model\\SthSharp.Model.csproj|solutionrelative:sthsharp.model\\sthsharp.model.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\entities\\ientity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\entities\\ientity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\logic\\plaingeometrycollisionsensor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\logic\\plaingeometrycollisionsensor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\logic\\counter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\logic\\counter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{9A678884-081A-4E28-8439-B08F4BC05791}|StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsgharp.generator.expression\\global.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{9A678884-081A-4E28-8439-B08F4BC05791}|StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj|solutionrelative:stgsgharp.generator.expression\\global.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{9A678884-081A-4E28-8439-B08F4BC05791}|StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsgharp.generator.expression\\faketype\\partialdictionary.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{9A678884-081A-4E28-8439-B08F4BC05791}|StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj|solutionrelative:stgsgharp.generator.expression\\faketype\\partialdictionary.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{9A678884-081A-4E28-8439-B08F4BC05791}|StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsgharp.generator.expression\\stgsgharp.generator.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
- "RelativeMoniker": "D:0:0:{9A678884-081A-4E28-8439-B08F4BC05791}|StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj|solutionrelative:stgsgharp.generator.expression\\stgsgharp.generator.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
- },
- {
- "AbsoluteMoniker": "D:0:0:{9A678884-081A-4E28-8439-B08F4BC05791}|StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsgharp.generator.expression\\sourcegenerator\\bpnodegenerator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{9A678884-081A-4E28-8439-B08F4BC05791}|StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj|solutionrelative:stgsgharp.generator.expression\\sourcegenerator\\bpnodegenerator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\mvvm\\viewport.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\mvvm\\viewport.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharpdebug\\stgsharpdebug.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
- "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\stgsharpdebug.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
- },
{
"AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharpdebug\\viewmodelmain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\viewmodelmain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\stgsharp.commom.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\stgsharp.commom.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
- },
- {
- "AbsoluteMoniker": "D:0:0:{9A678884-081A-4E28-8439-B08F4BC05791}|StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsgharp.generator.expression\\stgsgharp.generator.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
- "RelativeMoniker": "D:0:0:{9A678884-081A-4E28-8439-B08F4BC05791}|StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj|solutionrelative:stgsgharp.generator.expression\\stgsgharp.generator.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
- },
- {
- "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\MSBuild\\Current\\Bin\\amd64\\Microsoft.Common.CurrentVersion.targets||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
- },
- {
- "AbsoluteMoniker": "D:0:0:{A74EABDE-B94D-4F8B-9305-F9D3850D4C70}|STgSharpTest\\StgSharpTest.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharptest\\stgsharptest.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
- "RelativeMoniker": "D:0:0:{A74EABDE-B94D-4F8B-9305-F9D3850D4C70}|STgSharpTest\\StgSharpTest.csproj|solutionrelative:stgsharptest\\stgsharptest.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
- },
- {
- "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharpdebug\\renderstream\\partical.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\renderstream\\partical.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
{
"AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharpdebug\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\textureprovider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\textureprovider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\hash.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\hash.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
},
{
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\cpuanimation\\imagehelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\cpuanimation\\imagehelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\stgsharp.common.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\stgsharp.common.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
},
{
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\opengl\\buffer\\vbo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\opengl\\buffer\\vbo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharpdebug\\stgsharpdebug.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\stgsharpdebug.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
},
{
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\opengl\\buffer\\ebo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\opengl\\buffer\\ebo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\ssc_intrinsic.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\ssc_intrinsic.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
},
{
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\opengl\\buffer\\texturegl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\opengl\\buffer\\texturegl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\intrinsic.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\intrinsic.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
},
{
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\image.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\image.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\stb_image.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\stb_image.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
},
{
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\controlling\\keyenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\controlling\\keyenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharpdebug\\view\\newrender.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\view\\newrender.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\opengl\\shaderedit\\uniform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\opengl\\shaderedit\\uniform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\StgSharpC.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\StgSharpC.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
},
{
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\math\\linear\\vector.orthogonalize.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\math\\linear\\vector.orthogonalize.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat4.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\mat4.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
},
{
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\environment\\platform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\environment\\platform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat3.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\mat3.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
},
{
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\renderstream.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\renderstream.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat2.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\mat2.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
},
{
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\define\\bufferobjectbase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\define\\bufferobjectbase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{A74EABDE-B94D-4F8B-9305-F9D3850D4C70}|STgSharpTest\\StgSharpTest.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharptest\\stgsharptest.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
+ "RelativeMoniker": "D:0:0:{A74EABDE-B94D-4F8B-9305-F9D3850D4C70}|STgSharpTest\\StgSharpTest.csproj|solutionrelative:stgsharptest\\stgsharptest.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
},
{
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\math\\linear\\matrix42.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\math\\linear\\matrix42.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharpdebug\\view\\viewmain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\view\\viewmain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharpdebug\\renderstream\\partical.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\renderstream\\partical.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\stgsharp.script.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\stgsharp.script.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{10B5819F-2A62-41B6-980A-EB9E76A0E95C}|StgSharp.TerminalDialogue\\StgSharp.TerminalDialogue.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.terminaldialogue\\stgsharp.terminaldialogue.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
+ "RelativeMoniker": "D:0:0:{10B5819F-2A62-41B6-980A-EB9E76A0E95C}|StgSharp.TerminalDialogue\\StgSharp.TerminalDialogue.csproj|solutionrelative:stgsharp.terminaldialogue\\stgsharp.terminaldialogue.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\graphics\\renderstream.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\graphics\\renderstream.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharpdebug\\stgsharpdebug.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\stgsharpdebug.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\internal\\internalio.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\internal\\internalio.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A74EABDE-B94D-4F8B-9305-F9D3850D4C70}|STgSharpTest\\StgSharpTest.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharptest\\stgsharptest.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
+ "RelativeMoniker": "D:0:0:{A74EABDE-B94D-4F8B-9305-F9D3850D4C70}|STgSharpTest\\StgSharpTest.csproj|solutionrelative:stgsharptest\\stgsharptest.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{D9538DE0-EE4C-4183-86D6-7DFC08A7BDFB}|StgSharp.Model\\StgSharp.Model.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.model\\stgsharp.model.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
+ "RelativeMoniker": "D:0:0:{D9538DE0-EE4C-4183-86D6-7DFC08A7BDFB}|StgSharp.Model\\StgSharp.Model.csproj|solutionrelative:stgsharp.model\\stgsharp.model.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\graphics\\opengl\\glconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\graphics\\opengl\\glconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\graphics\\vulkan\\vkenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\graphics\\vulkan\\vkenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\graphics\\opengl\\glenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\graphics\\opengl\\glenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\graphics\\imageinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\graphics\\imageinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\internal\\publictype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\internal\\publictype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\internal\\clangload\\gl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\internal\\clangload\\gl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\internal\\internalresource.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\internal\\internalresource.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\graphics\\opengl\\glfunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\graphics\\opengl\\glfunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\graphics\\opengl\\shaderedit\\shader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\graphics\\opengl\\shaderedit\\shader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\graphics\\shaderedit\\shadergenerator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\graphics\\shaderedit\\shadergenerator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\builtin\\expcollection.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\builtin\\expcollection.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\abstractsyntaxtree.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\abstractsyntaxtree.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\ExpIfToken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\Builtin\\ExpIfToken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Modeling\\Expression\\ExpConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\MSBuild\\Current\\Bin\\amd64\\Microsoft.Common.CurrentVersion.targets||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
},
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpCollection.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -304,6 +300,196 @@
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpEntity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Modeling\\Expression\\ExpEntity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\glfw.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Internal\\glfw.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\ClangLoad\\gl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Internal\\ClangLoad\\gl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glHalfNV.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\glHalfNV.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\StructDefine.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Internal\\StructDefine.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\InternalIO.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Internal\\InternalIO.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glContext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\glContext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\glConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glEnum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\glEnum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Entities\\IEntity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Entities\\IEntity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Logic\\PlainGeometryCollisionSensor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Logic\\PlainGeometryCollisionSensor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Logic\\Counter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Logic\\Counter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Collections\\CachePool.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Collections\\CachePool.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\StgSharp.Commom.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\StgSharp.Commom.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\MVVM\\ViewModel\\ViewModel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\MVVM\\ViewModel\\ViewModel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\TextureProvider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\TextureProvider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\CPUanimation\\ImageHelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\CPUanimation\\ImageHelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glHandle.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\glHandle.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\VBO.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\Buffer\\VBO.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\EBO.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\Buffer\\EBO.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\TextureGL.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\Buffer\\TextureGL.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Image.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\Image.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Controlling\\KeyEnum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Controlling\\KeyEnum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\ShaderEdit\\Uniform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\ShaderEdit\\Uniform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Vector.Orthogonalize.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Math\\Linear\\Vector.Orthogonalize.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glFunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\glFunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Environment\\Platform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Environment\\Platform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Environment\\Dialogue.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Environment\\Dialogue.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Pixels.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\Pixels.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\RenderStream.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\RenderStream.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Define\\BufferObjectBase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\Define\\BufferObjectBase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Global.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Global.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\MVVM\\ViewPort.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\MVVM\\ViewPort.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\framework.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\framework.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Matrix42.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Math\\Linear\\Matrix42.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glApiManager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\glApiManager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\STEP\\Reader\\StepHeadReader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:SthSharp.Model\\STEP\\Reader\\StepHeadReader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\SthSharp.Model.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:SthSharp.Model\\SthSharp.Model.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\STEP\\FileStructure\\StepExpression.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:SthSharp.Model\\STEP\\FileStructure\\StepExpression.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\SthSharp.Model.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:SthSharp.Model\\SthSharp.Model.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpExpressionTree.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\ExpExpressionTree.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpToken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\ExpToken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\Element\\ExpConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpInit.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\ExpInit.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\BuiltinType.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\Builtin\\BuiltinType.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\BuiltinConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\Builtin\\BuiltinConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpType.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\Element\\ExpType.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.41.34120\\include\\smmintrin.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.41.34120\\include\\intrin.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
}
],
"DocumentGroupContainers": [
@@ -313,239 +499,965 @@
"DocumentGroups": [
{
"DockedWidth": 200,
- "SelectedChildIndex": 7,
+ "SelectedChildIndex": 60,
"Children": [
{
"$type": "Document",
- "DocumentIndex": 1,
- "Title": "ExpCollectionInstance.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\buildin\\ExpCollectionInstance.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\buildin\\ExpCollectionInstance.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\buildin\\ExpCollectionInstance.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\buildin\\ExpCollectionInstance.cs",
- "ViewState": "AgIAADUAAAAAAAAAAAAcwEUAAABXAAAAAAAAAA==",
+ "DocumentIndex": 16,
+ "Title": "Vec4.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Math\\Linear\\Vec4.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Math\\Linear\\Vec4.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Math\\Linear\\Vec4.cs",
+ "RelativeToolTip": "StgSharp.Common\\Math\\Linear\\Vec4.cs",
+ "ViewState": "AgIAACUAAAAAAAAAAAAqwKMAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-27T14:21:51.86Z",
+ "WhenOpened": "2025-02-02T14:45:18.593Z",
"EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 9,
- "Title": "ExpCollection.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\buildin\\ExpCollection.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\buildin\\ExpCollection.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\buildin\\ExpCollection.cs \u2B24",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\buildin\\ExpCollection.cs \u2B24",
- "ViewState": "AgIAACEAAAAAAAAAAAAiwDgAAAAAAAAAAAAAAA==",
+ "DocumentIndex": 19,
+ "Title": "DataHead.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Data\\SSD\\DataHead.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Data\\SSD\\DataHead.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Data\\SSD\\DataHead.cs",
+ "RelativeToolTip": "StgSharp.Common\\Data\\SSD\\DataHead.cs",
+ "ViewState": "AgIAACIAAAAAAAAAAIA0wDEAAAAkAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-27T07:53:22.862Z",
+ "WhenOpened": "2025-02-02T14:44:58.989Z",
"EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 3,
- "Title": "ExpType.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\Element\\ExpType.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\Element\\ExpType.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\Element\\ExpType.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\Element\\ExpType.cs",
- "ViewState": "AgIAACEAAAAAAAAAAAAqwCcAAAAAAAAAAAAAAA==",
+ "DocumentIndex": 17,
+ "Title": "Global.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Global.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Global.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Global.cs",
+ "RelativeToolTip": "StgSharp.Common\\Global.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAcAAAAmAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-27T07:37:04.155Z",
+ "WhenOpened": "2025-02-02T14:38:49.858Z",
"EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 4,
- "Title": "ExpRule.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\Element\\ExpRule.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\Element\\ExpRule.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\Element\\ExpRule.cs \u2B24",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\Element\\ExpRule.cs \u2B24",
- "ViewState": "AgIAABoAAAAAAAAAAAAswCkAAABFAAAAAAAAAA==",
+ "DocumentIndex": 20,
+ "Title": "DataSegment.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Data\\SSD\\DataSegment.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Data\\SSD\\DataSegment.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Data\\SSD\\DataSegment.cs",
+ "RelativeToolTip": "StgSharp.Common\\Data\\SSD\\DataSegment.cs",
+ "ViewState": "AgIAAFsAAAAAAAAAAIA0wGoAAAAiAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-27T07:36:49.736Z",
+ "WhenOpened": "2025-02-02T14:38:41.321Z",
"EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 5,
- "Title": "ExpFunction.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\Element\\ExpFunction.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\Element\\ExpFunction.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\Element\\ExpFunction.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\Element\\ExpFunction.cs",
- "ViewState": "AgIAABwAAAAAAAAAAAAswCsAAABJAAAAAAAAAA==",
+ "DocumentIndex": 18,
+ "Title": "M128.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\Intrinsic\\M128.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Internal\\Intrinsic\\M128.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\Intrinsic\\M128.cs",
+ "RelativeToolTip": "StgSharp.Common\\Internal\\Intrinsic\\M128.cs",
+ "ViewState": "AgIAABoAAAAAAAAAAAAiwC4AAAAMAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-27T05:09:34.68Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 7,
- "Title": "ExpEntity.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\Element\\ExpEntity.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\Element\\ExpEntity.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\Element\\ExpEntity.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\Element\\ExpEntity.cs",
- "ViewState": "AgIAADEAAAAAAAAAAABDwCwAAAAZAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-27T03:11:58.736Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 6,
- "Title": "ExpConst.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\Element\\ExpConst.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\Element\\ExpConst.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\Element\\ExpConst.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\Element\\ExpConst.cs",
- "ViewState": "AgIAABYAAAAAAAAAAAA1wCYAAAAcAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-27T03:09:00.909Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 0,
- "Title": "ExpExpressionTree.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpExpressionTree.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpExpressionTree.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpExpressionTree.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpExpressionTree.cs",
- "ViewState": "AgIAABEAAAAAAAAAAAAgwCQAAAAuAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-26T04:03:40.189Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 10,
- "Title": "AbstractSyntaxTree.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\AbstractSyntaxTree.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\AbstractSyntaxTree.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\AbstractSyntaxTree.cs",
- "RelativeToolTip": "StgSharp.Modeling\\AbstractSyntaxTree.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAABGAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-25T14:58:39.546Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 11,
- "Title": "IExpressionToken.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\IExpressionToken.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\IExpressionToken.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\IExpressionToken.cs",
- "RelativeToolTip": "StgSharp.Modeling\\IExpressionToken.cs",
- "ViewState": "AgIAAAIAAAAAAAAAAAA3wA8AAAAmAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-25T05:42:59.694Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 2,
- "Title": "ExpToken.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpToken.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpToken.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpToken.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpToken.cs",
- "ViewState": "AgIAADcAAAAAAAAAAIA5wDsAAAAaAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-25T05:42:41.444Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 71,
- "Title": "ExpCollection.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpCollection.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpCollection.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpCollection.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpCollection.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAAnAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-25T05:41:19.849Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 72,
- "Title": "ExpRule.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpRule.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpRule.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpRule.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpRule.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAAAkAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-24T12:33:08.481Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 73,
- "Title": "ExpFunction.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpFunction.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpFunction.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpFunction.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpFunction.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAYAAAAjAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-24T11:30:53.865Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 74,
- "Title": "ExpType.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpType.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpType.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpType.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpType.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAcAAAAiAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-24T10:20:07.164Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 15,
- "Title": "Exceptions.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\Exceptions.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\Exceptions.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\Exceptions.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\Exceptions.cs",
- "ViewState": "AgIAADAAAAAAAAAAAAA3wEEAAACFAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-24T06:23:41.639Z",
+ "WhenOpened": "2025-02-02T14:38:06.028Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 22,
+ "Title": "ColumnSet3.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\Intrinsic\\ColumnSet3.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Internal\\Intrinsic\\ColumnSet3.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\Intrinsic\\ColumnSet3.cs",
+ "RelativeToolTip": "StgSharp.Common\\Internal\\Intrinsic\\ColumnSet3.cs",
+ "ViewState": "AgIAACIAAAAAAAAAAAAwwCoAAAAFAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-02T14:37:46.284Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 30,
+ "Title": "IStringHashMultiplexer.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\IStringHashMultiplexer.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Collections\\IStringHashMultiplexer.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\IStringHashMultiplexer.cs",
+ "RelativeToolTip": "StgSharp.Common\\Collections\\IStringHashMultiplexer.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAYAAAAwAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-02T09:10:55.793Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 9,
+ "Title": "ExpType.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpType.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Element\\ExpType.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpType.cs \u2B24",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Element\\ExpType.cs \u2B24",
+ "ViewState": "AgIAABkAAAAAAAAAAIA4wCYAAAAFAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-02T08:11:31.522Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 10,
+ "Title": "ExpRule.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpRule.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Element\\ExpRule.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpRule.cs \u2B24",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Element\\ExpRule.cs \u2B24",
+ "ViewState": "AgIAACMAAAAAAAAAAAAEwC4AAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-02T08:11:26.812Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 11,
+ "Title": "ExpFunction.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpFunction.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Element\\ExpFunction.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpFunction.cs \u2B24",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Element\\ExpFunction.cs \u2B24",
+ "ViewState": "AgIAACEAAAAAAAAAAAArwC0AAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-02T08:10:44.132Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 14,
+ "Title": "ExpCollectionInstance.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpCollectionInstance.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Builtin\\ExpCollectionInstance.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpCollectionInstance.cs \u2B24",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Builtin\\ExpCollectionInstance.cs \u2B24",
+ "ViewState": "AgIAAB4AAAAAAAAAAIA4wCwAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-02T08:10:18.867Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 2,
+ "Title": "ExpSchema.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpSchema.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpSchema.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpSchema.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpSchema.cs",
+ "ViewState": "AgIAAE0AAAAAAAAAAAAowFgAAABMAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-02T08:08:05.896Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 35,
+ "Title": "StgSharp.Common",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\StgSharp.Common.csproj",
+ "RelativeDocumentMoniker": "StgSharp.Common\\StgSharp.Common.csproj",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\StgSharp.Common.csproj",
+ "RelativeToolTip": "StgSharp.Common\\StgSharp.Common.csproj",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
+ "WhenOpened": "2025-02-02T04:58:01.889Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 121,
+ "Title": "smmintrin.h",
+ "DocumentMoniker": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.41.34120\\include\\smmintrin.h",
+ "ToolTip": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.41.34120\\include\\smmintrin.h",
+ "ViewState": "AgIAAL0AAAAAAAAAAAAmwMgAAAAoAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2025-02-02T03:32:10.906Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 122,
+ "Title": "intrin.h",
+ "DocumentMoniker": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.41.34120\\include\\intrin.h",
+ "ToolTip": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.41.34120\\include\\intrin.h",
+ "ViewState": "AgIAAJMCAAAAAAAAAAAmwJ4CAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2025-02-02T03:32:07.411Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 39,
+ "Title": "stb_image.h",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\stb_image.h",
+ "RelativeDocumentMoniker": "StgSharp.C\\stb_image.h",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\stb_image.h",
+ "RelativeToolTip": "StgSharp.C\\stb_image.h",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2025-02-02T03:31:27.068Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 44,
+ "Title": "mat2.c",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat2.c",
+ "RelativeDocumentMoniker": "StgSharp.C\\mat2.c",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat2.c",
+ "RelativeToolTip": "StgSharp.C\\mat2.c",
+ "ViewState": "AgIAABAAAAAAAAAAAAAUwB4AAAA6AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000423|",
+ "WhenOpened": "2025-02-01T12:00:34.568Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 42,
+ "Title": "mat4.c",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat4.c",
+ "RelativeDocumentMoniker": "StgSharp.C\\mat4.c",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat4.c",
+ "RelativeToolTip": "StgSharp.C\\mat4.c",
+ "ViewState": "AgIAAD8AAAAAAAAAAAAowAAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000423|",
+ "WhenOpened": "2025-02-01T10:58:51.767Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 43,
+ "Title": "mat3.c",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat3.c",
+ "RelativeDocumentMoniker": "StgSharp.C\\mat3.c",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat3.c",
+ "RelativeToolTip": "StgSharp.C\\mat3.c",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000423|",
+ "WhenOpened": "2025-02-01T10:58:49.386Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 48,
+ "Title": "StgSharp.Script",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\StgSharp.Script.csproj",
+ "RelativeDocumentMoniker": "StgSharp.Script\\StgSharp.Script.csproj",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\StgSharp.Script.csproj",
+ "RelativeToolTip": "StgSharp.Script\\StgSharp.Script.csproj",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
+ "WhenOpened": "2025-02-01T10:50:18.055Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 50,
+ "Title": "RenderStream.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\RenderStream.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Graphics\\RenderStream.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\RenderStream.cs",
+ "RelativeToolTip": "StgSharp.Common\\Graphics\\RenderStream.cs",
+ "ViewState": "AgIAAKkAAAAAAAAAAIA0wNQAAAAMAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T10:08:45.143Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 46,
+ "Title": "ViewMain.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\View\\ViewMain.cs",
+ "RelativeDocumentMoniker": "StgSharpDebug\\View\\ViewMain.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\View\\ViewMain.cs",
+ "RelativeToolTip": "StgSharpDebug\\View\\ViewMain.cs",
+ "ViewState": "AgIAADIAAAAAAAAAAIA2wD8AAAAMAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T09:52:43.909Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 36,
+ "Title": "StgSharpDebug.csproj",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\StgSharpDebug.csproj",
+ "RelativeDocumentMoniker": "StgSharpDebug\\StgSharpDebug.csproj",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\StgSharpDebug.csproj",
+ "RelativeToolTip": "StgSharpDebug\\StgSharpDebug.csproj",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAAA1AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
+ "WhenOpened": "2025-02-01T05:19:07.003Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 40,
+ "Title": "NewRender.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\View\\NewRender.cs",
+ "RelativeDocumentMoniker": "StgSharpDebug\\View\\NewRender.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\View\\NewRender.cs",
+ "RelativeToolTip": "StgSharpDebug\\View\\NewRender.cs",
+ "ViewState": "AgIAACEAAAAAAAAAAIA0wC4AAAAQAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T05:16:41.098Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 52,
+ "Title": "InternalIO.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\InternalIO.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Internal\\InternalIO.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\InternalIO.cs",
+ "RelativeToolTip": "StgSharp.Common\\Internal\\InternalIO.cs",
+ "ViewState": "AgIAACsAAAAAAAAAAAAcwDQAAAAWAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T05:09:10.563Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 54,
+ "Title": "StgSharp.Model.csproj",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Model\\StgSharp.Model.csproj",
+ "RelativeDocumentMoniker": "StgSharp.Model\\StgSharp.Model.csproj",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Model\\StgSharp.Model.csproj",
+ "RelativeToolTip": "StgSharp.Model\\StgSharp.Model.csproj",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
+ "WhenOpened": "2025-02-01T04:53:57.734Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 23,
+ "Title": "StgSharp.Common.csproj",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\StgSharp.Common.csproj",
+ "RelativeDocumentMoniker": "StgSharp.Common\\StgSharp.Common.csproj",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\StgSharp.Common.csproj",
+ "RelativeToolTip": "StgSharp.Common\\StgSharp.Common.csproj",
+ "ViewState": "AgIAADcAAAAAAAAAAAA1wEgAAAAUAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
+ "WhenOpened": "2025-02-01T04:53:22.477Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 38,
+ "Title": "intrinsic.c",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\intrinsic.c",
+ "RelativeDocumentMoniker": "StgSharp.C\\intrinsic.c",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\intrinsic.c",
+ "RelativeToolTip": "StgSharp.C\\intrinsic.c",
+ "ViewState": "AgIAAD8AAAAAAAAAAAAswFQAAAAZAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000423|",
+ "WhenOpened": "2025-02-01T04:44:14.087Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 15,
+ "Title": "Lable.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Data\\Lable.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Data\\Lable.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Data\\Lable.cs",
+ "RelativeToolTip": "StgSharp.Common\\Data\\Lable.cs",
+ "ViewState": "AgIAABEAAAAAAAAAAAAgwDgAAAArAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T04:24:59.826Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 21,
+ "Title": "IntrinsicContext.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\Intrinsic\\IntrinsicContext.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Internal\\Intrinsic\\IntrinsicContext.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\Intrinsic\\IntrinsicContext.cs",
+ "RelativeToolTip": "StgSharp.Common\\Internal\\Intrinsic\\IntrinsicContext.cs",
+ "ViewState": "AgIAACMAAAAAAAAAAAAcwDMAAAARAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T04:22:49.291Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 55,
+ "Title": "glConst.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\glConst.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Graphics\\OpenGL\\glConst.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\glConst.cs",
+ "RelativeToolTip": "StgSharp.Common\\Graphics\\OpenGL\\glConst.cs",
+ "ViewState": "AgIAAOoSAAAAAAAAAAA5wPkSAAA9AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T04:20:23.873Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 56,
+ "Title": "vkEnum.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\Vulkan\\vkEnum.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Graphics\\Vulkan\\vkEnum.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\Vulkan\\vkEnum.cs",
+ "RelativeToolTip": "StgSharp.Common\\Graphics\\Vulkan\\vkEnum.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAADEAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T04:16:05.735Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 57,
+ "Title": "glEnum.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\glEnum.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Graphics\\OpenGL\\glEnum.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\glEnum.cs",
+ "RelativeToolTip": "StgSharp.Common\\Graphics\\OpenGL\\glEnum.cs",
+ "ViewState": "AgIAAEgAAAAAAAAAAAA1wIEAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T03:25:21.859Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 60,
+ "Title": "gl.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\ClangLoad\\gl.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Internal\\ClangLoad\\gl.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\ClangLoad\\gl.cs",
+ "RelativeToolTip": "StgSharp.Common\\Internal\\ClangLoad\\gl.cs",
+ "ViewState": "AgIAADUAAAAAAAAAAAAxwEgAAABBAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T03:20:57.08Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 58,
+ "Title": "ImageInfo.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\ImageInfo.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Graphics\\ImageInfo.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\ImageInfo.cs",
+ "RelativeToolTip": "StgSharp.Common\\Graphics\\ImageInfo.cs",
+ "ViewState": "AgIAAEsAAAAAAAAAAAAuwF0AAAAZAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T03:20:17.135Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 59,
+ "Title": "publicType.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\publicType.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Internal\\publicType.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\publicType.cs",
+ "RelativeToolTip": "StgSharp.Common\\Internal\\publicType.cs",
+ "ViewState": "AgIAABwAAAAAAAAAAAA2wDIAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T03:19:35.334Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 61,
+ "Title": "InternalResource.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\InternalResource.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Internal\\InternalResource.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\InternalResource.cs",
+ "RelativeToolTip": "StgSharp.Common\\Internal\\InternalResource.cs",
+ "ViewState": "AgIAABkAAAAAAAAAAAA5wCcAAAAIAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T03:18:37.837Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 41,
+ "Title": "StgSharpC.h",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\StgSharpC.h",
+ "RelativeDocumentMoniker": "StgSharp.C\\StgSharpC.h",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\StgSharpC.h",
+ "RelativeToolTip": "StgSharp.C\\StgSharpC.h",
+ "ViewState": "AgIAABUAAAAAAAAAAIA2wCUAAAANAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2025-02-01T02:22:45.65Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 37,
+ "Title": "ssc_intrinsic.h",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\ssc_intrinsic.h",
+ "RelativeDocumentMoniker": "StgSharp.C\\ssc_intrinsic.h",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\ssc_intrinsic.h",
+ "RelativeToolTip": "StgSharp.C\\ssc_intrinsic.h",
+ "ViewState": "AgIAABkAAAAAAAAAAAA5wCAAAAAFAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2025-02-01T02:13:17.69Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 34,
+ "Title": "hash.c",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\hash.c",
+ "RelativeDocumentMoniker": "StgSharp.C\\hash.c",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\hash.c",
+ "RelativeToolTip": "StgSharp.C\\hash.c",
+ "ViewState": "AgIAACQAAAAAAAAAAAAMwDEAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000423|",
+ "WhenOpened": "2025-02-01T02:12:53.091Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 27,
+ "Title": "KeyMultiplexer.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\KeyMultiplexer.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Collections\\KeyMultiplexer.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\KeyMultiplexer.cs",
+ "RelativeToolTip": "StgSharp.Common\\Collections\\KeyMultiplexer.cs",
+ "ViewState": "AgIAAEIAAAAAAAAAAAAowEcAAAAMAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T01:26:33.462Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 63,
+ "Title": "Shader.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\ShaderEdit\\Shader.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Graphics\\OpenGL\\ShaderEdit\\Shader.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\ShaderEdit\\Shader.cs",
+ "RelativeToolTip": "StgSharp.Common\\Graphics\\OpenGL\\ShaderEdit\\Shader.cs",
+ "ViewState": "AgIAAGYAAAAAAAAAAAAIwHoAAAA0AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-31T14:51:26.007Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 64,
+ "Title": "ShaderGenerator.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\ShaderEdit\\ShaderGenerator.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Graphics\\ShaderEdit\\ShaderGenerator.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\ShaderEdit\\ShaderGenerator.cs",
+ "RelativeToolTip": "StgSharp.Common\\Graphics\\ShaderEdit\\ShaderGenerator.cs",
+ "ViewState": "AgIAAD8AAAAAAAAAAAA6wE0AAAAJAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-31T14:23:42.591Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 62,
+ "Title": "glFunction.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\glFunction.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Graphics\\OpenGL\\glFunction.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\glFunction.cs",
+ "RelativeToolTip": "StgSharp.Common\\Graphics\\OpenGL\\glFunction.cs",
+ "ViewState": "AgIAAPIBAAAAAAAAAAAEwAgCAAAuAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-31T14:23:13.006Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 12,
+ "Title": "ExpEntity.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpEntity.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Element\\ExpEntity.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpEntity.cs \u2B24",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Element\\ExpEntity.cs \u2B24",
+ "ViewState": "AgIAAB8AAAAAAAAAAAArwCsAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-31T03:23:40.771Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 6,
+ "Title": "ExpLiteralToken.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpLiteralToken.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Builtin\\ExpLiteralToken.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpLiteralToken.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Builtin\\ExpLiteralToken.cs",
+ "ViewState": "AgIAAB0AAAAAAAAAAAAAwFQAAAAhAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T13:29:07.592Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 66,
+ "Title": "AbstractSyntaxTree.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\AbstractSyntaxTree.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\AbstractSyntaxTree.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\AbstractSyntaxTree.cs",
+ "RelativeToolTip": "StgSharp.Script\\AbstractSyntaxTree.cs",
+ "ViewState": "AgIAADEAAAAAAAAAAAAqwEUAAAAtAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T07:24:37.33Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 8,
+ "Title": "IExpressionToken.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\IExpressionToken.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\IExpressionToken.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\IExpressionToken.cs",
+ "RelativeToolTip": "StgSharp.Script\\IExpressionToken.cs",
+ "ViewState": "AgIAACIAAAAAAAAAAAAqwCcAAAAVAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T07:23:34.89Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 4,
+ "Title": "ExpRepeat.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpRepeat.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Builtin\\ExpRepeat.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpRepeat.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Builtin\\ExpRepeat.cs",
+ "ViewState": "AgIAAEMAAAAAAAAAAAAUwFUAAAA0AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T07:19:24.455Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 3,
+ "Title": "ExpReader.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpReader.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpReader.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpReader.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpReader.cs",
+ "ViewState": "AgIAAC0AAAAAAAAAAAAuwAAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T06:40:23.62Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 13,
+ "Title": "ExpSwitchToken.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpSwitchToken.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Builtin\\ExpSwitchToken.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpSwitchToken.cs \u2B24",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Builtin\\ExpSwitchToken.cs \u2B24",
+ "ViewState": "AgIAACYAAAAAAAAAAAAjwDMAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T03:55:57.477Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 25,
+ "Title": "BuiltinType.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\BuiltinType.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Builtin\\BuiltinType.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\BuiltinType.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Builtin\\BuiltinType.cs",
+ "ViewState": "AgIAABwAAAAAAAAAAAA2wCYAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T02:58:12.25Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 28,
+ "Title": "ExpElementInstanceBase.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpElementInstanceBase.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpElementInstanceBase.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpElementInstanceBase.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpElementInstanceBase.cs",
+ "ViewState": "AgIAADkAAAAAAAAAAAAmwGUAAAAFAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T02:52:10.549Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 65,
+ "Title": "ExpCollection.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpCollection.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Builtin\\ExpCollection.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpCollection.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Builtin\\ExpCollection.cs",
+ "ViewState": "AgIAAEMAAAAAAAAAAIBAwDgAAAAYAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T02:50:15.736Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 29,
+ "Title": "ExpSchemaSource.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpSchemaSource.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpSchemaSource.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpSchemaSource.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpSchemaSource.cs",
+ "ViewState": "AgIAAEoAAAAAAAAAAAAywKwAAABPAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:51:49.061Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 5,
+ "Title": "ExpToken.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpToken.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpToken.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpToken.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpToken.cs",
+ "ViewState": "AgIAADMAAAAAAAAAAAAcwEMAAAAhAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:49:36.742Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 7,
+ "Title": "ExpIfToken.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpIfToken.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Builtin\\ExpIfToken.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpIfToken.cs \u2B24",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Builtin\\ExpIfToken.cs \u2B24",
+ "ViewState": "AgIAABkAAAAAAAAAAAAkwAkAAAAFAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:38:12.188Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 24,
+ "Title": "Exceptions.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Exceptions.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Exceptions.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Exceptions.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Exceptions.cs",
+ "ViewState": "AgIAACMAAAAAAAAAAAAuwCwAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:38:11.545Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 1,
+ "Title": "ExpConst.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpConst.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Element\\ExpConst.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpConst.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Element\\ExpConst.cs",
+ "ViewState": "AgIAACwAAAAAAAAAAAAewEgAAAAwAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:34:20.019Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 26,
+ "Title": "ExpLogic.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpLogic.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpLogic.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpLogic.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpLogic.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAoAAAARAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:26:02.08Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 0,
+ "Title": "ExpCompile.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpCompile.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpCompile.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpCompile.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpCompile.cs",
+ "ViewState": "AgIAAEoAAAAAAAAAAAAiwFsAAAA3AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:21:02.074Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 67,
+ "Title": "ExpIfToken.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\ExpIfToken.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\Builtin\\ExpIfToken.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\ExpIfToken.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\Builtin\\ExpIfToken.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:19:15.148Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 114,
+ "Title": "ExpExpressionTree.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpExpressionTree.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\ExpExpressionTree.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpExpressionTree.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\ExpExpressionTree.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T12:41:21.842Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 115,
+ "Title": "ExpToken.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpToken.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\ExpToken.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpToken.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\ExpToken.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T12:32:47.772Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 116,
+ "Title": "ExpConst.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpConst.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\Element\\ExpConst.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpConst.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\Element\\ExpConst.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T08:10:50.179Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 117,
+ "Title": "ExpInit.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpInit.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\ExpInit.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpInit.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\ExpInit.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T08:10:00.82Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 118,
+ "Title": "BuiltinType.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\BuiltinType.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\Builtin\\BuiltinType.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\BuiltinType.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\Builtin\\BuiltinType.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T08:06:29.505Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 119,
+ "Title": "BuiltinConst.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\BuiltinConst.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\Builtin\\BuiltinConst.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\BuiltinConst.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\Builtin\\BuiltinConst.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T08:03:33.572Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 49,
+ "Title": "StgSharp.TerminalDialogue.csproj",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.TerminalDialogue\\StgSharp.TerminalDialogue.csproj",
+ "RelativeDocumentMoniker": "StgSharp.TerminalDialogue\\StgSharp.TerminalDialogue.csproj",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.TerminalDialogue\\StgSharp.TerminalDialogue.csproj",
+ "RelativeToolTip": "StgSharp.TerminalDialogue\\StgSharp.TerminalDialogue.csproj",
+ "ViewState": "AgIAABEAAAAAAAAAAAAgwCQAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
+ "WhenOpened": "2025-01-29T08:02:17.589Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 120,
+ "Title": "ExpType.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpType.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\Element\\ExpType.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpType.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\Element\\ExpType.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T07:24:26.837Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 70,
+ "Title": "ExpCollection.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpCollection.cs",
+ "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpCollection.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpCollection.cs",
+ "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpCollection.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-25T05:41:19.849Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 71,
+ "Title": "ExpRule.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpRule.cs",
+ "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpRule.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpRule.cs",
+ "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpRule.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-24T12:33:08.481Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 72,
+ "Title": "ExpFunction.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpFunction.cs",
+ "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpFunction.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpFunction.cs",
+ "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpFunction.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-24T11:30:53.865Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 73,
+ "Title": "ExpType.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpType.cs",
+ "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpType.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpType.cs",
+ "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpType.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-24T10:20:07.164Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 110,
"Title": "StepHeadReader.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\STEP\\Reader\\StepHeadReader.cs",
"RelativeDocumentMoniker": "SthSharp.Model\\STEP\\Reader\\StepHeadReader.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\STEP\\Reader\\StepHeadReader.cs",
"RelativeToolTip": "SthSharp.Model\\STEP\\Reader\\StepHeadReader.cs",
- "ViewState": "AgIAADUAAAAAAAAAAAAxwAAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-24T06:17:36.213Z"
},
{
"$type": "Document",
- "DocumentIndex": 27,
+ "DocumentIndex": 75,
"Title": "glfw.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\glfw.cs",
"RelativeDocumentMoniker": "StgSharp\\Internal\\glfw.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\glfw.cs",
"RelativeToolTip": "StgSharp\\Internal\\glfw.cs",
- "ViewState": "AgIAACMAAAAAAAAAAAAiwDAAAAAvAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-23T14:17:06.842Z"
},
{
"$type": "Document",
- "DocumentIndex": 18,
+ "DocumentIndex": 68,
"Title": "ExpConst.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpConst.cs",
"RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpConst.cs",
@@ -556,144 +1468,85 @@
},
{
"$type": "Document",
- "DocumentIndex": 12,
- "Title": "IScriptSourceProvider.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\IScriptSourceProvider.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\IScriptSourceProvider.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\IScriptSourceProvider.cs",
- "RelativeToolTip": "StgSharp.Modeling\\IScriptSourceProvider.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAuwAgAAAAgAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-22T11:22:33.535Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 13,
- "Title": "ScriptSourceTransmitter.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\ScriptSourceTransmitter.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\ScriptSourceTransmitter.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\ScriptSourceTransmitter.cs",
- "RelativeToolTip": "StgSharp.Modeling\\ScriptSourceTransmitter.cs",
- "ViewState": "AgIAAA0AAAAAAAAAAAA2wCEAAAAIAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-22T11:21:54.656Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 31,
+ "DocumentIndex": 76,
"Title": "gl.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\ClangLoad\\gl.cs",
"RelativeDocumentMoniker": "StgSharp\\Internal\\ClangLoad\\gl.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\ClangLoad\\gl.cs",
"RelativeToolTip": "StgSharp\\Internal\\ClangLoad\\gl.cs",
- "ViewState": "AgIAACIAAAAAAAAAAAAkwDIAAAAzAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-22T08:59:46.372Z"
},
{
"$type": "Document",
- "DocumentIndex": 32,
+ "DocumentIndex": 77,
"Title": "glHalfNV.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glHalfNV.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\glHalfNV.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glHalfNV.cs",
"RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\glHalfNV.cs",
- "ViewState": "AgIAADIAAAAAAAAAAAA0wCgAAAAVAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-22T08:55:47.744Z"
},
{
"$type": "Document",
- "DocumentIndex": 34,
+ "DocumentIndex": 78,
"Title": "StructDefine.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\StructDefine.cs",
"RelativeDocumentMoniker": "StgSharp\\Internal\\StructDefine.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\StructDefine.cs",
"RelativeToolTip": "StgSharp\\Internal\\StructDefine.cs",
- "ViewState": "AgIAABcAAAAAAAAAAAA4wCEAAAAfAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-22T08:47:28.65Z"
},
{
"$type": "Document",
- "DocumentIndex": 36,
+ "DocumentIndex": 79,
"Title": "InternalIO.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\InternalIO.cs",
"RelativeDocumentMoniker": "StgSharp\\Internal\\InternalIO.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\InternalIO.cs",
"RelativeToolTip": "StgSharp\\Internal\\InternalIO.cs",
- "ViewState": "AgIAAB4AAAAAAAAAAAAnwCsAAAAbAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-22T08:26:14.827Z"
},
{
"$type": "Document",
- "DocumentIndex": 28,
+ "DocumentIndex": 80,
"Title": "glContext.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glContext.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\glContext.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glContext.cs",
"RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\glContext.cs",
- "ViewState": "AgIAAIUBAAAAAAAAAAAkwJQBAABHAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-22T08:25:50.055Z"
},
{
"$type": "Document",
- "DocumentIndex": 38,
+ "DocumentIndex": 81,
"Title": "glConst.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glConst.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\glConst.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glConst.cs",
"RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\glConst.cs",
- "ViewState": "AgIAABkAAAAAAAAAAAA5wCEAAAAbAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-22T08:25:22.133Z"
},
{
"$type": "Document",
- "DocumentIndex": 35,
+ "DocumentIndex": 82,
"Title": "glEnum.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glEnum.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\glEnum.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glEnum.cs",
"RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\glEnum.cs",
- "ViewState": "AgIAAA4AAAAAAAAAAAAmwM4AAAAgAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-22T08:24:52.368Z"
},
{
"$type": "Document",
- "DocumentIndex": 8,
- "Title": "ExpElementBase.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpElementBase.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpElementBase.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpElementBase.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpElementBase.cs",
- "ViewState": "AgIAACQAAAAAAAAAAADgvzIAAAAaAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-22T07:57:52.248Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 17,
- "Title": "ExpSchema.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpSchema.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpSchema.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpSchema.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpSchema.cs",
- "ViewState": "AgIAAA0BAAAAAAAAAAAkwFIBAAAtAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-22T07:56:10.6Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 41,
- "Title": "SthSharp.Model",
+ "DocumentIndex": 111,
+ "Title": "SthSharp.Model.csproj",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\SthSharp.Model.csproj",
"RelativeDocumentMoniker": "SthSharp.Model\\SthSharp.Model.csproj",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\SthSharp.Model.csproj",
@@ -703,538 +1556,431 @@
},
{
"$type": "Document",
- "DocumentIndex": 39,
+ "DocumentIndex": 112,
"Title": "StepExpression.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\STEP\\FileStructure\\StepExpression.cs",
"RelativeDocumentMoniker": "SthSharp.Model\\STEP\\FileStructure\\StepExpression.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\STEP\\FileStructure\\StepExpression.cs",
"RelativeToolTip": "SthSharp.Model\\STEP\\FileStructure\\StepExpression.cs",
- "ViewState": "AgIAACkAAAAAAAAAAIBCwHIAAAARAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-22T05:33:13.815Z"
},
{
"$type": "Document",
- "DocumentIndex": 16,
- "Title": "ExpReader.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpReader.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpReader.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpReader.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpReader.cs",
- "ViewState": "AgIAAEEAAAAAAAAAAAAowFYAAAAIAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-22T05:32:54.95Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 42,
+ "DocumentIndex": 83,
"Title": "IEntity.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Entities\\IEntity.cs",
"RelativeDocumentMoniker": "StgSharp\\Entities\\IEntity.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Entities\\IEntity.cs",
"RelativeToolTip": "StgSharp\\Entities\\IEntity.cs",
- "ViewState": "AgIAAD4AAAAAAAAAAAA9wE0AAABIAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-22T05:32:22.664Z"
},
{
"$type": "Document",
- "DocumentIndex": 43,
+ "DocumentIndex": 84,
"Title": "PlainGeometryCollisionSensor.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Logic\\PlainGeometryCollisionSensor.cs",
"RelativeDocumentMoniker": "StgSharp\\Logic\\PlainGeometryCollisionSensor.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Logic\\PlainGeometryCollisionSensor.cs",
"RelativeToolTip": "StgSharp\\Logic\\PlainGeometryCollisionSensor.cs",
- "ViewState": "AgIAADgAAAAAAAAAAAAqwDgAAAAwAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-22T05:02:23.12Z"
},
{
"$type": "Document",
- "DocumentIndex": 44,
+ "DocumentIndex": 85,
"Title": "Counter.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Logic\\Counter.cs",
"RelativeDocumentMoniker": "StgSharp\\Logic\\Counter.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Logic\\Counter.cs",
"RelativeToolTip": "StgSharp\\Logic\\Counter.cs",
- "ViewState": "AgIAADUAAAAAAAAAAAAxwEQAAAAyAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-22T04:53:50.632Z"
},
{
"$type": "Document",
- "DocumentIndex": 26,
+ "DocumentIndex": 86,
"Title": "CachePool.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Collections\\CachePool.cs",
"RelativeDocumentMoniker": "StgSharp\\Collections\\CachePool.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Collections\\CachePool.cs",
"RelativeToolTip": "StgSharp\\Collections\\CachePool.cs",
- "ViewState": "AgIAACIAAAAAAAAAAAAkwDYAAAAwAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-22T04:52:43.349Z"
},
{
"$type": "Document",
- "DocumentIndex": 45,
- "Title": "global.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSgharp.Generator.Expression\\global.cs",
- "RelativeDocumentMoniker": "StgSgharp.Generator.Expression\\global.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSgharp.Generator.Expression\\global.cs",
- "RelativeToolTip": "StgSgharp.Generator.Expression\\global.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-22T04:49:20.091Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 46,
- "Title": "PartialDictionary.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSgharp.Generator.Expression\\FakeType\\PartialDictionary.cs",
- "RelativeDocumentMoniker": "StgSgharp.Generator.Expression\\FakeType\\PartialDictionary.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSgharp.Generator.Expression\\FakeType\\PartialDictionary.cs",
- "RelativeToolTip": "StgSgharp.Generator.Expression\\FakeType\\PartialDictionary.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAYAAAAOAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-22T04:27:22.651Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 48,
- "Title": "BpNodeGenerator.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSgharp.Generator.Expression\\SourceGenerator\\BpNodeGenerator.cs",
- "RelativeDocumentMoniker": "StgSgharp.Generator.Expression\\SourceGenerator\\BpNodeGenerator.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSgharp.Generator.Expression\\SourceGenerator\\BpNodeGenerator.cs",
- "RelativeToolTip": "StgSgharp.Generator.Expression\\SourceGenerator\\BpNodeGenerator.cs",
- "ViewState": "AgIAAB8AAAAAAAAAAAAzwC4AAABIAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-22T04:25:41.809Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 75,
+ "DocumentIndex": 74,
"Title": "ExpEntity.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpEntity.cs",
"RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpEntity.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpEntity.cs",
"RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpEntity.cs",
- "ViewState": "AgIAADoAAAAAAAAAAAAYwEkAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-22T04:23:23.704Z"
},
{
"$type": "Document",
- "DocumentIndex": 40,
+ "DocumentIndex": 113,
"Title": "SthSharp.Model.csproj",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\SthSharp.Model.csproj",
"RelativeDocumentMoniker": "SthSharp.Model\\SthSharp.Model.csproj",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\SthSharp.Model.csproj",
"RelativeToolTip": "SthSharp.Model\\SthSharp.Model.csproj",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAUAAAAcAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
"WhenOpened": "2025-01-22T03:50:15.426Z"
},
{
"$type": "Document",
- "DocumentIndex": 50,
+ "DocumentIndex": 51,
"Title": "StgSharpDebug",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\StgSharpDebug.csproj",
"RelativeDocumentMoniker": "StgSharpDebug\\StgSharpDebug.csproj",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\StgSharpDebug.csproj",
"RelativeToolTip": "StgSharpDebug\\StgSharpDebug.csproj",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
- "WhenOpened": "2025-01-22T03:20:20.734Z"
+ "WhenOpened": "2025-01-22T03:20:20.734Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 51,
+ "DocumentIndex": 32,
"Title": "ViewModelMain.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\ViewModelMain.cs",
"RelativeDocumentMoniker": "StgSharpDebug\\ViewModelMain.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\ViewModelMain.cs",
"RelativeToolTip": "StgSharpDebug\\ViewModelMain.cs",
- "ViewState": "AgIAAA8AAAAAAAAAAIBTwDsAAAAQAAAAAAAAAA==",
+ "ViewState": "AgIAADkAAAAAAAAAAIBBwDEAAAAOAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-22T03:18:57.741Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 14,
- "Title": "StgSharp.Script.csproj",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\StgSharp.Script.csproj",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\StgSharp.Script.csproj",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\StgSharp.Script.csproj",
- "RelativeToolTip": "StgSharp.Modeling\\StgSharp.Script.csproj",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAAAKAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
- "WhenOpened": "2025-01-22T03:17:47.885Z",
+ "WhenOpened": "2025-01-22T03:18:57.741Z",
"EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 53,
- "Title": "StgSgharp.Generator",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj",
- "RelativeDocumentMoniker": "StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj",
- "RelativeToolTip": "StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
- "WhenOpened": "2025-01-22T03:16:36.641Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 54,
+ "DocumentIndex": 69,
"Title": "Microsoft.Common.CurrentVersion.targets",
"DocumentMoniker": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\MSBuild\\Current\\Bin\\amd64\\Microsoft.Common.CurrentVersion.targets",
"ToolTip": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\MSBuild\\Current\\Bin\\amd64\\Microsoft.Common.CurrentVersion.targets",
- "ViewState": "AgIAAE8HAAAAAAAAAABKwGEHAAAEAAAAAAAAAA==",
+ "ViewState": "AgIAAEcHAAAAAAAAAEBwwGEHAAAEAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003801|",
- "WhenOpened": "2025-01-22T03:07:54.535Z"
+ "WhenOpened": "2025-01-22T03:07:54.535Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 47,
- "Title": "StgSgharp.Generator.csproj",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj",
- "RelativeDocumentMoniker": "StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj",
- "RelativeToolTip": "StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAMAAAAjAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
- "WhenOpened": "2025-01-22T03:06:50.242Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 52,
+ "DocumentIndex": 87,
"Title": "StgSharp.Commom.csproj",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\StgSharp.Commom.csproj",
"RelativeDocumentMoniker": "StgSharp\\StgSharp.Commom.csproj",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\StgSharp.Commom.csproj",
"RelativeToolTip": "StgSharp\\StgSharp.Commom.csproj",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
"WhenOpened": "2025-01-21T14:49:27.481Z"
},
{
"$type": "Document",
- "DocumentIndex": 55,
+ "DocumentIndex": 53,
"Title": "StgSharpTest",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\STgSharpTest\\StgSharpTest.csproj",
"RelativeDocumentMoniker": "STgSharpTest\\StgSharpTest.csproj",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\STgSharpTest\\StgSharpTest.csproj",
"RelativeToolTip": "STgSharpTest\\StgSharpTest.csproj",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
- "WhenOpened": "2025-01-21T14:48:45.224Z"
+ "WhenOpened": "2025-01-21T14:48:45.224Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 19,
+ "DocumentIndex": 45,
"Title": "StgSharpTest.csproj",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\STgSharpTest\\StgSharpTest.csproj",
"RelativeDocumentMoniker": "STgSharpTest\\StgSharpTest.csproj",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\STgSharpTest\\StgSharpTest.csproj",
"RelativeToolTip": "STgSharpTest\\StgSharpTest.csproj",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+ "ViewState": "AgIAAAgAAAAAAAAAAAAxwB8AAAA7AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
- "WhenOpened": "2025-01-21T14:48:36.279Z"
+ "WhenOpened": "2025-01-21T14:48:36.279Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 21,
+ "DocumentIndex": 31,
"Title": "UnitTest1.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\STgSharpTest\\UnitTest1.cs",
"RelativeDocumentMoniker": "STgSharpTest\\UnitTest1.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\STgSharpTest\\UnitTest1.cs",
"RelativeToolTip": "STgSharpTest\\UnitTest1.cs",
- "ViewState": "AgIAADQAAAAAAAAAAAA4wEIAAAAIAAAAAAAAAA==",
+ "ViewState": "AgIAAEAAAAAAAAAAAIAwwEQAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-21T12:43:12.616Z"
+ "WhenOpened": "2025-01-21T12:43:12.616Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 24,
+ "DocumentIndex": 88,
"Title": "ViewModel.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\MVVM\\ViewModel\\ViewModel.cs",
"RelativeDocumentMoniker": "StgSharp\\MVVM\\ViewModel\\ViewModel.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\MVVM\\ViewModel\\ViewModel.cs",
"RelativeToolTip": "StgSharp\\MVVM\\ViewModel\\ViewModel.cs",
- "ViewState": "AgIAALEAAAAAAAAAAAAIwL8AAAApAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T12:42:22.888Z"
},
{
"$type": "Document",
- "DocumentIndex": 58,
+ "DocumentIndex": 89,
"Title": "TextureProvider.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\TextureProvider.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\TextureProvider.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\TextureProvider.cs",
"RelativeToolTip": "StgSharp\\Graphics\\TextureProvider.cs",
- "ViewState": "AgIAAEAAAAAAAAAAAAAowEgAAAAtAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T12:40:27.238Z"
},
{
"$type": "Document",
- "DocumentIndex": 59,
+ "DocumentIndex": 90,
"Title": "ImageHelper.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\CPUanimation\\ImageHelper.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\CPUanimation\\ImageHelper.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\CPUanimation\\ImageHelper.cs",
"RelativeToolTip": "StgSharp\\Graphics\\CPUanimation\\ImageHelper.cs",
- "ViewState": "AgIAAEEAAAAAAAAAAAAUwAAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T12:40:10.936Z"
},
{
"$type": "Document",
- "DocumentIndex": 33,
+ "DocumentIndex": 91,
"Title": "glHandle.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glHandle.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\glHandle.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glHandle.cs",
"RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\glHandle.cs",
- "ViewState": "AgIAACUAAAAAAAAAAAAqwAAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T12:39:33.236Z"
},
{
"$type": "Document",
- "DocumentIndex": 60,
+ "DocumentIndex": 92,
"Title": "VBO.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\VBO.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\Buffer\\VBO.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\VBO.cs",
"RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\Buffer\\VBO.cs",
- "ViewState": "AgIAAIcAAAAAAAAAAAAnwJYAAAAUAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T12:33:21.083Z"
},
{
"$type": "Document",
- "DocumentIndex": 61,
+ "DocumentIndex": 93,
"Title": "EBO.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\EBO.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\Buffer\\EBO.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\EBO.cs",
"RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\Buffer\\EBO.cs",
- "ViewState": "AgIAAEAAAAAAAAAAAAAkwFAAAAAiAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T12:33:00.232Z"
},
{
"$type": "Document",
- "DocumentIndex": 62,
+ "DocumentIndex": 94,
"Title": "TextureGL.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\TextureGL.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\Buffer\\TextureGL.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\TextureGL.cs",
"RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\Buffer\\TextureGL.cs",
- "ViewState": "AgIAAHkAAAAAAAAAAIBjwHsAAAATAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T12:32:46.745Z"
},
{
"$type": "Document",
- "DocumentIndex": 63,
+ "DocumentIndex": 95,
"Title": "Image.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Image.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\Image.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Image.cs",
"RelativeToolTip": "StgSharp\\Graphics\\Image.cs",
- "ViewState": "AgIAAJ0AAAAAAAAAAAAuwK8AAAA1AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T12:28:33.887Z"
},
{
"$type": "Document",
- "DocumentIndex": 64,
+ "DocumentIndex": 96,
"Title": "KeyEnum.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Controlling\\KeyEnum.cs",
"RelativeDocumentMoniker": "StgSharp\\Controlling\\KeyEnum.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Controlling\\KeyEnum.cs",
"RelativeToolTip": "StgSharp\\Controlling\\KeyEnum.cs",
- "ViewState": "AgIAAAcAAAAAAAAAAAAswLsAAAAYAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T12:28:09.467Z"
},
{
"$type": "Document",
- "DocumentIndex": 65,
+ "DocumentIndex": 97,
"Title": "Uniform.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\ShaderEdit\\Uniform.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\ShaderEdit\\Uniform.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\ShaderEdit\\Uniform.cs",
"RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\ShaderEdit\\Uniform.cs",
- "ViewState": "AgIAACAAAAAAAAAAAAAEwFkAAAAnAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T11:43:39.963Z"
},
{
"$type": "Document",
- "DocumentIndex": 66,
+ "DocumentIndex": 98,
"Title": "Vector.Orthogonalize.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Vector.Orthogonalize.cs",
"RelativeDocumentMoniker": "StgSharp\\Math\\Linear\\Vector.Orthogonalize.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Vector.Orthogonalize.cs",
"RelativeToolTip": "StgSharp\\Math\\Linear\\Vector.Orthogonalize.cs",
- "ViewState": "AgIAAB4AAAAAAAAAAIAzwCgAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T11:35:59.396Z"
},
{
"$type": "Document",
- "DocumentIndex": 37,
+ "DocumentIndex": 99,
"Title": "glFunction.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glFunction.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\glFunction.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glFunction.cs",
"RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\glFunction.cs",
- "ViewState": "AgIAACIAAAAAAAAAAAAnwDEAAAAuAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T11:34:56.352Z"
},
{
"$type": "Document",
- "DocumentIndex": 67,
+ "DocumentIndex": 100,
"Title": "Platform.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Environment\\Platform.cs",
"RelativeDocumentMoniker": "StgSharp\\Environment\\Platform.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Environment\\Platform.cs",
"RelativeToolTip": "StgSharp\\Environment\\Platform.cs",
- "ViewState": "AgIAAEsAAAAAAAAAAAAkwFsAAAAOAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T11:05:45.886Z"
},
{
"$type": "Document",
- "DocumentIndex": 30,
+ "DocumentIndex": 101,
"Title": "Dialogue.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Environment\\Dialogue.cs",
"RelativeDocumentMoniker": "StgSharp\\Environment\\Dialogue.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Environment\\Dialogue.cs",
"RelativeToolTip": "StgSharp\\Environment\\Dialogue.cs",
- "ViewState": "AgIAAGwAAAAAAAAAAAAkwH0AAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T11:04:56.665Z"
},
{
"$type": "Document",
- "DocumentIndex": 23,
+ "DocumentIndex": 102,
"Title": "Pixels.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Pixels.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\Pixels.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Pixels.cs",
"RelativeToolTip": "StgSharp\\Graphics\\Pixels.cs",
- "ViewState": "AgIAADoAAAAAAAAAAAA2wEgAAAAFAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T06:23:16.042Z"
},
{
"$type": "Document",
- "DocumentIndex": 57,
+ "DocumentIndex": 33,
"Title": "Program.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\Program.cs",
"RelativeDocumentMoniker": "StgSharpDebug\\Program.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\Program.cs",
"RelativeToolTip": "StgSharpDebug\\Program.cs",
- "ViewState": "AgIAABQAAAAAAAAAAAAkwCMAAAAUAAAAAAAAAA==",
+ "ViewState": "AgIAADcAAAAAAAAAAAAjwEYAAAAUAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-21T06:08:27.152Z"
+ "WhenOpened": "2025-01-21T06:08:27.152Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 56,
+ "DocumentIndex": 47,
"Title": "Partical.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\RenderStream\\Partical.cs",
"RelativeDocumentMoniker": "StgSharpDebug\\RenderStream\\Partical.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\RenderStream\\Partical.cs",
"RelativeToolTip": "StgSharpDebug\\RenderStream\\Partical.cs",
- "ViewState": "AgIAAAwBAAAAAAAAAAAqwB8BAAA7AAAAAAAAAA==",
+ "ViewState": "AgIAANgAAAAAAAAAAIAzwO0AAABGAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-21T04:59:25.115Z"
+ "WhenOpened": "2025-01-21T04:59:25.115Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 68,
+ "DocumentIndex": 103,
"Title": "RenderStream.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\RenderStream.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\RenderStream.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\RenderStream.cs",
"RelativeToolTip": "StgSharp\\Graphics\\RenderStream.cs",
- "ViewState": "AgIAACUAAAAAAAAAAAAqwKkAAAAIAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T03:22:43.965Z"
},
{
"$type": "Document",
- "DocumentIndex": 69,
+ "DocumentIndex": 104,
"Title": "BufferObjectBase.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Define\\BufferObjectBase.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\Define\\BufferObjectBase.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Define\\BufferObjectBase.cs",
"RelativeToolTip": "StgSharp\\Graphics\\Define\\BufferObjectBase.cs",
- "ViewState": "AgIAACUAAAAAAAAAAAAqwB4AAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T03:15:15.908Z"
},
{
"$type": "Document",
- "DocumentIndex": 20,
+ "DocumentIndex": 105,
"Title": "Global.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Global.cs",
"RelativeDocumentMoniker": "StgSharp\\Global.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Global.cs",
"RelativeToolTip": "StgSharp\\Global.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAABYAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T03:14:27.337Z"
},
{
"$type": "Document",
- "DocumentIndex": 49,
+ "DocumentIndex": 106,
"Title": "ViewPort.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\MVVM\\ViewPort.cs",
"RelativeDocumentMoniker": "StgSharp\\MVVM\\ViewPort.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\MVVM\\ViewPort.cs",
"RelativeToolTip": "StgSharp\\MVVM\\ViewPort.cs",
- "ViewState": "AgIAACoAAAAAAAAAAAAxwB4AAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T03:12:28.029Z"
},
{
"$type": "Document",
- "DocumentIndex": 29,
+ "DocumentIndex": 107,
"Title": "framework.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\framework.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\framework.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\framework.cs",
"RelativeToolTip": "StgSharp\\Graphics\\framework.cs",
- "ViewState": "AgIAAAYAAAAAAAAAAAAswGoAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T02:24:35.096Z"
},
{
"$type": "Document",
- "DocumentIndex": 70,
+ "DocumentIndex": 108,
"Title": "Matrix42.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Matrix42.cs",
"RelativeDocumentMoniker": "StgSharp\\Math\\Linear\\Matrix42.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Matrix42.cs",
"RelativeToolTip": "StgSharp\\Math\\Linear\\Matrix42.cs",
- "ViewState": "AgIAABwAAAAAAAAAAAA2wCsAAAAhAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T02:24:24.915Z"
},
{
"$type": "Document",
- "DocumentIndex": 25,
+ "DocumentIndex": 109,
"Title": "glApiManager.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glApiManager.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\glApiManager.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glApiManager.cs",
"RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\glApiManager.cs",
- "ViewState": "AgIAAP0PAAAAAAAAAAAkwA0QAAA9AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T02:23:01.822Z"
}
diff --git a/内核源代码/.vs/StgSharpDevelop/v17/DocumentLayout.json b/内核源代码/.vs/StgSharpDevelop/v17/DocumentLayout.json
index 9a2b80e5..6693d790 100644
--- a/内核源代码/.vs/StgSharpDevelop/v17/DocumentLayout.json
+++ b/内核源代码/.vs/StgSharpDevelop/v17/DocumentLayout.json
@@ -3,287 +3,283 @@
"WorkspaceRootPath": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\",
"Documents": [
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\expression\\buildin\\expcollection.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\expression\\buildin\\expcollection.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expcompile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expcompile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\expression\\expelementbase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\expression\\expelementbase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\element\\expconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\element\\expconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\expression\\element\\expfunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\expression\\element\\expfunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expschema.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expschema.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\expression\\element\\expentity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\expression\\element\\expentity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expreader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expreader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\expression\\expexpressiontree.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\expression\\expexpressiontree.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\builtin\\exprepeat.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\builtin\\exprepeat.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\expression\\buildin\\expcollectioninstance.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\expression\\buildin\\expcollectioninstance.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\exptoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\exptoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\expression\\exptoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\expression\\exptoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\builtin\\expliteraltoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\builtin\\expliteraltoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\expression\\element\\exptype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\expression\\element\\exptype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\builtin\\expiftoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\builtin\\expiftoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\expression\\element\\exprule.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\expression\\element\\exprule.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\iexpressiontoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\iexpressiontoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\expression\\element\\expconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\expression\\element\\expconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\element\\exptype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\element\\exptype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\abstractsyntaxtree.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\abstractsyntaxtree.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\element\\exprule.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\element\\exprule.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\iexpressiontoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\iexpressiontoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\element\\expfunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\element\\expfunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\iscriptsourceprovider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\iscriptsourceprovider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\element\\expentity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\element\\expentity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\scriptsourcetransmitter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\scriptsourcetransmitter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\builtin\\expswitchtoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\builtin\\expswitchtoken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\stgsharp.script.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\stgsharp.script.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\builtin\\expcollectioninstance.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\builtin\\expcollectioninstance.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\expression\\exceptions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\expression\\exceptions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\data\\lable.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\data\\lable.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\expression\\expreader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\expression\\expreader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\math\\linear\\vec4.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\math\\linear\\vec4.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.modeling\\expression\\expschema.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Modeling\\StgSharp.Script.csproj|solutionrelative:stgsharp.modeling\\expression\\expschema.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\global.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\global.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Modeling\\Expression\\ExpConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\internal\\intrinsic\\m128.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\internal\\intrinsic\\m128.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{A74EABDE-B94D-4F8B-9305-F9D3850D4C70}|STgSharpTest\\StgSharpTest.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharptest\\stgsharptest.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
- "RelativeMoniker": "D:0:0:{A74EABDE-B94D-4F8B-9305-F9D3850D4C70}|STgSharpTest\\StgSharpTest.csproj|solutionrelative:stgsharptest\\stgsharptest.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\data\\ssd\\datahead.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\data\\ssd\\datahead.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\global.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\global.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\data\\ssd\\datasegment.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\data\\ssd\\datasegment.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\internal\\intrinsic\\intrinsiccontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\internal\\intrinsic\\intrinsiccontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\internal\\intrinsic\\columnset3.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\internal\\intrinsic\\columnset3.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\stgsharp.common.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\stgsharp.common.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\exceptions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\exceptions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\builtin\\builtintype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\builtin\\builtintype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\explogic.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\explogic.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\collections\\keymultiplexer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\collections\\keymultiplexer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expelementinstancebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expelementinstancebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\expschemasource.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\expschemasource.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\collections\\istringhashmultiplexer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\collections\\istringhashmultiplexer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{A74EABDE-B94D-4F8B-9305-F9D3850D4C70}|STgSharpTest\\StgSharpTest.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharptest\\unittest1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{A74EABDE-B94D-4F8B-9305-F9D3850D4C70}|STgSharpTest\\StgSharpTest.csproj|solutionrelative:stgsharptest\\unittest1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
- {
- "AbsoluteMoniker": "D:0:0:{D9538DE0-EE4C-4183-86D6-7DFC08A7BDFB}|SthSharp.Model\\SthSharp.Model.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\sthsharp.model\\step\\reader\\stepheadreader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{D9538DE0-EE4C-4183-86D6-7DFC08A7BDFB}|SthSharp.Model\\SthSharp.Model.csproj|solutionrelative:sthsharp.model\\step\\reader\\stepheadreader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\pixels.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\pixels.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\mvvm\\viewmodel\\viewmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\mvvm\\viewmodel\\viewmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\opengl\\glapimanager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\opengl\\glapimanager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\collections\\cachepool.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\collections\\cachepool.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\internal\\glfw.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\internal\\glfw.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\opengl\\glcontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\opengl\\glcontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\framework.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\framework.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\environment\\dialogue.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\environment\\dialogue.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\internal\\clangload\\gl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\internal\\clangload\\gl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\opengl\\glhalfnv.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\opengl\\glhalfnv.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\opengl\\glhandle.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\opengl\\glhandle.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\internal\\structdefine.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\internal\\structdefine.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\opengl\\glenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\opengl\\glenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\internal\\internalio.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\internal\\internalio.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\opengl\\glfunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\opengl\\glfunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\opengl\\glconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\opengl\\glconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{D9538DE0-EE4C-4183-86D6-7DFC08A7BDFB}|SthSharp.Model\\SthSharp.Model.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\sthsharp.model\\step\\filestructure\\stepexpression.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{D9538DE0-EE4C-4183-86D6-7DFC08A7BDFB}|SthSharp.Model\\SthSharp.Model.csproj|solutionrelative:sthsharp.model\\step\\filestructure\\stepexpression.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{D9538DE0-EE4C-4183-86D6-7DFC08A7BDFB}|SthSharp.Model\\SthSharp.Model.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\sthsharp.model\\sthsharp.model.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
- "RelativeMoniker": "D:0:0:{D9538DE0-EE4C-4183-86D6-7DFC08A7BDFB}|SthSharp.Model\\SthSharp.Model.csproj|solutionrelative:sthsharp.model\\sthsharp.model.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
- },
- {
- "AbsoluteMoniker": "D:0:0:{D9538DE0-EE4C-4183-86D6-7DFC08A7BDFB}|SthSharp.Model\\SthSharp.Model.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\sthsharp.model\\sthsharp.model.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
- "RelativeMoniker": "D:0:0:{D9538DE0-EE4C-4183-86D6-7DFC08A7BDFB}|SthSharp.Model\\SthSharp.Model.csproj|solutionrelative:sthsharp.model\\sthsharp.model.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\entities\\ientity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\entities\\ientity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\logic\\plaingeometrycollisionsensor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\logic\\plaingeometrycollisionsensor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\logic\\counter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\logic\\counter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{9A678884-081A-4E28-8439-B08F4BC05791}|StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsgharp.generator.expression\\global.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{9A678884-081A-4E28-8439-B08F4BC05791}|StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj|solutionrelative:stgsgharp.generator.expression\\global.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{9A678884-081A-4E28-8439-B08F4BC05791}|StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsgharp.generator.expression\\faketype\\partialdictionary.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{9A678884-081A-4E28-8439-B08F4BC05791}|StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj|solutionrelative:stgsgharp.generator.expression\\faketype\\partialdictionary.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{9A678884-081A-4E28-8439-B08F4BC05791}|StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsgharp.generator.expression\\stgsgharp.generator.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
- "RelativeMoniker": "D:0:0:{9A678884-081A-4E28-8439-B08F4BC05791}|StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj|solutionrelative:stgsgharp.generator.expression\\stgsgharp.generator.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
- },
- {
- "AbsoluteMoniker": "D:0:0:{9A678884-081A-4E28-8439-B08F4BC05791}|StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsgharp.generator.expression\\sourcegenerator\\bpnodegenerator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{9A678884-081A-4E28-8439-B08F4BC05791}|StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj|solutionrelative:stgsgharp.generator.expression\\sourcegenerator\\bpnodegenerator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\mvvm\\viewport.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\mvvm\\viewport.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharpdebug\\stgsharpdebug.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
- "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\stgsharpdebug.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
- },
{
"AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharpdebug\\viewmodelmain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\viewmodelmain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
- {
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\stgsharp.commom.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\stgsharp.commom.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
- },
- {
- "AbsoluteMoniker": "D:0:0:{9A678884-081A-4E28-8439-B08F4BC05791}|StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsgharp.generator.expression\\stgsgharp.generator.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
- "RelativeMoniker": "D:0:0:{9A678884-081A-4E28-8439-B08F4BC05791}|StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj|solutionrelative:stgsgharp.generator.expression\\stgsgharp.generator.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
- },
- {
- "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\MSBuild\\Current\\Bin\\amd64\\Microsoft.Common.CurrentVersion.targets||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
- },
- {
- "AbsoluteMoniker": "D:0:0:{A74EABDE-B94D-4F8B-9305-F9D3850D4C70}|STgSharpTest\\StgSharpTest.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharptest\\stgsharptest.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
- "RelativeMoniker": "D:0:0:{A74EABDE-B94D-4F8B-9305-F9D3850D4C70}|STgSharpTest\\StgSharpTest.csproj|solutionrelative:stgsharptest\\stgsharptest.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
- },
- {
- "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharpdebug\\renderstream\\partical.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\renderstream\\partical.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
{
"AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharpdebug\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\textureprovider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\textureprovider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\hash.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\hash.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
},
{
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\cpuanimation\\imagehelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\cpuanimation\\imagehelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\stgsharp.common.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\stgsharp.common.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
},
{
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\opengl\\buffer\\vbo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\opengl\\buffer\\vbo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharpdebug\\stgsharpdebug.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\stgsharpdebug.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
},
{
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\opengl\\buffer\\ebo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\opengl\\buffer\\ebo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\ssc_intrinsic.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\ssc_intrinsic.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
},
{
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\opengl\\buffer\\texturegl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\opengl\\buffer\\texturegl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\intrinsic.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\intrinsic.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
},
{
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\image.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\image.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\stb_image.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\stb_image.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
},
{
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\controlling\\keyenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\controlling\\keyenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharpdebug\\view\\newrender.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\view\\newrender.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\opengl\\shaderedit\\uniform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\opengl\\shaderedit\\uniform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\StgSharpC.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\StgSharpC.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
},
{
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\math\\linear\\vector.orthogonalize.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\math\\linear\\vector.orthogonalize.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat4.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\mat4.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
},
{
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\environment\\platform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\environment\\platform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat3.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\mat3.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
},
{
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\renderstream.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\renderstream.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat2.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{20CBFF26-6746-402E-992C-7B643E9423EB}|StgSharp.C\\StgSharpC.vcxproj|solutionrelative:StgSharp.C\\mat2.c||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
},
{
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\graphics\\define\\bufferobjectbase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\graphics\\define\\bufferobjectbase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{A74EABDE-B94D-4F8B-9305-F9D3850D4C70}|STgSharpTest\\StgSharpTest.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharptest\\stgsharptest.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
+ "RelativeMoniker": "D:0:0:{A74EABDE-B94D-4F8B-9305-F9D3850D4C70}|STgSharpTest\\StgSharpTest.csproj|solutionrelative:stgsharptest\\stgsharptest.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
},
{
- "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp\\math\\linear\\matrix42.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.Commom.csproj|solutionrelative:stgsharp\\math\\linear\\matrix42.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharpdebug\\view\\viewmain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\view\\viewmain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharpdebug\\renderstream\\partical.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\renderstream\\partical.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\stgsharp.script.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\stgsharp.script.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{10B5819F-2A62-41B6-980A-EB9E76A0E95C}|StgSharp.TerminalDialogue\\StgSharp.TerminalDialogue.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.terminaldialogue\\stgsharp.terminaldialogue.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
+ "RelativeMoniker": "D:0:0:{10B5819F-2A62-41B6-980A-EB9E76A0E95C}|StgSharp.TerminalDialogue\\StgSharp.TerminalDialogue.csproj|solutionrelative:stgsharp.terminaldialogue\\stgsharp.terminaldialogue.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\graphics\\renderstream.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\graphics\\renderstream.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharpdebug\\stgsharpdebug.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\stgsharpdebug.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\internal\\internalio.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\internal\\internalio.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A74EABDE-B94D-4F8B-9305-F9D3850D4C70}|STgSharpTest\\StgSharpTest.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharptest\\stgsharptest.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
+ "RelativeMoniker": "D:0:0:{A74EABDE-B94D-4F8B-9305-F9D3850D4C70}|STgSharpTest\\StgSharpTest.csproj|solutionrelative:stgsharptest\\stgsharptest.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{D9538DE0-EE4C-4183-86D6-7DFC08A7BDFB}|StgSharp.Model\\StgSharp.Model.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.model\\stgsharp.model.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
+ "RelativeMoniker": "D:0:0:{D9538DE0-EE4C-4183-86D6-7DFC08A7BDFB}|StgSharp.Model\\StgSharp.Model.csproj|solutionrelative:stgsharp.model\\stgsharp.model.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\graphics\\opengl\\glconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\graphics\\opengl\\glconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\graphics\\vulkan\\vkenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\graphics\\vulkan\\vkenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\graphics\\opengl\\glenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\graphics\\opengl\\glenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\graphics\\imageinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\graphics\\imageinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\internal\\publictype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\internal\\publictype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\internal\\clangload\\gl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\internal\\clangload\\gl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\internal\\internalresource.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\internal\\internalresource.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\graphics\\opengl\\glfunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\graphics\\opengl\\glfunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\graphics\\opengl\\shaderedit\\shader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\graphics\\opengl\\shaderedit\\shader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.common\\graphics\\shaderedit\\shadergenerator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp.Common\\StgSharp.Common.csproj|solutionrelative:stgsharp.common\\graphics\\shaderedit\\shadergenerator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\express\\builtin\\expcollection.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\express\\builtin\\expcollection.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u5185\u6838\u6E90\u4EE3\u7801\\stgsharp.script\\abstractsyntaxtree.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{5B51F5EA-138C-46B5-B36F-1D389968B6CF}|StgSharp.Script\\StgSharp.Script.csproj|solutionrelative:stgsharp.script\\abstractsyntaxtree.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\ExpIfToken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\Builtin\\ExpIfToken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Modeling\\Expression\\ExpConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\MSBuild\\Current\\Bin\\amd64\\Microsoft.Common.CurrentVersion.targets||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
},
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpCollection.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -304,6 +300,196 @@
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpEntity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Modeling\\Expression\\ExpEntity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\glfw.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Internal\\glfw.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\ClangLoad\\gl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Internal\\ClangLoad\\gl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glHalfNV.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\glHalfNV.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\StructDefine.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Internal\\StructDefine.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\InternalIO.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Internal\\InternalIO.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glContext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\glContext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\glConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glEnum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\glEnum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Entities\\IEntity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Entities\\IEntity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Logic\\PlainGeometryCollisionSensor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Logic\\PlainGeometryCollisionSensor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Logic\\Counter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Logic\\Counter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Collections\\CachePool.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Collections\\CachePool.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\StgSharp.Commom.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\StgSharp.Commom.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\MVVM\\ViewModel\\ViewModel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\MVVM\\ViewModel\\ViewModel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\TextureProvider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\TextureProvider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\CPUanimation\\ImageHelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\CPUanimation\\ImageHelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glHandle.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\glHandle.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\VBO.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\Buffer\\VBO.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\EBO.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\Buffer\\EBO.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\TextureGL.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\Buffer\\TextureGL.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Image.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\Image.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Controlling\\KeyEnum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Controlling\\KeyEnum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\ShaderEdit\\Uniform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\ShaderEdit\\Uniform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Vector.Orthogonalize.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Math\\Linear\\Vector.Orthogonalize.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glFunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\glFunction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Environment\\Platform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Environment\\Platform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Environment\\Dialogue.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Environment\\Dialogue.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Pixels.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\Pixels.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\RenderStream.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\RenderStream.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Define\\BufferObjectBase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\Define\\BufferObjectBase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Global.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Global.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\MVVM\\ViewPort.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\MVVM\\ViewPort.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\framework.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\framework.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Matrix42.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Math\\Linear\\Matrix42.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glApiManager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp\\Graphics\\OpenGL\\glApiManager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\STEP\\Reader\\StepHeadReader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:SthSharp.Model\\STEP\\Reader\\StepHeadReader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\SthSharp.Model.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:SthSharp.Model\\SthSharp.Model.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\STEP\\FileStructure\\StepExpression.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:SthSharp.Model\\STEP\\FileStructure\\StepExpression.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\SthSharp.Model.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:SthSharp.Model\\SthSharp.Model.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpExpressionTree.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\ExpExpressionTree.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpToken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\ExpToken.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\Element\\ExpConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpInit.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\ExpInit.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\BuiltinType.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\Builtin\\BuiltinType.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\BuiltinConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\Builtin\\BuiltinConst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpType.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:StgSharp.Script\\Expression\\Element\\ExpType.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.41.34120\\include\\smmintrin.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.41.34120\\include\\intrin.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
}
],
"DocumentGroupContainers": [
@@ -313,239 +499,965 @@
"DocumentGroups": [
{
"DockedWidth": 200,
- "SelectedChildIndex": 1,
+ "SelectedChildIndex": 60,
"Children": [
{
"$type": "Document",
- "DocumentIndex": 5,
- "Title": "ExpCollectionInstance.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\buildin\\ExpCollectionInstance.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\buildin\\ExpCollectionInstance.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\buildin\\ExpCollectionInstance.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\buildin\\ExpCollectionInstance.cs",
- "ViewState": "AgIAADUAAAAAAAAAAAAcwEUAAABXAAAAAAAAAA==",
+ "DocumentIndex": 16,
+ "Title": "Vec4.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Math\\Linear\\Vec4.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Math\\Linear\\Vec4.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Math\\Linear\\Vec4.cs",
+ "RelativeToolTip": "StgSharp.Common\\Math\\Linear\\Vec4.cs",
+ "ViewState": "AgIAACUAAAAAAAAAAAAqwKMAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-27T14:21:51.86Z",
+ "WhenOpened": "2025-02-02T14:45:18.593Z",
"EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 0,
- "Title": "ExpCollection.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\buildin\\ExpCollection.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\buildin\\ExpCollection.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\buildin\\ExpCollection.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\buildin\\ExpCollection.cs",
- "ViewState": "AgIAACAAAAAAAAAAAAAqwCkAAAAwAAAAAAAAAA==",
+ "DocumentIndex": 19,
+ "Title": "DataHead.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Data\\SSD\\DataHead.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Data\\SSD\\DataHead.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Data\\SSD\\DataHead.cs",
+ "RelativeToolTip": "StgSharp.Common\\Data\\SSD\\DataHead.cs",
+ "ViewState": "AgIAACIAAAAAAAAAAIA0wDEAAAAkAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-27T07:53:22.862Z",
+ "WhenOpened": "2025-02-02T14:44:58.989Z",
"EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 7,
- "Title": "ExpType.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\Element\\ExpType.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\Element\\ExpType.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\Element\\ExpType.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\Element\\ExpType.cs",
- "ViewState": "AgIAACEAAAAAAAAAAAAqwCcAAAAAAAAAAAAAAA==",
+ "DocumentIndex": 17,
+ "Title": "Global.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Global.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Global.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Global.cs",
+ "RelativeToolTip": "StgSharp.Common\\Global.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAcAAAAmAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-27T07:37:04.155Z",
+ "WhenOpened": "2025-02-02T14:38:49.858Z",
"EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 8,
- "Title": "ExpRule.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\Element\\ExpRule.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\Element\\ExpRule.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\Element\\ExpRule.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\Element\\ExpRule.cs",
- "ViewState": "AgIAABoAAAAAAAAAAAAswCkAAABFAAAAAAAAAA==",
+ "DocumentIndex": 20,
+ "Title": "DataSegment.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Data\\SSD\\DataSegment.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Data\\SSD\\DataSegment.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Data\\SSD\\DataSegment.cs",
+ "RelativeToolTip": "StgSharp.Common\\Data\\SSD\\DataSegment.cs",
+ "ViewState": "AgIAAFsAAAAAAAAAAIA0wGoAAAAiAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-27T07:36:49.736Z",
+ "WhenOpened": "2025-02-02T14:38:41.321Z",
"EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 2,
- "Title": "ExpFunction.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\Element\\ExpFunction.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\Element\\ExpFunction.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\Element\\ExpFunction.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\Element\\ExpFunction.cs",
- "ViewState": "AgIAABwAAAAAAAAAAAAswCwAAAALAAAAAAAAAA==",
+ "DocumentIndex": 18,
+ "Title": "M128.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\Intrinsic\\M128.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Internal\\Intrinsic\\M128.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\Intrinsic\\M128.cs",
+ "RelativeToolTip": "StgSharp.Common\\Internal\\Intrinsic\\M128.cs",
+ "ViewState": "AgIAABoAAAAAAAAAAAAiwC4AAAAMAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-27T05:09:34.68Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 3,
- "Title": "ExpEntity.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\Element\\ExpEntity.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\Element\\ExpEntity.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\Element\\ExpEntity.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\Element\\ExpEntity.cs",
- "ViewState": "AgIAAC0AAAAAAAAAAAAywCoAAAAJAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-27T03:11:58.736Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 9,
- "Title": "ExpConst.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\Element\\ExpConst.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\Element\\ExpConst.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\Element\\ExpConst.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\Element\\ExpConst.cs",
- "ViewState": "AgIAABYAAAAAAAAAAAA1wCYAAAAcAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-27T03:09:00.909Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 4,
- "Title": "ExpExpressionTree.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpExpressionTree.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpExpressionTree.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpExpressionTree.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpExpressionTree.cs",
- "ViewState": "AgIAABEAAAAAAAAAAAAgwCQAAAAuAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-26T04:03:40.189Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 10,
- "Title": "AbstractSyntaxTree.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\AbstractSyntaxTree.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\AbstractSyntaxTree.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\AbstractSyntaxTree.cs",
- "RelativeToolTip": "StgSharp.Modeling\\AbstractSyntaxTree.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAABGAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-25T14:58:39.546Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 11,
- "Title": "IExpressionToken.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\IExpressionToken.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\IExpressionToken.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\IExpressionToken.cs",
- "RelativeToolTip": "StgSharp.Modeling\\IExpressionToken.cs",
- "ViewState": "AgIAAAIAAAAAAAAAAAA3wA8AAAAmAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-25T05:42:59.694Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 6,
- "Title": "ExpToken.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpToken.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpToken.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpToken.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpToken.cs",
- "ViewState": "AgIAADcAAAAAAAAAAIA5wDsAAAAaAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-25T05:42:41.444Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 71,
- "Title": "ExpCollection.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpCollection.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpCollection.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpCollection.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpCollection.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAAnAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-25T05:41:19.849Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 72,
- "Title": "ExpRule.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpRule.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpRule.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpRule.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpRule.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAAAkAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-24T12:33:08.481Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 73,
- "Title": "ExpFunction.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpFunction.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpFunction.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpFunction.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpFunction.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAYAAAAjAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-24T11:30:53.865Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 74,
- "Title": "ExpType.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpType.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpType.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpType.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpType.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAcAAAAiAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-24T10:20:07.164Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 15,
- "Title": "Exceptions.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\Exceptions.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\Exceptions.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\Exceptions.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\Exceptions.cs",
- "ViewState": "AgIAADAAAAAAAAAAAAA3wEEAAACFAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-24T06:23:41.639Z",
+ "WhenOpened": "2025-02-02T14:38:06.028Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 22,
+ "Title": "ColumnSet3.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\Intrinsic\\ColumnSet3.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Internal\\Intrinsic\\ColumnSet3.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\Intrinsic\\ColumnSet3.cs",
+ "RelativeToolTip": "StgSharp.Common\\Internal\\Intrinsic\\ColumnSet3.cs",
+ "ViewState": "AgIAACIAAAAAAAAAAAAwwCoAAAAFAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-02T14:37:46.284Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 30,
+ "Title": "IStringHashMultiplexer.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\IStringHashMultiplexer.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Collections\\IStringHashMultiplexer.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\IStringHashMultiplexer.cs",
+ "RelativeToolTip": "StgSharp.Common\\Collections\\IStringHashMultiplexer.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAYAAAAwAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-02T09:10:55.793Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 9,
+ "Title": "ExpType.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpType.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Element\\ExpType.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpType.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Element\\ExpType.cs",
+ "ViewState": "AgIAABkAAAAAAAAAAIA4wCYAAAAFAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-02T08:11:31.522Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 10,
+ "Title": "ExpRule.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpRule.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Element\\ExpRule.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpRule.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Element\\ExpRule.cs",
+ "ViewState": "AgIAACMAAAAAAAAAAAAEwC4AAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-02T08:11:26.812Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 11,
+ "Title": "ExpFunction.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpFunction.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Element\\ExpFunction.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpFunction.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Element\\ExpFunction.cs",
+ "ViewState": "AgIAACEAAAAAAAAAAAArwC0AAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-02T08:10:44.132Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 14,
+ "Title": "ExpCollectionInstance.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpCollectionInstance.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Builtin\\ExpCollectionInstance.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpCollectionInstance.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Builtin\\ExpCollectionInstance.cs",
+ "ViewState": "AgIAAB4AAAAAAAAAAIA4wCwAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-02T08:10:18.867Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 2,
+ "Title": "ExpSchema.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpSchema.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpSchema.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpSchema.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpSchema.cs",
+ "ViewState": "AgIAAE0AAAAAAAAAAAAowFgAAABMAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-02T08:08:05.896Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 35,
+ "Title": "StgSharp.Common",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\StgSharp.Common.csproj",
+ "RelativeDocumentMoniker": "StgSharp.Common\\StgSharp.Common.csproj",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\StgSharp.Common.csproj",
+ "RelativeToolTip": "StgSharp.Common\\StgSharp.Common.csproj",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
+ "WhenOpened": "2025-02-02T04:58:01.889Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 121,
+ "Title": "smmintrin.h",
+ "DocumentMoniker": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.41.34120\\include\\smmintrin.h",
+ "ToolTip": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.41.34120\\include\\smmintrin.h",
+ "ViewState": "AgIAAL0AAAAAAAAAAAAmwMgAAAAoAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2025-02-02T03:32:10.906Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 122,
+ "Title": "intrin.h",
+ "DocumentMoniker": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.41.34120\\include\\intrin.h",
+ "ToolTip": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.41.34120\\include\\intrin.h",
+ "ViewState": "AgIAAJMCAAAAAAAAAAAmwJ4CAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2025-02-02T03:32:07.411Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 39,
+ "Title": "stb_image.h",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\stb_image.h",
+ "RelativeDocumentMoniker": "StgSharp.C\\stb_image.h",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\stb_image.h",
+ "RelativeToolTip": "StgSharp.C\\stb_image.h",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2025-02-02T03:31:27.068Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 44,
+ "Title": "mat2.c",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat2.c",
+ "RelativeDocumentMoniker": "StgSharp.C\\mat2.c",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat2.c",
+ "RelativeToolTip": "StgSharp.C\\mat2.c",
+ "ViewState": "AgIAABAAAAAAAAAAAAAUwB4AAAA6AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000423|",
+ "WhenOpened": "2025-02-01T12:00:34.568Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 42,
+ "Title": "mat4.c",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat4.c",
+ "RelativeDocumentMoniker": "StgSharp.C\\mat4.c",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat4.c",
+ "RelativeToolTip": "StgSharp.C\\mat4.c",
+ "ViewState": "AgIAAD8AAAAAAAAAAAAowAAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000423|",
+ "WhenOpened": "2025-02-01T10:58:51.767Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 43,
+ "Title": "mat3.c",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat3.c",
+ "RelativeDocumentMoniker": "StgSharp.C\\mat3.c",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\mat3.c",
+ "RelativeToolTip": "StgSharp.C\\mat3.c",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000423|",
+ "WhenOpened": "2025-02-01T10:58:49.386Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 48,
+ "Title": "StgSharp.Script",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\StgSharp.Script.csproj",
+ "RelativeDocumentMoniker": "StgSharp.Script\\StgSharp.Script.csproj",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\StgSharp.Script.csproj",
+ "RelativeToolTip": "StgSharp.Script\\StgSharp.Script.csproj",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
+ "WhenOpened": "2025-02-01T10:50:18.055Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 50,
+ "Title": "RenderStream.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\RenderStream.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Graphics\\RenderStream.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\RenderStream.cs",
+ "RelativeToolTip": "StgSharp.Common\\Graphics\\RenderStream.cs",
+ "ViewState": "AgIAAKkAAAAAAAAAAIA0wNQAAAAMAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T10:08:45.143Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 46,
+ "Title": "ViewMain.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\View\\ViewMain.cs",
+ "RelativeDocumentMoniker": "StgSharpDebug\\View\\ViewMain.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\View\\ViewMain.cs",
+ "RelativeToolTip": "StgSharpDebug\\View\\ViewMain.cs",
+ "ViewState": "AgIAADIAAAAAAAAAAIA2wD8AAAAMAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T09:52:43.909Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 36,
+ "Title": "StgSharpDebug.csproj",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\StgSharpDebug.csproj",
+ "RelativeDocumentMoniker": "StgSharpDebug\\StgSharpDebug.csproj",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\StgSharpDebug.csproj",
+ "RelativeToolTip": "StgSharpDebug\\StgSharpDebug.csproj",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAAA1AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
+ "WhenOpened": "2025-02-01T05:19:07.003Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 40,
+ "Title": "NewRender.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\View\\NewRender.cs",
+ "RelativeDocumentMoniker": "StgSharpDebug\\View\\NewRender.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\View\\NewRender.cs",
+ "RelativeToolTip": "StgSharpDebug\\View\\NewRender.cs",
+ "ViewState": "AgIAACEAAAAAAAAAAIA0wC4AAAAQAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T05:16:41.098Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 52,
+ "Title": "InternalIO.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\InternalIO.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Internal\\InternalIO.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\InternalIO.cs",
+ "RelativeToolTip": "StgSharp.Common\\Internal\\InternalIO.cs",
+ "ViewState": "AgIAACsAAAAAAAAAAAAcwDQAAAAWAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T05:09:10.563Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 54,
+ "Title": "StgSharp.Model.csproj",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Model\\StgSharp.Model.csproj",
+ "RelativeDocumentMoniker": "StgSharp.Model\\StgSharp.Model.csproj",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Model\\StgSharp.Model.csproj",
+ "RelativeToolTip": "StgSharp.Model\\StgSharp.Model.csproj",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
+ "WhenOpened": "2025-02-01T04:53:57.734Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 23,
+ "Title": "StgSharp.Common.csproj",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\StgSharp.Common.csproj",
+ "RelativeDocumentMoniker": "StgSharp.Common\\StgSharp.Common.csproj",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\StgSharp.Common.csproj",
+ "RelativeToolTip": "StgSharp.Common\\StgSharp.Common.csproj",
+ "ViewState": "AgIAADcAAAAAAAAAAAA1wEgAAAAUAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
+ "WhenOpened": "2025-02-01T04:53:22.477Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 38,
+ "Title": "intrinsic.c",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\intrinsic.c",
+ "RelativeDocumentMoniker": "StgSharp.C\\intrinsic.c",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\intrinsic.c",
+ "RelativeToolTip": "StgSharp.C\\intrinsic.c",
+ "ViewState": "AgIAAD8AAAAAAAAAAAAswFQAAAAZAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000423|",
+ "WhenOpened": "2025-02-01T04:44:14.087Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 15,
+ "Title": "Lable.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Data\\Lable.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Data\\Lable.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Data\\Lable.cs",
+ "RelativeToolTip": "StgSharp.Common\\Data\\Lable.cs",
+ "ViewState": "AgIAABEAAAAAAAAAAAAgwDgAAAArAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T04:24:59.826Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 21,
+ "Title": "IntrinsicContext.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\Intrinsic\\IntrinsicContext.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Internal\\Intrinsic\\IntrinsicContext.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\Intrinsic\\IntrinsicContext.cs",
+ "RelativeToolTip": "StgSharp.Common\\Internal\\Intrinsic\\IntrinsicContext.cs",
+ "ViewState": "AgIAACMAAAAAAAAAAAAcwDMAAAARAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T04:22:49.291Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 55,
+ "Title": "glConst.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\glConst.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Graphics\\OpenGL\\glConst.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\glConst.cs",
+ "RelativeToolTip": "StgSharp.Common\\Graphics\\OpenGL\\glConst.cs",
+ "ViewState": "AgIAAOoSAAAAAAAAAAA5wPkSAAA9AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T04:20:23.873Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 56,
+ "Title": "vkEnum.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\Vulkan\\vkEnum.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Graphics\\Vulkan\\vkEnum.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\Vulkan\\vkEnum.cs",
+ "RelativeToolTip": "StgSharp.Common\\Graphics\\Vulkan\\vkEnum.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAADEAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T04:16:05.735Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 57,
+ "Title": "glEnum.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\glEnum.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Graphics\\OpenGL\\glEnum.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\glEnum.cs",
+ "RelativeToolTip": "StgSharp.Common\\Graphics\\OpenGL\\glEnum.cs",
+ "ViewState": "AgIAAEgAAAAAAAAAAAA1wIEAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T03:25:21.859Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 60,
+ "Title": "gl.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\ClangLoad\\gl.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Internal\\ClangLoad\\gl.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\ClangLoad\\gl.cs",
+ "RelativeToolTip": "StgSharp.Common\\Internal\\ClangLoad\\gl.cs",
+ "ViewState": "AgIAADUAAAAAAAAAAAAxwEgAAABBAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T03:20:57.08Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 58,
+ "Title": "ImageInfo.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\ImageInfo.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Graphics\\ImageInfo.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\ImageInfo.cs",
+ "RelativeToolTip": "StgSharp.Common\\Graphics\\ImageInfo.cs",
+ "ViewState": "AgIAAEsAAAAAAAAAAAAuwF0AAAAZAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T03:20:17.135Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 59,
+ "Title": "publicType.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\publicType.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Internal\\publicType.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\publicType.cs",
+ "RelativeToolTip": "StgSharp.Common\\Internal\\publicType.cs",
+ "ViewState": "AgIAABwAAAAAAAAAAAA2wDIAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T03:19:35.334Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 61,
+ "Title": "InternalResource.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\InternalResource.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Internal\\InternalResource.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Internal\\InternalResource.cs",
+ "RelativeToolTip": "StgSharp.Common\\Internal\\InternalResource.cs",
+ "ViewState": "AgIAABkAAAAAAAAAAAA5wCcAAAAIAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T03:18:37.837Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 41,
+ "Title": "StgSharpC.h",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\StgSharpC.h",
+ "RelativeDocumentMoniker": "StgSharp.C\\StgSharpC.h",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\StgSharpC.h",
+ "RelativeToolTip": "StgSharp.C\\StgSharpC.h",
+ "ViewState": "AgIAABUAAAAAAAAAAIA2wCUAAAANAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2025-02-01T02:22:45.65Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 37,
+ "Title": "ssc_intrinsic.h",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\ssc_intrinsic.h",
+ "RelativeDocumentMoniker": "StgSharp.C\\ssc_intrinsic.h",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\ssc_intrinsic.h",
+ "RelativeToolTip": "StgSharp.C\\ssc_intrinsic.h",
+ "ViewState": "AgIAABkAAAAAAAAAAAA5wCAAAAAFAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2025-02-01T02:13:17.69Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 34,
+ "Title": "hash.c",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\hash.c",
+ "RelativeDocumentMoniker": "StgSharp.C\\hash.c",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.C\\hash.c",
+ "RelativeToolTip": "StgSharp.C\\hash.c",
+ "ViewState": "AgIAACQAAAAAAAAAAAAMwDEAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000423|",
+ "WhenOpened": "2025-02-01T02:12:53.091Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 27,
+ "Title": "KeyMultiplexer.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\KeyMultiplexer.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Collections\\KeyMultiplexer.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Collections\\KeyMultiplexer.cs",
+ "RelativeToolTip": "StgSharp.Common\\Collections\\KeyMultiplexer.cs",
+ "ViewState": "AgIAAEIAAAAAAAAAAAAowEcAAAAMAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-02-01T01:26:33.462Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 63,
+ "Title": "Shader.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\ShaderEdit\\Shader.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Graphics\\OpenGL\\ShaderEdit\\Shader.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\ShaderEdit\\Shader.cs",
+ "RelativeToolTip": "StgSharp.Common\\Graphics\\OpenGL\\ShaderEdit\\Shader.cs",
+ "ViewState": "AgIAAGYAAAAAAAAAAAAIwHoAAAA0AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-31T14:51:26.007Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 64,
+ "Title": "ShaderGenerator.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\ShaderEdit\\ShaderGenerator.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Graphics\\ShaderEdit\\ShaderGenerator.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\ShaderEdit\\ShaderGenerator.cs",
+ "RelativeToolTip": "StgSharp.Common\\Graphics\\ShaderEdit\\ShaderGenerator.cs",
+ "ViewState": "AgIAAD8AAAAAAAAAAAA6wE0AAAAJAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-31T14:23:42.591Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 62,
+ "Title": "glFunction.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\glFunction.cs",
+ "RelativeDocumentMoniker": "StgSharp.Common\\Graphics\\OpenGL\\glFunction.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Common\\Graphics\\OpenGL\\glFunction.cs",
+ "RelativeToolTip": "StgSharp.Common\\Graphics\\OpenGL\\glFunction.cs",
+ "ViewState": "AgIAAPIBAAAAAAAAAAAEwAgCAAAuAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-31T14:23:13.006Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 12,
+ "Title": "ExpEntity.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpEntity.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Element\\ExpEntity.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpEntity.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Element\\ExpEntity.cs",
+ "ViewState": "AgIAAB8AAAAAAAAAAAArwCsAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-31T03:23:40.771Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 6,
+ "Title": "ExpLiteralToken.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpLiteralToken.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Builtin\\ExpLiteralToken.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpLiteralToken.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Builtin\\ExpLiteralToken.cs",
+ "ViewState": "AgIAAB0AAAAAAAAAAAAAwFQAAAAhAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T13:29:07.592Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 66,
+ "Title": "AbstractSyntaxTree.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\AbstractSyntaxTree.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\AbstractSyntaxTree.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\AbstractSyntaxTree.cs",
+ "RelativeToolTip": "StgSharp.Script\\AbstractSyntaxTree.cs",
+ "ViewState": "AgIAADEAAAAAAAAAAAAqwEUAAAAtAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T07:24:37.33Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 8,
+ "Title": "IExpressionToken.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\IExpressionToken.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\IExpressionToken.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\IExpressionToken.cs",
+ "RelativeToolTip": "StgSharp.Script\\IExpressionToken.cs",
+ "ViewState": "AgIAACIAAAAAAAAAAAAqwCcAAAAVAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T07:23:34.89Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 4,
+ "Title": "ExpRepeat.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpRepeat.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Builtin\\ExpRepeat.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpRepeat.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Builtin\\ExpRepeat.cs",
+ "ViewState": "AgIAAEMAAAAAAAAAAAAUwFUAAAA0AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T07:19:24.455Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 3,
+ "Title": "ExpReader.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpReader.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpReader.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpReader.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpReader.cs",
+ "ViewState": "AgIAAC0AAAAAAAAAAAAuwAAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T06:40:23.62Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 13,
+ "Title": "ExpSwitchToken.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpSwitchToken.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Builtin\\ExpSwitchToken.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpSwitchToken.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Builtin\\ExpSwitchToken.cs",
+ "ViewState": "AgIAACYAAAAAAAAAAAAjwDMAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T03:55:57.477Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 25,
+ "Title": "BuiltinType.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\BuiltinType.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Builtin\\BuiltinType.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\BuiltinType.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Builtin\\BuiltinType.cs",
+ "ViewState": "AgIAABwAAAAAAAAAAAA2wCYAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T02:58:12.25Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 28,
+ "Title": "ExpElementInstanceBase.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpElementInstanceBase.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpElementInstanceBase.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpElementInstanceBase.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpElementInstanceBase.cs",
+ "ViewState": "AgIAADkAAAAAAAAAAAAmwGUAAAAFAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T02:52:10.549Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 65,
+ "Title": "ExpCollection.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpCollection.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Builtin\\ExpCollection.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpCollection.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Builtin\\ExpCollection.cs",
+ "ViewState": "AgIAAEMAAAAAAAAAAIBAwDgAAAAYAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-30T02:50:15.736Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 29,
+ "Title": "ExpSchemaSource.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpSchemaSource.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpSchemaSource.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpSchemaSource.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpSchemaSource.cs",
+ "ViewState": "AgIAAEoAAAAAAAAAAAAywKwAAABPAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:51:49.061Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 5,
+ "Title": "ExpToken.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpToken.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpToken.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpToken.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpToken.cs",
+ "ViewState": "AgIAADMAAAAAAAAAAAAcwEMAAAAhAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:49:36.742Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 7,
+ "Title": "ExpIfToken.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpIfToken.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Builtin\\ExpIfToken.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Builtin\\ExpIfToken.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Builtin\\ExpIfToken.cs",
+ "ViewState": "AgIAABkAAAAAAAAAAAAkwAkAAAAFAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:38:12.188Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 24,
+ "Title": "Exceptions.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Exceptions.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Exceptions.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Exceptions.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Exceptions.cs",
+ "ViewState": "AgIAACMAAAAAAAAAAAAuwCwAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:38:11.545Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 1,
+ "Title": "ExpConst.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpConst.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\Element\\ExpConst.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\Element\\ExpConst.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\Element\\ExpConst.cs",
+ "ViewState": "AgIAACwAAAAAAAAAAAAewEgAAAAwAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:34:20.019Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 26,
+ "Title": "ExpLogic.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpLogic.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpLogic.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpLogic.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpLogic.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAoAAAARAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:26:02.08Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 0,
+ "Title": "ExpCompile.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpCompile.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Express\\ExpCompile.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Express\\ExpCompile.cs",
+ "RelativeToolTip": "StgSharp.Script\\Express\\ExpCompile.cs",
+ "ViewState": "AgIAAEoAAAAAAAAAAAAiwF0AAAAfAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:21:02.074Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 67,
+ "Title": "ExpIfToken.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\ExpIfToken.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\Builtin\\ExpIfToken.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\ExpIfToken.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\Builtin\\ExpIfToken.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T13:19:15.148Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 114,
+ "Title": "ExpExpressionTree.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpExpressionTree.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\ExpExpressionTree.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpExpressionTree.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\ExpExpressionTree.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T12:41:21.842Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 115,
+ "Title": "ExpToken.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpToken.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\ExpToken.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpToken.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\ExpToken.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T12:32:47.772Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 116,
+ "Title": "ExpConst.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpConst.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\Element\\ExpConst.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpConst.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\Element\\ExpConst.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T08:10:50.179Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 117,
+ "Title": "ExpInit.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpInit.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\ExpInit.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\ExpInit.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\ExpInit.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T08:10:00.82Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 118,
+ "Title": "BuiltinType.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\BuiltinType.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\Builtin\\BuiltinType.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\BuiltinType.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\Builtin\\BuiltinType.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T08:06:29.505Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 119,
+ "Title": "BuiltinConst.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\BuiltinConst.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\Builtin\\BuiltinConst.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Builtin\\BuiltinConst.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\Builtin\\BuiltinConst.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T08:03:33.572Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 49,
+ "Title": "StgSharp.TerminalDialogue.csproj",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.TerminalDialogue\\StgSharp.TerminalDialogue.csproj",
+ "RelativeDocumentMoniker": "StgSharp.TerminalDialogue\\StgSharp.TerminalDialogue.csproj",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.TerminalDialogue\\StgSharp.TerminalDialogue.csproj",
+ "RelativeToolTip": "StgSharp.TerminalDialogue\\StgSharp.TerminalDialogue.csproj",
+ "ViewState": "AgIAABEAAAAAAAAAAAAgwCQAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
+ "WhenOpened": "2025-01-29T08:02:17.589Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 120,
+ "Title": "ExpType.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpType.cs",
+ "RelativeDocumentMoniker": "StgSharp.Script\\Expression\\Element\\ExpType.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Script\\Expression\\Element\\ExpType.cs",
+ "RelativeToolTip": "StgSharp.Script\\Expression\\Element\\ExpType.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-29T07:24:26.837Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 70,
+ "Title": "ExpCollection.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpCollection.cs",
+ "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpCollection.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpCollection.cs",
+ "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpCollection.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-25T05:41:19.849Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 71,
+ "Title": "ExpRule.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpRule.cs",
+ "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpRule.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpRule.cs",
+ "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpRule.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-24T12:33:08.481Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 72,
+ "Title": "ExpFunction.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpFunction.cs",
+ "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpFunction.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpFunction.cs",
+ "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpFunction.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-24T11:30:53.865Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 73,
+ "Title": "ExpType.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpType.cs",
+ "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpType.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpType.cs",
+ "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpType.cs",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-01-24T10:20:07.164Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 110,
"Title": "StepHeadReader.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\STEP\\Reader\\StepHeadReader.cs",
"RelativeDocumentMoniker": "SthSharp.Model\\STEP\\Reader\\StepHeadReader.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\STEP\\Reader\\StepHeadReader.cs",
"RelativeToolTip": "SthSharp.Model\\STEP\\Reader\\StepHeadReader.cs",
- "ViewState": "AgIAADUAAAAAAAAAAAAxwAAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-24T06:17:36.213Z"
},
{
"$type": "Document",
- "DocumentIndex": 27,
+ "DocumentIndex": 75,
"Title": "glfw.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\glfw.cs",
"RelativeDocumentMoniker": "StgSharp\\Internal\\glfw.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\glfw.cs",
"RelativeToolTip": "StgSharp\\Internal\\glfw.cs",
- "ViewState": "AgIAACMAAAAAAAAAAAAiwDAAAAAvAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-23T14:17:06.842Z"
},
{
"$type": "Document",
- "DocumentIndex": 18,
+ "DocumentIndex": 68,
"Title": "ExpConst.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpConst.cs",
"RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpConst.cs",
@@ -556,144 +1468,85 @@
},
{
"$type": "Document",
- "DocumentIndex": 12,
- "Title": "IScriptSourceProvider.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\IScriptSourceProvider.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\IScriptSourceProvider.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\IScriptSourceProvider.cs",
- "RelativeToolTip": "StgSharp.Modeling\\IScriptSourceProvider.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAuwAgAAAAgAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-22T11:22:33.535Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 13,
- "Title": "ScriptSourceTransmitter.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\ScriptSourceTransmitter.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\ScriptSourceTransmitter.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\ScriptSourceTransmitter.cs",
- "RelativeToolTip": "StgSharp.Modeling\\ScriptSourceTransmitter.cs",
- "ViewState": "AgIAAA0AAAAAAAAAAAA2wCEAAAAIAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-22T11:21:54.656Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 31,
+ "DocumentIndex": 76,
"Title": "gl.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\ClangLoad\\gl.cs",
"RelativeDocumentMoniker": "StgSharp\\Internal\\ClangLoad\\gl.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\ClangLoad\\gl.cs",
"RelativeToolTip": "StgSharp\\Internal\\ClangLoad\\gl.cs",
- "ViewState": "AgIAACIAAAAAAAAAAAAkwDIAAAAzAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-22T08:59:46.372Z"
},
{
"$type": "Document",
- "DocumentIndex": 32,
+ "DocumentIndex": 77,
"Title": "glHalfNV.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glHalfNV.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\glHalfNV.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glHalfNV.cs",
"RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\glHalfNV.cs",
- "ViewState": "AgIAADIAAAAAAAAAAAA0wCgAAAAVAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-22T08:55:47.744Z"
},
{
"$type": "Document",
- "DocumentIndex": 34,
+ "DocumentIndex": 78,
"Title": "StructDefine.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\StructDefine.cs",
"RelativeDocumentMoniker": "StgSharp\\Internal\\StructDefine.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\StructDefine.cs",
"RelativeToolTip": "StgSharp\\Internal\\StructDefine.cs",
- "ViewState": "AgIAABcAAAAAAAAAAAA4wCEAAAAfAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-22T08:47:28.65Z"
},
{
"$type": "Document",
- "DocumentIndex": 36,
+ "DocumentIndex": 79,
"Title": "InternalIO.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\InternalIO.cs",
"RelativeDocumentMoniker": "StgSharp\\Internal\\InternalIO.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Internal\\InternalIO.cs",
"RelativeToolTip": "StgSharp\\Internal\\InternalIO.cs",
- "ViewState": "AgIAAB4AAAAAAAAAAAAnwCsAAAAbAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-22T08:26:14.827Z"
},
{
"$type": "Document",
- "DocumentIndex": 28,
+ "DocumentIndex": 80,
"Title": "glContext.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glContext.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\glContext.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glContext.cs",
"RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\glContext.cs",
- "ViewState": "AgIAAIUBAAAAAAAAAAAkwJQBAABHAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-22T08:25:50.055Z"
},
{
"$type": "Document",
- "DocumentIndex": 38,
+ "DocumentIndex": 81,
"Title": "glConst.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glConst.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\glConst.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glConst.cs",
"RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\glConst.cs",
- "ViewState": "AgIAABkAAAAAAAAAAAA5wCEAAAAbAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-22T08:25:22.133Z"
},
{
"$type": "Document",
- "DocumentIndex": 35,
+ "DocumentIndex": 82,
"Title": "glEnum.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glEnum.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\glEnum.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glEnum.cs",
"RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\glEnum.cs",
- "ViewState": "AgIAAA4AAAAAAAAAAAAmwM4AAAAgAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-22T08:24:52.368Z"
},
{
"$type": "Document",
- "DocumentIndex": 1,
- "Title": "ExpElementBase.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpElementBase.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpElementBase.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpElementBase.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpElementBase.cs",
- "ViewState": "AgIAACYAAAAAAAAAAAAswDQAAAAuAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-22T07:57:52.248Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 17,
- "Title": "ExpSchema.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpSchema.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpSchema.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpSchema.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpSchema.cs",
- "ViewState": "AgIAAA0BAAAAAAAAAAAkwFIBAAAtAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-22T07:56:10.6Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 41,
- "Title": "SthSharp.Model",
+ "DocumentIndex": 111,
+ "Title": "SthSharp.Model.csproj",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\SthSharp.Model.csproj",
"RelativeDocumentMoniker": "SthSharp.Model\\SthSharp.Model.csproj",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\SthSharp.Model.csproj",
@@ -703,538 +1556,431 @@
},
{
"$type": "Document",
- "DocumentIndex": 39,
+ "DocumentIndex": 112,
"Title": "StepExpression.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\STEP\\FileStructure\\StepExpression.cs",
"RelativeDocumentMoniker": "SthSharp.Model\\STEP\\FileStructure\\StepExpression.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\STEP\\FileStructure\\StepExpression.cs",
"RelativeToolTip": "SthSharp.Model\\STEP\\FileStructure\\StepExpression.cs",
- "ViewState": "AgIAACkAAAAAAAAAAIBCwHIAAAARAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-22T05:33:13.815Z"
},
{
"$type": "Document",
- "DocumentIndex": 16,
- "Title": "ExpReader.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpReader.cs",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpReader.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpReader.cs",
- "RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpReader.cs",
- "ViewState": "AgIAAEEAAAAAAAAAAAAowFYAAAAIAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-22T05:32:54.95Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 42,
+ "DocumentIndex": 83,
"Title": "IEntity.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Entities\\IEntity.cs",
"RelativeDocumentMoniker": "StgSharp\\Entities\\IEntity.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Entities\\IEntity.cs",
"RelativeToolTip": "StgSharp\\Entities\\IEntity.cs",
- "ViewState": "AgIAAD4AAAAAAAAAAAA9wE0AAABIAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-22T05:32:22.664Z"
},
{
"$type": "Document",
- "DocumentIndex": 43,
+ "DocumentIndex": 84,
"Title": "PlainGeometryCollisionSensor.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Logic\\PlainGeometryCollisionSensor.cs",
"RelativeDocumentMoniker": "StgSharp\\Logic\\PlainGeometryCollisionSensor.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Logic\\PlainGeometryCollisionSensor.cs",
"RelativeToolTip": "StgSharp\\Logic\\PlainGeometryCollisionSensor.cs",
- "ViewState": "AgIAADgAAAAAAAAAAAAqwDgAAAAwAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-22T05:02:23.12Z"
},
{
"$type": "Document",
- "DocumentIndex": 44,
+ "DocumentIndex": 85,
"Title": "Counter.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Logic\\Counter.cs",
"RelativeDocumentMoniker": "StgSharp\\Logic\\Counter.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Logic\\Counter.cs",
"RelativeToolTip": "StgSharp\\Logic\\Counter.cs",
- "ViewState": "AgIAADUAAAAAAAAAAAAxwEQAAAAyAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-22T04:53:50.632Z"
},
{
"$type": "Document",
- "DocumentIndex": 26,
+ "DocumentIndex": 86,
"Title": "CachePool.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Collections\\CachePool.cs",
"RelativeDocumentMoniker": "StgSharp\\Collections\\CachePool.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Collections\\CachePool.cs",
"RelativeToolTip": "StgSharp\\Collections\\CachePool.cs",
- "ViewState": "AgIAACIAAAAAAAAAAAAkwDYAAAAwAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-22T04:52:43.349Z"
},
{
"$type": "Document",
- "DocumentIndex": 45,
- "Title": "global.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSgharp.Generator.Expression\\global.cs",
- "RelativeDocumentMoniker": "StgSgharp.Generator.Expression\\global.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSgharp.Generator.Expression\\global.cs",
- "RelativeToolTip": "StgSgharp.Generator.Expression\\global.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-22T04:49:20.091Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 46,
- "Title": "PartialDictionary.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSgharp.Generator.Expression\\FakeType\\PartialDictionary.cs",
- "RelativeDocumentMoniker": "StgSgharp.Generator.Expression\\FakeType\\PartialDictionary.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSgharp.Generator.Expression\\FakeType\\PartialDictionary.cs",
- "RelativeToolTip": "StgSgharp.Generator.Expression\\FakeType\\PartialDictionary.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAYAAAAOAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-22T04:27:22.651Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 48,
- "Title": "BpNodeGenerator.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSgharp.Generator.Expression\\SourceGenerator\\BpNodeGenerator.cs",
- "RelativeDocumentMoniker": "StgSgharp.Generator.Expression\\SourceGenerator\\BpNodeGenerator.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSgharp.Generator.Expression\\SourceGenerator\\BpNodeGenerator.cs",
- "RelativeToolTip": "StgSgharp.Generator.Expression\\SourceGenerator\\BpNodeGenerator.cs",
- "ViewState": "AgIAAB8AAAAAAAAAAAAzwC4AAABIAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-22T04:25:41.809Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 75,
+ "DocumentIndex": 74,
"Title": "ExpEntity.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpEntity.cs",
"RelativeDocumentMoniker": "StgSharp.Modeling\\Expression\\ExpEntity.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\Expression\\ExpEntity.cs",
"RelativeToolTip": "StgSharp.Modeling\\Expression\\ExpEntity.cs",
- "ViewState": "AgIAADoAAAAAAAAAAAAYwEkAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-22T04:23:23.704Z"
},
{
"$type": "Document",
- "DocumentIndex": 40,
+ "DocumentIndex": 113,
"Title": "SthSharp.Model.csproj",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\SthSharp.Model.csproj",
"RelativeDocumentMoniker": "SthSharp.Model\\SthSharp.Model.csproj",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\SthSharp.Model\\SthSharp.Model.csproj",
"RelativeToolTip": "SthSharp.Model\\SthSharp.Model.csproj",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAUAAAAcAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
"WhenOpened": "2025-01-22T03:50:15.426Z"
},
{
"$type": "Document",
- "DocumentIndex": 50,
+ "DocumentIndex": 51,
"Title": "StgSharpDebug",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\StgSharpDebug.csproj",
"RelativeDocumentMoniker": "StgSharpDebug\\StgSharpDebug.csproj",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\StgSharpDebug.csproj",
"RelativeToolTip": "StgSharpDebug\\StgSharpDebug.csproj",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
- "WhenOpened": "2025-01-22T03:20:20.734Z"
+ "WhenOpened": "2025-01-22T03:20:20.734Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 51,
+ "DocumentIndex": 32,
"Title": "ViewModelMain.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\ViewModelMain.cs",
"RelativeDocumentMoniker": "StgSharpDebug\\ViewModelMain.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\ViewModelMain.cs",
"RelativeToolTip": "StgSharpDebug\\ViewModelMain.cs",
- "ViewState": "AgIAAA8AAAAAAAAAAIBTwDsAAAAQAAAAAAAAAA==",
+ "ViewState": "AgIAADkAAAAAAAAAAIBBwDEAAAAOAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-22T03:18:57.741Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 14,
- "Title": "StgSharp.Script.csproj",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\StgSharp.Script.csproj",
- "RelativeDocumentMoniker": "StgSharp.Modeling\\StgSharp.Script.csproj",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp.Modeling\\StgSharp.Script.csproj",
- "RelativeToolTip": "StgSharp.Modeling\\StgSharp.Script.csproj",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAAAKAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
- "WhenOpened": "2025-01-22T03:17:47.885Z",
+ "WhenOpened": "2025-01-22T03:18:57.741Z",
"EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 53,
- "Title": "StgSgharp.Generator",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj",
- "RelativeDocumentMoniker": "StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj",
- "RelativeToolTip": "StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
- "WhenOpened": "2025-01-22T03:16:36.641Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 54,
+ "DocumentIndex": 69,
"Title": "Microsoft.Common.CurrentVersion.targets",
"DocumentMoniker": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\MSBuild\\Current\\Bin\\amd64\\Microsoft.Common.CurrentVersion.targets",
"ToolTip": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\MSBuild\\Current\\Bin\\amd64\\Microsoft.Common.CurrentVersion.targets",
- "ViewState": "AgIAAE8HAAAAAAAAAABKwGEHAAAEAAAAAAAAAA==",
+ "ViewState": "AgIAAEcHAAAAAAAAAEBwwGEHAAAEAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003801|",
- "WhenOpened": "2025-01-22T03:07:54.535Z"
+ "WhenOpened": "2025-01-22T03:07:54.535Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 47,
- "Title": "StgSgharp.Generator.csproj",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj",
- "RelativeDocumentMoniker": "StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj",
- "RelativeToolTip": "StgSgharp.Generator.Expression\\StgSgharp.Generator.csproj",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAMAAAAjAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
- "WhenOpened": "2025-01-22T03:06:50.242Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 52,
+ "DocumentIndex": 87,
"Title": "StgSharp.Commom.csproj",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\StgSharp.Commom.csproj",
"RelativeDocumentMoniker": "StgSharp\\StgSharp.Commom.csproj",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\StgSharp.Commom.csproj",
"RelativeToolTip": "StgSharp\\StgSharp.Commom.csproj",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
"WhenOpened": "2025-01-21T14:49:27.481Z"
},
{
"$type": "Document",
- "DocumentIndex": 55,
+ "DocumentIndex": 53,
"Title": "StgSharpTest",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\STgSharpTest\\StgSharpTest.csproj",
"RelativeDocumentMoniker": "STgSharpTest\\StgSharpTest.csproj",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\STgSharpTest\\StgSharpTest.csproj",
"RelativeToolTip": "STgSharpTest\\StgSharpTest.csproj",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
- "WhenOpened": "2025-01-21T14:48:45.224Z"
+ "WhenOpened": "2025-01-21T14:48:45.224Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 19,
+ "DocumentIndex": 45,
"Title": "StgSharpTest.csproj",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\STgSharpTest\\StgSharpTest.csproj",
"RelativeDocumentMoniker": "STgSharpTest\\StgSharpTest.csproj",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\STgSharpTest\\StgSharpTest.csproj",
"RelativeToolTip": "STgSharpTest\\StgSharpTest.csproj",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+ "ViewState": "AgIAAAgAAAAAAAAAAAAxwB8AAAA7AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
- "WhenOpened": "2025-01-21T14:48:36.279Z"
+ "WhenOpened": "2025-01-21T14:48:36.279Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 21,
+ "DocumentIndex": 31,
"Title": "UnitTest1.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\STgSharpTest\\UnitTest1.cs",
"RelativeDocumentMoniker": "STgSharpTest\\UnitTest1.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\STgSharpTest\\UnitTest1.cs",
"RelativeToolTip": "STgSharpTest\\UnitTest1.cs",
- "ViewState": "AgIAADQAAAAAAAAAAAA4wEIAAAAIAAAAAAAAAA==",
+ "ViewState": "AgIAAEAAAAAAAAAAAIAwwEQAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-21T12:43:12.616Z"
+ "WhenOpened": "2025-01-21T12:43:12.616Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 24,
+ "DocumentIndex": 88,
"Title": "ViewModel.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\MVVM\\ViewModel\\ViewModel.cs",
"RelativeDocumentMoniker": "StgSharp\\MVVM\\ViewModel\\ViewModel.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\MVVM\\ViewModel\\ViewModel.cs",
"RelativeToolTip": "StgSharp\\MVVM\\ViewModel\\ViewModel.cs",
- "ViewState": "AgIAALEAAAAAAAAAAAAIwL8AAAApAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T12:42:22.888Z"
},
{
"$type": "Document",
- "DocumentIndex": 58,
+ "DocumentIndex": 89,
"Title": "TextureProvider.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\TextureProvider.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\TextureProvider.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\TextureProvider.cs",
"RelativeToolTip": "StgSharp\\Graphics\\TextureProvider.cs",
- "ViewState": "AgIAAEAAAAAAAAAAAAAowEgAAAAtAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T12:40:27.238Z"
},
{
"$type": "Document",
- "DocumentIndex": 59,
+ "DocumentIndex": 90,
"Title": "ImageHelper.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\CPUanimation\\ImageHelper.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\CPUanimation\\ImageHelper.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\CPUanimation\\ImageHelper.cs",
"RelativeToolTip": "StgSharp\\Graphics\\CPUanimation\\ImageHelper.cs",
- "ViewState": "AgIAAEEAAAAAAAAAAAAUwAAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T12:40:10.936Z"
},
{
"$type": "Document",
- "DocumentIndex": 33,
+ "DocumentIndex": 91,
"Title": "glHandle.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glHandle.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\glHandle.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glHandle.cs",
"RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\glHandle.cs",
- "ViewState": "AgIAACUAAAAAAAAAAAAqwAAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T12:39:33.236Z"
},
{
"$type": "Document",
- "DocumentIndex": 60,
+ "DocumentIndex": 92,
"Title": "VBO.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\VBO.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\Buffer\\VBO.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\VBO.cs",
"RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\Buffer\\VBO.cs",
- "ViewState": "AgIAAIcAAAAAAAAAAAAnwJYAAAAUAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T12:33:21.083Z"
},
{
"$type": "Document",
- "DocumentIndex": 61,
+ "DocumentIndex": 93,
"Title": "EBO.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\EBO.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\Buffer\\EBO.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\EBO.cs",
"RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\Buffer\\EBO.cs",
- "ViewState": "AgIAAEAAAAAAAAAAAAAkwFAAAAAiAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T12:33:00.232Z"
},
{
"$type": "Document",
- "DocumentIndex": 62,
+ "DocumentIndex": 94,
"Title": "TextureGL.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\TextureGL.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\Buffer\\TextureGL.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\Buffer\\TextureGL.cs",
"RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\Buffer\\TextureGL.cs",
- "ViewState": "AgIAAHkAAAAAAAAAAIBjwHsAAAATAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T12:32:46.745Z"
},
{
"$type": "Document",
- "DocumentIndex": 63,
+ "DocumentIndex": 95,
"Title": "Image.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Image.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\Image.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Image.cs",
"RelativeToolTip": "StgSharp\\Graphics\\Image.cs",
- "ViewState": "AgIAAJ0AAAAAAAAAAAAuwK8AAAA1AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T12:28:33.887Z"
},
{
"$type": "Document",
- "DocumentIndex": 64,
+ "DocumentIndex": 96,
"Title": "KeyEnum.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Controlling\\KeyEnum.cs",
"RelativeDocumentMoniker": "StgSharp\\Controlling\\KeyEnum.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Controlling\\KeyEnum.cs",
"RelativeToolTip": "StgSharp\\Controlling\\KeyEnum.cs",
- "ViewState": "AgIAAAcAAAAAAAAAAAAswLsAAAAYAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T12:28:09.467Z"
},
{
"$type": "Document",
- "DocumentIndex": 65,
+ "DocumentIndex": 97,
"Title": "Uniform.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\ShaderEdit\\Uniform.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\ShaderEdit\\Uniform.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\ShaderEdit\\Uniform.cs",
"RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\ShaderEdit\\Uniform.cs",
- "ViewState": "AgIAACAAAAAAAAAAAAAEwFkAAAAnAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T11:43:39.963Z"
},
{
"$type": "Document",
- "DocumentIndex": 66,
+ "DocumentIndex": 98,
"Title": "Vector.Orthogonalize.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Vector.Orthogonalize.cs",
"RelativeDocumentMoniker": "StgSharp\\Math\\Linear\\Vector.Orthogonalize.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Vector.Orthogonalize.cs",
"RelativeToolTip": "StgSharp\\Math\\Linear\\Vector.Orthogonalize.cs",
- "ViewState": "AgIAAB4AAAAAAAAAAIAzwCgAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T11:35:59.396Z"
},
{
"$type": "Document",
- "DocumentIndex": 37,
+ "DocumentIndex": 99,
"Title": "glFunction.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glFunction.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\glFunction.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glFunction.cs",
"RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\glFunction.cs",
- "ViewState": "AgIAACIAAAAAAAAAAAAnwDEAAAAuAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T11:34:56.352Z"
},
{
"$type": "Document",
- "DocumentIndex": 67,
+ "DocumentIndex": 100,
"Title": "Platform.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Environment\\Platform.cs",
"RelativeDocumentMoniker": "StgSharp\\Environment\\Platform.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Environment\\Platform.cs",
"RelativeToolTip": "StgSharp\\Environment\\Platform.cs",
- "ViewState": "AgIAAEsAAAAAAAAAAAAkwFsAAAAOAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T11:05:45.886Z"
},
{
"$type": "Document",
- "DocumentIndex": 30,
+ "DocumentIndex": 101,
"Title": "Dialogue.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Environment\\Dialogue.cs",
"RelativeDocumentMoniker": "StgSharp\\Environment\\Dialogue.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Environment\\Dialogue.cs",
"RelativeToolTip": "StgSharp\\Environment\\Dialogue.cs",
- "ViewState": "AgIAAGwAAAAAAAAAAAAkwH0AAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T11:04:56.665Z"
},
{
"$type": "Document",
- "DocumentIndex": 23,
+ "DocumentIndex": 102,
"Title": "Pixels.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Pixels.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\Pixels.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Pixels.cs",
"RelativeToolTip": "StgSharp\\Graphics\\Pixels.cs",
- "ViewState": "AgIAADoAAAAAAAAAAAA2wEgAAAAFAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T06:23:16.042Z"
},
{
"$type": "Document",
- "DocumentIndex": 57,
+ "DocumentIndex": 33,
"Title": "Program.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\Program.cs",
"RelativeDocumentMoniker": "StgSharpDebug\\Program.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\Program.cs",
"RelativeToolTip": "StgSharpDebug\\Program.cs",
- "ViewState": "AgIAABQAAAAAAAAAAAAkwCMAAAAUAAAAAAAAAA==",
+ "ViewState": "AgIAADcAAAAAAAAAAAAjwEYAAAAUAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-21T06:08:27.152Z"
+ "WhenOpened": "2025-01-21T06:08:27.152Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 56,
+ "DocumentIndex": 47,
"Title": "Partical.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\RenderStream\\Partical.cs",
"RelativeDocumentMoniker": "StgSharpDebug\\RenderStream\\Partical.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharpDebug\\RenderStream\\Partical.cs",
"RelativeToolTip": "StgSharpDebug\\RenderStream\\Partical.cs",
- "ViewState": "AgIAAAwBAAAAAAAAAAAqwB8BAAA7AAAAAAAAAA==",
+ "ViewState": "AgIAANgAAAAAAAAAAIAzwO0AAABGAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-01-21T04:59:25.115Z"
+ "WhenOpened": "2025-01-21T04:59:25.115Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 68,
+ "DocumentIndex": 103,
"Title": "RenderStream.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\RenderStream.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\RenderStream.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\RenderStream.cs",
"RelativeToolTip": "StgSharp\\Graphics\\RenderStream.cs",
- "ViewState": "AgIAACUAAAAAAAAAAAAqwKkAAAAIAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T03:22:43.965Z"
},
{
"$type": "Document",
- "DocumentIndex": 69,
+ "DocumentIndex": 104,
"Title": "BufferObjectBase.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Define\\BufferObjectBase.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\Define\\BufferObjectBase.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Define\\BufferObjectBase.cs",
"RelativeToolTip": "StgSharp\\Graphics\\Define\\BufferObjectBase.cs",
- "ViewState": "AgIAACUAAAAAAAAAAAAqwB4AAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T03:15:15.908Z"
},
{
"$type": "Document",
- "DocumentIndex": 20,
+ "DocumentIndex": 105,
"Title": "Global.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Global.cs",
"RelativeDocumentMoniker": "StgSharp\\Global.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Global.cs",
"RelativeToolTip": "StgSharp\\Global.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAABYAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T03:14:27.337Z"
},
{
"$type": "Document",
- "DocumentIndex": 49,
+ "DocumentIndex": 106,
"Title": "ViewPort.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\MVVM\\ViewPort.cs",
"RelativeDocumentMoniker": "StgSharp\\MVVM\\ViewPort.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\MVVM\\ViewPort.cs",
"RelativeToolTip": "StgSharp\\MVVM\\ViewPort.cs",
- "ViewState": "AgIAACoAAAAAAAAAAAAxwB4AAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T03:12:28.029Z"
},
{
"$type": "Document",
- "DocumentIndex": 29,
+ "DocumentIndex": 107,
"Title": "framework.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\framework.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\framework.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\framework.cs",
"RelativeToolTip": "StgSharp\\Graphics\\framework.cs",
- "ViewState": "AgIAAAYAAAAAAAAAAAAswGoAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T02:24:35.096Z"
},
{
"$type": "Document",
- "DocumentIndex": 70,
+ "DocumentIndex": 108,
"Title": "Matrix42.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Matrix42.cs",
"RelativeDocumentMoniker": "StgSharp\\Math\\Linear\\Matrix42.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Matrix42.cs",
"RelativeToolTip": "StgSharp\\Math\\Linear\\Matrix42.cs",
- "ViewState": "AgIAABwAAAAAAAAAAAA2wCsAAAAhAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T02:24:24.915Z"
},
{
"$type": "Document",
- "DocumentIndex": 25,
+ "DocumentIndex": 109,
"Title": "glApiManager.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glApiManager.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\OpenGL\\glApiManager.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\OpenGL\\glApiManager.cs",
"RelativeToolTip": "StgSharp\\Graphics\\OpenGL\\glApiManager.cs",
- "ViewState": "AgIAAP0PAAAAAAAAAAAkwA0QAAA9AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-01-21T02:23:01.822Z"
}
diff --git a/内核源代码/.vs/StgSharpDevelop/v17/Solution.VC.db b/内核源代码/.vs/StgSharpDevelop/v17/Solution.VC.db
index 332424e2..21325de9 100644
Binary files a/内核源代码/.vs/StgSharpDevelop/v17/Solution.VC.db and b/内核源代码/.vs/StgSharpDevelop/v17/Solution.VC.db differ
diff --git a/内核源代码/.vs/StgSharpDevelop/v17/TestStore/0/011.testlog b/内核源代码/.vs/StgSharpDevelop/v17/TestStore/0/011.testlog
deleted file mode 100644
index 8532ad76..00000000
Binary files a/内核源代码/.vs/StgSharpDevelop/v17/TestStore/0/011.testlog and /dev/null differ
diff --git a/内核源代码/.vs/StgSharpDevelop/v17/TestStore/0/014.testlog b/内核源代码/.vs/StgSharpDevelop/v17/TestStore/0/014.testlog
new file mode 100644
index 00000000..1dcb2813
Binary files /dev/null and b/内核源代码/.vs/StgSharpDevelop/v17/TestStore/0/014.testlog differ
diff --git a/内核源代码/.vs/StgSharpDevelop/v17/TestStore/0/testlog.manifest b/内核源代码/.vs/StgSharpDevelop/v17/TestStore/0/testlog.manifest
index 54930b7b..2574eee6 100644
Binary files a/内核源代码/.vs/StgSharpDevelop/v17/TestStore/0/testlog.manifest and b/内核源代码/.vs/StgSharpDevelop/v17/TestStore/0/testlog.manifest differ
diff --git a/内核源代码/.vs/StgSharpDevelop/v17/fileList.bin b/内核源代码/.vs/StgSharpDevelop/v17/fileList.bin
index 9f205ea6..476dd3f1 100644
Binary files a/内核源代码/.vs/StgSharpDevelop/v17/fileList.bin and b/内核源代码/.vs/StgSharpDevelop/v17/fileList.bin differ
diff --git a/内核源代码/STgSharpTest/StgSharpTest.csproj b/内核源代码/STgSharpTest/StgSharpTest.csproj
index c382c40e..1ef69cc8 100644
--- a/内核源代码/STgSharpTest/StgSharpTest.csproj
+++ b/内核源代码/STgSharpTest/StgSharpTest.csproj
@@ -7,6 +7,7 @@
preview
false
true
+ AnyCPU;x64
@@ -18,13 +19,18 @@
-
-
-
+
+
+
+
+
+
+
+
diff --git a/内核源代码/STgSharpTest/UnitTest1.cs b/内核源代码/STgSharpTest/UnitTest1.cs
index 78bf742e..6b31a6c8 100644
--- a/内核源代码/STgSharpTest/UnitTest1.cs
+++ b/内核源代码/STgSharpTest/UnitTest1.cs
@@ -29,8 +29,9 @@
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
using StgSharp;
+using StgSharp.Collections;
using StgSharp.Script;
-using StgSharp.Script.Expression;
+using StgSharp.Script.Express;
//using StgSharp.Model;
diff --git a/内核源代码/STgSharpTest/bin/x64/Debug/net8.0/StgSharp.Common.deps.json b/内核源代码/STgSharpTest/bin/x64/Debug/net8.0/StgSharp.Common.deps.json
new file mode 100644
index 00000000..38d2e8b4
--- /dev/null
+++ b/内核源代码/STgSharpTest/bin/x64/Debug/net8.0/StgSharp.Common.deps.json
@@ -0,0 +1,58 @@
+{
+ "runtimeTarget": {
+ "name": ".NETStandard,Version=v2.1/",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETStandard,Version=v2.1": {},
+ ".NETStandard,Version=v2.1/": {
+ "StgSharp.Common/1.0.0": {
+ "dependencies": {
+ "Microsoft.CSharp": "4.7.0",
+ "System.Runtime.CompilerServices.Unsafe": "6.1.0"
+ },
+ "runtime": {
+ "StgSharp.Common.dll": {}
+ }
+ },
+ "Microsoft.CSharp/4.7.0": {
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.CSharp.dll": {
+ "assemblyVersion": "4.0.5.0",
+ "fileVersion": "4.700.19.56404"
+ }
+ }
+ },
+ "System.Runtime.CompilerServices.Unsafe/6.1.0": {
+ "runtime": {
+ "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.100.24.56208"
+ }
+ }
+ }
+ }
+ },
+ "libraries": {
+ "StgSharp.Common/1.0.0": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.CSharp/4.7.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==",
+ "path": "microsoft.csharp/4.7.0",
+ "hashPath": "microsoft.csharp.4.7.0.nupkg.sha512"
+ },
+ "System.Runtime.CompilerServices.Unsafe/6.1.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-5o/HZxx6RVqYlhKSq8/zronDkALJZUT2Vz0hx43f0gwe8mwlM0y2nYlqdBwLMzr262Bwvpikeb/yEwkAa5PADg==",
+ "path": "system.runtime.compilerservices.unsafe/6.1.0",
+ "hashPath": "system.runtime.compilerservices.unsafe.6.1.0.nupkg.sha512"
+ }
+ }
+}
\ No newline at end of file
diff --git a/内核源代码/STgSharpTest/bin/x64/Debug/net8.0/StgSharp.TerminalDialogue.deps.json b/内核源代码/STgSharpTest/bin/x64/Debug/net8.0/StgSharp.TerminalDialogue.deps.json
new file mode 100644
index 00000000..08e44e6f
--- /dev/null
+++ b/内核源代码/STgSharpTest/bin/x64/Debug/net8.0/StgSharp.TerminalDialogue.deps.json
@@ -0,0 +1,149 @@
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v8.0",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v8.0": {
+ "StgSharp.TerminalDialogue/1.0.0": {
+ "dependencies": {
+ "Terminal.Gui": "2.0.0-v2-develop.2329"
+ },
+ "runtime": {
+ "StgSharp.TerminalDialogue.dll": {}
+ }
+ },
+ "ColorHelper/1.8.1": {
+ "runtime": {
+ "lib/netstandard2.0/ColorHelper.dll": {
+ "assemblyVersion": "1.8.1.0",
+ "fileVersion": "1.8.1.0"
+ }
+ }
+ },
+ "System.IO.Abstractions/21.0.22": {
+ "dependencies": {
+ "TestableIO.System.IO.Abstractions": "21.0.22",
+ "TestableIO.System.IO.Abstractions.Wrappers": "21.0.22"
+ },
+ "runtime": {
+ "lib/net8.0/System.IO.Abstractions.dll": {
+ "assemblyVersion": "21.0.0.0",
+ "fileVersion": "21.0.22.62509"
+ }
+ }
+ },
+ "System.Text.Encodings.Web/8.0.0": {},
+ "System.Text.Json/8.0.4": {
+ "dependencies": {
+ "System.Text.Encodings.Web": "8.0.0"
+ }
+ },
+ "Terminal.Gui/2.0.0-v2-develop.2329": {
+ "dependencies": {
+ "ColorHelper": "1.8.1",
+ "System.IO.Abstractions": "21.0.22",
+ "System.Text.Json": "8.0.4",
+ "Wcwidth": "2.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Terminal.Gui.dll": {
+ "assemblyVersion": "2.0.0.0",
+ "fileVersion": "2.0.0.0"
+ }
+ }
+ },
+ "TestableIO.System.IO.Abstractions/21.0.22": {
+ "runtime": {
+ "lib/net8.0/TestableIO.System.IO.Abstractions.dll": {
+ "assemblyVersion": "21.0.0.0",
+ "fileVersion": "21.0.22.62509"
+ }
+ }
+ },
+ "TestableIO.System.IO.Abstractions.Wrappers/21.0.22": {
+ "dependencies": {
+ "TestableIO.System.IO.Abstractions": "21.0.22"
+ },
+ "runtime": {
+ "lib/net8.0/TestableIO.System.IO.Abstractions.Wrappers.dll": {
+ "assemblyVersion": "21.0.0.0",
+ "fileVersion": "21.0.22.62509"
+ }
+ }
+ },
+ "Wcwidth/2.0.0": {
+ "runtime": {
+ "lib/net8.0/Wcwidth.dll": {
+ "assemblyVersion": "2.0.0.0",
+ "fileVersion": "2.0.0.0"
+ }
+ }
+ }
+ }
+ },
+ "libraries": {
+ "StgSharp.TerminalDialogue/1.0.0": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "ColorHelper/1.8.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-rblWXd/02TfwJjX53xEfQnbnDRKxCm09VtavV8JaIcmIFWt9efNf6xTQ3WeXgy/she5R31eRTtnizFoUoDrs5w==",
+ "path": "colorhelper/1.8.1",
+ "hashPath": "colorhelper.1.8.1.nupkg.sha512"
+ },
+ "System.IO.Abstractions/21.0.22": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-DRnFyMIjO1KG9fqUPKV7XDPgECEwrNpsb3OLD0mImViVpRZ5747o7vqrOYbn9AMaQ8eajLeKH0fXQglgH7v42A==",
+ "path": "system.io.abstractions/21.0.22",
+ "hashPath": "system.io.abstractions.21.0.22.nupkg.sha512"
+ },
+ "System.Text.Encodings.Web/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==",
+ "path": "system.text.encodings.web/8.0.0",
+ "hashPath": "system.text.encodings.web.8.0.0.nupkg.sha512"
+ },
+ "System.Text.Json/8.0.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-bAkhgDJ88XTsqczoxEMliSrpijKZHhbJQldhAmObj/RbrN3sU5dcokuXmWJWsdQAhiMJ9bTayWsL1C9fbbCRhw==",
+ "path": "system.text.json/8.0.4",
+ "hashPath": "system.text.json.8.0.4.nupkg.sha512"
+ },
+ "Terminal.Gui/2.0.0-v2-develop.2329": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-1WRHeZKN5tnF8DUu0vHz5pGZIY9ETwufKbUHCoH3UTcIeOlduhRCpBhTyJWri/fePsUkij2euFMGX2yHfk4h/A==",
+ "path": "terminal.gui/2.0.0-v2-develop.2329",
+ "hashPath": "terminal.gui.2.0.0-v2-develop.2329.nupkg.sha512"
+ },
+ "TestableIO.System.IO.Abstractions/21.0.22": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-yq3I8rUjNoo4JTOT3jbGfTM5VfowaSYiooDO2bfvQe6XGVyZiSIzaKyCmSnuUEyuktw6zzuVE1lJnUeDhJWtyQ==",
+ "path": "testableio.system.io.abstractions/21.0.22",
+ "hashPath": "testableio.system.io.abstractions.21.0.22.nupkg.sha512"
+ },
+ "TestableIO.System.IO.Abstractions.Wrappers/21.0.22": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ETpw1B6VOsQ5zbfqxqLKjITnMvB9M0K5/bK8qJc6jih+tnlKQmtnnOPSS+OeKCqsZDYeHxPNp4ytQPJS3R+WXA==",
+ "path": "testableio.system.io.abstractions.wrappers/21.0.22",
+ "hashPath": "testableio.system.io.abstractions.wrappers.21.0.22.nupkg.sha512"
+ },
+ "Wcwidth/2.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-eGZYH/V+X1DwEXrPUlUcAp8pU5a38d8IvaQzq4pclJxF1x8bizssIo4uWc3qxmS64BNGK5WnDxyBYJz84+Msqg==",
+ "path": "wcwidth/2.0.0",
+ "hashPath": "wcwidth.2.0.0.nupkg.sha512"
+ }
+ }
+}
\ No newline at end of file
diff --git a/内核源代码/STgSharpTest/bin/x64/Debug/net8.0/StgSharp.TerminalDialogue.runtimeconfig.json b/内核源代码/STgSharpTest/bin/x64/Debug/net8.0/StgSharp.TerminalDialogue.runtimeconfig.json
new file mode 100644
index 00000000..becfaeac
--- /dev/null
+++ b/内核源代码/STgSharpTest/bin/x64/Debug/net8.0/StgSharp.TerminalDialogue.runtimeconfig.json
@@ -0,0 +1,12 @@
+{
+ "runtimeOptions": {
+ "tfm": "net8.0",
+ "framework": {
+ "name": "Microsoft.NETCore.App",
+ "version": "8.0.0"
+ },
+ "configProperties": {
+ "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/内核源代码/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/StgSharp.TerminalDialogue.deps.json b/内核源代码/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/StgSharp.TerminalDialogue.deps.json
new file mode 100644
index 00000000..08e44e6f
--- /dev/null
+++ b/内核源代码/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/StgSharp.TerminalDialogue.deps.json
@@ -0,0 +1,149 @@
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v8.0",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v8.0": {
+ "StgSharp.TerminalDialogue/1.0.0": {
+ "dependencies": {
+ "Terminal.Gui": "2.0.0-v2-develop.2329"
+ },
+ "runtime": {
+ "StgSharp.TerminalDialogue.dll": {}
+ }
+ },
+ "ColorHelper/1.8.1": {
+ "runtime": {
+ "lib/netstandard2.0/ColorHelper.dll": {
+ "assemblyVersion": "1.8.1.0",
+ "fileVersion": "1.8.1.0"
+ }
+ }
+ },
+ "System.IO.Abstractions/21.0.22": {
+ "dependencies": {
+ "TestableIO.System.IO.Abstractions": "21.0.22",
+ "TestableIO.System.IO.Abstractions.Wrappers": "21.0.22"
+ },
+ "runtime": {
+ "lib/net8.0/System.IO.Abstractions.dll": {
+ "assemblyVersion": "21.0.0.0",
+ "fileVersion": "21.0.22.62509"
+ }
+ }
+ },
+ "System.Text.Encodings.Web/8.0.0": {},
+ "System.Text.Json/8.0.4": {
+ "dependencies": {
+ "System.Text.Encodings.Web": "8.0.0"
+ }
+ },
+ "Terminal.Gui/2.0.0-v2-develop.2329": {
+ "dependencies": {
+ "ColorHelper": "1.8.1",
+ "System.IO.Abstractions": "21.0.22",
+ "System.Text.Json": "8.0.4",
+ "Wcwidth": "2.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Terminal.Gui.dll": {
+ "assemblyVersion": "2.0.0.0",
+ "fileVersion": "2.0.0.0"
+ }
+ }
+ },
+ "TestableIO.System.IO.Abstractions/21.0.22": {
+ "runtime": {
+ "lib/net8.0/TestableIO.System.IO.Abstractions.dll": {
+ "assemblyVersion": "21.0.0.0",
+ "fileVersion": "21.0.22.62509"
+ }
+ }
+ },
+ "TestableIO.System.IO.Abstractions.Wrappers/21.0.22": {
+ "dependencies": {
+ "TestableIO.System.IO.Abstractions": "21.0.22"
+ },
+ "runtime": {
+ "lib/net8.0/TestableIO.System.IO.Abstractions.Wrappers.dll": {
+ "assemblyVersion": "21.0.0.0",
+ "fileVersion": "21.0.22.62509"
+ }
+ }
+ },
+ "Wcwidth/2.0.0": {
+ "runtime": {
+ "lib/net8.0/Wcwidth.dll": {
+ "assemblyVersion": "2.0.0.0",
+ "fileVersion": "2.0.0.0"
+ }
+ }
+ }
+ }
+ },
+ "libraries": {
+ "StgSharp.TerminalDialogue/1.0.0": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "ColorHelper/1.8.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-rblWXd/02TfwJjX53xEfQnbnDRKxCm09VtavV8JaIcmIFWt9efNf6xTQ3WeXgy/she5R31eRTtnizFoUoDrs5w==",
+ "path": "colorhelper/1.8.1",
+ "hashPath": "colorhelper.1.8.1.nupkg.sha512"
+ },
+ "System.IO.Abstractions/21.0.22": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-DRnFyMIjO1KG9fqUPKV7XDPgECEwrNpsb3OLD0mImViVpRZ5747o7vqrOYbn9AMaQ8eajLeKH0fXQglgH7v42A==",
+ "path": "system.io.abstractions/21.0.22",
+ "hashPath": "system.io.abstractions.21.0.22.nupkg.sha512"
+ },
+ "System.Text.Encodings.Web/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==",
+ "path": "system.text.encodings.web/8.0.0",
+ "hashPath": "system.text.encodings.web.8.0.0.nupkg.sha512"
+ },
+ "System.Text.Json/8.0.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-bAkhgDJ88XTsqczoxEMliSrpijKZHhbJQldhAmObj/RbrN3sU5dcokuXmWJWsdQAhiMJ9bTayWsL1C9fbbCRhw==",
+ "path": "system.text.json/8.0.4",
+ "hashPath": "system.text.json.8.0.4.nupkg.sha512"
+ },
+ "Terminal.Gui/2.0.0-v2-develop.2329": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-1WRHeZKN5tnF8DUu0vHz5pGZIY9ETwufKbUHCoH3UTcIeOlduhRCpBhTyJWri/fePsUkij2euFMGX2yHfk4h/A==",
+ "path": "terminal.gui/2.0.0-v2-develop.2329",
+ "hashPath": "terminal.gui.2.0.0-v2-develop.2329.nupkg.sha512"
+ },
+ "TestableIO.System.IO.Abstractions/21.0.22": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-yq3I8rUjNoo4JTOT3jbGfTM5VfowaSYiooDO2bfvQe6XGVyZiSIzaKyCmSnuUEyuktw6zzuVE1lJnUeDhJWtyQ==",
+ "path": "testableio.system.io.abstractions/21.0.22",
+ "hashPath": "testableio.system.io.abstractions.21.0.22.nupkg.sha512"
+ },
+ "TestableIO.System.IO.Abstractions.Wrappers/21.0.22": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ETpw1B6VOsQ5zbfqxqLKjITnMvB9M0K5/bK8qJc6jih+tnlKQmtnnOPSS+OeKCqsZDYeHxPNp4ytQPJS3R+WXA==",
+ "path": "testableio.system.io.abstractions.wrappers/21.0.22",
+ "hashPath": "testableio.system.io.abstractions.wrappers.21.0.22.nupkg.sha512"
+ },
+ "Wcwidth/2.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-eGZYH/V+X1DwEXrPUlUcAp8pU5a38d8IvaQzq4pclJxF1x8bizssIo4uWc3qxmS64BNGK5WnDxyBYJz84+Msqg==",
+ "path": "wcwidth/2.0.0",
+ "hashPath": "wcwidth.2.0.0.nupkg.sha512"
+ }
+ }
+}
\ No newline at end of file
diff --git a/内核源代码/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/StgSharp.TerminalDialogue.runtimeconfig.json b/内核源代码/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/StgSharp.TerminalDialogue.runtimeconfig.json
new file mode 100644
index 00000000..becfaeac
--- /dev/null
+++ b/内核源代码/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTerminalDialogue/StgSharp.TerminalDialogue.runtimeconfig.json
@@ -0,0 +1,12 @@
+{
+ "runtimeOptions": {
+ "tfm": "net8.0",
+ "framework": {
+ "name": "Microsoft.NETCore.App",
+ "version": "8.0.0"
+ },
+ "configProperties": {
+ "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/内核源代码/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTest.deps.json b/内核源代码/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTest.deps.json
new file mode 100644
index 00000000..e2dc02ff
--- /dev/null
+++ b/内核源代码/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTest.deps.json
@@ -0,0 +1,2845 @@
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v8.0",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v8.0": {
+ "StgSharpTest/1.0.0": {
+ "dependencies": {
+ "MSTest.TestAdapter": "3.1.1",
+ "MSTest.TestFramework": "3.1.1",
+ "Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.MSTest": "1.1.2",
+ "Microsoft.NET.Test.Sdk": "17.8.0",
+ "StgSharp.Common": "1.0.0",
+ "StgSharp.Model": "1.0.0",
+ "StgSharp.Script": "1.0.0",
+ "StgSharp.TerminalDialogue": "1.0.0",
+ "coverlet.collector": "6.0.0",
+ "Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions": "14.0.0.0"
+ },
+ "runtime": {
+ "StgSharpTest.dll": {}
+ }
+ },
+ "ColorHelper/1.8.1": {
+ "runtime": {
+ "lib/netstandard2.0/ColorHelper.dll": {
+ "assemblyVersion": "1.8.1.0",
+ "fileVersion": "1.8.1.0"
+ }
+ }
+ },
+ "CommunityToolkit.HighPerformance/8.4.0": {
+ "runtime": {
+ "lib/net8.0/CommunityToolkit.HighPerformance.dll": {
+ "assemblyVersion": "8.4.0.0",
+ "fileVersion": "8.4.0.1"
+ }
+ }
+ },
+ "coverlet.collector/6.0.0": {},
+ "DiffPlex/1.7.2": {
+ "runtime": {
+ "lib/net6.0/DiffPlex.dll": {
+ "assemblyVersion": "1.7.2.0",
+ "fileVersion": "1.7.2.0"
+ }
+ }
+ },
+ "Humanizer.Core/2.2.0": {
+ "dependencies": {
+ "NETStandard.Library": "1.6.1"
+ },
+ "runtime": {
+ "lib/netstandard1.0/Humanizer.dll": {
+ "assemblyVersion": "2.2.0.0",
+ "fileVersion": "2.2.0.0"
+ }
+ }
+ },
+ "Microsoft.Bcl.AsyncInterfaces/1.1.1": {
+ "runtime": {
+ "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": {
+ "assemblyVersion": "1.0.0.0",
+ "fileVersion": "4.700.20.21406"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.Analyzer.Testing/1.1.2": {
+ "dependencies": {
+ "DiffPlex": "1.7.2",
+ "Microsoft.CodeAnalysis.Workspaces.Common": "3.8.0",
+ "Microsoft.VisualStudio.Composition": "16.1.8",
+ "NuGet.Common": "6.3.4",
+ "NuGet.Packaging": "6.3.4",
+ "NuGet.Protocol": "6.3.4",
+ "NuGet.Resolver": "6.3.4"
+ },
+ "runtime": {
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Analyzer.Testing.dll": {
+ "assemblyVersion": "1.1.2.0",
+ "fileVersion": "1.100.224.31401"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.Analyzers/3.0.0": {},
+ "Microsoft.CodeAnalysis.Common/3.8.0": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Analyzers": "3.0.0",
+ "System.Collections.Immutable": "5.0.0",
+ "System.Memory": "4.5.4",
+ "System.Reflection.Metadata": "5.0.0",
+ "System.Runtime.CompilerServices.Unsafe": "6.1.0",
+ "System.Text.Encoding.CodePages": "4.5.1",
+ "System.Threading.Tasks.Extensions": "4.5.4"
+ },
+ "runtime": {
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.dll": {
+ "assemblyVersion": "3.8.0.0",
+ "fileVersion": "3.800.20.56202"
+ }
+ },
+ "resources": {
+ "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.CSharp/3.8.0": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Common": "3.8.0"
+ },
+ "runtime": {
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.dll": {
+ "assemblyVersion": "3.8.0.0",
+ "fileVersion": "3.800.20.56202"
+ }
+ },
+ "resources": {
+ "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing/1.1.2": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.CSharp.Workspaces": "3.8.0",
+ "Microsoft.CodeAnalysis.SourceGenerators.Testing": "1.1.2"
+ },
+ "runtime": {
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.dll": {
+ "assemblyVersion": "1.1.2.0",
+ "fileVersion": "1.100.224.31401"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.MSTest/1.1.2": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Analyzer.Testing": "1.1.2",
+ "Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing": "1.1.2",
+ "Microsoft.CodeAnalysis.CSharp.Workspaces": "3.8.0",
+ "Microsoft.CodeAnalysis.SourceGenerators.Testing": "1.1.2",
+ "Microsoft.CodeAnalysis.Testing.Verifiers.MSTest": "1.1.2"
+ },
+ "runtime": {
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.MSTest.dll": {
+ "assemblyVersion": "1.1.2.0",
+ "fileVersion": "1.100.224.31401"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.CSharp.Workspaces/3.8.0": {
+ "dependencies": {
+ "Humanizer.Core": "2.2.0",
+ "Microsoft.CodeAnalysis.CSharp": "3.8.0",
+ "Microsoft.CodeAnalysis.Common": "3.8.0",
+ "Microsoft.CodeAnalysis.Workspaces.Common": "3.8.0"
+ },
+ "runtime": {
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.Workspaces.dll": {
+ "assemblyVersion": "3.8.0.0",
+ "fileVersion": "3.800.20.56202"
+ }
+ },
+ "resources": {
+ "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.SourceGenerators.Testing/1.1.2": {
+ "dependencies": {
+ "DiffPlex": "1.7.2",
+ "Microsoft.CodeAnalysis.Analyzer.Testing": "1.1.2",
+ "Microsoft.CodeAnalysis.Workspaces.Common": "3.8.0"
+ },
+ "runtime": {
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.SourceGenerators.Testing.dll": {
+ "assemblyVersion": "1.1.2.0",
+ "fileVersion": "1.100.224.31401"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.Testing.Verifiers.MSTest/1.1.2": {
+ "dependencies": {
+ "MSTest.TestFramework": "3.1.1",
+ "Microsoft.CodeAnalysis.Analyzer.Testing": "1.1.2"
+ },
+ "runtime": {
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Testing.Verifiers.MSTest.dll": {
+ "assemblyVersion": "1.1.2.0",
+ "fileVersion": "1.100.224.31401"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.Workspaces.Common/3.8.0": {
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.1",
+ "Microsoft.CodeAnalysis.Common": "3.8.0",
+ "System.Composition": "1.0.31"
+ },
+ "runtime": {
+ "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Workspaces.dll": {
+ "assemblyVersion": "3.8.0.0",
+ "fileVersion": "3.800.20.56202"
+ }
+ },
+ "resources": {
+ "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.CodeCoverage/17.8.0": {
+ "runtime": {
+ "lib/netcoreapp3.1/Microsoft.VisualStudio.CodeCoverage.Shim.dll": {
+ "assemblyVersion": "15.0.0.0",
+ "fileVersion": "17.800.623.45702"
+ }
+ }
+ },
+ "Microsoft.CSharp/4.7.0": {},
+ "Microsoft.NET.Test.Sdk/17.8.0": {
+ "dependencies": {
+ "Microsoft.CodeCoverage": "17.8.0",
+ "Microsoft.TestPlatform.TestHost": "17.8.0"
+ }
+ },
+ "Microsoft.NETCore.Platforms/2.1.2": {},
+ "Microsoft.NETCore.Targets/1.1.0": {},
+ "Microsoft.TestPlatform.ObjectModel/17.8.0": {
+ "dependencies": {
+ "NuGet.Frameworks": "6.5.0",
+ "System.Reflection.Metadata": "5.0.0"
+ },
+ "runtime": {
+ "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll": {
+ "assemblyVersion": "15.0.0.0",
+ "fileVersion": "17.800.23.55801"
+ },
+ "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll": {
+ "assemblyVersion": "15.0.0.0",
+ "fileVersion": "17.800.23.55801"
+ },
+ "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {
+ "assemblyVersion": "15.0.0.0",
+ "fileVersion": "17.800.23.55801"
+ }
+ },
+ "resources": {
+ "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.TestPlatform.TestHost/17.8.0": {
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "17.8.0",
+ "Newtonsoft.Json": "13.0.1"
+ },
+ "runtime": {
+ "lib/netcoreapp3.1/Microsoft.TestPlatform.CommunicationUtilities.dll": {
+ "assemblyVersion": "15.0.0.0",
+ "fileVersion": "17.800.23.55801"
+ },
+ "lib/netcoreapp3.1/Microsoft.TestPlatform.CrossPlatEngine.dll": {
+ "assemblyVersion": "15.0.0.0",
+ "fileVersion": "17.800.23.55801"
+ },
+ "lib/netcoreapp3.1/Microsoft.TestPlatform.Utilities.dll": {
+ "assemblyVersion": "15.0.0.0",
+ "fileVersion": "17.800.23.55801"
+ },
+ "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.Common.dll": {
+ "assemblyVersion": "15.0.0.0",
+ "fileVersion": "17.800.23.55801"
+ },
+ "lib/netcoreapp3.1/testhost.dll": {
+ "assemblyVersion": "15.0.0.0",
+ "fileVersion": "17.800.23.55801"
+ }
+ },
+ "resources": {
+ "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.VisualStudio.Composition/16.1.8": {
+ "dependencies": {
+ "Microsoft.VisualStudio.Composition.NetFxAttributes": "16.1.8",
+ "Microsoft.VisualStudio.Validation": "15.0.82",
+ "System.Composition": "1.0.31",
+ "System.Reflection.Emit": "4.3.0",
+ "System.Reflection.Metadata": "5.0.0",
+ "System.Reflection.TypeExtensions": "4.3.0",
+ "System.Threading.Tasks.Dataflow": "4.6.0"
+ },
+ "runtime": {
+ "lib/netcoreapp2.0/Microsoft.VisualStudio.Composition.dll": {
+ "assemblyVersion": "16.1.0.0",
+ "fileVersion": "16.1.8.36187"
+ }
+ },
+ "resources": {
+ "lib/netcoreapp2.0/cs/Microsoft.VisualStudio.Composition.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netcoreapp2.0/de/Microsoft.VisualStudio.Composition.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netcoreapp2.0/es/Microsoft.VisualStudio.Composition.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netcoreapp2.0/fr/Microsoft.VisualStudio.Composition.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netcoreapp2.0/it/Microsoft.VisualStudio.Composition.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netcoreapp2.0/ja/Microsoft.VisualStudio.Composition.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netcoreapp2.0/ko/Microsoft.VisualStudio.Composition.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netcoreapp2.0/pl/Microsoft.VisualStudio.Composition.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netcoreapp2.0/pt-BR/Microsoft.VisualStudio.Composition.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netcoreapp2.0/ru/Microsoft.VisualStudio.Composition.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netcoreapp2.0/tr/Microsoft.VisualStudio.Composition.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netcoreapp2.0/zh-Hans/Microsoft.VisualStudio.Composition.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netcoreapp2.0/zh-Hant/Microsoft.VisualStudio.Composition.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.VisualStudio.Composition.NetFxAttributes/16.1.8": {
+ "dependencies": {
+ "System.ComponentModel.Composition": "4.5.0"
+ },
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.VisualStudio.Composition.NetFxAttributes.dll": {
+ "assemblyVersion": "16.1.0.0",
+ "fileVersion": "16.1.8.36187"
+ }
+ }
+ },
+ "Microsoft.VisualStudio.Validation/15.0.82": {
+ "runtime": {
+ "lib/netstandard1.0/Microsoft.VisualStudio.Validation.dll": {
+ "assemblyVersion": "15.0.0.0",
+ "fileVersion": "15.0.82.50463"
+ }
+ },
+ "resources": {
+ "lib/netstandard1.0/cs/Microsoft.VisualStudio.Validation.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard1.0/de/Microsoft.VisualStudio.Validation.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard1.0/es/Microsoft.VisualStudio.Validation.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard1.0/fr/Microsoft.VisualStudio.Validation.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard1.0/it/Microsoft.VisualStudio.Validation.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard1.0/ja/Microsoft.VisualStudio.Validation.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard1.0/ko/Microsoft.VisualStudio.Validation.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard1.0/pl/Microsoft.VisualStudio.Validation.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard1.0/pt-BR/Microsoft.VisualStudio.Validation.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard1.0/ru/Microsoft.VisualStudio.Validation.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard1.0/tr/Microsoft.VisualStudio.Validation.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard1.0/zh-Hans/Microsoft.VisualStudio.Validation.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard1.0/zh-Hant/Microsoft.VisualStudio.Validation.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.Win32.Primitives/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "MSTest.TestAdapter/3.1.1": {},
+ "MSTest.TestFramework/3.1.1": {
+ "runtime": {
+ "lib/net6.0/Microsoft.VisualStudio.TestPlatform.TestFramework.dll": {
+ "assemblyVersion": "14.0.0.0",
+ "fileVersion": "3.100.123.36306"
+ }
+ },
+ "resources": {
+ "lib/net6.0/cs/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/net6.0/de/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
+ "locale": "de"
+ },
+ "lib/net6.0/es/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
+ "locale": "es"
+ },
+ "lib/net6.0/fr/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/net6.0/it/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
+ "locale": "it"
+ },
+ "lib/net6.0/ja/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/net6.0/ko/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/net6.0/pl/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/net6.0/pt-BR/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/net6.0/ru/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/net6.0/tr/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/net6.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/net6.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "NETStandard.Library/1.6.1": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "System.AppContext": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Console": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tools": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Calendars": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.Compression": "4.3.0",
+ "System.IO.Compression.ZipFile": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Linq.Expressions": "4.3.0",
+ "System.Net.Http": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Net.Sockets": "4.3.0",
+ "System.ObjectModel": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.InteropServices.RuntimeInformation": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Security.Cryptography.X509Certificates": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Text.RegularExpressions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Timer": "4.3.0",
+ "System.Xml.ReaderWriter": "4.3.0",
+ "System.Xml.XDocument": "4.3.0"
+ }
+ },
+ "Newtonsoft.Json/13.0.1": {
+ "runtime": {
+ "lib/netstandard2.0/Newtonsoft.Json.dll": {
+ "assemblyVersion": "13.0.0.0",
+ "fileVersion": "13.0.1.25517"
+ }
+ }
+ },
+ "NuGet.Common/6.3.4": {
+ "dependencies": {
+ "NuGet.Frameworks": "6.5.0"
+ },
+ "runtime": {
+ "lib/netstandard2.0/NuGet.Common.dll": {
+ "assemblyVersion": "6.3.4.2",
+ "fileVersion": "6.3.4.2"
+ }
+ }
+ },
+ "NuGet.Configuration/6.3.4": {
+ "dependencies": {
+ "NuGet.Common": "6.3.4",
+ "System.Security.Cryptography.ProtectedData": "4.4.0"
+ },
+ "runtime": {
+ "lib/netstandard2.0/NuGet.Configuration.dll": {
+ "assemblyVersion": "6.3.4.2",
+ "fileVersion": "6.3.4.2"
+ }
+ }
+ },
+ "NuGet.Frameworks/6.5.0": {
+ "runtime": {
+ "lib/netstandard2.0/NuGet.Frameworks.dll": {
+ "assemblyVersion": "6.5.0.154",
+ "fileVersion": "6.5.0.154"
+ }
+ }
+ },
+ "NuGet.Packaging/6.3.4": {
+ "dependencies": {
+ "Newtonsoft.Json": "13.0.1",
+ "NuGet.Configuration": "6.3.4",
+ "NuGet.Versioning": "6.3.4",
+ "System.Security.Cryptography.Cng": "5.0.0",
+ "System.Security.Cryptography.Pkcs": "5.0.0"
+ },
+ "runtime": {
+ "lib/net5.0/NuGet.Packaging.dll": {
+ "assemblyVersion": "6.3.4.2",
+ "fileVersion": "6.3.4.2"
+ }
+ }
+ },
+ "NuGet.Protocol/6.3.4": {
+ "dependencies": {
+ "NuGet.Packaging": "6.3.4"
+ },
+ "runtime": {
+ "lib/net5.0/NuGet.Protocol.dll": {
+ "assemblyVersion": "6.3.4.2",
+ "fileVersion": "6.3.4.2"
+ }
+ }
+ },
+ "NuGet.Resolver/6.3.4": {
+ "dependencies": {
+ "NuGet.Protocol": "6.3.4"
+ },
+ "runtime": {
+ "lib/net5.0/NuGet.Resolver.dll": {
+ "assemblyVersion": "6.3.4.2",
+ "fileVersion": "6.3.4.2"
+ }
+ }
+ },
+ "NuGet.Versioning/6.3.4": {
+ "runtime": {
+ "lib/netstandard2.0/NuGet.Versioning.dll": {
+ "assemblyVersion": "6.3.4.2",
+ "fileVersion": "6.3.4.2"
+ }
+ }
+ },
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {},
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {},
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {},
+ "runtime.native.System/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.IO.Compression/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.Net.Http/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.Security.Cryptography.Apple/4.3.0": {
+ "dependencies": {
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0"
+ }
+ },
+ "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "dependencies": {
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {},
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {},
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {},
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {},
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {},
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {},
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {},
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {},
+ "System.AppContext/4.3.0": {
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Buffers/4.3.0": {
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Collections/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Collections.Concurrent/4.3.0": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Collections.Immutable/5.0.0": {},
+ "System.ComponentModel.Composition/4.5.0": {
+ "dependencies": {
+ "System.Security.Permissions": "4.5.0"
+ },
+ "runtime": {
+ "lib/netcoreapp2.0/System.ComponentModel.Composition.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "4.6.26515.6"
+ }
+ }
+ },
+ "System.Composition/1.0.31": {
+ "dependencies": {
+ "System.Composition.AttributedModel": "1.0.31",
+ "System.Composition.Convention": "1.0.31",
+ "System.Composition.Hosting": "1.0.31",
+ "System.Composition.Runtime": "1.0.31",
+ "System.Composition.TypedParts": "1.0.31"
+ }
+ },
+ "System.Composition.AttributedModel/1.0.31": {
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ },
+ "runtime": {
+ "lib/netstandard1.0/System.Composition.AttributedModel.dll": {
+ "assemblyVersion": "1.0.31.0",
+ "fileVersion": "4.6.24705.1"
+ }
+ }
+ },
+ "System.Composition.Convention/1.0.31": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Composition.AttributedModel": "1.0.31",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tools": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Linq.Expressions": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ },
+ "runtime": {
+ "lib/netstandard1.0/System.Composition.Convention.dll": {
+ "assemblyVersion": "1.0.31.0",
+ "fileVersion": "4.6.24705.1"
+ }
+ }
+ },
+ "System.Composition.Hosting/1.0.31": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Composition.Runtime": "1.0.31",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tools": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Linq.Expressions": "4.3.0",
+ "System.ObjectModel": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ },
+ "runtime": {
+ "lib/netstandard1.0/System.Composition.Hosting.dll": {
+ "assemblyVersion": "1.0.31.0",
+ "fileVersion": "4.6.24705.1"
+ }
+ }
+ },
+ "System.Composition.Runtime/1.0.31": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tools": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0"
+ },
+ "runtime": {
+ "lib/netstandard1.0/System.Composition.Runtime.dll": {
+ "assemblyVersion": "1.0.31.0",
+ "fileVersion": "4.6.24705.1"
+ }
+ }
+ },
+ "System.Composition.TypedParts/1.0.31": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Composition.AttributedModel": "1.0.31",
+ "System.Composition.Hosting": "1.0.31",
+ "System.Composition.Runtime": "1.0.31",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tools": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Linq.Expressions": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ },
+ "runtime": {
+ "lib/netstandard1.0/System.Composition.TypedParts.dll": {
+ "assemblyVersion": "1.0.31.0",
+ "fileVersion": "4.6.24705.1"
+ }
+ }
+ },
+ "System.Console/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Debug/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.DiagnosticSource/4.3.0": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Tools/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Tracing/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Dynamic.Runtime/4.0.11": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Linq.Expressions": "4.3.0",
+ "System.ObjectModel": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Reflection.TypeExtensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Formats.Asn1/5.0.0": {},
+ "System.Globalization/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization.Calendars/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization.Extensions/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "System.IO/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.Abstractions/21.0.22": {
+ "dependencies": {
+ "TestableIO.System.IO.Abstractions": "21.0.22",
+ "TestableIO.System.IO.Abstractions.Wrappers": "21.0.22"
+ },
+ "runtime": {
+ "lib/net8.0/System.IO.Abstractions.dll": {
+ "assemblyVersion": "21.0.0.0",
+ "fileVersion": "21.0.22.62509"
+ }
+ }
+ },
+ "System.IO.Compression/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "System.Buffers": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.IO.Compression": "4.3.0"
+ }
+ },
+ "System.IO.Compression.ZipFile/4.3.0": {
+ "dependencies": {
+ "System.Buffers": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.Compression": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem.Primitives/4.3.0": {
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Linq/4.3.0": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Linq.Expressions/4.3.0": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.ObjectModel": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Emit.Lightweight": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Reflection.TypeExtensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Memory/4.5.4": {},
+ "System.Net.Http/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.DiagnosticSource": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Extensions": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Security.Cryptography.X509Certificates": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Net.Primitives/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Net.Sockets/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.ObjectModel/4.3.0": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Reflection/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit/4.3.0": {
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit.ILGeneration/4.3.0": {
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit.Lightweight/4.3.0": {
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Extensions/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Metadata/5.0.0": {},
+ "System.Reflection.Primitives/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.TypeExtensions/4.3.0": {
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Resources.ResourceManager/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "System.Runtime.CompilerServices.Unsafe/6.1.0": {},
+ "System.Runtime.Extensions/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Handles/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices.RuntimeInformation/4.3.0": {
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Runtime.Numerics/4.3.0": {
+ "dependencies": {
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Security.AccessControl/4.5.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "System.Security.Principal.Windows": "4.5.0"
+ }
+ },
+ "System.Security.Cryptography.Algorithms/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.Apple": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Cng/5.0.0": {
+ "dependencies": {
+ "System.Formats.Asn1": "5.0.0"
+ }
+ },
+ "System.Security.Cryptography.Csp/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Encoding/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.OpenSsl/4.3.0": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Pkcs/5.0.0": {
+ "dependencies": {
+ "System.Formats.Asn1": "5.0.0",
+ "System.Security.Cryptography.Cng": "5.0.0"
+ },
+ "runtime": {
+ "lib/netcoreapp3.0/System.Security.Cryptography.Pkcs.dll": {
+ "assemblyVersion": "5.0.0.0",
+ "fileVersion": "5.0.20.51904"
+ }
+ },
+ "runtimeTargets": {
+ "runtimes/win/lib/netcoreapp3.0/System.Security.Cryptography.Pkcs.dll": {
+ "rid": "win",
+ "assetType": "runtime",
+ "assemblyVersion": "5.0.0.0",
+ "fileVersion": "5.0.20.51904"
+ }
+ }
+ },
+ "System.Security.Cryptography.Primitives/4.3.0": {
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.ProtectedData/4.4.0": {
+ "runtime": {
+ "lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll": {
+ "assemblyVersion": "4.0.2.0",
+ "fileVersion": "4.6.25519.3"
+ }
+ },
+ "runtimeTargets": {
+ "runtimes/win/lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll": {
+ "rid": "win",
+ "assetType": "runtime",
+ "assemblyVersion": "4.0.2.0",
+ "fileVersion": "4.6.25519.3"
+ }
+ }
+ },
+ "System.Security.Cryptography.X509Certificates/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Calendars": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Cng": "5.0.0",
+ "System.Security.Cryptography.Csp": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Permissions/4.5.0": {
+ "dependencies": {
+ "System.Security.AccessControl": "4.5.0"
+ },
+ "runtime": {
+ "lib/netstandard2.0/System.Security.Permissions.dll": {
+ "assemblyVersion": "4.0.1.0",
+ "fileVersion": "4.6.26515.6"
+ }
+ }
+ },
+ "System.Security.Principal.Windows/4.5.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2"
+ }
+ },
+ "System.Text.Encoding/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Text.Encoding.CodePages/4.5.1": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "System.Runtime.CompilerServices.Unsafe": "6.1.0"
+ }
+ },
+ "System.Text.Encoding.Extensions/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Text.Encodings.Web/8.0.0": {},
+ "System.Text.Json/8.0.4": {
+ "dependencies": {
+ "System.Text.Encodings.Web": "8.0.0"
+ }
+ },
+ "System.Text.RegularExpressions/4.3.0": {
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading/4.3.0": {
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks.Dataflow/4.6.0": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Dynamic.Runtime": "4.0.11",
+ "System.Linq": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks.Extensions/4.5.4": {},
+ "System.Threading.Timer/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.1.2",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Xml.ReaderWriter/4.3.0": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Text.RegularExpressions": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Tasks.Extensions": "4.5.4"
+ }
+ },
+ "System.Xml.XDocument/4.3.0": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tools": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Xml.ReaderWriter": "4.3.0"
+ }
+ },
+ "Terminal.Gui/2.0.0-v2-develop.2329": {
+ "dependencies": {
+ "ColorHelper": "1.8.1",
+ "System.IO.Abstractions": "21.0.22",
+ "System.Text.Json": "8.0.4",
+ "Wcwidth": "2.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Terminal.Gui.dll": {
+ "assemblyVersion": "2.0.0.0",
+ "fileVersion": "2.0.0.0"
+ }
+ },
+ "resources": {
+ "lib/net8.0/fr-FR/Terminal.Gui.resources.dll": {
+ "locale": "fr-FR"
+ },
+ "lib/net8.0/ja-JP/Terminal.Gui.resources.dll": {
+ "locale": "ja-JP"
+ },
+ "lib/net8.0/pt-PT/Terminal.Gui.resources.dll": {
+ "locale": "pt-PT"
+ },
+ "lib/net8.0/zh-Hans/Terminal.Gui.resources.dll": {
+ "locale": "zh-Hans"
+ }
+ }
+ },
+ "TestableIO.System.IO.Abstractions/21.0.22": {
+ "runtime": {
+ "lib/net8.0/TestableIO.System.IO.Abstractions.dll": {
+ "assemblyVersion": "21.0.0.0",
+ "fileVersion": "21.0.22.62509"
+ }
+ }
+ },
+ "TestableIO.System.IO.Abstractions.Wrappers/21.0.22": {
+ "dependencies": {
+ "TestableIO.System.IO.Abstractions": "21.0.22"
+ },
+ "runtime": {
+ "lib/net8.0/TestableIO.System.IO.Abstractions.Wrappers.dll": {
+ "assemblyVersion": "21.0.0.0",
+ "fileVersion": "21.0.22.62509"
+ }
+ }
+ },
+ "Wcwidth/2.0.0": {
+ "runtime": {
+ "lib/net8.0/Wcwidth.dll": {
+ "assemblyVersion": "2.0.0.0",
+ "fileVersion": "2.0.0.0"
+ }
+ }
+ },
+ "StgSharp.Common/1.0.0": {
+ "dependencies": {
+ "Microsoft.CSharp": "4.7.0",
+ "System.Runtime.CompilerServices.Unsafe": "6.1.0"
+ },
+ "runtime": {
+ "StgSharp.Common.dll": {
+ "assemblyVersion": "1.0.0",
+ "fileVersion": "1.0.0.0"
+ }
+ }
+ },
+ "StgSharp.Model/1.0.0": {
+ "dependencies": {
+ "StgSharp.Common": "1.0.0",
+ "StgSharp.Script": "1.0.0"
+ },
+ "runtime": {
+ "StgSharp.Model.dll": {
+ "assemblyVersion": "1.0.0",
+ "fileVersion": "1.0.0.0"
+ }
+ }
+ },
+ "StgSharp.Script/1.0.0": {
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0",
+ "StgSharp.Common": "1.0.0"
+ },
+ "runtime": {
+ "StgSharp.Script.dll": {
+ "assemblyVersion": "1.0.0",
+ "fileVersion": "1.0.0.0"
+ }
+ }
+ },
+ "StgSharp.TerminalDialogue/1.0.0": {
+ "dependencies": {
+ "Terminal.Gui": "2.0.0-v2-develop.2329"
+ },
+ "runtime": {
+ "StgSharp.TerminalDialogue.dll": {
+ "assemblyVersion": "1.0.0",
+ "fileVersion": "1.0.0.0"
+ }
+ }
+ },
+ "Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions/14.0.0.0": {
+ "runtime": {
+ "Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll": {
+ "assemblyVersion": "14.0.0.0",
+ "fileVersion": "3.100.123.36306"
+ }
+ }
+ }
+ }
+ },
+ "libraries": {
+ "StgSharpTest/1.0.0": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "ColorHelper/1.8.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-rblWXd/02TfwJjX53xEfQnbnDRKxCm09VtavV8JaIcmIFWt9efNf6xTQ3WeXgy/she5R31eRTtnizFoUoDrs5w==",
+ "path": "colorhelper/1.8.1",
+ "hashPath": "colorhelper.1.8.1.nupkg.sha512"
+ },
+ "CommunityToolkit.HighPerformance/8.4.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg==",
+ "path": "communitytoolkit.highperformance/8.4.0",
+ "hashPath": "communitytoolkit.highperformance.8.4.0.nupkg.sha512"
+ },
+ "coverlet.collector/6.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-tW3lsNS+dAEII6YGUX/VMoJjBS1QvsxqJeqLaJXub08y1FSjasFPtQ4UBUsudE9PNrzLjooClMsPtY2cZLdXpQ==",
+ "path": "coverlet.collector/6.0.0",
+ "hashPath": "coverlet.collector.6.0.0.nupkg.sha512"
+ },
+ "DiffPlex/1.7.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-qJEjdxEDBWSFZGB8paBB9HDeJXHGlHlOXeGX3kbTuXWuOsgv2iSAEOOzo5V1/B39Vcxr9IVVrNKewRcX+rsn4g==",
+ "path": "diffplex/1.7.2",
+ "hashPath": "diffplex.1.7.2.nupkg.sha512"
+ },
+ "Humanizer.Core/2.2.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-rsYXB7+iUPP8AHgQ8JP2UZI2xK2KhjcdGr9E6zX3CsZaTLCaw8M35vaAJRo1rfxeaZEVMuXeaquLVCkZ7JcZ5Q==",
+ "path": "humanizer.core/2.2.0",
+ "hashPath": "humanizer.core.2.2.0.nupkg.sha512"
+ },
+ "Microsoft.Bcl.AsyncInterfaces/1.1.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-yuvf07qFWFqtK3P/MRkEKLhn5r2UbSpVueRziSqj0yJQIKFwG1pq9mOayK3zE5qZCTs0CbrwL9M6R8VwqyGy2w==",
+ "path": "microsoft.bcl.asyncinterfaces/1.1.1",
+ "hashPath": "microsoft.bcl.asyncinterfaces.1.1.1.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.Analyzer.Testing/1.1.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-g6cSJMPlmTiEHakCKaTobNISbf4jfjNF38YK8V4azAgcV9CE4BxuGQSWW6eftHs43q7mhKOr1lioKsTVQmUc1g==",
+ "path": "microsoft.codeanalysis.analyzer.testing/1.1.2",
+ "hashPath": "microsoft.codeanalysis.analyzer.testing.1.1.2.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.Analyzers/3.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ojG5pGAhTPmjxRGTNvuszO3H8XPZqksDwr9xLd4Ae/JBjZZdl6GuoLk7uLMf+o7yl5wO0TAqoWcEKkEWqrZE5g==",
+ "path": "microsoft.codeanalysis.analyzers/3.0.0",
+ "hashPath": "microsoft.codeanalysis.analyzers.3.0.0.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.Common/3.8.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-8YTZ7GpsbTdC08DITx7/kwV0k4SC6cbBAFqc13cOm5vKJZcEIAh51tNSyGSkWisMgYCr96B2wb5Zri1bsla3+g==",
+ "path": "microsoft.codeanalysis.common/3.8.0",
+ "hashPath": "microsoft.codeanalysis.common.3.8.0.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.CSharp/3.8.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-hKqFCUSk9TIMBDjiYMF8/ZfK9p9mzpU+slM73CaCHu4ctfkoqJGHLQhyT8wvrYsIg+ufrUWBF8hcJYmyr5rc5Q==",
+ "path": "microsoft.codeanalysis.csharp/3.8.0",
+ "hashPath": "microsoft.codeanalysis.csharp.3.8.0.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing/1.1.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-mzi4VHeskAZ7KzORK9xuK/fEAMWS0UfQJ+HbbDVaIiG8khJWIZkMka5a6X5lHW/cOq51sxHv40Ggy95jgEDVgw==",
+ "path": "microsoft.codeanalysis.csharp.sourcegenerators.testing/1.1.2",
+ "hashPath": "microsoft.codeanalysis.csharp.sourcegenerators.testing.1.1.2.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.MSTest/1.1.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-PmvKTrqZ4CNzWsqoUgR1225JO6Z3JIXOuQeYk9OSeCaZgPo04ph4jMnMkXnd9Skrrq+gDMDhEI9lGAgXsFmu2A==",
+ "path": "microsoft.codeanalysis.csharp.sourcegenerators.testing.mstest/1.1.2",
+ "hashPath": "microsoft.codeanalysis.csharp.sourcegenerators.testing.mstest.1.1.2.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.CSharp.Workspaces/3.8.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-rdEBvPWqe/IIscsnp7OkZ4tQin8khxBcSLyV9tU+sHdw9uW9U0GKL+Dv2rD4voC1bZBaO18Hp+m4Vkyfmaz0OA==",
+ "path": "microsoft.codeanalysis.csharp.workspaces/3.8.0",
+ "hashPath": "microsoft.codeanalysis.csharp.workspaces.3.8.0.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.SourceGenerators.Testing/1.1.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-m+E8+ovSIYUVXMijWKdPhvnWpOBB/ms+3hunlPiWY8iJkyrT5GKFtRUPevEUKuL75t5+I3SnEAwvsHL29WJSGQ==",
+ "path": "microsoft.codeanalysis.sourcegenerators.testing/1.1.2",
+ "hashPath": "microsoft.codeanalysis.sourcegenerators.testing.1.1.2.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.Testing.Verifiers.MSTest/1.1.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-P+bkTk1+0fLPMRFdQjOxzA7WN77CjFVgMTxYC1S+sLlbm2kr1ShVvTmuFIVCDQLSZLjOiEPcuUcxKSMKufUzqg==",
+ "path": "microsoft.codeanalysis.testing.verifiers.mstest/1.1.2",
+ "hashPath": "microsoft.codeanalysis.testing.verifiers.mstest.1.1.2.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.Workspaces.Common/3.8.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-GPYVydsmOmScOWDJA1LFky7/MkoXpx1JI3lZJShxC+bvVUvL9zVKE8WDZMLsYJ5MAbry2xkZftdfeMpZ+kvLDQ==",
+ "path": "microsoft.codeanalysis.workspaces.common/3.8.0",
+ "hashPath": "microsoft.codeanalysis.workspaces.common.3.8.0.nupkg.sha512"
+ },
+ "Microsoft.CodeCoverage/17.8.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-KC8SXWbGIdoFVdlxKk9WHccm0llm9HypcHMLUUFabRiTS3SO2fQXNZfdiF3qkEdTJhbRrxhdRxjL4jbtwPq4Ew==",
+ "path": "microsoft.codecoverage/17.8.0",
+ "hashPath": "microsoft.codecoverage.17.8.0.nupkg.sha512"
+ },
+ "Microsoft.CSharp/4.7.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==",
+ "path": "microsoft.csharp/4.7.0",
+ "hashPath": "microsoft.csharp.4.7.0.nupkg.sha512"
+ },
+ "Microsoft.NET.Test.Sdk/17.8.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-BmTYGbD/YuDHmApIENdoyN1jCk0Rj1fJB0+B/fVekyTdVidr91IlzhqzytiUgaEAzL1ZJcYCme0MeBMYvJVzvw==",
+ "path": "microsoft.net.test.sdk/17.8.0",
+ "hashPath": "microsoft.net.test.sdk.17.8.0.nupkg.sha512"
+ },
+ "Microsoft.NETCore.Platforms/2.1.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-mOJy3M0UN+LUG21dLGMxaWZEP6xYpQEpLuvuEQBaownaX4YuhH6NmNUlN9si+vNkAS6dwJ//N1O4DmLf2CikVg==",
+ "path": "microsoft.netcore.platforms/2.1.2",
+ "hashPath": "microsoft.netcore.platforms.2.1.2.nupkg.sha512"
+ },
+ "Microsoft.NETCore.Targets/1.1.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==",
+ "path": "microsoft.netcore.targets/1.1.0",
+ "hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512"
+ },
+ "Microsoft.TestPlatform.ObjectModel/17.8.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-AYy6vlpGMfz5kOFq99L93RGbqftW/8eQTqjT9iGXW6s9MRP3UdtY8idJ8rJcjeSja8A18IhIro5YnH3uv1nz4g==",
+ "path": "microsoft.testplatform.objectmodel/17.8.0",
+ "hashPath": "microsoft.testplatform.objectmodel.17.8.0.nupkg.sha512"
+ },
+ "Microsoft.TestPlatform.TestHost/17.8.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-9ivcl/7SGRmOT0YYrHQGohWiT5YCpkmy/UEzldfVisLm6QxbLaK3FAJqZXI34rnRLmqqDCeMQxKINwmKwAPiDw==",
+ "path": "microsoft.testplatform.testhost/17.8.0",
+ "hashPath": "microsoft.testplatform.testhost.17.8.0.nupkg.sha512"
+ },
+ "Microsoft.VisualStudio.Composition/16.1.8": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-N+thv3dcT7kjn0Xz3U0uBm2CH4uoaMvH8wC6Gy2HWx7HLNdEpqGoMraLyoBdizmypD1owLCJQIa2uKmWe4/o8A==",
+ "path": "microsoft.visualstudio.composition/16.1.8",
+ "hashPath": "microsoft.visualstudio.composition.16.1.8.nupkg.sha512"
+ },
+ "Microsoft.VisualStudio.Composition.NetFxAttributes/16.1.8": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-EbwZWTvdzit68qZSuTI8nd1PZ87pYjhpCwtsis8lrUKJ7XLdbE5rxY6YrY7OFze+YUsguzqZlNjX4Yn5nL9qBw==",
+ "path": "microsoft.visualstudio.composition.netfxattributes/16.1.8",
+ "hashPath": "microsoft.visualstudio.composition.netfxattributes.16.1.8.nupkg.sha512"
+ },
+ "Microsoft.VisualStudio.Validation/15.0.82": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-XwZyVCsHuEtnd6nYScJnA8XkXPzy4Ok0DV5/hqqAe5ccgOhJ6yap7Qh/sU/i6QxEzuYyECPYDQ7IOyEQ3yRQgQ==",
+ "path": "microsoft.visualstudio.validation/15.0.82",
+ "hashPath": "microsoft.visualstudio.validation.15.0.82.nupkg.sha512"
+ },
+ "Microsoft.Win32.Primitives/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==",
+ "path": "microsoft.win32.primitives/4.3.0",
+ "hashPath": "microsoft.win32.primitives.4.3.0.nupkg.sha512"
+ },
+ "MSTest.TestAdapter/3.1.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-kMvdO5dhrUR3o1qk0fzS0St0prlKyMQAfz1ChVAUdGGobTU5ehR60szOFto0+Q7rFG5iXMvTlVIthXM9EcNYnw==",
+ "path": "mstest.testadapter/3.1.1",
+ "hashPath": "mstest.testadapter.3.1.1.nupkg.sha512"
+ },
+ "MSTest.TestFramework/3.1.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-3rjkGxciNHHmPW8cl1/QVIYjOpfptjmAH5JrLBw+dnMTYDoweg3I579N7OIbar3Zd3q9dfWFrCy2LEV/AmPn3A==",
+ "path": "mstest.testframework/3.1.1",
+ "hashPath": "mstest.testframework.3.1.1.nupkg.sha512"
+ },
+ "NETStandard.Library/1.6.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==",
+ "path": "netstandard.library/1.6.1",
+ "hashPath": "netstandard.library.1.6.1.nupkg.sha512"
+ },
+ "Newtonsoft.Json/13.0.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==",
+ "path": "newtonsoft.json/13.0.1",
+ "hashPath": "newtonsoft.json.13.0.1.nupkg.sha512"
+ },
+ "NuGet.Common/6.3.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-wKuTiB3RBjbvzB/BhW8+Cu+TTPsABJr91I2Guu/FuM0SXtYRIM26v1NJdwm5rLw59CqB7bamqpWpJKU8bLAdwQ==",
+ "path": "nuget.common/6.3.4",
+ "hashPath": "nuget.common.6.3.4.nupkg.sha512"
+ },
+ "NuGet.Configuration/6.3.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-b+/g6sdnR2128KLn+6qO1MrB8j0goO4kYCFly2RDi/BsLilK+MzKJRHWGYqfMn/YnLmMrgNNJ2sSr4GX7rMEQw==",
+ "path": "nuget.configuration/6.3.4",
+ "hashPath": "nuget.configuration.6.3.4.nupkg.sha512"
+ },
+ "NuGet.Frameworks/6.5.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-QWINE2x3MbTODsWT1Gh71GaGb5icBz4chS8VYvTgsBnsi8esgN6wtHhydd7fvToWECYGq7T4cgBBDiKD/363fg==",
+ "path": "nuget.frameworks/6.5.0",
+ "hashPath": "nuget.frameworks.6.5.0.nupkg.sha512"
+ },
+ "NuGet.Packaging/6.3.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-0HtJXNCes0443jKeFErjhYxJ08BjyoDrIvw/uWyonoTBQ3B//+H2nztviSUyv0+ydfgKyhwshAjsr0efUT8PRA==",
+ "path": "nuget.packaging/6.3.4",
+ "hashPath": "nuget.packaging.6.3.4.nupkg.sha512"
+ },
+ "NuGet.Protocol/6.3.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-Gmvnz7RoN6UG3POw0F4t9mWM4sIdmHiuutvR9c2pLCJCUiYBN8QvbO/ZvkOuQNNM/aGdYExx/Tm84Zx9iVjOSA==",
+ "path": "nuget.protocol/6.3.4",
+ "hashPath": "nuget.protocol.6.3.4.nupkg.sha512"
+ },
+ "NuGet.Resolver/6.3.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-cO/QqtGqCIUf/e6EncIQ/ORJDco9UOtxooDL0IZhf18x1l0xFJ/nrcLCyAjZeznE9RAIqaNv1+YFobht4u0Lsw==",
+ "path": "nuget.resolver/6.3.4",
+ "hashPath": "nuget.resolver.6.3.4.nupkg.sha512"
+ },
+ "NuGet.Versioning/6.3.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-mQW9bwsWJq30lacl33MMVLBlrit5ClNEpGzKryIuLfP1UTL6feQK1yzA/5IQXdtjXvUEoI5bo1Axjen5lOm7Bg==",
+ "path": "nuget.versioning/6.3.4",
+ "hashPath": "nuget.versioning.6.3.4.nupkg.sha512"
+ },
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q==",
+ "path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
+ "hashPath": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
+ },
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA==",
+ "path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
+ "hashPath": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
+ },
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw==",
+ "path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
+ "hashPath": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
+ },
+ "runtime.native.System/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==",
+ "path": "runtime.native.system/4.3.0",
+ "hashPath": "runtime.native.system.4.3.0.nupkg.sha512"
+ },
+ "runtime.native.System.IO.Compression/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==",
+ "path": "runtime.native.system.io.compression/4.3.0",
+ "hashPath": "runtime.native.system.io.compression.4.3.0.nupkg.sha512"
+ },
+ "runtime.native.System.Net.Http/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==",
+ "path": "runtime.native.system.net.http/4.3.0",
+ "hashPath": "runtime.native.system.net.http.4.3.0.nupkg.sha512"
+ },
+ "runtime.native.System.Security.Cryptography.Apple/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==",
+ "path": "runtime.native.system.security.cryptography.apple/4.3.0",
+ "hashPath": "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512"
+ },
+ "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==",
+ "path": "runtime.native.system.security.cryptography.openssl/4.3.0",
+ "hashPath": "runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
+ },
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A==",
+ "path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
+ "hashPath": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
+ },
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ==",
+ "path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
+ "hashPath": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==",
+ "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0",
+ "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512"
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g==",
+ "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
+ "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
+ },
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg==",
+ "path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
+ "hashPath": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
+ },
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ==",
+ "path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
+ "hashPath": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
+ },
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A==",
+ "path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
+ "hashPath": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
+ },
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg==",
+ "path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
+ "hashPath": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
+ },
+ "System.AppContext/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==",
+ "path": "system.appcontext/4.3.0",
+ "hashPath": "system.appcontext.4.3.0.nupkg.sha512"
+ },
+ "System.Buffers/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==",
+ "path": "system.buffers/4.3.0",
+ "hashPath": "system.buffers.4.3.0.nupkg.sha512"
+ },
+ "System.Collections/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
+ "path": "system.collections/4.3.0",
+ "hashPath": "system.collections.4.3.0.nupkg.sha512"
+ },
+ "System.Collections.Concurrent/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==",
+ "path": "system.collections.concurrent/4.3.0",
+ "hashPath": "system.collections.concurrent.4.3.0.nupkg.sha512"
+ },
+ "System.Collections.Immutable/5.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-FXkLXiK0sVVewcso0imKQoOxjoPAj42R8HtjjbSjVPAzwDfzoyoznWxgA3c38LDbN9SJux1xXoXYAhz98j7r2g==",
+ "path": "system.collections.immutable/5.0.0",
+ "hashPath": "system.collections.immutable.5.0.0.nupkg.sha512"
+ },
+ "System.ComponentModel.Composition/4.5.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-+iB9FoZnfdqMEGq6np28X6YNSUrse16CakmIhV3h6PxEWt7jYxUN3Txs1D8MZhhf4QmyvK0F/EcIN0f4gGN0dA==",
+ "path": "system.componentmodel.composition/4.5.0",
+ "hashPath": "system.componentmodel.composition.4.5.0.nupkg.sha512"
+ },
+ "System.Composition/1.0.31": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-I+D26qpYdoklyAVUdqwUBrEIckMNjAYnuPJy/h9dsQItpQwVREkDFs4b4tkBza0kT2Yk48Lcfsv2QQ9hWsh9Iw==",
+ "path": "system.composition/1.0.31",
+ "hashPath": "system.composition.1.0.31.nupkg.sha512"
+ },
+ "System.Composition.AttributedModel/1.0.31": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-NHWhkM3ZkspmA0XJEsKdtTt1ViDYuojgSND3yHhTzwxepiwqZf+BCWuvCbjUt4fe0NxxQhUDGJ5km6sLjo9qnQ==",
+ "path": "system.composition.attributedmodel/1.0.31",
+ "hashPath": "system.composition.attributedmodel.1.0.31.nupkg.sha512"
+ },
+ "System.Composition.Convention/1.0.31": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-GLjh2Ju71k6C0qxMMtl4efHa68NmWeIUYh4fkUI8xbjQrEBvFmRwMDFcylT8/PR9SQbeeL48IkFxU/+gd0nYEQ==",
+ "path": "system.composition.convention/1.0.31",
+ "hashPath": "system.composition.convention.1.0.31.nupkg.sha512"
+ },
+ "System.Composition.Hosting/1.0.31": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-fN1bT4RX4vUqjbgoyuJFVUizAl2mYF5VAb+bVIxIYZSSc0BdnX+yGAxcavxJuDDCQ1K+/mdpgyEFc8e9ikjvrg==",
+ "path": "system.composition.hosting/1.0.31",
+ "hashPath": "system.composition.hosting.1.0.31.nupkg.sha512"
+ },
+ "System.Composition.Runtime/1.0.31": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-0LEJN+2NVM89CE4SekDrrk5tHV5LeATltkp+9WNYrR+Huiyt0vaCqHbbHtVAjPyeLWIc8dOz/3kthRBj32wGQg==",
+ "path": "system.composition.runtime/1.0.31",
+ "hashPath": "system.composition.runtime.1.0.31.nupkg.sha512"
+ },
+ "System.Composition.TypedParts/1.0.31": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-0Zae/FtzeFgDBBuILeIbC/T9HMYbW4olAmi8XqqAGosSOWvXfiQLfARZEhiGd0LVXaYgXr0NhxiU1LldRP1fpQ==",
+ "path": "system.composition.typedparts/1.0.31",
+ "hashPath": "system.composition.typedparts.1.0.31.nupkg.sha512"
+ },
+ "System.Console/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==",
+ "path": "system.console/4.3.0",
+ "hashPath": "system.console.4.3.0.nupkg.sha512"
+ },
+ "System.Diagnostics.Debug/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
+ "path": "system.diagnostics.debug/4.3.0",
+ "hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512"
+ },
+ "System.Diagnostics.DiagnosticSource/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-tD6kosZnTAGdrEa0tZSuFyunMbt/5KYDnHdndJYGqZoNy00XVXyACd5d6KnE1YgYv3ne2CjtAfNXo/fwEhnKUA==",
+ "path": "system.diagnostics.diagnosticsource/4.3.0",
+ "hashPath": "system.diagnostics.diagnosticsource.4.3.0.nupkg.sha512"
+ },
+ "System.Diagnostics.Tools/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==",
+ "path": "system.diagnostics.tools/4.3.0",
+ "hashPath": "system.diagnostics.tools.4.3.0.nupkg.sha512"
+ },
+ "System.Diagnostics.Tracing/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
+ "path": "system.diagnostics.tracing/4.3.0",
+ "hashPath": "system.diagnostics.tracing.4.3.0.nupkg.sha512"
+ },
+ "System.Dynamic.Runtime/4.0.11": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-db34f6LHYM0U0JpE+sOmjar27BnqTVkbLJhgfwMpTdgTigG/Hna3m2MYVwnFzGGKnEJk2UXFuoVTr8WUbU91/A==",
+ "path": "system.dynamic.runtime/4.0.11",
+ "hashPath": "system.dynamic.runtime.4.0.11.nupkg.sha512"
+ },
+ "System.Formats.Asn1/5.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-MTvUIktmemNB+El0Fgw9egyqT9AYSIk6DTJeoDSpc3GIHxHCMo8COqkWT1mptX5tZ1SlQ6HJZ0OsSvMth1c12w==",
+ "path": "system.formats.asn1/5.0.0",
+ "hashPath": "system.formats.asn1.5.0.0.nupkg.sha512"
+ },
+ "System.Globalization/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
+ "path": "system.globalization/4.3.0",
+ "hashPath": "system.globalization.4.3.0.nupkg.sha512"
+ },
+ "System.Globalization.Calendars/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==",
+ "path": "system.globalization.calendars/4.3.0",
+ "hashPath": "system.globalization.calendars.4.3.0.nupkg.sha512"
+ },
+ "System.Globalization.Extensions/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==",
+ "path": "system.globalization.extensions/4.3.0",
+ "hashPath": "system.globalization.extensions.4.3.0.nupkg.sha512"
+ },
+ "System.IO/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+ "path": "system.io/4.3.0",
+ "hashPath": "system.io.4.3.0.nupkg.sha512"
+ },
+ "System.IO.Abstractions/21.0.22": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-DRnFyMIjO1KG9fqUPKV7XDPgECEwrNpsb3OLD0mImViVpRZ5747o7vqrOYbn9AMaQ8eajLeKH0fXQglgH7v42A==",
+ "path": "system.io.abstractions/21.0.22",
+ "hashPath": "system.io.abstractions.21.0.22.nupkg.sha512"
+ },
+ "System.IO.Compression/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==",
+ "path": "system.io.compression/4.3.0",
+ "hashPath": "system.io.compression.4.3.0.nupkg.sha512"
+ },
+ "System.IO.Compression.ZipFile/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==",
+ "path": "system.io.compression.zipfile/4.3.0",
+ "hashPath": "system.io.compression.zipfile.4.3.0.nupkg.sha512"
+ },
+ "System.IO.FileSystem/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
+ "path": "system.io.filesystem/4.3.0",
+ "hashPath": "system.io.filesystem.4.3.0.nupkg.sha512"
+ },
+ "System.IO.FileSystem.Primitives/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==",
+ "path": "system.io.filesystem.primitives/4.3.0",
+ "hashPath": "system.io.filesystem.primitives.4.3.0.nupkg.sha512"
+ },
+ "System.Linq/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==",
+ "path": "system.linq/4.3.0",
+ "hashPath": "system.linq.4.3.0.nupkg.sha512"
+ },
+ "System.Linq.Expressions/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==",
+ "path": "system.linq.expressions/4.3.0",
+ "hashPath": "system.linq.expressions.4.3.0.nupkg.sha512"
+ },
+ "System.Memory/4.5.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw==",
+ "path": "system.memory/4.5.4",
+ "hashPath": "system.memory.4.5.4.nupkg.sha512"
+ },
+ "System.Net.Http/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==",
+ "path": "system.net.http/4.3.0",
+ "hashPath": "system.net.http.4.3.0.nupkg.sha512"
+ },
+ "System.Net.Primitives/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==",
+ "path": "system.net.primitives/4.3.0",
+ "hashPath": "system.net.primitives.4.3.0.nupkg.sha512"
+ },
+ "System.Net.Sockets/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==",
+ "path": "system.net.sockets/4.3.0",
+ "hashPath": "system.net.sockets.4.3.0.nupkg.sha512"
+ },
+ "System.ObjectModel/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==",
+ "path": "system.objectmodel/4.3.0",
+ "hashPath": "system.objectmodel.4.3.0.nupkg.sha512"
+ },
+ "System.Reflection/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
+ "path": "system.reflection/4.3.0",
+ "hashPath": "system.reflection.4.3.0.nupkg.sha512"
+ },
+ "System.Reflection.Emit/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==",
+ "path": "system.reflection.emit/4.3.0",
+ "hashPath": "system.reflection.emit.4.3.0.nupkg.sha512"
+ },
+ "System.Reflection.Emit.ILGeneration/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==",
+ "path": "system.reflection.emit.ilgeneration/4.3.0",
+ "hashPath": "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512"
+ },
+ "System.Reflection.Emit.Lightweight/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==",
+ "path": "system.reflection.emit.lightweight/4.3.0",
+ "hashPath": "system.reflection.emit.lightweight.4.3.0.nupkg.sha512"
+ },
+ "System.Reflection.Extensions/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==",
+ "path": "system.reflection.extensions/4.3.0",
+ "hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512"
+ },
+ "System.Reflection.Metadata/5.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-5NecZgXktdGg34rh1OenY1rFNDCI8xSjFr+Z4OU4cU06AQHUdRnIIEeWENu3Wl4YowbzkymAIMvi3WyK9U53pQ==",
+ "path": "system.reflection.metadata/5.0.0",
+ "hashPath": "system.reflection.metadata.5.0.0.nupkg.sha512"
+ },
+ "System.Reflection.Primitives/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
+ "path": "system.reflection.primitives/4.3.0",
+ "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512"
+ },
+ "System.Reflection.TypeExtensions/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==",
+ "path": "system.reflection.typeextensions/4.3.0",
+ "hashPath": "system.reflection.typeextensions.4.3.0.nupkg.sha512"
+ },
+ "System.Resources.ResourceManager/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
+ "path": "system.resources.resourcemanager/4.3.0",
+ "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512"
+ },
+ "System.Runtime/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+ "path": "system.runtime/4.3.0",
+ "hashPath": "system.runtime.4.3.0.nupkg.sha512"
+ },
+ "System.Runtime.CompilerServices.Unsafe/6.1.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-5o/HZxx6RVqYlhKSq8/zronDkALJZUT2Vz0hx43f0gwe8mwlM0y2nYlqdBwLMzr262Bwvpikeb/yEwkAa5PADg==",
+ "path": "system.runtime.compilerservices.unsafe/6.1.0",
+ "hashPath": "system.runtime.compilerservices.unsafe.6.1.0.nupkg.sha512"
+ },
+ "System.Runtime.Extensions/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
+ "path": "system.runtime.extensions/4.3.0",
+ "hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512"
+ },
+ "System.Runtime.Handles/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
+ "path": "system.runtime.handles/4.3.0",
+ "hashPath": "system.runtime.handles.4.3.0.nupkg.sha512"
+ },
+ "System.Runtime.InteropServices/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
+ "path": "system.runtime.interopservices/4.3.0",
+ "hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512"
+ },
+ "System.Runtime.InteropServices.RuntimeInformation/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==",
+ "path": "system.runtime.interopservices.runtimeinformation/4.3.0",
+ "hashPath": "system.runtime.interopservices.runtimeinformation.4.3.0.nupkg.sha512"
+ },
+ "System.Runtime.Numerics/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==",
+ "path": "system.runtime.numerics/4.3.0",
+ "hashPath": "system.runtime.numerics.4.3.0.nupkg.sha512"
+ },
+ "System.Security.AccessControl/4.5.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-vW8Eoq0TMyz5vAG/6ce483x/CP83fgm4SJe5P8Tb1tZaobcvPrbMEL7rhH1DRdrYbbb6F0vq3OlzmK0Pkwks5A==",
+ "path": "system.security.accesscontrol/4.5.0",
+ "hashPath": "system.security.accesscontrol.4.5.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.Algorithms/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==",
+ "path": "system.security.cryptography.algorithms/4.3.0",
+ "hashPath": "system.security.cryptography.algorithms.4.3.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.Cng/5.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-jIMXsKn94T9JY7PvPq/tMfqa6GAaHpElRDpmG+SuL+D3+sTw2M8VhnibKnN8Tq+4JqbPJ/f+BwtLeDMEnzAvRg==",
+ "path": "system.security.cryptography.cng/5.0.0",
+ "hashPath": "system.security.cryptography.cng.5.0.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.Csp/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==",
+ "path": "system.security.cryptography.csp/4.3.0",
+ "hashPath": "system.security.cryptography.csp.4.3.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.Encoding/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==",
+ "path": "system.security.cryptography.encoding/4.3.0",
+ "hashPath": "system.security.cryptography.encoding.4.3.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.OpenSsl/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==",
+ "path": "system.security.cryptography.openssl/4.3.0",
+ "hashPath": "system.security.cryptography.openssl.4.3.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.Pkcs/5.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-9TPLGjBCGKmNvG8pjwPeuYy0SMVmGZRwlTZvyPHDbYv/DRkoeumJdfumaaDNQzVGMEmbWtg07zUpSW9q70IlDQ==",
+ "path": "system.security.cryptography.pkcs/5.0.0",
+ "hashPath": "system.security.cryptography.pkcs.5.0.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.Primitives/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==",
+ "path": "system.security.cryptography.primitives/4.3.0",
+ "hashPath": "system.security.cryptography.primitives.4.3.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.ProtectedData/4.4.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog==",
+ "path": "system.security.cryptography.protecteddata/4.4.0",
+ "hashPath": "system.security.cryptography.protecteddata.4.4.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.X509Certificates/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==",
+ "path": "system.security.cryptography.x509certificates/4.3.0",
+ "hashPath": "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512"
+ },
+ "System.Security.Permissions/4.5.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-9gdyuARhUR7H+p5CjyUB/zPk7/Xut3wUSP8NJQB6iZr8L3XUXTMdoLeVAg9N4rqF8oIpE7MpdqHdDHQ7XgJe0g==",
+ "path": "system.security.permissions/4.5.0",
+ "hashPath": "system.security.permissions.4.5.0.nupkg.sha512"
+ },
+ "System.Security.Principal.Windows/4.5.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-U77HfRXlZlOeIXd//Yoj6Jnk8AXlbeisf1oq1os+hxOGVnuG+lGSfGqTwTZBoORFF6j/0q7HXIl8cqwQ9aUGqQ==",
+ "path": "system.security.principal.windows/4.5.0",
+ "hashPath": "system.security.principal.windows.4.5.0.nupkg.sha512"
+ },
+ "System.Text.Encoding/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+ "path": "system.text.encoding/4.3.0",
+ "hashPath": "system.text.encoding.4.3.0.nupkg.sha512"
+ },
+ "System.Text.Encoding.CodePages/4.5.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-4J2JQXbftjPMppIHJ7IC+VXQ9XfEagN92vZZNoG12i+zReYlim5dMoXFC1Zzg7tsnKDM7JPo5bYfFK4Jheq44w==",
+ "path": "system.text.encoding.codepages/4.5.1",
+ "hashPath": "system.text.encoding.codepages.4.5.1.nupkg.sha512"
+ },
+ "System.Text.Encoding.Extensions/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==",
+ "path": "system.text.encoding.extensions/4.3.0",
+ "hashPath": "system.text.encoding.extensions.4.3.0.nupkg.sha512"
+ },
+ "System.Text.Encodings.Web/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==",
+ "path": "system.text.encodings.web/8.0.0",
+ "hashPath": "system.text.encodings.web.8.0.0.nupkg.sha512"
+ },
+ "System.Text.Json/8.0.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-bAkhgDJ88XTsqczoxEMliSrpijKZHhbJQldhAmObj/RbrN3sU5dcokuXmWJWsdQAhiMJ9bTayWsL1C9fbbCRhw==",
+ "path": "system.text.json/8.0.4",
+ "hashPath": "system.text.json.8.0.4.nupkg.sha512"
+ },
+ "System.Text.RegularExpressions/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==",
+ "path": "system.text.regularexpressions/4.3.0",
+ "hashPath": "system.text.regularexpressions.4.3.0.nupkg.sha512"
+ },
+ "System.Threading/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
+ "path": "system.threading/4.3.0",
+ "hashPath": "system.threading.4.3.0.nupkg.sha512"
+ },
+ "System.Threading.Tasks/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+ "path": "system.threading.tasks/4.3.0",
+ "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512"
+ },
+ "System.Threading.Tasks.Dataflow/4.6.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-2hRjGu2r2jxRZ55wmcHO/WbdX+YAOz9x6FE8xqkHZgPaoFMKQZRe9dk8xTZIas8fRjxRmzawnTEWIrhlM+Un7w==",
+ "path": "system.threading.tasks.dataflow/4.6.0",
+ "hashPath": "system.threading.tasks.dataflow.4.6.0.nupkg.sha512"
+ },
+ "System.Threading.Tasks.Extensions/4.5.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==",
+ "path": "system.threading.tasks.extensions/4.5.4",
+ "hashPath": "system.threading.tasks.extensions.4.5.4.nupkg.sha512"
+ },
+ "System.Threading.Timer/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==",
+ "path": "system.threading.timer/4.3.0",
+ "hashPath": "system.threading.timer.4.3.0.nupkg.sha512"
+ },
+ "System.Xml.ReaderWriter/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==",
+ "path": "system.xml.readerwriter/4.3.0",
+ "hashPath": "system.xml.readerwriter.4.3.0.nupkg.sha512"
+ },
+ "System.Xml.XDocument/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==",
+ "path": "system.xml.xdocument/4.3.0",
+ "hashPath": "system.xml.xdocument.4.3.0.nupkg.sha512"
+ },
+ "Terminal.Gui/2.0.0-v2-develop.2329": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-1WRHeZKN5tnF8DUu0vHz5pGZIY9ETwufKbUHCoH3UTcIeOlduhRCpBhTyJWri/fePsUkij2euFMGX2yHfk4h/A==",
+ "path": "terminal.gui/2.0.0-v2-develop.2329",
+ "hashPath": "terminal.gui.2.0.0-v2-develop.2329.nupkg.sha512"
+ },
+ "TestableIO.System.IO.Abstractions/21.0.22": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-yq3I8rUjNoo4JTOT3jbGfTM5VfowaSYiooDO2bfvQe6XGVyZiSIzaKyCmSnuUEyuktw6zzuVE1lJnUeDhJWtyQ==",
+ "path": "testableio.system.io.abstractions/21.0.22",
+ "hashPath": "testableio.system.io.abstractions.21.0.22.nupkg.sha512"
+ },
+ "TestableIO.System.IO.Abstractions.Wrappers/21.0.22": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ETpw1B6VOsQ5zbfqxqLKjITnMvB9M0K5/bK8qJc6jih+tnlKQmtnnOPSS+OeKCqsZDYeHxPNp4ytQPJS3R+WXA==",
+ "path": "testableio.system.io.abstractions.wrappers/21.0.22",
+ "hashPath": "testableio.system.io.abstractions.wrappers.21.0.22.nupkg.sha512"
+ },
+ "Wcwidth/2.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-eGZYH/V+X1DwEXrPUlUcAp8pU5a38d8IvaQzq4pclJxF1x8bizssIo4uWc3qxmS64BNGK5WnDxyBYJz84+Msqg==",
+ "path": "wcwidth/2.0.0",
+ "hashPath": "wcwidth.2.0.0.nupkg.sha512"
+ },
+ "StgSharp.Common/1.0.0": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "StgSharp.Model/1.0.0": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "StgSharp.Script/1.0.0": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "StgSharp.TerminalDialogue/1.0.0": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions/14.0.0.0": {
+ "type": "reference",
+ "serviceable": false,
+ "sha512": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/内核源代码/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTest.runtimeconfig.json b/内核源代码/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTest.runtimeconfig.json
new file mode 100644
index 00000000..becfaeac
--- /dev/null
+++ b/内核源代码/STgSharpTest/bin/x64/Debug/net8.0/StgSharpTest.runtimeconfig.json
@@ -0,0 +1,12 @@
+{
+ "runtimeOptions": {
+ "tfm": "net8.0",
+ "framework": {
+ "name": "Microsoft.NETCore.App",
+ "version": "8.0.0"
+ },
+ "configProperties": {
+ "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/内核源代码/STgSharpTest/obj/Debug/net8.0/StgSharpTest.csproj.FileListAbsolute.txt b/内核源代码/STgSharpTest/obj/Debug/net8.0/StgSharpTest.csproj.FileListAbsolute.txt
index 01bd4268..e69de29b 100644
--- a/内核源代码/STgSharpTest/obj/Debug/net8.0/StgSharpTest.csproj.FileListAbsolute.txt
+++ b/内核源代码/STgSharpTest/obj/Debug/net8.0/StgSharpTest.csproj.FileListAbsolute.txt
@@ -1,242 +0,0 @@
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\CoverletSourceRootsMapping_StgSharpTest
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\testhost.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\StgSharpTerminalDialogue.deps.json
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\StgSharpTerminalDialogue.runtimeconfig.json
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\StgSharpTerminalDialogue.exe
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\testhost.exe
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Microsoft.TestPlatform.AdapterUtilities.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\StgSharpTest.deps.json
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\StgSharpTest.runtimeconfig.json
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\StgSharpTest.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\StgSharpTest.pdb
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ColorHelper.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Microsoft.VisualStudio.CodeCoverage.Shim.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Microsoft.TestPlatform.CoreUtilities.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Microsoft.TestPlatform.PlatformAbstractions.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Microsoft.TestPlatform.CommunicationUtilities.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Microsoft.TestPlatform.CrossPlatEngine.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Microsoft.TestPlatform.Utilities.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.Common.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.TestFramework.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Newtonsoft.Json.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\NuGet.Frameworks.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\System.IO.Abstractions.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Terminal.Gui.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\TestableIO.System.IO.Abstractions.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\TestableIO.System.IO.Abstractions.Wrappers.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Wcwidth.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\cs\Microsoft.TestPlatform.CoreUtilities.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\cs\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\de\Microsoft.TestPlatform.CoreUtilities.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\de\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\es\Microsoft.TestPlatform.CoreUtilities.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\es\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\fr\Microsoft.TestPlatform.CoreUtilities.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\fr\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\it\Microsoft.TestPlatform.CoreUtilities.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\it\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ja\Microsoft.TestPlatform.CoreUtilities.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ja\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ko\Microsoft.TestPlatform.CoreUtilities.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ko\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\pl\Microsoft.TestPlatform.CoreUtilities.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\pl\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\pt-BR\Microsoft.TestPlatform.CoreUtilities.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\pt-BR\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ru\Microsoft.TestPlatform.CoreUtilities.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ru\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\tr\Microsoft.TestPlatform.CoreUtilities.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\tr\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\zh-Hans\Microsoft.TestPlatform.CoreUtilities.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\zh-Hant\Microsoft.TestPlatform.CoreUtilities.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\cs\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\cs\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\cs\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\de\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\de\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\de\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\es\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\es\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\es\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\fr\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\fr\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\fr\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\it\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\it\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\it\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ja\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ja\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ja\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ko\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ko\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ko\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\pl\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\pl\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\pl\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\pt-BR\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\pt-BR\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\pt-BR\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ru\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ru\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ru\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\tr\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\tr\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\tr\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\zh-Hans\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\zh-Hans\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\zh-Hant\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\zh-Hant\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\cs\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\de\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\es\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\fr\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\it\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ja\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ko\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\pl\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\pt-BR\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ru\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\tr\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\fr-FR\Terminal.Gui.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ja-JP\Terminal.Gui.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\pt-PT\Terminal.Gui.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\zh-Hans\Terminal.Gui.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\StgSharpTerminalDialogue.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\StgSharpTerminalDialogue.pdb
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\obj\Debug\net8.0\StgSharpTest.csproj.AssemblyReference.cache
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\obj\Debug\net8.0\StgSharpTest.GeneratedMSBuildEditorConfig.editorconfig
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\obj\Debug\net8.0\StgSharpTest.AssemblyInfoInputs.cache
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\obj\Debug\net8.0\StgSharpTest.AssemblyInfo.cs
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\obj\Debug\net8.0\StgSharpTest.csproj.CoreCompileInputs.cache
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\obj\Debug\net8.0\StgSharpTest.sourcelink.json
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\obj\Debug\net8.0\StgSharp.94BD3098.Up2Date
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\obj\Debug\net8.0\StgSharpTest.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\obj\Debug\net8.0\refint\StgSharpTest.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\obj\Debug\net8.0\StgSharpTest.pdb
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\obj\Debug\net8.0\StgSharpTest.genruntimeconfig.cache
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\obj\Debug\net8.0\ref\StgSharpTest.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\DiffPlex.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Humanizer.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Microsoft.Bcl.AsyncInterfaces.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Microsoft.CodeAnalysis.Analyzer.Testing.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Microsoft.CodeAnalysis.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Microsoft.CodeAnalysis.CSharp.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.MSTest.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Microsoft.CodeAnalysis.CSharp.Workspaces.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Microsoft.CodeAnalysis.SourceGenerators.Testing.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Microsoft.CodeAnalysis.Testing.Verifiers.MSTest.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Microsoft.CodeAnalysis.Workspaces.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Microsoft.VisualStudio.Composition.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Microsoft.VisualStudio.Composition.NetFxAttributes.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\Microsoft.VisualStudio.Validation.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\NuGet.Common.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\NuGet.Configuration.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\NuGet.Packaging.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\NuGet.Protocol.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\NuGet.Resolver.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\NuGet.Versioning.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\System.ComponentModel.Composition.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\System.Composition.AttributedModel.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\System.Composition.Convention.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\System.Composition.Hosting.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\System.Composition.Runtime.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\System.Composition.TypedParts.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\System.Security.Cryptography.Pkcs.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\System.Security.Cryptography.ProtectedData.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\System.Security.Permissions.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\cs\Microsoft.CodeAnalysis.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\de\Microsoft.CodeAnalysis.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\es\Microsoft.CodeAnalysis.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\fr\Microsoft.CodeAnalysis.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\it\Microsoft.CodeAnalysis.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ja\Microsoft.CodeAnalysis.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ko\Microsoft.CodeAnalysis.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\pl\Microsoft.CodeAnalysis.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\pt-BR\Microsoft.CodeAnalysis.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ru\Microsoft.CodeAnalysis.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\tr\Microsoft.CodeAnalysis.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\zh-Hans\Microsoft.CodeAnalysis.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\zh-Hant\Microsoft.CodeAnalysis.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\cs\Microsoft.CodeAnalysis.CSharp.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\de\Microsoft.CodeAnalysis.CSharp.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\es\Microsoft.CodeAnalysis.CSharp.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\fr\Microsoft.CodeAnalysis.CSharp.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\it\Microsoft.CodeAnalysis.CSharp.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ja\Microsoft.CodeAnalysis.CSharp.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ko\Microsoft.CodeAnalysis.CSharp.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\pl\Microsoft.CodeAnalysis.CSharp.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\pt-BR\Microsoft.CodeAnalysis.CSharp.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ru\Microsoft.CodeAnalysis.CSharp.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\tr\Microsoft.CodeAnalysis.CSharp.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\zh-Hans\Microsoft.CodeAnalysis.CSharp.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\zh-Hant\Microsoft.CodeAnalysis.CSharp.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\cs\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\de\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\es\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\fr\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\it\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ja\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ko\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\pl\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\pt-BR\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ru\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\tr\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\zh-Hans\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\zh-Hant\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\cs\Microsoft.CodeAnalysis.Workspaces.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\de\Microsoft.CodeAnalysis.Workspaces.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\es\Microsoft.CodeAnalysis.Workspaces.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\fr\Microsoft.CodeAnalysis.Workspaces.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\it\Microsoft.CodeAnalysis.Workspaces.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ja\Microsoft.CodeAnalysis.Workspaces.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ko\Microsoft.CodeAnalysis.Workspaces.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\pl\Microsoft.CodeAnalysis.Workspaces.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\pt-BR\Microsoft.CodeAnalysis.Workspaces.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ru\Microsoft.CodeAnalysis.Workspaces.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\tr\Microsoft.CodeAnalysis.Workspaces.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\zh-Hans\Microsoft.CodeAnalysis.Workspaces.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\zh-Hant\Microsoft.CodeAnalysis.Workspaces.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\cs\Microsoft.VisualStudio.Composition.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\de\Microsoft.VisualStudio.Composition.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\es\Microsoft.VisualStudio.Composition.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\fr\Microsoft.VisualStudio.Composition.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\it\Microsoft.VisualStudio.Composition.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ja\Microsoft.VisualStudio.Composition.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ko\Microsoft.VisualStudio.Composition.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\pl\Microsoft.VisualStudio.Composition.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\pt-BR\Microsoft.VisualStudio.Composition.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ru\Microsoft.VisualStudio.Composition.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\tr\Microsoft.VisualStudio.Composition.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.Composition.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.Composition.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\cs\Microsoft.VisualStudio.Validation.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\de\Microsoft.VisualStudio.Validation.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\es\Microsoft.VisualStudio.Validation.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\fr\Microsoft.VisualStudio.Validation.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\it\Microsoft.VisualStudio.Validation.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ja\Microsoft.VisualStudio.Validation.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ko\Microsoft.VisualStudio.Validation.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\pl\Microsoft.VisualStudio.Validation.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\pt-BR\Microsoft.VisualStudio.Validation.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\ru\Microsoft.VisualStudio.Validation.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\tr\Microsoft.VisualStudio.Validation.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.Validation.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.Validation.resources.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\runtimes\win\lib\netcoreapp3.0\System.Security.Cryptography.Pkcs.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\runtimes\win\lib\netstandard2.0\System.Security.Cryptography.ProtectedData.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\StgSharp.Commom.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\StgSharp.Script.dll
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\StgSharp.Script.pdb
-D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\Debug\net8.0\StgSharp.Commom.xml
diff --git a/内核源代码/STgSharpTest/obj/Release/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/内核源代码/STgSharpTest/obj/Release/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs
new file mode 100644
index 00000000..2217181c
--- /dev/null
+++ b/内核源代码/STgSharpTest/obj/Release/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]
diff --git a/内核源代码/STgSharpTest/obj/Release/net8.0/StgSharpTest.AssemblyInfo.cs b/内核源代码/STgSharpTest/obj/Release/net8.0/StgSharpTest.AssemblyInfo.cs
new file mode 100644
index 00000000..6537f127
--- /dev/null
+++ b/内核源代码/STgSharpTest/obj/Release/net8.0/StgSharpTest.AssemblyInfo.cs
@@ -0,0 +1,23 @@
+//------------------------------------------------------------------------------
+//
+// 此代码由工具生成。
+// 运行时版本:4.0.30319.42000
+//
+// 对此文件的更改可能会导致不正确的行为,并且如果
+// 重新生成代码,这些更改将会丢失。
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Reflection;
+
+[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharpTest")]
+[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
+[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e687473132786f419a48170313782d6779890c3d")]
+[assembly: System.Reflection.AssemblyProductAttribute("StgSharpTest")]
+[assembly: System.Reflection.AssemblyTitleAttribute("StgSharpTest")]
+[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
+
+// 由 MSBuild WriteCodeFragment 类生成。
+
diff --git a/内核源代码/STgSharpTest/obj/Release/net8.0/StgSharpTest.GlobalUsings.g.cs b/内核源代码/STgSharpTest/obj/Release/net8.0/StgSharpTest.GlobalUsings.g.cs
new file mode 100644
index 00000000..a1f6d1a8
--- /dev/null
+++ b/内核源代码/STgSharpTest/obj/Release/net8.0/StgSharpTest.GlobalUsings.g.cs
@@ -0,0 +1,9 @@
+//
+global using global::Microsoft.VisualStudio.TestTools.UnitTesting;
+global using global::System;
+global using global::System.Collections.Generic;
+global using global::System.IO;
+global using global::System.Linq;
+global using global::System.Net.Http;
+global using global::System.Threading;
+global using global::System.Threading.Tasks;
diff --git a/内核源代码/STgSharpTest/obj/StgSharpTest.csproj.nuget.dgspec.json b/内核源代码/STgSharpTest/obj/StgSharpTest.csproj.nuget.dgspec.json
index 1b77fe8a..3106c63e 100644
--- a/内核源代码/STgSharpTest/obj/StgSharpTest.csproj.nuget.dgspec.json
+++ b/内核源代码/STgSharpTest/obj/StgSharpTest.csproj.nuget.dgspec.json
@@ -4,14 +4,14 @@
"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\STgSharpTest\\StgSharpTest.csproj": {}
},
"projects": {
- "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Modeling\\StgSharp.Script.csproj": {
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Common\\StgSharp.Common.csproj": {
"version": "1.0.0",
"restore": {
- "projectUniqueName": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Modeling\\StgSharp.Script.csproj",
- "projectName": "StgSharp.Script",
- "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Modeling\\StgSharp.Script.csproj",
+ "projectUniqueName": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Common\\StgSharp.Common.csproj",
+ "projectName": "StgSharp.Common",
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Common\\StgSharp.Common.csproj",
"packagesPath": "C:\\Users\\Youmu\\.nuget\\packages\\",
- "outputPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Modeling\\obj\\",
+ "outputPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Common\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\Youmu\\AppData\\Roaming\\NuGet\\NuGet.Config"
@@ -28,11 +28,7 @@
"frameworks": {
"netstandard2.1": {
"targetAlias": "netstandard2.1",
- "projectReferences": {
- "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp\\StgSharp.Commom.csproj": {
- "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp\\StgSharp.Commom.csproj"
- }
- }
+ "projectReferences": {}
}
},
"warningProperties": {
@@ -50,9 +46,13 @@
"netstandard2.1": {
"targetAlias": "netstandard2.1",
"dependencies": {
- "System.Collections.Immutable": {
+ "Microsoft.CSharp": {
"target": "Package",
- "version": "[8.0.0, )"
+ "version": "[4.7.0, )"
+ },
+ "System.Runtime.CompilerServices.Unsafe": {
+ "target": "Package",
+ "version": "[6.1.0, )"
}
},
"imports": [
@@ -75,14 +75,153 @@
}
}
},
- "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharpTerminalDialogue\\StgSharpTerminalDialogue.csproj": {
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Model\\StgSharp.Model.csproj": {
"version": "1.0.0",
"restore": {
- "projectUniqueName": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharpTerminalDialogue\\StgSharpTerminalDialogue.csproj",
- "projectName": "StgSharpTerminalDialogue",
- "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharpTerminalDialogue\\StgSharpTerminalDialogue.csproj",
+ "projectUniqueName": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Model\\StgSharp.Model.csproj",
+ "projectName": "StgSharp.Model",
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Model\\StgSharp.Model.csproj",
"packagesPath": "C:\\Users\\Youmu\\.nuget\\packages\\",
- "outputPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharpTerminalDialogue\\obj\\",
+ "outputPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Model\\obj\\",
+ "projectStyle": "PackageReference",
+ "configFilePaths": [
+ "C:\\Users\\Youmu\\AppData\\Roaming\\NuGet\\NuGet.Config"
+ ],
+ "originalTargetFrameworks": [
+ "netstandard2.1"
+ ],
+ "sources": {
+ "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
+ "C:\\Program Files\\dotnet\\library-packs": {},
+ "D:\\Programmer\\NugetLocal": {},
+ "https://api.nuget.org/v3/index.json": {}
+ },
+ "frameworks": {
+ "netstandard2.1": {
+ "targetAlias": "netstandard2.1",
+ "projectReferences": {
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Common\\StgSharp.Common.csproj": {
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Common\\StgSharp.Common.csproj"
+ },
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Script\\StgSharp.Script.csproj": {
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Script\\StgSharp.Script.csproj"
+ }
+ }
+ }
+ },
+ "warningProperties": {
+ "warnAsError": [
+ "NU1605"
+ ]
+ },
+ "restoreAuditProperties": {
+ "enableAudit": "true",
+ "auditLevel": "low",
+ "auditMode": "direct"
+ }
+ },
+ "frameworks": {
+ "netstandard2.1": {
+ "targetAlias": "netstandard2.1",
+ "imports": [
+ "net461",
+ "net462",
+ "net47",
+ "net471",
+ "net472",
+ "net48",
+ "net481"
+ ],
+ "assetTargetFallback": true,
+ "warn": true,
+ "frameworkReferences": {
+ "NETStandard.Library": {
+ "privateAssets": "all"
+ }
+ },
+ "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.400\\RuntimeIdentifierGraph.json"
+ }
+ }
+ },
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Script\\StgSharp.Script.csproj": {
+ "version": "1.0.0",
+ "restore": {
+ "projectUniqueName": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Script\\StgSharp.Script.csproj",
+ "projectName": "StgSharp.Script",
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Script\\StgSharp.Script.csproj",
+ "packagesPath": "C:\\Users\\Youmu\\.nuget\\packages\\",
+ "outputPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Script\\obj\\",
+ "projectStyle": "PackageReference",
+ "configFilePaths": [
+ "C:\\Users\\Youmu\\AppData\\Roaming\\NuGet\\NuGet.Config"
+ ],
+ "originalTargetFrameworks": [
+ "netstandard2.1"
+ ],
+ "sources": {
+ "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
+ "C:\\Program Files\\dotnet\\library-packs": {},
+ "D:\\Programmer\\NugetLocal": {},
+ "https://api.nuget.org/v3/index.json": {}
+ },
+ "frameworks": {
+ "netstandard2.1": {
+ "targetAlias": "netstandard2.1",
+ "projectReferences": {
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Common\\StgSharp.Common.csproj": {
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Common\\StgSharp.Common.csproj"
+ }
+ }
+ }
+ },
+ "warningProperties": {
+ "warnAsError": [
+ "NU1605"
+ ]
+ },
+ "restoreAuditProperties": {
+ "enableAudit": "true",
+ "auditLevel": "low",
+ "auditMode": "direct"
+ }
+ },
+ "frameworks": {
+ "netstandard2.1": {
+ "targetAlias": "netstandard2.1",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": {
+ "target": "Package",
+ "version": "[8.4.0, )"
+ }
+ },
+ "imports": [
+ "net461",
+ "net462",
+ "net47",
+ "net471",
+ "net472",
+ "net48",
+ "net481"
+ ],
+ "assetTargetFallback": true,
+ "warn": true,
+ "frameworkReferences": {
+ "NETStandard.Library": {
+ "privateAssets": "all"
+ }
+ },
+ "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.400\\RuntimeIdentifierGraph.json"
+ }
+ }
+ },
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.TerminalDialogue\\StgSharp.TerminalDialogue.csproj": {
+ "version": "1.0.0",
+ "restore": {
+ "projectUniqueName": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.TerminalDialogue\\StgSharp.TerminalDialogue.csproj",
+ "projectName": "StgSharp.TerminalDialogue",
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.TerminalDialogue\\StgSharp.TerminalDialogue.csproj",
+ "packagesPath": "C:\\Users\\Youmu\\.nuget\\packages\\",
+ "outputPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.TerminalDialogue\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\Youmu\\AppData\\Roaming\\NuGet\\NuGet.Config"
@@ -167,14 +306,17 @@
"net8.0": {
"targetAlias": "net8.0",
"projectReferences": {
- "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Modeling\\StgSharp.Script.csproj": {
- "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Modeling\\StgSharp.Script.csproj"
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Common\\StgSharp.Common.csproj": {
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Common\\StgSharp.Common.csproj"
},
- "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharpTerminalDialogue\\StgSharpTerminalDialogue.csproj": {
- "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharpTerminalDialogue\\StgSharpTerminalDialogue.csproj"
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Model\\StgSharp.Model.csproj": {
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Model\\StgSharp.Model.csproj"
},
- "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp\\StgSharp.Commom.csproj": {
- "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp\\StgSharp.Commom.csproj"
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Script\\StgSharp.Script.csproj": {
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Script\\StgSharp.Script.csproj"
+ },
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.TerminalDialogue\\StgSharp.TerminalDialogue.csproj": {
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.TerminalDialogue\\StgSharp.TerminalDialogue.csproj"
}
}
}
@@ -234,77 +376,6 @@
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.400/PortableRuntimeIdentifierGraph.json"
}
}
- },
- "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp\\StgSharp.Commom.csproj": {
- "version": "1.0.0",
- "restore": {
- "projectUniqueName": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp\\StgSharp.Commom.csproj",
- "projectName": "StgSharp.Commom",
- "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp\\StgSharp.Commom.csproj",
- "packagesPath": "C:\\Users\\Youmu\\.nuget\\packages\\",
- "outputPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp\\obj\\",
- "projectStyle": "PackageReference",
- "configFilePaths": [
- "C:\\Users\\Youmu\\AppData\\Roaming\\NuGet\\NuGet.Config"
- ],
- "originalTargetFrameworks": [
- "netstandard2.1"
- ],
- "sources": {
- "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
- "C:\\Program Files\\dotnet\\library-packs": {},
- "D:\\Programmer\\NugetLocal": {},
- "https://api.nuget.org/v3/index.json": {}
- },
- "frameworks": {
- "netstandard2.1": {
- "targetAlias": "netstandard2.1",
- "projectReferences": {}
- }
- },
- "warningProperties": {
- "warnAsError": [
- "NU1605"
- ]
- },
- "restoreAuditProperties": {
- "enableAudit": "true",
- "auditLevel": "low",
- "auditMode": "direct"
- }
- },
- "frameworks": {
- "netstandard2.1": {
- "targetAlias": "netstandard2.1",
- "dependencies": {
- "Microsoft.CSharp": {
- "target": "Package",
- "version": "[4.7.0, )"
- },
- "System.Runtime.CompilerServices.Unsafe": {
- "target": "Package",
- "version": "[6.1.0, )"
- }
- },
- "imports": [
- "net461",
- "net462",
- "net47",
- "net471",
- "net472",
- "net48",
- "net481"
- ],
- "assetTargetFallback": true,
- "warn": true,
- "frameworkReferences": {
- "NETStandard.Library": {
- "privateAssets": "all"
- }
- },
- "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.400\\RuntimeIdentifierGraph.json"
- }
- }
}
}
}
\ No newline at end of file
diff --git a/内核源代码/STgSharpTest/obj/project.assets.json b/内核源代码/STgSharpTest/obj/project.assets.json
index 8b0d9d72..a5cbbe8a 100644
--- a/内核源代码/STgSharpTest/obj/project.assets.json
+++ b/内核源代码/STgSharpTest/obj/project.assets.json
@@ -11,6 +11,19 @@
"lib/netstandard2.0/ColorHelper.dll": {}
}
},
+ "CommunityToolkit.HighPerformance/8.4.0": {
+ "type": "package",
+ "compile": {
+ "lib/net8.0/CommunityToolkit.HighPerformance.dll": {
+ "related": ".pdb;.xml"
+ }
+ },
+ "runtime": {
+ "lib/net8.0/CommunityToolkit.HighPerformance.dll": {
+ "related": ".pdb;.xml"
+ }
+ }
+ },
"coverlet.collector/6.0.0": {
"type": "package",
"build": {
@@ -1318,20 +1331,17 @@
"lib/netstandard1.3/System.Collections.Concurrent.dll": {}
}
},
- "System.Collections.Immutable/8.0.0": {
+ "System.Collections.Immutable/5.0.0": {
"type": "package",
"compile": {
- "lib/net8.0/System.Collections.Immutable.dll": {
+ "lib/netstandard2.0/System.Collections.Immutable.dll": {
"related": ".xml"
}
},
"runtime": {
- "lib/net8.0/System.Collections.Immutable.dll": {
+ "lib/netstandard2.0/System.Collections.Immutable.dll": {
"related": ".xml"
}
- },
- "build": {
- "buildTransitive/net6.0/_._": {}
}
},
"System.ComponentModel.Composition/4.5.0": {
@@ -2761,7 +2771,7 @@
}
}
},
- "StgSharp.Commom/1.0.0": {
+ "StgSharp.Common/1.0.0": {
"type": "project",
"framework": ".NETStandard,Version=v2.1",
"dependencies": {
@@ -2769,18 +2779,32 @@
"System.Runtime.CompilerServices.Unsafe": "6.1.0"
},
"compile": {
- "bin/placeholder/StgSharp.Commom.dll": {}
+ "bin/placeholder/StgSharp.Common.dll": {}
},
"runtime": {
- "bin/placeholder/StgSharp.Commom.dll": {}
+ "bin/placeholder/StgSharp.Common.dll": {}
+ }
+ },
+ "StgSharp.Model/1.0.0": {
+ "type": "project",
+ "framework": ".NETStandard,Version=v2.1",
+ "dependencies": {
+ "StgSharp.Common": "1.0.0",
+ "StgSharp.Script": "1.0.0"
+ },
+ "compile": {
+ "bin/placeholder/StgSharp.Model.dll": {}
+ },
+ "runtime": {
+ "bin/placeholder/StgSharp.Model.dll": {}
}
},
"StgSharp.Script/1.0.0": {
"type": "project",
"framework": ".NETStandard,Version=v2.1",
"dependencies": {
- "StgSharp.Commom": "1.0.0",
- "System.Collections.Immutable": "8.0.0"
+ "CommunityToolkit.HighPerformance": "8.4.0",
+ "StgSharp.Common": "1.0.0"
},
"compile": {
"bin/placeholder/StgSharp.Script.dll": {}
@@ -2789,17 +2813,17 @@
"bin/placeholder/StgSharp.Script.dll": {}
}
},
- "StgSharpTerminalDialogue/1.0.0": {
+ "StgSharp.TerminalDialogue/1.0.0": {
"type": "project",
"framework": ".NETCoreApp,Version=v8.0",
"dependencies": {
"Terminal.Gui": "2.0.0-v2-develop.2329"
},
"compile": {
- "bin/placeholder/StgSharpTerminalDialogue.dll": {}
+ "bin/placeholder/StgSharp.TerminalDialogue.dll": {}
},
"runtime": {
- "bin/placeholder/StgSharpTerminalDialogue.dll": {}
+ "bin/placeholder/StgSharp.TerminalDialogue.dll": {}
}
}
}
@@ -2818,6 +2842,32 @@
"logo.jpg"
]
},
+ "CommunityToolkit.HighPerformance/8.4.0": {
+ "sha512": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg==",
+ "type": "package",
+ "path": "communitytoolkit.highperformance/8.4.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "License.md",
+ "ThirdPartyNotices.txt",
+ "communitytoolkit.highperformance.8.4.0.nupkg.sha512",
+ "communitytoolkit.highperformance.nuspec",
+ "lib/net7.0/CommunityToolkit.HighPerformance.dll",
+ "lib/net7.0/CommunityToolkit.HighPerformance.pdb",
+ "lib/net7.0/CommunityToolkit.HighPerformance.xml",
+ "lib/net8.0/CommunityToolkit.HighPerformance.dll",
+ "lib/net8.0/CommunityToolkit.HighPerformance.pdb",
+ "lib/net8.0/CommunityToolkit.HighPerformance.xml",
+ "lib/netstandard2.0/CommunityToolkit.HighPerformance.dll",
+ "lib/netstandard2.0/CommunityToolkit.HighPerformance.pdb",
+ "lib/netstandard2.0/CommunityToolkit.HighPerformance.xml",
+ "lib/netstandard2.1/CommunityToolkit.HighPerformance.dll",
+ "lib/netstandard2.1/CommunityToolkit.HighPerformance.pdb",
+ "lib/netstandard2.1/CommunityToolkit.HighPerformance.xml"
+ ]
+ },
"coverlet.collector/6.0.0": {
"sha512": "tW3lsNS+dAEII6YGUX/VMoJjBS1QvsxqJeqLaJXub08y1FSjasFPtQ4UBUsudE9PNrzLjooClMsPtY2cZLdXpQ==",
"type": "package",
@@ -4733,34 +4783,30 @@
"system.collections.concurrent.nuspec"
]
},
- "System.Collections.Immutable/8.0.0": {
- "sha512": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==",
+ "System.Collections.Immutable/5.0.0": {
+ "sha512": "FXkLXiK0sVVewcso0imKQoOxjoPAj42R8HtjjbSjVPAzwDfzoyoznWxgA3c38LDbN9SJux1xXoXYAhz98j7r2g==",
"type": "package",
- "path": "system.collections.immutable/8.0.0",
+ "path": "system.collections.immutable/5.0.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"LICENSE.TXT",
- "PACKAGE.md",
"THIRD-PARTY-NOTICES.TXT",
- "buildTransitive/net461/System.Collections.Immutable.targets",
- "buildTransitive/net462/_._",
- "buildTransitive/net6.0/_._",
- "buildTransitive/netcoreapp2.0/System.Collections.Immutable.targets",
- "lib/net462/System.Collections.Immutable.dll",
- "lib/net462/System.Collections.Immutable.xml",
- "lib/net6.0/System.Collections.Immutable.dll",
- "lib/net6.0/System.Collections.Immutable.xml",
- "lib/net7.0/System.Collections.Immutable.dll",
- "lib/net7.0/System.Collections.Immutable.xml",
- "lib/net8.0/System.Collections.Immutable.dll",
- "lib/net8.0/System.Collections.Immutable.xml",
+ "lib/net461/System.Collections.Immutable.dll",
+ "lib/net461/System.Collections.Immutable.xml",
+ "lib/netstandard1.0/System.Collections.Immutable.dll",
+ "lib/netstandard1.0/System.Collections.Immutable.xml",
+ "lib/netstandard1.3/System.Collections.Immutable.dll",
+ "lib/netstandard1.3/System.Collections.Immutable.xml",
"lib/netstandard2.0/System.Collections.Immutable.dll",
"lib/netstandard2.0/System.Collections.Immutable.xml",
- "system.collections.immutable.8.0.0.nupkg.sha512",
+ "lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.dll",
+ "lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.xml",
+ "system.collections.immutable.5.0.0.nupkg.sha512",
"system.collections.immutable.nuspec",
- "useSharedDesignerContext.txt"
+ "useSharedDesignerContext.txt",
+ "version.txt"
]
},
"System.ComponentModel.Composition/4.5.0": {
@@ -8346,20 +8392,25 @@
"wcwidth.nuspec"
]
},
- "StgSharp.Commom/1.0.0": {
+ "StgSharp.Common/1.0.0": {
"type": "project",
- "path": "../StgSharp/StgSharp.Commom.csproj",
- "msbuildProject": "../StgSharp/StgSharp.Commom.csproj"
+ "path": "../StgSharp.Common/StgSharp.Common.csproj",
+ "msbuildProject": "../StgSharp.Common/StgSharp.Common.csproj"
+ },
+ "StgSharp.Model/1.0.0": {
+ "type": "project",
+ "path": "../StgSharp.Model/StgSharp.Model.csproj",
+ "msbuildProject": "../StgSharp.Model/StgSharp.Model.csproj"
},
"StgSharp.Script/1.0.0": {
"type": "project",
- "path": "../StgSharp.Modeling/StgSharp.Script.csproj",
- "msbuildProject": "../StgSharp.Modeling/StgSharp.Script.csproj"
+ "path": "../StgSharp.Script/StgSharp.Script.csproj",
+ "msbuildProject": "../StgSharp.Script/StgSharp.Script.csproj"
},
- "StgSharpTerminalDialogue/1.0.0": {
+ "StgSharp.TerminalDialogue/1.0.0": {
"type": "project",
- "path": "../StgSharpTerminalDialogue/StgSharpTerminalDialogue.csproj",
- "msbuildProject": "../StgSharpTerminalDialogue/StgSharpTerminalDialogue.csproj"
+ "path": "../StgSharp.TerminalDialogue/StgSharp.TerminalDialogue.csproj",
+ "msbuildProject": "../StgSharp.TerminalDialogue/StgSharp.TerminalDialogue.csproj"
}
},
"projectFileDependencyGroups": {
@@ -8368,9 +8419,10 @@
"MSTest.TestFramework >= 3.1.1",
"Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.MSTest >= 1.1.2",
"Microsoft.NET.Test.Sdk >= 17.8.0",
- "StgSharp.Commom >= 1.0.0",
+ "StgSharp.Common >= 1.0.0",
+ "StgSharp.Model >= 1.0.0",
"StgSharp.Script >= 1.0.0",
- "StgSharpTerminalDialogue >= 1.0.0",
+ "StgSharp.TerminalDialogue >= 1.0.0",
"coverlet.collector >= 6.0.0"
]
},
@@ -8402,14 +8454,17 @@
"net8.0": {
"targetAlias": "net8.0",
"projectReferences": {
- "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Modeling\\StgSharp.Script.csproj": {
- "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Modeling\\StgSharp.Script.csproj"
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Common\\StgSharp.Common.csproj": {
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Common\\StgSharp.Common.csproj"
},
- "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharpTerminalDialogue\\StgSharpTerminalDialogue.csproj": {
- "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharpTerminalDialogue\\StgSharpTerminalDialogue.csproj"
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Model\\StgSharp.Model.csproj": {
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Model\\StgSharp.Model.csproj"
},
- "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp\\StgSharp.Commom.csproj": {
- "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp\\StgSharp.Commom.csproj"
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Script\\StgSharp.Script.csproj": {
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Script\\StgSharp.Script.csproj"
+ },
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.TerminalDialogue\\StgSharp.TerminalDialogue.csproj": {
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.TerminalDialogue\\StgSharp.TerminalDialogue.csproj"
}
}
}
diff --git a/内核源代码/STgSharpTest/obj/x64/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/内核源代码/STgSharpTest/obj/x64/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs
new file mode 100644
index 00000000..2217181c
--- /dev/null
+++ b/内核源代码/STgSharpTest/obj/x64/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]
diff --git a/内核源代码/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.AssemblyInfo.cs b/内核源代码/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.AssemblyInfo.cs
new file mode 100644
index 00000000..1feba4f1
--- /dev/null
+++ b/内核源代码/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.AssemblyInfo.cs
@@ -0,0 +1,23 @@
+//------------------------------------------------------------------------------
+//
+// 此代码由工具生成。
+// 运行时版本:4.0.30319.42000
+//
+// 对此文件的更改可能会导致不正确的行为,并且如果
+// 重新生成代码,这些更改将会丢失。
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Reflection;
+
+[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharpTest")]
+[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
+[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e687473132786f419a48170313782d6779890c3d")]
+[assembly: System.Reflection.AssemblyProductAttribute("StgSharpTest")]
+[assembly: System.Reflection.AssemblyTitleAttribute("StgSharpTest")]
+[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
+
+// 由 MSBuild WriteCodeFragment 类生成。
+
diff --git a/内核源代码/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.GlobalUsings.g.cs b/内核源代码/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.GlobalUsings.g.cs
new file mode 100644
index 00000000..a1f6d1a8
--- /dev/null
+++ b/内核源代码/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.GlobalUsings.g.cs
@@ -0,0 +1,9 @@
+//
+global using global::Microsoft.VisualStudio.TestTools.UnitTesting;
+global using global::System;
+global using global::System.Collections.Generic;
+global using global::System.IO;
+global using global::System.Linq;
+global using global::System.Net.Http;
+global using global::System.Threading;
+global using global::System.Threading.Tasks;
diff --git a/内核源代码/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.csproj.FileListAbsolute.txt b/内核源代码/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.csproj.FileListAbsolute.txt
new file mode 100644
index 00000000..877d9d70
--- /dev/null
+++ b/内核源代码/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.csproj.FileListAbsolute.txt
@@ -0,0 +1,246 @@
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\CoverletSourceRootsMapping_StgSharpTest
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\testhost.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\StgSharp.TerminalDialogue.deps.json
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\StgSharp.TerminalDialogue.runtimeconfig.json
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\StgSharp.TerminalDialogue.exe
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\testhost.exe
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Microsoft.TestPlatform.AdapterUtilities.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\StgSharpTest.deps.json
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\StgSharpTest.runtimeconfig.json
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\StgSharpTest.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\StgSharpTest.pdb
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ColorHelper.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\CommunityToolkit.HighPerformance.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\DiffPlex.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Humanizer.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Microsoft.Bcl.AsyncInterfaces.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Microsoft.CodeAnalysis.Analyzer.Testing.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Microsoft.CodeAnalysis.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Microsoft.CodeAnalysis.CSharp.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.MSTest.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Microsoft.CodeAnalysis.CSharp.Workspaces.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Microsoft.CodeAnalysis.SourceGenerators.Testing.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Microsoft.CodeAnalysis.Testing.Verifiers.MSTest.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Microsoft.CodeAnalysis.Workspaces.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Microsoft.VisualStudio.CodeCoverage.Shim.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Microsoft.TestPlatform.CoreUtilities.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Microsoft.TestPlatform.PlatformAbstractions.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Microsoft.TestPlatform.CommunicationUtilities.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Microsoft.TestPlatform.CrossPlatEngine.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Microsoft.TestPlatform.Utilities.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.Common.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Microsoft.VisualStudio.Composition.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Microsoft.VisualStudio.Composition.NetFxAttributes.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Microsoft.VisualStudio.Validation.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.TestFramework.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Newtonsoft.Json.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\NuGet.Common.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\NuGet.Configuration.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\NuGet.Frameworks.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\NuGet.Packaging.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\NuGet.Protocol.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\NuGet.Resolver.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\NuGet.Versioning.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\System.ComponentModel.Composition.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\System.Composition.AttributedModel.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\System.Composition.Convention.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\System.Composition.Hosting.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\System.Composition.Runtime.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\System.Composition.TypedParts.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\System.IO.Abstractions.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\System.Security.Cryptography.Pkcs.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\System.Security.Cryptography.ProtectedData.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\System.Security.Permissions.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Terminal.Gui.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\TestableIO.System.IO.Abstractions.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\TestableIO.System.IO.Abstractions.Wrappers.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Wcwidth.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\cs\Microsoft.CodeAnalysis.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\de\Microsoft.CodeAnalysis.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\es\Microsoft.CodeAnalysis.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\fr\Microsoft.CodeAnalysis.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\it\Microsoft.CodeAnalysis.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ja\Microsoft.CodeAnalysis.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ko\Microsoft.CodeAnalysis.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\pl\Microsoft.CodeAnalysis.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\pt-BR\Microsoft.CodeAnalysis.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ru\Microsoft.CodeAnalysis.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\tr\Microsoft.CodeAnalysis.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\zh-Hans\Microsoft.CodeAnalysis.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\zh-Hant\Microsoft.CodeAnalysis.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\cs\Microsoft.CodeAnalysis.CSharp.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\de\Microsoft.CodeAnalysis.CSharp.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\es\Microsoft.CodeAnalysis.CSharp.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\fr\Microsoft.CodeAnalysis.CSharp.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\it\Microsoft.CodeAnalysis.CSharp.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ja\Microsoft.CodeAnalysis.CSharp.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ko\Microsoft.CodeAnalysis.CSharp.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\pl\Microsoft.CodeAnalysis.CSharp.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\pt-BR\Microsoft.CodeAnalysis.CSharp.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ru\Microsoft.CodeAnalysis.CSharp.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\tr\Microsoft.CodeAnalysis.CSharp.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\zh-Hans\Microsoft.CodeAnalysis.CSharp.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\zh-Hant\Microsoft.CodeAnalysis.CSharp.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\cs\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\de\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\es\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\fr\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\it\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ja\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ko\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\pl\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\pt-BR\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ru\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\tr\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\zh-Hans\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\zh-Hant\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\cs\Microsoft.CodeAnalysis.Workspaces.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\de\Microsoft.CodeAnalysis.Workspaces.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\es\Microsoft.CodeAnalysis.Workspaces.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\fr\Microsoft.CodeAnalysis.Workspaces.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\it\Microsoft.CodeAnalysis.Workspaces.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ja\Microsoft.CodeAnalysis.Workspaces.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ko\Microsoft.CodeAnalysis.Workspaces.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\pl\Microsoft.CodeAnalysis.Workspaces.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\pt-BR\Microsoft.CodeAnalysis.Workspaces.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ru\Microsoft.CodeAnalysis.Workspaces.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\tr\Microsoft.CodeAnalysis.Workspaces.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\zh-Hans\Microsoft.CodeAnalysis.Workspaces.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\zh-Hant\Microsoft.CodeAnalysis.Workspaces.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\cs\Microsoft.TestPlatform.CoreUtilities.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\cs\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\de\Microsoft.TestPlatform.CoreUtilities.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\de\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\es\Microsoft.TestPlatform.CoreUtilities.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\es\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\fr\Microsoft.TestPlatform.CoreUtilities.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\fr\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\it\Microsoft.TestPlatform.CoreUtilities.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\it\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ja\Microsoft.TestPlatform.CoreUtilities.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ja\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ko\Microsoft.TestPlatform.CoreUtilities.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ko\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\pl\Microsoft.TestPlatform.CoreUtilities.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\pl\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\pt-BR\Microsoft.TestPlatform.CoreUtilities.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\pt-BR\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ru\Microsoft.TestPlatform.CoreUtilities.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ru\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\tr\Microsoft.TestPlatform.CoreUtilities.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\tr\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\zh-Hans\Microsoft.TestPlatform.CoreUtilities.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\zh-Hant\Microsoft.TestPlatform.CoreUtilities.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\cs\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\cs\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\cs\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\de\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\de\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\de\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\es\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\es\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\es\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\fr\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\fr\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\fr\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\it\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\it\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\it\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ja\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ja\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ja\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ko\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ko\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ko\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\pl\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\pl\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\pl\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\pt-BR\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\pt-BR\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\pt-BR\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ru\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ru\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ru\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\tr\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\tr\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\tr\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\zh-Hans\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\zh-Hans\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\zh-Hant\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\zh-Hant\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\cs\Microsoft.VisualStudio.Composition.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\de\Microsoft.VisualStudio.Composition.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\es\Microsoft.VisualStudio.Composition.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\fr\Microsoft.VisualStudio.Composition.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\it\Microsoft.VisualStudio.Composition.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ja\Microsoft.VisualStudio.Composition.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ko\Microsoft.VisualStudio.Composition.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\pl\Microsoft.VisualStudio.Composition.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\pt-BR\Microsoft.VisualStudio.Composition.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ru\Microsoft.VisualStudio.Composition.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\tr\Microsoft.VisualStudio.Composition.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.Composition.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.Composition.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\cs\Microsoft.VisualStudio.Validation.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\de\Microsoft.VisualStudio.Validation.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\es\Microsoft.VisualStudio.Validation.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\fr\Microsoft.VisualStudio.Validation.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\it\Microsoft.VisualStudio.Validation.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ja\Microsoft.VisualStudio.Validation.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ko\Microsoft.VisualStudio.Validation.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\pl\Microsoft.VisualStudio.Validation.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\pt-BR\Microsoft.VisualStudio.Validation.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ru\Microsoft.VisualStudio.Validation.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\tr\Microsoft.VisualStudio.Validation.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.Validation.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.Validation.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\cs\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\de\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\es\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\fr\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\it\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ja\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ko\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\pl\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\pt-BR\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ru\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\tr\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\fr-FR\Terminal.Gui.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\ja-JP\Terminal.Gui.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\pt-PT\Terminal.Gui.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\zh-Hans\Terminal.Gui.resources.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\runtimes\win\lib\netcoreapp3.0\System.Security.Cryptography.Pkcs.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\runtimes\win\lib\netstandard2.0\System.Security.Cryptography.ProtectedData.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\StgSharp.Common.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\StgSharp.Model.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\StgSharp.Script.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\StgSharp.TerminalDialogue.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\StgSharp.Common.pdb
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\StgSharp.Common.xml
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\StgSharp.Model.pdb
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\StgSharp.Script.pdb
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\StgSharp.TerminalDialogue.pdb
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\bin\x64\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\obj\x64\Debug\net8.0\StgSharpTest.csproj.AssemblyReference.cache
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\obj\x64\Debug\net8.0\StgSharpTest.GeneratedMSBuildEditorConfig.editorconfig
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\obj\x64\Debug\net8.0\StgSharpTest.AssemblyInfoInputs.cache
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\obj\x64\Debug\net8.0\StgSharpTest.AssemblyInfo.cs
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\obj\x64\Debug\net8.0\StgSharpTest.csproj.CoreCompileInputs.cache
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\obj\x64\Debug\net8.0\StgSharpTest.sourcelink.json
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\obj\x64\Debug\net8.0\StgSharp.94BD3098.Up2Date
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\obj\x64\Debug\net8.0\StgSharpTest.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\obj\x64\Debug\net8.0\refint\StgSharpTest.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\obj\x64\Debug\net8.0\StgSharpTest.pdb
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\obj\x64\Debug\net8.0\StgSharpTest.genruntimeconfig.cache
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\STgSharpTest\obj\x64\Debug\net8.0\ref\StgSharpTest.dll
diff --git a/内核源代码/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.sourcelink.json b/内核源代码/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.sourcelink.json
new file mode 100644
index 00000000..d30ebc07
--- /dev/null
+++ b/内核源代码/STgSharpTest/obj/x64/Debug/net8.0/StgSharpTest.sourcelink.json
@@ -0,0 +1 @@
+{"documents":{"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\*":"https://raw.githubusercontent.com/Nitload-NSI/CCD_Github/e687473132786f419a48170313782d6779890c3d/*"}}
\ No newline at end of file
diff --git a/内核源代码/STgSharpTest/obj/x64/Release/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/内核源代码/STgSharpTest/obj/x64/Release/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs
new file mode 100644
index 00000000..2217181c
--- /dev/null
+++ b/内核源代码/STgSharpTest/obj/x64/Release/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]
diff --git a/内核源代码/STgSharpTest/obj/x64/Release/net8.0/StgSharpTest.AssemblyInfo.cs b/内核源代码/STgSharpTest/obj/x64/Release/net8.0/StgSharpTest.AssemblyInfo.cs
new file mode 100644
index 00000000..6537f127
--- /dev/null
+++ b/内核源代码/STgSharpTest/obj/x64/Release/net8.0/StgSharpTest.AssemblyInfo.cs
@@ -0,0 +1,23 @@
+//------------------------------------------------------------------------------
+//
+// 此代码由工具生成。
+// 运行时版本:4.0.30319.42000
+//
+// 对此文件的更改可能会导致不正确的行为,并且如果
+// 重新生成代码,这些更改将会丢失。
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Reflection;
+
+[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharpTest")]
+[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
+[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e687473132786f419a48170313782d6779890c3d")]
+[assembly: System.Reflection.AssemblyProductAttribute("StgSharpTest")]
+[assembly: System.Reflection.AssemblyTitleAttribute("StgSharpTest")]
+[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
+
+// 由 MSBuild WriteCodeFragment 类生成。
+
diff --git a/内核源代码/STgSharpTest/obj/x64/Release/net8.0/StgSharpTest.GlobalUsings.g.cs b/内核源代码/STgSharpTest/obj/x64/Release/net8.0/StgSharpTest.GlobalUsings.g.cs
new file mode 100644
index 00000000..a1f6d1a8
--- /dev/null
+++ b/内核源代码/STgSharpTest/obj/x64/Release/net8.0/StgSharpTest.GlobalUsings.g.cs
@@ -0,0 +1,9 @@
+//
+global using global::Microsoft.VisualStudio.TestTools.UnitTesting;
+global using global::System;
+global using global::System.Collections.Generic;
+global using global::System.IO;
+global using global::System.Linq;
+global using global::System.Net.Http;
+global using global::System.Threading;
+global using global::System.Threading.Tasks;
diff --git a/内核源代码/StgSgharp.Generator/Blueprint/BlueprintNodeAttribute.cs b/内核源代码/StgSgharp.Generator/Blueprint/BlueprintNodeAttribute.cs
new file mode 100644
index 00000000..eb5ddc8b
--- /dev/null
+++ b/内核源代码/StgSgharp.Generator/Blueprint/BlueprintNodeAttribute.cs
@@ -0,0 +1,39 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="BlueprintNodeAttribute.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace StgSharp.Blueprint
+{
+ [AttributeUsage( AttributeTargets.Method, AllowMultiple = false )]
+ public class BlueprintNodeExecutionAttribute : Attribute { }
+}
diff --git a/内核源代码/StgSgharp.Generator/Collections/PartialDictionary.cs b/内核源代码/StgSgharp.Generator/Collections/PartialDictionary.cs
new file mode 100644
index 00000000..bf3f5c8b
--- /dev/null
+++ b/内核源代码/StgSgharp.Generator/Collections/PartialDictionary.cs
@@ -0,0 +1,165 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="PartialDictionary.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace StgSharp.Collections
+{
+ public partial class PartialDictionary : IDictionary
+ {
+
+ private readonly Dictionary _source;
+ private readonly HashSet _keys;
+ private readonly PartialDictionaryValues _values;
+
+ public PartialDictionary(
+ Dictionary source,
+ TKey[] index )
+ {
+ _source = source;
+ _keys = new HashSet( index );
+ foreach( TKey item in _keys ) {
+ if( !_source.ContainsKey( item ) ) {
+ _source.Add( item, default! );
+ }
+ }
+ _values = new PartialDictionaryValues( this );
+ }
+
+ public PartialDictionary(
+ Dictionary source,
+ HashSet keys )
+ {
+ _source = source;
+ _keys = keys;
+ foreach( TKey item in _keys ) {
+ if( !_source.ContainsKey( item ) ) {
+ _source.Add( item, default! );
+ }
+ }
+ _values = new PartialDictionaryValues( this );
+ }
+
+ public TValue this[ TKey key ]
+ {
+ get
+ {
+ if( _keys.Contains( key ) ) {
+ return _source[ key ];
+ }
+ throw new KeyNotFoundException();
+ }
+ set
+ {
+ if( _keys.Contains( key ) ) {
+ _source[ key ] = value;
+ }
+ throw new KeyNotFoundException();
+ }
+ }
+
+ public ICollection Keys => _keys;
+
+ public ICollection Values => _values;
+
+ public int Count => _keys.Count;
+
+ public bool Contains( KeyValuePair item )
+ {
+ return _keys.Contains( item.Key ) && _source.Contains( item );
+ }
+
+ public bool ContainsKey( TKey key )
+ {
+ return _keys.Contains( key );
+ }
+
+ public void CopyTo( KeyValuePair[] array, int arrayIndex )
+ {
+ throw new NotImplementedException();
+ }
+
+ public IEnumerator> GetEnumerator()
+ {
+ foreach( TKey item in _keys ) {
+ yield return new KeyValuePair(item, _source[item]);
+ }
+ }
+
+ public bool TryGetValue( TKey key, out TValue value )
+ {
+ if( _keys.Contains( key ) ) {
+ value = _source[ key ];
+ return true;
+ }
+ value = default!;
+ return false;
+ }
+
+ void ICollection>.Add(
+ KeyValuePair item )
+ {
+ return;
+ }
+
+ void ICollection>.Clear()
+ {
+ throw new NotSupportedException();
+ }
+
+ bool ICollection>.IsReadOnly => true;
+
+ bool ICollection>.Remove(
+ KeyValuePair item )
+ {
+ throw new NotSupportedException();
+ }
+
+ void IDictionary.Add( TKey key, TValue value )
+ {
+ return;
+ }
+
+ bool IDictionary.Remove( TKey key )
+ {
+ throw new NotSupportedException();
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+
+ }
+}
diff --git a/内核源代码/StgSgharp.Generator/Collections/PartialDictionaryValues.cs b/内核源代码/StgSgharp.Generator/Collections/PartialDictionaryValues.cs
new file mode 100644
index 00000000..e429cd73
--- /dev/null
+++ b/内核源代码/StgSgharp.Generator/Collections/PartialDictionaryValues.cs
@@ -0,0 +1,108 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="PartialDictionaryValues.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text;
+
+namespace StgSharp.Collections
+{
+ public partial class PartialDictionary
+ {
+
+ internal sealed class PartialDictionaryValues : ICollection
+ {
+
+ private readonly PartialDictionary _values;
+
+ public PartialDictionaryValues(
+ PartialDictionary value )
+ {
+ _values = value;
+ }
+
+ public bool IsReadOnly => true;
+
+ public int Count => _values.Count;
+
+ void ICollection.Add( TValue item )
+ {
+ return;
+ }
+
+ void ICollection.Clear()
+ {
+ return;
+ }
+
+ public bool Contains( TValue item )
+ {
+ foreach (var kvp in _values)
+ {
+ if (kvp.Value != null && kvp.Value.Equals(item))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public void CopyTo( TValue[] array, int arrayIndex )
+ {
+ foreach (var kvp in _values)
+ {
+ array[arrayIndex] = kvp.Value;
+ arrayIndex++;
+ }
+ }
+
+ public IEnumerator GetEnumerator()
+ {
+ foreach (var key in _values._keys)
+ {
+ yield return _values._source[key];
+ }
+ }
+
+ bool ICollection.Remove( TValue item )
+ {
+ throw new NotSupportedException();
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+
+ }
+
+ }
+}
diff --git a/内核源代码/StgSgharp.Generator/ExpCodeGenerator.cs b/内核源代码/StgSgharp.Generator/ExpCodeGenerator.cs
new file mode 100644
index 00000000..9297d1a5
--- /dev/null
+++ b/内核源代码/StgSgharp.Generator/ExpCodeGenerator.cs
@@ -0,0 +1,20 @@
+using Microsoft.CodeAnalysis;
+
+using System;
+
+namespace StgSgharp.Generator.Expression
+{
+ [Generator]
+ public class ExpCodeGenerator : ISourceGenerator
+ {
+ public void Execute(GeneratorExecutionContext context)
+ {
+ throw new NotImplementedException();
+ }
+
+ public void Initialize(GeneratorInitializationContext context)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/内核源代码/StgSgharp.Generator/ExpReader.cs b/内核源代码/StgSgharp.Generator/ExpReader.cs
new file mode 100644
index 00000000..1e796a46
--- /dev/null
+++ b/内核源代码/StgSgharp.Generator/ExpReader.cs
@@ -0,0 +1,89 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="ExpReader.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using Microsoft.CodeAnalysis.CSharp.Syntax;
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.IO.MemoryMappedFiles;
+using System.Text;
+
+namespace StgSgharp.Generator.Expression
+{
+ internal class ExpFileReader:IDisposable
+ {
+ private FileStream _expFileStream;
+ private MemoryMappedFile _expMemoryMappedFile;
+ private bool disposedValue;
+
+ public ExpFileReader( string path )
+ {
+ if( !File.Exists( path ) ) {
+ throw new FileNotFoundException();
+ }
+ _expFileStream = new FileStream(
+ path, FileMode.Open, FileAccess.Read );
+ _expMemoryMappedFile = MemoryMappedFile.CreateFromFile(
+ _expFileStream, null, 0, MemoryMappedFileAccess.Read,
+ HandleInheritability.None, true );
+ }
+
+ protected virtual void Dispose(bool disposing)
+ {
+ if (!disposedValue)
+ {
+ if (disposing)
+ {
+ _expFileStream.Dispose();
+ _expMemoryMappedFile.Dispose();
+ }
+
+ disposedValue = true;
+ }
+ }
+
+ // ~ExpFileReader()
+ // {
+ // Dispose(disposing: false);
+ // }
+
+ public void Dispose()
+ {
+ Dispose(disposing: true);
+ GC.SuppressFinalize(this);
+ }
+
+ public MemoryMappedViewStream CreateMemoryStram()
+ {
+ return _expMemoryMappedFile.CreateViewStream();
+ }
+ }
+}
diff --git a/内核源代码/StgSgharp.Generator/ExpressionReader/ExpReader.cs b/内核源代码/StgSgharp.Generator/ExpressionReader/ExpReader.cs
new file mode 100644
index 00000000..ed52605c
--- /dev/null
+++ b/内核源代码/StgSgharp.Generator/ExpressionReader/ExpReader.cs
@@ -0,0 +1,88 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="ExpReader.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using Microsoft.CodeAnalysis.CSharp.Syntax;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.IO.MemoryMappedFiles;
+using System.Text;
+
+namespace StgSharp.Expression
+{
+ internal class ExpFileReader : IDisposable
+ {
+
+ private bool disposedValue;
+ private FileStream _expFileStream;
+ private MemoryMappedFile _expMemoryMappedFile;
+
+ public ExpFileReader( string path )
+ {
+ if( !File.Exists( path ) ) {
+ throw new FileNotFoundException();
+ }
+ _expFileStream = new FileStream(
+ path, FileMode.Open, FileAccess.Read );
+ _expMemoryMappedFile = MemoryMappedFile.CreateFromFile(
+ _expFileStream, null, 0, MemoryMappedFileAccess.Read,
+ HandleInheritability.None, true );
+ }
+
+ public MemoryMappedViewStream CreateMemoryStram()
+ {
+ return _expMemoryMappedFile.CreateViewStream();
+ }
+
+ // ~ExpFileReader()
+ // {
+ // Dispose(disposing: false);
+ // }
+
+ public void Dispose()
+ {
+ Dispose( disposing: true );
+ GC.SuppressFinalize( this );
+ }
+
+ protected virtual void Dispose( bool disposing )
+ {
+ if( !disposedValue ) {
+ if( disposing ) {
+ _expFileStream.Dispose();
+ _expMemoryMappedFile.Dispose();
+ }
+
+ disposedValue = true;
+ }
+ }
+
+ }
+}
diff --git a/内核源代码/StgSgharp.Generator/FakeType/PartialDictionary.cs b/内核源代码/StgSgharp.Generator/FakeType/PartialDictionary.cs
new file mode 100644
index 00000000..96a48513
--- /dev/null
+++ b/内核源代码/StgSgharp.Generator/FakeType/PartialDictionary.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Runtime.CompilerServices;
+using System.Text;
+
+//[assembly: InternalsVisibleTo("StgSharp.Generator")]
+namespace StgSharp.Generator.FakeType
+{
+ internal class PartialDictionary
+ {
+ }
+}
diff --git a/内核源代码/StgSgharp.Generator/SourceGenerator/BpNodeGenerator.cs b/内核源代码/StgSgharp.Generator/SourceGenerator/BpNodeGenerator.cs
new file mode 100644
index 00000000..e70739e9
--- /dev/null
+++ b/内核源代码/StgSgharp.Generator/SourceGenerator/BpNodeGenerator.cs
@@ -0,0 +1,119 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="BpNodeGenerator.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using Microsoft.CodeAnalysis;
+using Microsoft.CodeAnalysis.CSharp;
+using Microsoft.CodeAnalysis.CSharp.Syntax;
+using Microsoft.CodeAnalysis.Text;
+
+using StgSharp.Blueprint;
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace StgSharp.Generator
+{
+ internal class BpNodeSyntaxReceiver : ISyntaxReceiver
+ {
+ private static readonly string _indexTypeName = typeof( PartialDictionary ).Name;
+ private static BpNodeSyntaxReceiver receiver = new BpNodeSyntaxReceiver();
+
+ public List ValidMethod { get; private set; } = new List();
+ public List InvalidMethod { get; private set; } = new List();
+
+ public BpNodeSyntaxReceiver()
+ {
+
+ }
+
+ public BpNodeSyntaxReceiver(SyntaxNode node)
+ {
+ OnVisitSyntaxNode(node);
+ }
+
+ public void OnVisitSyntaxNode( SyntaxNode syntaxNode )
+ {
+ if( syntaxNode is MethodDeclarationSyntax mds && mds.AttributeLists
+ .SelectMany( list => list.Attributes )
+ .Any( syntax => syntax.Name.ToString() ==
+ typeof( BlueprintNodeExecutionAttribute ).Name ) ) {
+ SeparatedSyntaxList paramList = mds.ParameterList.Parameters;
+ if( mds.Modifiers.Any( SyntaxKind.StaticKeyword ) && paramList.Count ==
+ 2 && paramList[ 0 ].Type!.ToString() == _indexTypeName && paramList[
+ 1 ].Type!.ToString() ==
+ _indexTypeName ) {
+ ValidMethod.Add(mds);
+ }
+ else
+ {
+ InvalidMethod.Add(mds);
+ }
+ }
+ }
+
+ public static void BuildNode(SourceProductionContext context, MethodDeclarationSyntax mds)
+ {
+ if (mds.AttributeLists
+ .SelectMany(list => list.Attributes)
+ .Any(syntax => syntax.Name.ToString() ==
+ typeof(BlueprintNodeExecutionAttribute).Name))
+ {
+ SeparatedSyntaxList paramList = mds.ParameterList.Parameters;
+ if (mds.Modifiers.Any(SyntaxKind.StaticKeyword) && paramList.Count ==
+ 2 && paramList[0].Type!.ToString() == _indexTypeName && paramList[
+ 1].Type!.ToString() ==
+ _indexTypeName)
+ {
+ var methodName = mds.Identifier.Text;
+ var sourceText = SourceText.From( """
+
+ """,encoding:Encoding.UTF8);
+ context.AddSource("GeneratedBlueprintNode.cs", sourceText);
+ }
+ else
+ {
+ var diagnostic = Diagnostic.Create(
+ new DiagnosticDescriptor(
+ id:"SSE0001",
+ title: "Invalid Blueprint Node Method",
+ messageFormat: "Blueprint Node Method must be static and have two parameters of type PartialDictionary",
+ category: "Blueprint Node",
+ DiagnosticSeverity.Error,
+ isEnabledByDefault: true),
+ mds.GetLocation(),mds.Identifier.Text);
+
+ context.ReportDiagnostic(diagnostic);
+ }
+ }
+ }
+ }
+}
diff --git a/内核源代码/StgSgharp.Generator/SourceGenerator/MainGenerator.cs b/内核源代码/StgSgharp.Generator/SourceGenerator/MainGenerator.cs
new file mode 100644
index 00000000..31b1c6cd
--- /dev/null
+++ b/内核源代码/StgSgharp.Generator/SourceGenerator/MainGenerator.cs
@@ -0,0 +1,52 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="ExpCodeGenerator.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using Microsoft.CodeAnalysis;
+using Microsoft.CodeAnalysis.CSharp.Syntax;
+
+using System;
+
+namespace StgSharp.Generator
+{
+ [Generator]
+ public partial class MainGenerator : IIncrementalGenerator
+ {
+ public void Initialize(IncrementalGeneratorInitializationContext context)
+ {
+ var declaration =
+ context.SyntaxProvider.CreateSyntaxProvider(
+ predicate: static (s,_) => s is MethodDeclarationSyntax,
+ transform: static (cds,_) => (MethodDeclarationSyntax)cds.Node
+ ).Where(static m=>m!=null);
+
+ context.RegisterSourceOutput(declaration, BpNodeSyntaxReceiver.BuildNode);
+ }
+ }
+}
diff --git a/内核源代码/StgSgharp.Generator/StgSgharp.Generator.Expression.csproj b/内核源代码/StgSgharp.Generator/StgSgharp.Generator.Expression.csproj
new file mode 100644
index 00000000..61fdbab8
--- /dev/null
+++ b/内核源代码/StgSgharp.Generator/StgSgharp.Generator.Expression.csproj
@@ -0,0 +1,14 @@
+
+
+
+ netstandard2.0
+ enable
+ preview
+ True
+
+
+
+
+
+
+
diff --git a/内核源代码/StgSgharp.Generator/StgSharp.Generator.csproj b/内核源代码/StgSgharp.Generator/StgSharp.Generator.csproj
new file mode 100644
index 00000000..a53de187
--- /dev/null
+++ b/内核源代码/StgSgharp.Generator/StgSharp.Generator.csproj
@@ -0,0 +1,15 @@
+
+
+
+ netstandard2.0
+ enable
+ preview
+ True
+ AnyCPU;x64
+
+
+
+
+
+
+
diff --git a/内核源代码/StgSgharp.Generator/bin/x64/Debug/netstandard2.0/StgSharp.Generator.deps.json b/内核源代码/StgSgharp.Generator/bin/x64/Debug/netstandard2.0/StgSharp.Generator.deps.json
new file mode 100644
index 00000000..6ed25ce5
--- /dev/null
+++ b/内核源代码/StgSgharp.Generator/bin/x64/Debug/netstandard2.0/StgSharp.Generator.deps.json
@@ -0,0 +1,331 @@
+{
+ "runtimeTarget": {
+ "name": ".NETStandard,Version=v2.0/",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETStandard,Version=v2.0": {},
+ ".NETStandard,Version=v2.0/": {
+ "StgSharp.Generator/1.0.0": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.CSharp": "4.12.0",
+ "NETStandard.Library": "2.0.3"
+ },
+ "runtime": {
+ "StgSharp.Generator.dll": {}
+ }
+ },
+ "Microsoft.CodeAnalysis.Analyzers/3.3.4": {},
+ "Microsoft.CodeAnalysis.Common/4.12.0": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Analyzers": "3.3.4",
+ "System.Buffers": "4.5.1",
+ "System.Collections.Immutable": "8.0.0",
+ "System.Memory": "4.5.5",
+ "System.Numerics.Vectors": "4.5.0",
+ "System.Reflection.Metadata": "8.0.0",
+ "System.Runtime.CompilerServices.Unsafe": "6.0.0",
+ "System.Text.Encoding.CodePages": "7.0.0",
+ "System.Threading.Tasks.Extensions": "4.5.4"
+ },
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.dll": {
+ "assemblyVersion": "4.12.0.0",
+ "fileVersion": "4.1200.24.57207"
+ }
+ },
+ "resources": {
+ "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard2.0/de/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard2.0/es/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard2.0/it/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.CSharp/4.12.0": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Analyzers": "3.3.4",
+ "Microsoft.CodeAnalysis.Common": "4.12.0",
+ "System.Buffers": "4.5.1",
+ "System.Collections.Immutable": "8.0.0",
+ "System.Memory": "4.5.5",
+ "System.Numerics.Vectors": "4.5.0",
+ "System.Reflection.Metadata": "8.0.0",
+ "System.Runtime.CompilerServices.Unsafe": "6.0.0",
+ "System.Text.Encoding.CodePages": "7.0.0",
+ "System.Threading.Tasks.Extensions": "4.5.4"
+ },
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.dll": {
+ "assemblyVersion": "4.12.0.0",
+ "fileVersion": "4.1200.24.57207"
+ }
+ },
+ "resources": {
+ "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard2.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard2.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard2.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.NETCore.Platforms/1.1.0": {},
+ "NETStandard.Library/2.0.3": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0"
+ }
+ },
+ "System.Buffers/4.5.1": {
+ "runtime": {
+ "lib/netstandard2.0/System.Buffers.dll": {
+ "assemblyVersion": "4.0.3.0",
+ "fileVersion": "4.6.28619.1"
+ }
+ }
+ },
+ "System.Collections.Immutable/8.0.0": {
+ "dependencies": {
+ "System.Memory": "4.5.5",
+ "System.Runtime.CompilerServices.Unsafe": "6.0.0"
+ },
+ "runtime": {
+ "lib/netstandard2.0/System.Collections.Immutable.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Memory/4.5.5": {
+ "dependencies": {
+ "System.Buffers": "4.5.1",
+ "System.Numerics.Vectors": "4.5.0",
+ "System.Runtime.CompilerServices.Unsafe": "6.0.0"
+ },
+ "runtime": {
+ "lib/netstandard2.0/System.Memory.dll": {
+ "assemblyVersion": "4.0.1.2",
+ "fileVersion": "4.6.31308.1"
+ }
+ }
+ },
+ "System.Numerics.Vectors/4.5.0": {
+ "runtime": {
+ "lib/netstandard2.0/System.Numerics.Vectors.dll": {
+ "assemblyVersion": "4.1.4.0",
+ "fileVersion": "4.6.26515.6"
+ }
+ }
+ },
+ "System.Reflection.Metadata/8.0.0": {
+ "dependencies": {
+ "System.Collections.Immutable": "8.0.0",
+ "System.Memory": "4.5.5"
+ },
+ "runtime": {
+ "lib/netstandard2.0/System.Reflection.Metadata.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Runtime.CompilerServices.Unsafe/6.0.0": {
+ "runtime": {
+ "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.21.52210"
+ }
+ }
+ },
+ "System.Text.Encoding.CodePages/7.0.0": {
+ "dependencies": {
+ "System.Memory": "4.5.5",
+ "System.Runtime.CompilerServices.Unsafe": "6.0.0"
+ },
+ "runtime": {
+ "lib/netstandard2.0/System.Text.Encoding.CodePages.dll": {
+ "assemblyVersion": "7.0.0.0",
+ "fileVersion": "7.0.22.51805"
+ }
+ }
+ },
+ "System.Threading.Tasks.Extensions/4.5.4": {
+ "dependencies": {
+ "System.Runtime.CompilerServices.Unsafe": "6.0.0"
+ },
+ "runtime": {
+ "lib/netstandard2.0/System.Threading.Tasks.Extensions.dll": {
+ "assemblyVersion": "4.2.0.1",
+ "fileVersion": "4.6.28619.1"
+ }
+ }
+ }
+ }
+ },
+ "libraries": {
+ "StgSharp.Generator/1.0.0": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.CodeAnalysis.Analyzers/3.3.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==",
+ "path": "microsoft.codeanalysis.analyzers/3.3.4",
+ "hashPath": "microsoft.codeanalysis.analyzers.3.3.4.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.Common/4.12.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-c1kNYihL2gdcuU1dqm8R8YeA4YkB43TpU3pa2r66Uooh6AAhRtENzj9A4Kj0a+H8JDDyuTjNZql9XlVUzV+UjA==",
+ "path": "microsoft.codeanalysis.common/4.12.0",
+ "hashPath": "microsoft.codeanalysis.common.4.12.0.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.CSharp/4.12.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-30vVQ1MizeC22iEdEvI2w0eTIYG43/L20yBzuQH01xKzJgHAoWehzI2F8u07o4mXh4DGMOjQF7aEm0zzvsG3Mg==",
+ "path": "microsoft.codeanalysis.csharp/4.12.0",
+ "hashPath": "microsoft.codeanalysis.csharp.4.12.0.nupkg.sha512"
+ },
+ "Microsoft.NETCore.Platforms/1.1.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==",
+ "path": "microsoft.netcore.platforms/1.1.0",
+ "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512"
+ },
+ "NETStandard.Library/2.0.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==",
+ "path": "netstandard.library/2.0.3",
+ "hashPath": "netstandard.library.2.0.3.nupkg.sha512"
+ },
+ "System.Buffers/4.5.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==",
+ "path": "system.buffers/4.5.1",
+ "hashPath": "system.buffers.4.5.1.nupkg.sha512"
+ },
+ "System.Collections.Immutable/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==",
+ "path": "system.collections.immutable/8.0.0",
+ "hashPath": "system.collections.immutable.8.0.0.nupkg.sha512"
+ },
+ "System.Memory/4.5.5": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==",
+ "path": "system.memory/4.5.5",
+ "hashPath": "system.memory.4.5.5.nupkg.sha512"
+ },
+ "System.Numerics.Vectors/4.5.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==",
+ "path": "system.numerics.vectors/4.5.0",
+ "hashPath": "system.numerics.vectors.4.5.0.nupkg.sha512"
+ },
+ "System.Reflection.Metadata/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==",
+ "path": "system.reflection.metadata/8.0.0",
+ "hashPath": "system.reflection.metadata.8.0.0.nupkg.sha512"
+ },
+ "System.Runtime.CompilerServices.Unsafe/6.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==",
+ "path": "system.runtime.compilerservices.unsafe/6.0.0",
+ "hashPath": "system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512"
+ },
+ "System.Text.Encoding.CodePages/7.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==",
+ "path": "system.text.encoding.codepages/7.0.0",
+ "hashPath": "system.text.encoding.codepages.7.0.0.nupkg.sha512"
+ },
+ "System.Threading.Tasks.Extensions/4.5.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==",
+ "path": "system.threading.tasks.extensions/4.5.4",
+ "hashPath": "system.threading.tasks.extensions.4.5.4.nupkg.sha512"
+ }
+ }
+}
\ No newline at end of file
diff --git a/内核源代码/StgSgharp.Generator/global.cs b/内核源代码/StgSgharp.Generator/global.cs
new file mode 100644
index 00000000..c2ac9844
--- /dev/null
+++ b/内核源代码/StgSgharp.Generator/global.cs
@@ -0,0 +1,5 @@
+global using StgSharp.Generator.FakeType;
+
+using System;
+using System.Collections.Generic;
+using System.Text;
diff --git a/内核源代码/StgSgharp.Generator/obj/Debug/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs b/内核源代码/StgSgharp.Generator/obj/Debug/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs
new file mode 100644
index 00000000..8bf3a422
--- /dev/null
+++ b/内核源代码/StgSgharp.Generator/obj/Debug/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.0", FrameworkDisplayName = ".NET Standard 2.0")]
diff --git a/内核源代码/StgSgharp.Generator/obj/Debug/netstandard2.0/StgSharp.Generator.AssemblyInfo.cs b/内核源代码/StgSgharp.Generator/obj/Debug/netstandard2.0/StgSharp.Generator.AssemblyInfo.cs
new file mode 100644
index 00000000..81847214
--- /dev/null
+++ b/内核源代码/StgSgharp.Generator/obj/Debug/netstandard2.0/StgSharp.Generator.AssemblyInfo.cs
@@ -0,0 +1,23 @@
+//------------------------------------------------------------------------------
+//
+// 此代码由工具生成。
+// 运行时版本:4.0.30319.42000
+//
+// 对此文件的更改可能会导致不正确的行为,并且如果
+// 重新生成代码,这些更改将会丢失。
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Reflection;
+
+[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharp.Generator")]
+[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
+[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e687473132786f419a48170313782d6779890c3d")]
+[assembly: System.Reflection.AssemblyProductAttribute("StgSharp.Generator")]
+[assembly: System.Reflection.AssemblyTitleAttribute("StgSharp.Generator")]
+[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
+
+// 由 MSBuild WriteCodeFragment 类生成。
+
diff --git a/内核源代码/StgSgharp.Generator/obj/Debug/netstandard2.0/StgSharp.Generator.csproj.FileListAbsolute.txt b/内核源代码/StgSgharp.Generator/obj/Debug/netstandard2.0/StgSharp.Generator.csproj.FileListAbsolute.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/内核源代码/StgSgharp.Generator/obj/Release/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs b/内核源代码/StgSgharp.Generator/obj/Release/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs
new file mode 100644
index 00000000..8bf3a422
--- /dev/null
+++ b/内核源代码/StgSgharp.Generator/obj/Release/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.0", FrameworkDisplayName = ".NET Standard 2.0")]
diff --git a/内核源代码/StgSgharp.Generator/obj/Release/netstandard2.0/StgSharp.Generator.AssemblyInfo.cs b/内核源代码/StgSgharp.Generator/obj/Release/netstandard2.0/StgSharp.Generator.AssemblyInfo.cs
new file mode 100644
index 00000000..89bf8994
--- /dev/null
+++ b/内核源代码/StgSgharp.Generator/obj/Release/netstandard2.0/StgSharp.Generator.AssemblyInfo.cs
@@ -0,0 +1,23 @@
+//------------------------------------------------------------------------------
+//
+// 此代码由工具生成。
+// 运行时版本:4.0.30319.42000
+//
+// 对此文件的更改可能会导致不正确的行为,并且如果
+// 重新生成代码,这些更改将会丢失。
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Reflection;
+
+[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharp.Generator")]
+[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
+[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e687473132786f419a48170313782d6779890c3d")]
+[assembly: System.Reflection.AssemblyProductAttribute("StgSharp.Generator")]
+[assembly: System.Reflection.AssemblyTitleAttribute("StgSharp.Generator")]
+[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
+
+// 由 MSBuild WriteCodeFragment 类生成。
+
diff --git a/内核源代码/StgSgharp.Generator/obj/StgSharp.Generator.csproj.nuget.dgspec.json b/内核源代码/StgSgharp.Generator/obj/StgSharp.Generator.csproj.nuget.dgspec.json
new file mode 100644
index 00000000..415822f1
--- /dev/null
+++ b/内核源代码/StgSgharp.Generator/obj/StgSharp.Generator.csproj.nuget.dgspec.json
@@ -0,0 +1,77 @@
+{
+ "format": 1,
+ "restore": {
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSgharp.Generator\\StgSharp.Generator.csproj": {}
+ },
+ "projects": {
+ "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSgharp.Generator\\StgSharp.Generator.csproj": {
+ "version": "1.0.0",
+ "restore": {
+ "projectUniqueName": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSgharp.Generator\\StgSharp.Generator.csproj",
+ "projectName": "StgSharp.Generator",
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSgharp.Generator\\StgSharp.Generator.csproj",
+ "packagesPath": "C:\\Users\\Youmu\\.nuget\\packages\\",
+ "outputPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSgharp.Generator\\obj\\",
+ "projectStyle": "PackageReference",
+ "configFilePaths": [
+ "C:\\Users\\Youmu\\AppData\\Roaming\\NuGet\\NuGet.Config"
+ ],
+ "originalTargetFrameworks": [
+ "netstandard2.0"
+ ],
+ "sources": {
+ "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
+ "C:\\Program Files\\dotnet\\library-packs": {},
+ "D:\\Programmer\\NugetLocal": {},
+ "https://api.nuget.org/v3/index.json": {}
+ },
+ "frameworks": {
+ "netstandard2.0": {
+ "targetAlias": "netstandard2.0",
+ "projectReferences": {}
+ }
+ },
+ "warningProperties": {
+ "warnAsError": [
+ "NU1605"
+ ]
+ },
+ "restoreAuditProperties": {
+ "enableAudit": "true",
+ "auditLevel": "low",
+ "auditMode": "direct"
+ }
+ },
+ "frameworks": {
+ "netstandard2.0": {
+ "targetAlias": "netstandard2.0",
+ "dependencies": {
+ "Microsoft.CodeAnalysis.CSharp": {
+ "suppressParent": "All",
+ "target": "Package",
+ "version": "[4.12.0, )"
+ },
+ "NETStandard.Library": {
+ "suppressParent": "All",
+ "target": "Package",
+ "version": "[2.0.3, )",
+ "autoReferenced": true
+ }
+ },
+ "imports": [
+ "net461",
+ "net462",
+ "net47",
+ "net471",
+ "net472",
+ "net48",
+ "net481"
+ ],
+ "assetTargetFallback": true,
+ "warn": true,
+ "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.400\\RuntimeIdentifierGraph.json"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/内核源代码/StgSgharp.Generator/obj/project.assets.json b/内核源代码/StgSgharp.Generator/obj/project.assets.json
new file mode 100644
index 00000000..41d9f214
--- /dev/null
+++ b/内核源代码/StgSgharp.Generator/obj/project.assets.json
@@ -0,0 +1,1500 @@
+{
+ "version": 3,
+ "targets": {
+ ".NETStandard,Version=v2.0": {
+ "Microsoft.CodeAnalysis.Analyzers/3.3.4": {
+ "type": "package",
+ "build": {
+ "buildTransitive/Microsoft.CodeAnalysis.Analyzers.props": {},
+ "buildTransitive/Microsoft.CodeAnalysis.Analyzers.targets": {}
+ }
+ },
+ "Microsoft.CodeAnalysis.Common/4.12.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Analyzers": "3.3.4",
+ "System.Buffers": "4.5.1",
+ "System.Collections.Immutable": "8.0.0",
+ "System.Memory": "4.5.5",
+ "System.Numerics.Vectors": "4.5.0",
+ "System.Reflection.Metadata": "8.0.0",
+ "System.Runtime.CompilerServices.Unsafe": "6.0.0",
+ "System.Text.Encoding.CodePages": "7.0.0",
+ "System.Threading.Tasks.Extensions": "4.5.4"
+ },
+ "compile": {
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.dll": {
+ "related": ".pdb;.xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.dll": {
+ "related": ".pdb;.xml"
+ }
+ },
+ "resource": {
+ "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard2.0/de/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard2.0/es/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard2.0/it/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.CSharp/4.12.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Analyzers": "3.3.4",
+ "Microsoft.CodeAnalysis.Common": "[4.12.0]",
+ "System.Buffers": "4.5.1",
+ "System.Collections.Immutable": "8.0.0",
+ "System.Memory": "4.5.5",
+ "System.Numerics.Vectors": "4.5.0",
+ "System.Reflection.Metadata": "8.0.0",
+ "System.Runtime.CompilerServices.Unsafe": "6.0.0",
+ "System.Text.Encoding.CodePages": "7.0.0",
+ "System.Threading.Tasks.Extensions": "4.5.4"
+ },
+ "compile": {
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.dll": {
+ "related": ".pdb;.xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.dll": {
+ "related": ".pdb;.xml"
+ }
+ },
+ "resource": {
+ "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard2.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard2.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard2.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.NETCore.Platforms/1.1.0": {
+ "type": "package",
+ "compile": {
+ "lib/netstandard1.0/_._": {}
+ },
+ "runtime": {
+ "lib/netstandard1.0/_._": {}
+ }
+ },
+ "NETStandard.Library/2.0.3": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0"
+ },
+ "compile": {
+ "lib/netstandard1.0/_._": {}
+ },
+ "runtime": {
+ "lib/netstandard1.0/_._": {}
+ },
+ "build": {
+ "build/netstandard2.0/NETStandard.Library.targets": {}
+ }
+ },
+ "System.Buffers/4.5.1": {
+ "type": "package",
+ "compile": {
+ "ref/netstandard2.0/System.Buffers.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard2.0/System.Buffers.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.Collections.Immutable/8.0.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Memory": "4.5.5",
+ "System.Runtime.CompilerServices.Unsafe": "6.0.0"
+ },
+ "compile": {
+ "lib/netstandard2.0/System.Collections.Immutable.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard2.0/System.Collections.Immutable.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.Memory/4.5.5": {
+ "type": "package",
+ "dependencies": {
+ "System.Buffers": "4.5.1",
+ "System.Numerics.Vectors": "4.4.0",
+ "System.Runtime.CompilerServices.Unsafe": "4.5.3"
+ },
+ "compile": {
+ "lib/netstandard2.0/System.Memory.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard2.0/System.Memory.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.Numerics.Vectors/4.5.0": {
+ "type": "package",
+ "compile": {
+ "ref/netstandard2.0/System.Numerics.Vectors.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard2.0/System.Numerics.Vectors.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.Reflection.Metadata/8.0.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Collections.Immutable": "8.0.0",
+ "System.Memory": "4.5.5"
+ },
+ "compile": {
+ "lib/netstandard2.0/System.Reflection.Metadata.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard2.0/System.Reflection.Metadata.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.Runtime.CompilerServices.Unsafe/6.0.0": {
+ "type": "package",
+ "compile": {
+ "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.Text.Encoding.CodePages/7.0.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Memory": "4.5.5",
+ "System.Runtime.CompilerServices.Unsafe": "6.0.0"
+ },
+ "compile": {
+ "lib/netstandard2.0/System.Text.Encoding.CodePages.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard2.0/System.Text.Encoding.CodePages.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "System.Threading.Tasks.Extensions/4.5.4": {
+ "type": "package",
+ "dependencies": {
+ "System.Runtime.CompilerServices.Unsafe": "4.5.3"
+ },
+ "compile": {
+ "lib/netstandard2.0/System.Threading.Tasks.Extensions.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/netstandard2.0/System.Threading.Tasks.Extensions.dll": {
+ "related": ".xml"
+ }
+ }
+ }
+ }
+ },
+ "libraries": {
+ "Microsoft.CodeAnalysis.Analyzers/3.3.4": {
+ "sha512": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==",
+ "type": "package",
+ "path": "microsoft.codeanalysis.analyzers/3.3.4",
+ "hasTools": true,
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "ThirdPartyNotices.txt",
+ "analyzers/dotnet/cs/Microsoft.CodeAnalysis.Analyzers.dll",
+ "analyzers/dotnet/cs/Microsoft.CodeAnalysis.CSharp.Analyzers.dll",
+ "analyzers/dotnet/cs/cs/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/de/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/es/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/fr/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/it/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/ja/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/ko/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/pl/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/pt-BR/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/ru/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/tr/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/zh-Hans/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/cs/zh-Hant/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/Microsoft.CodeAnalysis.Analyzers.dll",
+ "analyzers/dotnet/vb/Microsoft.CodeAnalysis.VisualBasic.Analyzers.dll",
+ "analyzers/dotnet/vb/cs/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/de/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/es/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/fr/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/it/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/ja/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/ko/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/pl/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/pt-BR/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/ru/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/tr/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/zh-Hans/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "analyzers/dotnet/vb/zh-Hant/Microsoft.CodeAnalysis.Analyzers.resources.dll",
+ "buildTransitive/Microsoft.CodeAnalysis.Analyzers.props",
+ "buildTransitive/Microsoft.CodeAnalysis.Analyzers.targets",
+ "buildTransitive/config/analysislevel_2_9_8_all.globalconfig",
+ "buildTransitive/config/analysislevel_2_9_8_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_2_9_8_default.globalconfig",
+ "buildTransitive/config/analysislevel_2_9_8_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_2_9_8_minimum.globalconfig",
+ "buildTransitive/config/analysislevel_2_9_8_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_2_9_8_none.globalconfig",
+ "buildTransitive/config/analysislevel_2_9_8_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_2_9_8_recommended.globalconfig",
+ "buildTransitive/config/analysislevel_2_9_8_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevel_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_all.globalconfig",
+ "buildTransitive/config/analysislevel_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_default.globalconfig",
+ "buildTransitive/config/analysislevel_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevel_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_none.globalconfig",
+ "buildTransitive/config/analysislevel_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevel_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_4_3_all.globalconfig",
+ "buildTransitive/config/analysislevel_4_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_4_3_default.globalconfig",
+ "buildTransitive/config/analysislevel_4_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_4_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevel_4_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_4_3_none.globalconfig",
+ "buildTransitive/config/analysislevel_4_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevel_4_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevel_4_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_2_9_8_all.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_2_9_8_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_2_9_8_default.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_2_9_8_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_2_9_8_minimum.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_2_9_8_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_2_9_8_none.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_2_9_8_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_2_9_8_recommended.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_2_9_8_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_all.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_default.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_none.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_4_3_all.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_4_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_4_3_default.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_4_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_4_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_4_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_4_3_none.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_4_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_4_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelcorrectness_4_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_2_9_8_all.globalconfig",
+ "buildTransitive/config/analysislevellibrary_2_9_8_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_2_9_8_default.globalconfig",
+ "buildTransitive/config/analysislevellibrary_2_9_8_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_2_9_8_minimum.globalconfig",
+ "buildTransitive/config/analysislevellibrary_2_9_8_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_2_9_8_none.globalconfig",
+ "buildTransitive/config/analysislevellibrary_2_9_8_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_2_9_8_recommended.globalconfig",
+ "buildTransitive/config/analysislevellibrary_2_9_8_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_all.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_default.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_none.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevellibrary_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_4_3_all.globalconfig",
+ "buildTransitive/config/analysislevellibrary_4_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_4_3_default.globalconfig",
+ "buildTransitive/config/analysislevellibrary_4_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_4_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevellibrary_4_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_4_3_none.globalconfig",
+ "buildTransitive/config/analysislevellibrary_4_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevellibrary_4_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevellibrary_4_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_2_9_8_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_4_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_4_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_4_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_4_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_4_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_4_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_4_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_4_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_4_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscompatibility_4_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_2_9_8_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_4_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_4_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_4_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_4_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_4_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_4_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_4_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_4_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_4_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysiscorrectness_4_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_2_9_8_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_4_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_4_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_4_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_4_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_4_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_4_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_4_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_4_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_4_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdesign_4_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_2_9_8_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_4_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_4_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_4_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_4_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_4_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_4_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_4_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_4_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_4_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisdocumentation_4_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_2_9_8_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_4_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_4_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_4_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_4_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_4_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_4_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_4_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_4_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_4_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysislocalization_4_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_2_9_8_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_4_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_4_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_4_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_4_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_4_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_4_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_4_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_4_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_4_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisperformance_4_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_2_9_8_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_3_recommended_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_4_3_all.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_4_3_all_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_4_3_default.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_4_3_default_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_4_3_minimum.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_4_3_minimum_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_4_3_none.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_4_3_none_warnaserror.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_4_3_recommended.globalconfig",
+ "buildTransitive/config/analysislevelmicrosoftcodeanalysisreleasetracking_4_3_recommended_warnaserror.globalconfig",
+ "documentation/Analyzer Configuration.md",
+ "documentation/Microsoft.CodeAnalysis.Analyzers.md",
+ "documentation/Microsoft.CodeAnalysis.Analyzers.sarif",
+ "editorconfig/AllRulesDefault/.editorconfig",
+ "editorconfig/AllRulesDisabled/.editorconfig",
+ "editorconfig/AllRulesEnabled/.editorconfig",
+ "editorconfig/CorrectnessRulesDefault/.editorconfig",
+ "editorconfig/CorrectnessRulesEnabled/.editorconfig",
+ "editorconfig/DataflowRulesDefault/.editorconfig",
+ "editorconfig/DataflowRulesEnabled/.editorconfig",
+ "editorconfig/LibraryRulesDefault/.editorconfig",
+ "editorconfig/LibraryRulesEnabled/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisCompatibilityRulesDefault/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisCompatibilityRulesEnabled/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisCorrectnessRulesDefault/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisCorrectnessRulesEnabled/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisDesignRulesDefault/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisDesignRulesEnabled/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisDocumentationRulesDefault/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisDocumentationRulesEnabled/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisLocalizationRulesDefault/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisLocalizationRulesEnabled/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisPerformanceRulesDefault/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisPerformanceRulesEnabled/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisReleaseTrackingRulesDefault/.editorconfig",
+ "editorconfig/MicrosoftCodeAnalysisReleaseTrackingRulesEnabled/.editorconfig",
+ "editorconfig/PortedFromFxCopRulesDefault/.editorconfig",
+ "editorconfig/PortedFromFxCopRulesEnabled/.editorconfig",
+ "microsoft.codeanalysis.analyzers.3.3.4.nupkg.sha512",
+ "microsoft.codeanalysis.analyzers.nuspec",
+ "rulesets/AllRulesDefault.ruleset",
+ "rulesets/AllRulesDisabled.ruleset",
+ "rulesets/AllRulesEnabled.ruleset",
+ "rulesets/CorrectnessRulesDefault.ruleset",
+ "rulesets/CorrectnessRulesEnabled.ruleset",
+ "rulesets/DataflowRulesDefault.ruleset",
+ "rulesets/DataflowRulesEnabled.ruleset",
+ "rulesets/LibraryRulesDefault.ruleset",
+ "rulesets/LibraryRulesEnabled.ruleset",
+ "rulesets/MicrosoftCodeAnalysisCompatibilityRulesDefault.ruleset",
+ "rulesets/MicrosoftCodeAnalysisCompatibilityRulesEnabled.ruleset",
+ "rulesets/MicrosoftCodeAnalysisCorrectnessRulesDefault.ruleset",
+ "rulesets/MicrosoftCodeAnalysisCorrectnessRulesEnabled.ruleset",
+ "rulesets/MicrosoftCodeAnalysisDesignRulesDefault.ruleset",
+ "rulesets/MicrosoftCodeAnalysisDesignRulesEnabled.ruleset",
+ "rulesets/MicrosoftCodeAnalysisDocumentationRulesDefault.ruleset",
+ "rulesets/MicrosoftCodeAnalysisDocumentationRulesEnabled.ruleset",
+ "rulesets/MicrosoftCodeAnalysisLocalizationRulesDefault.ruleset",
+ "rulesets/MicrosoftCodeAnalysisLocalizationRulesEnabled.ruleset",
+ "rulesets/MicrosoftCodeAnalysisPerformanceRulesDefault.ruleset",
+ "rulesets/MicrosoftCodeAnalysisPerformanceRulesEnabled.ruleset",
+ "rulesets/MicrosoftCodeAnalysisReleaseTrackingRulesDefault.ruleset",
+ "rulesets/MicrosoftCodeAnalysisReleaseTrackingRulesEnabled.ruleset",
+ "rulesets/PortedFromFxCopRulesDefault.ruleset",
+ "rulesets/PortedFromFxCopRulesEnabled.ruleset",
+ "tools/install.ps1",
+ "tools/uninstall.ps1"
+ ]
+ },
+ "Microsoft.CodeAnalysis.Common/4.12.0": {
+ "sha512": "c1kNYihL2gdcuU1dqm8R8YeA4YkB43TpU3pa2r66Uooh6AAhRtENzj9A4Kj0a+H8JDDyuTjNZql9XlVUzV+UjA==",
+ "type": "package",
+ "path": "microsoft.codeanalysis.common/4.12.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "ThirdPartyNotices.rtf",
+ "lib/net7.0/Microsoft.CodeAnalysis.dll",
+ "lib/net7.0/Microsoft.CodeAnalysis.pdb",
+ "lib/net7.0/Microsoft.CodeAnalysis.xml",
+ "lib/net7.0/cs/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net7.0/de/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net7.0/es/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net7.0/fr/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net7.0/it/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net7.0/ja/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net7.0/ko/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net7.0/pl/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net7.0/pt-BR/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net7.0/ru/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net7.0/tr/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net7.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net7.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net8.0/Microsoft.CodeAnalysis.dll",
+ "lib/net8.0/Microsoft.CodeAnalysis.pdb",
+ "lib/net8.0/Microsoft.CodeAnalysis.xml",
+ "lib/net8.0/cs/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net8.0/de/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net8.0/es/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net8.0/fr/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net8.0/it/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net8.0/ja/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net8.0/ko/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net8.0/pl/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net8.0/pt-BR/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net8.0/ru/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net8.0/tr/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net8.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll",
+ "lib/net8.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.dll",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.pdb",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.xml",
+ "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/de/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/es/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/it/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll",
+ "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll",
+ "microsoft.codeanalysis.common.4.12.0.nupkg.sha512",
+ "microsoft.codeanalysis.common.nuspec"
+ ]
+ },
+ "Microsoft.CodeAnalysis.CSharp/4.12.0": {
+ "sha512": "30vVQ1MizeC22iEdEvI2w0eTIYG43/L20yBzuQH01xKzJgHAoWehzI2F8u07o4mXh4DGMOjQF7aEm0zzvsG3Mg==",
+ "type": "package",
+ "path": "microsoft.codeanalysis.csharp/4.12.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "ThirdPartyNotices.rtf",
+ "lib/net7.0/Microsoft.CodeAnalysis.CSharp.dll",
+ "lib/net7.0/Microsoft.CodeAnalysis.CSharp.pdb",
+ "lib/net7.0/Microsoft.CodeAnalysis.CSharp.xml",
+ "lib/net7.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net7.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net7.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net7.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net7.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net7.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net7.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net7.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net7.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net7.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net7.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net7.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net7.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net8.0/Microsoft.CodeAnalysis.CSharp.dll",
+ "lib/net8.0/Microsoft.CodeAnalysis.CSharp.pdb",
+ "lib/net8.0/Microsoft.CodeAnalysis.CSharp.xml",
+ "lib/net8.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net8.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net8.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net8.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net8.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net8.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net8.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net8.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net8.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net8.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net8.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net8.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/net8.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.dll",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.pdb",
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.xml",
+ "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll",
+ "microsoft.codeanalysis.csharp.4.12.0.nupkg.sha512",
+ "microsoft.codeanalysis.csharp.nuspec"
+ ]
+ },
+ "Microsoft.NETCore.Platforms/1.1.0": {
+ "sha512": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==",
+ "type": "package",
+ "path": "microsoft.netcore.platforms/1.1.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/netstandard1.0/_._",
+ "microsoft.netcore.platforms.1.1.0.nupkg.sha512",
+ "microsoft.netcore.platforms.nuspec",
+ "runtime.json"
+ ]
+ },
+ "NETStandard.Library/2.0.3": {
+ "sha512": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==",
+ "type": "package",
+ "path": "netstandard.library/2.0.3",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "build/netstandard2.0/NETStandard.Library.targets",
+ "build/netstandard2.0/ref/Microsoft.Win32.Primitives.dll",
+ "build/netstandard2.0/ref/System.AppContext.dll",
+ "build/netstandard2.0/ref/System.Collections.Concurrent.dll",
+ "build/netstandard2.0/ref/System.Collections.NonGeneric.dll",
+ "build/netstandard2.0/ref/System.Collections.Specialized.dll",
+ "build/netstandard2.0/ref/System.Collections.dll",
+ "build/netstandard2.0/ref/System.ComponentModel.Composition.dll",
+ "build/netstandard2.0/ref/System.ComponentModel.EventBasedAsync.dll",
+ "build/netstandard2.0/ref/System.ComponentModel.Primitives.dll",
+ "build/netstandard2.0/ref/System.ComponentModel.TypeConverter.dll",
+ "build/netstandard2.0/ref/System.ComponentModel.dll",
+ "build/netstandard2.0/ref/System.Console.dll",
+ "build/netstandard2.0/ref/System.Core.dll",
+ "build/netstandard2.0/ref/System.Data.Common.dll",
+ "build/netstandard2.0/ref/System.Data.dll",
+ "build/netstandard2.0/ref/System.Diagnostics.Contracts.dll",
+ "build/netstandard2.0/ref/System.Diagnostics.Debug.dll",
+ "build/netstandard2.0/ref/System.Diagnostics.FileVersionInfo.dll",
+ "build/netstandard2.0/ref/System.Diagnostics.Process.dll",
+ "build/netstandard2.0/ref/System.Diagnostics.StackTrace.dll",
+ "build/netstandard2.0/ref/System.Diagnostics.TextWriterTraceListener.dll",
+ "build/netstandard2.0/ref/System.Diagnostics.Tools.dll",
+ "build/netstandard2.0/ref/System.Diagnostics.TraceSource.dll",
+ "build/netstandard2.0/ref/System.Diagnostics.Tracing.dll",
+ "build/netstandard2.0/ref/System.Drawing.Primitives.dll",
+ "build/netstandard2.0/ref/System.Drawing.dll",
+ "build/netstandard2.0/ref/System.Dynamic.Runtime.dll",
+ "build/netstandard2.0/ref/System.Globalization.Calendars.dll",
+ "build/netstandard2.0/ref/System.Globalization.Extensions.dll",
+ "build/netstandard2.0/ref/System.Globalization.dll",
+ "build/netstandard2.0/ref/System.IO.Compression.FileSystem.dll",
+ "build/netstandard2.0/ref/System.IO.Compression.ZipFile.dll",
+ "build/netstandard2.0/ref/System.IO.Compression.dll",
+ "build/netstandard2.0/ref/System.IO.FileSystem.DriveInfo.dll",
+ "build/netstandard2.0/ref/System.IO.FileSystem.Primitives.dll",
+ "build/netstandard2.0/ref/System.IO.FileSystem.Watcher.dll",
+ "build/netstandard2.0/ref/System.IO.FileSystem.dll",
+ "build/netstandard2.0/ref/System.IO.IsolatedStorage.dll",
+ "build/netstandard2.0/ref/System.IO.MemoryMappedFiles.dll",
+ "build/netstandard2.0/ref/System.IO.Pipes.dll",
+ "build/netstandard2.0/ref/System.IO.UnmanagedMemoryStream.dll",
+ "build/netstandard2.0/ref/System.IO.dll",
+ "build/netstandard2.0/ref/System.Linq.Expressions.dll",
+ "build/netstandard2.0/ref/System.Linq.Parallel.dll",
+ "build/netstandard2.0/ref/System.Linq.Queryable.dll",
+ "build/netstandard2.0/ref/System.Linq.dll",
+ "build/netstandard2.0/ref/System.Net.Http.dll",
+ "build/netstandard2.0/ref/System.Net.NameResolution.dll",
+ "build/netstandard2.0/ref/System.Net.NetworkInformation.dll",
+ "build/netstandard2.0/ref/System.Net.Ping.dll",
+ "build/netstandard2.0/ref/System.Net.Primitives.dll",
+ "build/netstandard2.0/ref/System.Net.Requests.dll",
+ "build/netstandard2.0/ref/System.Net.Security.dll",
+ "build/netstandard2.0/ref/System.Net.Sockets.dll",
+ "build/netstandard2.0/ref/System.Net.WebHeaderCollection.dll",
+ "build/netstandard2.0/ref/System.Net.WebSockets.Client.dll",
+ "build/netstandard2.0/ref/System.Net.WebSockets.dll",
+ "build/netstandard2.0/ref/System.Net.dll",
+ "build/netstandard2.0/ref/System.Numerics.dll",
+ "build/netstandard2.0/ref/System.ObjectModel.dll",
+ "build/netstandard2.0/ref/System.Reflection.Extensions.dll",
+ "build/netstandard2.0/ref/System.Reflection.Primitives.dll",
+ "build/netstandard2.0/ref/System.Reflection.dll",
+ "build/netstandard2.0/ref/System.Resources.Reader.dll",
+ "build/netstandard2.0/ref/System.Resources.ResourceManager.dll",
+ "build/netstandard2.0/ref/System.Resources.Writer.dll",
+ "build/netstandard2.0/ref/System.Runtime.CompilerServices.VisualC.dll",
+ "build/netstandard2.0/ref/System.Runtime.Extensions.dll",
+ "build/netstandard2.0/ref/System.Runtime.Handles.dll",
+ "build/netstandard2.0/ref/System.Runtime.InteropServices.RuntimeInformation.dll",
+ "build/netstandard2.0/ref/System.Runtime.InteropServices.dll",
+ "build/netstandard2.0/ref/System.Runtime.Numerics.dll",
+ "build/netstandard2.0/ref/System.Runtime.Serialization.Formatters.dll",
+ "build/netstandard2.0/ref/System.Runtime.Serialization.Json.dll",
+ "build/netstandard2.0/ref/System.Runtime.Serialization.Primitives.dll",
+ "build/netstandard2.0/ref/System.Runtime.Serialization.Xml.dll",
+ "build/netstandard2.0/ref/System.Runtime.Serialization.dll",
+ "build/netstandard2.0/ref/System.Runtime.dll",
+ "build/netstandard2.0/ref/System.Security.Claims.dll",
+ "build/netstandard2.0/ref/System.Security.Cryptography.Algorithms.dll",
+ "build/netstandard2.0/ref/System.Security.Cryptography.Csp.dll",
+ "build/netstandard2.0/ref/System.Security.Cryptography.Encoding.dll",
+ "build/netstandard2.0/ref/System.Security.Cryptography.Primitives.dll",
+ "build/netstandard2.0/ref/System.Security.Cryptography.X509Certificates.dll",
+ "build/netstandard2.0/ref/System.Security.Principal.dll",
+ "build/netstandard2.0/ref/System.Security.SecureString.dll",
+ "build/netstandard2.0/ref/System.ServiceModel.Web.dll",
+ "build/netstandard2.0/ref/System.Text.Encoding.Extensions.dll",
+ "build/netstandard2.0/ref/System.Text.Encoding.dll",
+ "build/netstandard2.0/ref/System.Text.RegularExpressions.dll",
+ "build/netstandard2.0/ref/System.Threading.Overlapped.dll",
+ "build/netstandard2.0/ref/System.Threading.Tasks.Parallel.dll",
+ "build/netstandard2.0/ref/System.Threading.Tasks.dll",
+ "build/netstandard2.0/ref/System.Threading.Thread.dll",
+ "build/netstandard2.0/ref/System.Threading.ThreadPool.dll",
+ "build/netstandard2.0/ref/System.Threading.Timer.dll",
+ "build/netstandard2.0/ref/System.Threading.dll",
+ "build/netstandard2.0/ref/System.Transactions.dll",
+ "build/netstandard2.0/ref/System.ValueTuple.dll",
+ "build/netstandard2.0/ref/System.Web.dll",
+ "build/netstandard2.0/ref/System.Windows.dll",
+ "build/netstandard2.0/ref/System.Xml.Linq.dll",
+ "build/netstandard2.0/ref/System.Xml.ReaderWriter.dll",
+ "build/netstandard2.0/ref/System.Xml.Serialization.dll",
+ "build/netstandard2.0/ref/System.Xml.XDocument.dll",
+ "build/netstandard2.0/ref/System.Xml.XPath.XDocument.dll",
+ "build/netstandard2.0/ref/System.Xml.XPath.dll",
+ "build/netstandard2.0/ref/System.Xml.XmlDocument.dll",
+ "build/netstandard2.0/ref/System.Xml.XmlSerializer.dll",
+ "build/netstandard2.0/ref/System.Xml.dll",
+ "build/netstandard2.0/ref/System.dll",
+ "build/netstandard2.0/ref/mscorlib.dll",
+ "build/netstandard2.0/ref/netstandard.dll",
+ "build/netstandard2.0/ref/netstandard.xml",
+ "lib/netstandard1.0/_._",
+ "netstandard.library.2.0.3.nupkg.sha512",
+ "netstandard.library.nuspec"
+ ]
+ },
+ "System.Buffers/4.5.1": {
+ "sha512": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==",
+ "type": "package",
+ "path": "system.buffers/4.5.1",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "lib/net461/System.Buffers.dll",
+ "lib/net461/System.Buffers.xml",
+ "lib/netcoreapp2.0/_._",
+ "lib/netstandard1.1/System.Buffers.dll",
+ "lib/netstandard1.1/System.Buffers.xml",
+ "lib/netstandard2.0/System.Buffers.dll",
+ "lib/netstandard2.0/System.Buffers.xml",
+ "lib/uap10.0.16299/_._",
+ "ref/net45/System.Buffers.dll",
+ "ref/net45/System.Buffers.xml",
+ "ref/netcoreapp2.0/_._",
+ "ref/netstandard1.1/System.Buffers.dll",
+ "ref/netstandard1.1/System.Buffers.xml",
+ "ref/netstandard2.0/System.Buffers.dll",
+ "ref/netstandard2.0/System.Buffers.xml",
+ "ref/uap10.0.16299/_._",
+ "system.buffers.4.5.1.nupkg.sha512",
+ "system.buffers.nuspec",
+ "useSharedDesignerContext.txt",
+ "version.txt"
+ ]
+ },
+ "System.Collections.Immutable/8.0.0": {
+ "sha512": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==",
+ "type": "package",
+ "path": "system.collections.immutable/8.0.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "LICENSE.TXT",
+ "PACKAGE.md",
+ "THIRD-PARTY-NOTICES.TXT",
+ "buildTransitive/net461/System.Collections.Immutable.targets",
+ "buildTransitive/net462/_._",
+ "buildTransitive/net6.0/_._",
+ "buildTransitive/netcoreapp2.0/System.Collections.Immutable.targets",
+ "lib/net462/System.Collections.Immutable.dll",
+ "lib/net462/System.Collections.Immutable.xml",
+ "lib/net6.0/System.Collections.Immutable.dll",
+ "lib/net6.0/System.Collections.Immutable.xml",
+ "lib/net7.0/System.Collections.Immutable.dll",
+ "lib/net7.0/System.Collections.Immutable.xml",
+ "lib/net8.0/System.Collections.Immutable.dll",
+ "lib/net8.0/System.Collections.Immutable.xml",
+ "lib/netstandard2.0/System.Collections.Immutable.dll",
+ "lib/netstandard2.0/System.Collections.Immutable.xml",
+ "system.collections.immutable.8.0.0.nupkg.sha512",
+ "system.collections.immutable.nuspec",
+ "useSharedDesignerContext.txt"
+ ]
+ },
+ "System.Memory/4.5.5": {
+ "sha512": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==",
+ "type": "package",
+ "path": "system.memory/4.5.5",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "lib/net461/System.Memory.dll",
+ "lib/net461/System.Memory.xml",
+ "lib/netcoreapp2.1/_._",
+ "lib/netstandard1.1/System.Memory.dll",
+ "lib/netstandard1.1/System.Memory.xml",
+ "lib/netstandard2.0/System.Memory.dll",
+ "lib/netstandard2.0/System.Memory.xml",
+ "ref/netcoreapp2.1/_._",
+ "system.memory.4.5.5.nupkg.sha512",
+ "system.memory.nuspec",
+ "useSharedDesignerContext.txt",
+ "version.txt"
+ ]
+ },
+ "System.Numerics.Vectors/4.5.0": {
+ "sha512": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==",
+ "type": "package",
+ "path": "system.numerics.vectors/4.5.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/System.Numerics.Vectors.dll",
+ "lib/net46/System.Numerics.Vectors.xml",
+ "lib/netcoreapp2.0/_._",
+ "lib/netstandard1.0/System.Numerics.Vectors.dll",
+ "lib/netstandard1.0/System.Numerics.Vectors.xml",
+ "lib/netstandard2.0/System.Numerics.Vectors.dll",
+ "lib/netstandard2.0/System.Numerics.Vectors.xml",
+ "lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.dll",
+ "lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.xml",
+ "lib/uap10.0.16299/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/System.Numerics.Vectors.dll",
+ "ref/net45/System.Numerics.Vectors.xml",
+ "ref/net46/System.Numerics.Vectors.dll",
+ "ref/net46/System.Numerics.Vectors.xml",
+ "ref/netcoreapp2.0/_._",
+ "ref/netstandard1.0/System.Numerics.Vectors.dll",
+ "ref/netstandard1.0/System.Numerics.Vectors.xml",
+ "ref/netstandard2.0/System.Numerics.Vectors.dll",
+ "ref/netstandard2.0/System.Numerics.Vectors.xml",
+ "ref/uap10.0.16299/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.numerics.vectors.4.5.0.nupkg.sha512",
+ "system.numerics.vectors.nuspec",
+ "useSharedDesignerContext.txt",
+ "version.txt"
+ ]
+ },
+ "System.Reflection.Metadata/8.0.0": {
+ "sha512": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==",
+ "type": "package",
+ "path": "system.reflection.metadata/8.0.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "LICENSE.TXT",
+ "PACKAGE.md",
+ "THIRD-PARTY-NOTICES.TXT",
+ "buildTransitive/net461/System.Reflection.Metadata.targets",
+ "buildTransitive/net462/_._",
+ "buildTransitive/net6.0/_._",
+ "buildTransitive/netcoreapp2.0/System.Reflection.Metadata.targets",
+ "lib/net462/System.Reflection.Metadata.dll",
+ "lib/net462/System.Reflection.Metadata.xml",
+ "lib/net6.0/System.Reflection.Metadata.dll",
+ "lib/net6.0/System.Reflection.Metadata.xml",
+ "lib/net7.0/System.Reflection.Metadata.dll",
+ "lib/net7.0/System.Reflection.Metadata.xml",
+ "lib/net8.0/System.Reflection.Metadata.dll",
+ "lib/net8.0/System.Reflection.Metadata.xml",
+ "lib/netstandard2.0/System.Reflection.Metadata.dll",
+ "lib/netstandard2.0/System.Reflection.Metadata.xml",
+ "system.reflection.metadata.8.0.0.nupkg.sha512",
+ "system.reflection.metadata.nuspec",
+ "useSharedDesignerContext.txt"
+ ]
+ },
+ "System.Runtime.CompilerServices.Unsafe/6.0.0": {
+ "sha512": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==",
+ "type": "package",
+ "path": "system.runtime.compilerservices.unsafe/6.0.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "buildTransitive/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.targets",
+ "buildTransitive/netcoreapp3.1/_._",
+ "lib/net461/System.Runtime.CompilerServices.Unsafe.dll",
+ "lib/net461/System.Runtime.CompilerServices.Unsafe.xml",
+ "lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll",
+ "lib/net6.0/System.Runtime.CompilerServices.Unsafe.xml",
+ "lib/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll",
+ "lib/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.xml",
+ "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll",
+ "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml",
+ "system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512",
+ "system.runtime.compilerservices.unsafe.nuspec",
+ "useSharedDesignerContext.txt"
+ ]
+ },
+ "System.Text.Encoding.CodePages/7.0.0": {
+ "sha512": "LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==",
+ "type": "package",
+ "path": "system.text.encoding.codepages/7.0.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "buildTransitive/net461/System.Text.Encoding.CodePages.targets",
+ "buildTransitive/net462/_._",
+ "buildTransitive/net6.0/_._",
+ "buildTransitive/netcoreapp2.0/System.Text.Encoding.CodePages.targets",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net462/System.Text.Encoding.CodePages.dll",
+ "lib/net462/System.Text.Encoding.CodePages.xml",
+ "lib/net6.0/System.Text.Encoding.CodePages.dll",
+ "lib/net6.0/System.Text.Encoding.CodePages.xml",
+ "lib/net7.0/System.Text.Encoding.CodePages.dll",
+ "lib/net7.0/System.Text.Encoding.CodePages.xml",
+ "lib/netstandard2.0/System.Text.Encoding.CodePages.dll",
+ "lib/netstandard2.0/System.Text.Encoding.CodePages.xml",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "runtimes/win/lib/net6.0/System.Text.Encoding.CodePages.dll",
+ "runtimes/win/lib/net6.0/System.Text.Encoding.CodePages.xml",
+ "runtimes/win/lib/net7.0/System.Text.Encoding.CodePages.dll",
+ "runtimes/win/lib/net7.0/System.Text.Encoding.CodePages.xml",
+ "system.text.encoding.codepages.7.0.0.nupkg.sha512",
+ "system.text.encoding.codepages.nuspec",
+ "useSharedDesignerContext.txt"
+ ]
+ },
+ "System.Threading.Tasks.Extensions/4.5.4": {
+ "sha512": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==",
+ "type": "package",
+ "path": "system.threading.tasks.extensions/4.5.4",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net461/System.Threading.Tasks.Extensions.dll",
+ "lib/net461/System.Threading.Tasks.Extensions.xml",
+ "lib/netcoreapp2.1/_._",
+ "lib/netstandard1.0/System.Threading.Tasks.Extensions.dll",
+ "lib/netstandard1.0/System.Threading.Tasks.Extensions.xml",
+ "lib/netstandard2.0/System.Threading.Tasks.Extensions.dll",
+ "lib/netstandard2.0/System.Threading.Tasks.Extensions.xml",
+ "lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.dll",
+ "lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.xml",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/netcoreapp2.1/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.threading.tasks.extensions.4.5.4.nupkg.sha512",
+ "system.threading.tasks.extensions.nuspec",
+ "useSharedDesignerContext.txt",
+ "version.txt"
+ ]
+ }
+ },
+ "projectFileDependencyGroups": {
+ ".NETStandard,Version=v2.0": [
+ "Microsoft.CodeAnalysis.CSharp >= 4.12.0",
+ "NETStandard.Library >= 2.0.3"
+ ]
+ },
+ "packageFolders": {
+ "C:\\Users\\Youmu\\.nuget\\packages\\": {}
+ },
+ "project": {
+ "version": "1.0.0",
+ "restore": {
+ "projectUniqueName": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSgharp.Generator\\StgSharp.Generator.csproj",
+ "projectName": "StgSharp.Generator",
+ "projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSgharp.Generator\\StgSharp.Generator.csproj",
+ "packagesPath": "C:\\Users\\Youmu\\.nuget\\packages\\",
+ "outputPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSgharp.Generator\\obj\\",
+ "projectStyle": "PackageReference",
+ "configFilePaths": [
+ "C:\\Users\\Youmu\\AppData\\Roaming\\NuGet\\NuGet.Config"
+ ],
+ "originalTargetFrameworks": [
+ "netstandard2.0"
+ ],
+ "sources": {
+ "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
+ "C:\\Program Files\\dotnet\\library-packs": {},
+ "D:\\Programmer\\NugetLocal": {},
+ "https://api.nuget.org/v3/index.json": {}
+ },
+ "frameworks": {
+ "netstandard2.0": {
+ "targetAlias": "netstandard2.0",
+ "projectReferences": {}
+ }
+ },
+ "warningProperties": {
+ "warnAsError": [
+ "NU1605"
+ ]
+ },
+ "restoreAuditProperties": {
+ "enableAudit": "true",
+ "auditLevel": "low",
+ "auditMode": "direct"
+ }
+ },
+ "frameworks": {
+ "netstandard2.0": {
+ "targetAlias": "netstandard2.0",
+ "dependencies": {
+ "Microsoft.CodeAnalysis.CSharp": {
+ "suppressParent": "All",
+ "target": "Package",
+ "version": "[4.12.0, )"
+ },
+ "NETStandard.Library": {
+ "suppressParent": "All",
+ "target": "Package",
+ "version": "[2.0.3, )",
+ "autoReferenced": true
+ }
+ },
+ "imports": [
+ "net461",
+ "net462",
+ "net47",
+ "net471",
+ "net472",
+ "net48",
+ "net481"
+ ],
+ "assetTargetFallback": true,
+ "warn": true,
+ "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.400\\RuntimeIdentifierGraph.json"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/内核源代码/StgSgharp.Generator/obj/x64/Debug/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs b/内核源代码/StgSgharp.Generator/obj/x64/Debug/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs
new file mode 100644
index 00000000..8bf3a422
--- /dev/null
+++ b/内核源代码/StgSgharp.Generator/obj/x64/Debug/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.0", FrameworkDisplayName = ".NET Standard 2.0")]
diff --git a/内核源代码/StgSgharp.Generator/obj/x64/Debug/netstandard2.0/StgSharp.Generator.AssemblyInfo.cs b/内核源代码/StgSgharp.Generator/obj/x64/Debug/netstandard2.0/StgSharp.Generator.AssemblyInfo.cs
new file mode 100644
index 00000000..81847214
--- /dev/null
+++ b/内核源代码/StgSgharp.Generator/obj/x64/Debug/netstandard2.0/StgSharp.Generator.AssemblyInfo.cs
@@ -0,0 +1,23 @@
+//------------------------------------------------------------------------------
+//
+// 此代码由工具生成。
+// 运行时版本:4.0.30319.42000
+//
+// 对此文件的更改可能会导致不正确的行为,并且如果
+// 重新生成代码,这些更改将会丢失。
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Reflection;
+
+[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharp.Generator")]
+[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
+[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e687473132786f419a48170313782d6779890c3d")]
+[assembly: System.Reflection.AssemblyProductAttribute("StgSharp.Generator")]
+[assembly: System.Reflection.AssemblyTitleAttribute("StgSharp.Generator")]
+[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
+
+// 由 MSBuild WriteCodeFragment 类生成。
+
diff --git a/内核源代码/StgSgharp.Generator/obj/x64/Debug/netstandard2.0/StgSharp.Generator.csproj.FileListAbsolute.txt b/内核源代码/StgSgharp.Generator/obj/x64/Debug/netstandard2.0/StgSharp.Generator.csproj.FileListAbsolute.txt
new file mode 100644
index 00000000..eae2aacd
--- /dev/null
+++ b/内核源代码/StgSgharp.Generator/obj/x64/Debug/netstandard2.0/StgSharp.Generator.csproj.FileListAbsolute.txt
@@ -0,0 +1,11 @@
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSgharp.Generator\bin\x64\Debug\netstandard2.0\StgSharp.Generator.deps.json
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSgharp.Generator\bin\x64\Debug\netstandard2.0\StgSharp.Generator.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSgharp.Generator\bin\x64\Debug\netstandard2.0\StgSharp.Generator.pdb
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSgharp.Generator\obj\x64\Debug\netstandard2.0\StgSharp.Generator.csproj.AssemblyReference.cache
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSgharp.Generator\obj\x64\Debug\netstandard2.0\StgSharp.Generator.GeneratedMSBuildEditorConfig.editorconfig
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSgharp.Generator\obj\x64\Debug\netstandard2.0\StgSharp.Generator.AssemblyInfoInputs.cache
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSgharp.Generator\obj\x64\Debug\netstandard2.0\StgSharp.Generator.AssemblyInfo.cs
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSgharp.Generator\obj\x64\Debug\netstandard2.0\StgSharp.Generator.csproj.CoreCompileInputs.cache
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSgharp.Generator\obj\x64\Debug\netstandard2.0\StgSharp.Generator.sourcelink.json
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSgharp.Generator\obj\x64\Debug\netstandard2.0\StgSharp.Generator.dll
+D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSgharp.Generator\obj\x64\Debug\netstandard2.0\StgSharp.Generator.pdb
diff --git a/内核源代码/StgSgharp.Generator/obj/x64/Debug/netstandard2.0/StgSharp.Generator.sourcelink.json b/内核源代码/StgSgharp.Generator/obj/x64/Debug/netstandard2.0/StgSharp.Generator.sourcelink.json
new file mode 100644
index 00000000..d30ebc07
--- /dev/null
+++ b/内核源代码/StgSgharp.Generator/obj/x64/Debug/netstandard2.0/StgSharp.Generator.sourcelink.json
@@ -0,0 +1 @@
+{"documents":{"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\*":"https://raw.githubusercontent.com/Nitload-NSI/CCD_Github/e687473132786f419a48170313782d6779890c3d/*"}}
\ No newline at end of file
diff --git a/内核源代码/StgSgharp.Generator/obj/x64/Release/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs b/内核源代码/StgSgharp.Generator/obj/x64/Release/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs
new file mode 100644
index 00000000..8bf3a422
--- /dev/null
+++ b/内核源代码/StgSgharp.Generator/obj/x64/Release/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.0", FrameworkDisplayName = ".NET Standard 2.0")]
diff --git a/内核源代码/StgSgharp.Generator/obj/x64/Release/netstandard2.0/StgSharp.Generator.AssemblyInfo.cs b/内核源代码/StgSgharp.Generator/obj/x64/Release/netstandard2.0/StgSharp.Generator.AssemblyInfo.cs
new file mode 100644
index 00000000..89bf8994
--- /dev/null
+++ b/内核源代码/StgSgharp.Generator/obj/x64/Release/netstandard2.0/StgSharp.Generator.AssemblyInfo.cs
@@ -0,0 +1,23 @@
+//------------------------------------------------------------------------------
+//
+// 此代码由工具生成。
+// 运行时版本:4.0.30319.42000
+//
+// 对此文件的更改可能会导致不正确的行为,并且如果
+// 重新生成代码,这些更改将会丢失。
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Reflection;
+
+[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharp.Generator")]
+[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
+[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e687473132786f419a48170313782d6779890c3d")]
+[assembly: System.Reflection.AssemblyProductAttribute("StgSharp.Generator")]
+[assembly: System.Reflection.AssemblyTitleAttribute("StgSharp.Generator")]
+[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
+
+// 由 MSBuild WriteCodeFragment 类生成。
+
diff --git a/内核源代码/StgSharp.C/StgSharpC.c b/内核源代码/StgSharp.C/StgSharpC.c
new file mode 100644
index 00000000..660c289b
--- /dev/null
+++ b/内核源代码/StgSharp.C/StgSharpC.c
@@ -0,0 +1,75 @@
+#include "StgSharpC.h"
+#include "gl.h"
+#include "glfw3.h"
+#include "ssc_framework.h"
+#include
+
+GladGLContext *currentContext;
+extern char infolog[512] = { 0 };
+
+SSCAPI int SSCDECL glCheckShaderStat(GladGLContext *context, uint64_t shaderHandle, int key,
+ char **logRef)
+{
+ int stat = 0;
+ context->GetShaderiv(shaderHandle, key, &stat);
+ if (!stat) {
+ context->GetShaderInfoLog(shaderHandle, 512, NULL, infolog);
+ }
+ *logRef = infolog;
+ return stat;
+}
+
+SSCAPI void SSCDECL initGL(int majorVersion, int minorVersion)
+{
+ glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, majorVersion);
+ glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, minorVersion);
+ glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
+ glfwWindowHint(GLFW_RESIZABLE, GLFW_TRUE);
+}
+
+SSCAPI GLFWglproc SSCDECL loadGlfuncDefault(char *procName)
+{
+ void *ret = glfwGetProcAddress(procName);
+ // printf("%llu\n", (uint64_t)ret);
+ if (ret = NULL) {
+ *infolog = "Failed to load OpenGL api:";
+ for (size_t i = 0; i < sizeof(procName); i++) {
+ infolog[30 + i] = procName[i];
+ }
+ printf("%s\n", infolog);
+ }
+ return (GLFWglproc)ret;
+}
+
+SSCAPI unsigned int linkShaderProgram(GladGLContext *context, GLuint shaderProgram)
+{
+ context->LinkProgram(shaderProgram);
+
+ int success;
+ context->GetProgramiv(shaderProgram, GL_LINK_STATUS, &success);
+ if (!success) {
+ context->GetProgramInfoLog(shaderProgram, 512, NULL, infolog);
+ return 0;
+ } else {
+ return shaderProgram;
+ }
+}
+
+SSCAPI void SSCDECL loadImageData(char *location, Image *out, imageLoader loader)
+{
+ if (loader == NULL) {
+ loader = stbi_load;
+ }
+ out->pixelPtr = loader(location, &(out->width), &(out->height), &(out->channel), 0);
+}
+
+SSCAPI void SSCDECL unloadImageData(Image *out)
+{
+ free(out->pixelPtr);
+}
+
+char *_cdecl readLog()
+{
+ infolog[511] = '\0';
+ return &infolog;
+}
diff --git a/内核源代码/StgSharp.C/StgSharpC.h b/内核源代码/StgSharp.C/StgSharpC.h
new file mode 100644
index 00000000..fa3d2402
--- /dev/null
+++ b/内核源代码/StgSharp.C/StgSharpC.h
@@ -0,0 +1,73 @@
+#ifdef _MSC_VER
+#pragma once
+#endif
+
+#ifndef SSC
+#define SSC
+
+#include "ssc_framework.h"
+#include "ssc_internal.h"
+
+#define STBIDEF SSCAPI
+#include "stb_image.h"
+
+#include "gl.h"
+#include "wgl.h"
+#include "glfw3.h"
+#include
+#include
+
+#ifndef SSCAPI_DEFINE
+
+#ifdef _WIN32
+#define SSCAPI __declspec(dllexport)
+#elif defined _LINUX_
+#define SSCAPI __attribute__((dllexport))
+#elif defined _APPLE_
+#define SSCAPI __attribute__((visibility("default")))
+#else
+#define SSCAPI
+#endif
+
+#endif // ! SSCAPI_DEFINE
+
+#if __cplusplus
+extern "C" {
+#endif
+
+#define byte char
+#define ssc_null_assert(ptr) assert(ptr != NULL)
+
+#define ALIGN(simdVec) _mm_loadu_ps(&simdVec)
+#define ALIGN256(simdVec) _mm256_loadu_ps(&simdVec)
+#define ALIGN512(simdVec) _mm512_loadu_ps(&simdVec)
+
+typedef struct Image {
+ int width;
+ int height;
+ int channel;
+ char *pixelPtr;
+} Image;
+
+typedef char *(*imageLoader)(char const *filename, int *x, int *y, int *channels_in_file,
+ int desired_channels);
+
+SSCAPI char infolog[512];
+SSCAPI int SSCDECL glCheckShaderStat(GladGLContext *context, uint64_t shaderHandle, int key,
+ char **logRef);
+SSCAPI void SSCDECL initGL(int majorVersion, int minorVersion);
+SSCAPI unsigned int SSCDECL linkShaderProgram(GladGLContext *context, GLuint shadertype);
+SSCAPI void SSCDECL loadImageData(char *location, Image *out, imageLoader loader);
+SSCAPI GLFWglproc SSCDECL loadGlfuncDefault(char *procName);
+SSCAPI void SSCDECL unloadImageData(Image *out);
+SSCAPI char *SSCDECL readLog(void);
+
+#pragma endregion
+
+SSCAPI int SSCDECL load_intrinsic_function(void *intrinsic_context);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/内核源代码/StgSharp.C/StgSharpC.vcxproj b/内核源代码/StgSharp.C/StgSharpC.vcxproj
new file mode 100644
index 00000000..ab840564
--- /dev/null
+++ b/内核源代码/StgSharp.C/StgSharpC.vcxproj
@@ -0,0 +1,192 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 17.0
+ Win32Proj
+ {20cbff26-6746-402e-992c-7b643e9423eb}
+ StgSharpC
+ 10.0
+ StgSharp.C
+
+
+
+ Application
+ true
+ v143
+ Unicode
+
+
+ Application
+ false
+ v143
+ true
+ Unicode
+
+
+ DynamicLibrary
+ true
+ v143
+ Unicode
+ false
+
+
+ DynamicLibrary
+ false
+ v143
+ true
+ Unicode
+ 14.41.34120
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(SolutionDir)build
+
+
+ $(SolutionDir)build
+ false
+
+
+
+ Level3
+ true
+ WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ true
+ _DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ stdcpp20
+ stdc17
+ Disabled
+ true
+ All
+ true
+ true
+ Speed
+
+
+ Console
+ true
+ opengl32.lib;$(CoreLibraryDependencies);%(AdditionalDependencies)
+
+
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ Speed
+ NoListing
+ stdcpp20
+ stdc17
+ CompileAsC
+ true
+
+
+ Console
+ true
+ true
+ false
+ opengl32.lib;$(CoreLibraryDependencies);%(AdditionalDependencies)
+ LinkVerbose
+ UseLinkTimeCodeGeneration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/内核源代码/StgSharp.C/dllmain.c b/内核源代码/StgSharp.C/dllmain.c
new file mode 100644
index 00000000..4e03e1d0
--- /dev/null
+++ b/内核源代码/StgSharp.C/dllmain.c
@@ -0,0 +1,39 @@
+
+#ifdef _WIN32
+#include "ssc_framework.h"
+#endif // __
+
+#include "StgSharpC.h"
+
+#ifdef _WIN32
+
+// clang-format off
+
+BOOL APIENTRY DllMain(
+ HMODULE hModule,
+ DWORD ul_reason_for_call,
+ LPVOID lpReserved
+)
+{
+ switch (ul_reason_for_call)
+ {
+ case DLL_PROCESS_ATTACH:
+ return 1;
+ case DLL_THREAD_ATTACH:
+ return 1;
+ case DLL_THREAD_DETACH:
+ return 1;
+ case DLL_PROCESS_DETACH:
+ return 1;
+ break;
+ }
+ return TRUE;
+}
+#else
+attribute((constructor)) void DllMain()
+{
+}
+
+#endif // _WIN32
+
+// clang-format on
diff --git a/内核源代码/StgSharp.C/gl.h b/内核源代码/StgSharp.C/gl.h
new file mode 100644
index 00000000..192f3429
--- /dev/null
+++ b/内核源代码/StgSharp.C/gl.h
@@ -0,0 +1,12656 @@
+/**
+ * Loader generated by glad 2.0.5 on Fri Feb 16 00:51:02 2024
+ *
+ * SPDX-License-Identifier: (WTFPL OR CC0-1.0) AND Apache-2.0
+ *
+ * Generator: C/C++
+ * Specification: gl
+ * Extensions: 619
+ *
+ * APIs:
+ * - gl:core=4.6
+ *
+ * Options:
+ * - ALIAS = False
+ * - DEBUG = False
+ * - HEADER_ONLY = False
+ * - LOADER = False
+ * - MX = True
+ * - ON_DEMAND = False
+ *
+ * Commandline:
+ * --api='gl:core=4.6' --extensions='GL_3DFX_multisample,GL_3DFX_tbuffer,GL_3DFX_texture_compression_FXT1,GL_AMD_blend_minmax_factor,GL_AMD_conservative_depth,GL_AMD_debug_output,GL_AMD_depth_clamp_separate,GL_AMD_draw_buffers_blend,GL_AMD_framebuffer_multisample_advanced,GL_AMD_framebuffer_sample_positions,GL_AMD_gcn_shader,GL_AMD_gpu_shader_half_float,GL_AMD_gpu_shader_int16,GL_AMD_gpu_shader_int64,GL_AMD_interleaved_elements,GL_AMD_multi_draw_indirect,GL_AMD_name_gen_delete,GL_AMD_occlusion_query_event,GL_AMD_performance_monitor,GL_AMD_pinned_memory,GL_AMD_query_buffer_object,GL_AMD_sample_positions,GL_AMD_seamless_cubemap_per_texture,GL_AMD_shader_atomic_counter_ops,GL_AMD_shader_ballot,GL_AMD_shader_explicit_vertex_parameter,GL_AMD_shader_gpu_shader_half_float_fetch,GL_AMD_shader_image_load_store_lod,GL_AMD_shader_stencil_export,GL_AMD_shader_trinary_minmax,GL_AMD_sparse_texture,GL_AMD_stencil_operation_extended,GL_AMD_texture_gather_bias_lod,GL_AMD_texture_texture4,GL_AMD_transform_feedback3_lines_triangles,GL_AMD_transform_feedback4,GL_AMD_vertex_shader_layer,GL_AMD_vertex_shader_tessellator,GL_AMD_vertex_shader_viewport_index,GL_APPLE_aux_depth_stencil,GL_APPLE_client_storage,GL_APPLE_element_array,GL_APPLE_fence,GL_APPLE_float_pixels,GL_APPLE_flush_buffer_range,GL_APPLE_object_purgeable,GL_APPLE_rgb_422,GL_APPLE_row_bytes,GL_APPLE_specular_vector,GL_APPLE_texture_range,GL_APPLE_transform_hint,GL_APPLE_vertex_array_object,GL_APPLE_vertex_array_range,GL_APPLE_vertex_program_evaluators,GL_APPLE_ycbcr_422,GL_ARB_ES2_compatibility,GL_ARB_ES3_1_compatibility,GL_ARB_ES3_2_compatibility,GL_ARB_ES3_compatibility,GL_ARB_arrays_of_arrays,GL_ARB_base_instance,GL_ARB_bindless_texture,GL_ARB_blend_func_extended,GL_ARB_buffer_storage,GL_ARB_cl_event,GL_ARB_clear_buffer_object,GL_ARB_clear_texture,GL_ARB_clip_control,GL_ARB_color_buffer_float,GL_ARB_compatibility,GL_ARB_compressed_texture_pixel_storage,GL_ARB_compute_shader,GL_ARB_compute_variable_group_size,GL_ARB_conditional_render_inverted,GL_ARB_conservative_depth,GL_ARB_copy_buffer,GL_ARB_copy_image,GL_ARB_cull_distance,GL_ARB_debug_output,GL_ARB_depth_buffer_float,GL_ARB_depth_clamp,GL_ARB_depth_texture,GL_ARB_derivative_control,GL_ARB_direct_state_access,GL_ARB_draw_buffers,GL_ARB_draw_buffers_blend,GL_ARB_draw_elements_base_vertex,GL_ARB_draw_indirect,GL_ARB_draw_instanced,GL_ARB_enhanced_layouts,GL_ARB_explicit_attrib_location,GL_ARB_explicit_uniform_location,GL_ARB_fragment_coord_conventions,GL_ARB_fragment_layer_viewport,GL_ARB_fragment_program,GL_ARB_fragment_program_shadow,GL_ARB_fragment_shader,GL_ARB_fragment_shader_interlock,GL_ARB_framebuffer_no_attachments,GL_ARB_framebuffer_object,GL_ARB_framebuffer_sRGB,GL_ARB_geometry_shader4,GL_ARB_get_program_binary,GL_ARB_get_texture_sub_image,GL_ARB_gl_spirv,GL_ARB_gpu_shader5,GL_ARB_gpu_shader_fp64,GL_ARB_gpu_shader_int64,GL_ARB_half_float_pixel,GL_ARB_half_float_vertex,GL_ARB_imaging,GL_ARB_indirect_parameters,GL_ARB_instanced_arrays,GL_ARB_internalformat_query,GL_ARB_internalformat_query2,GL_ARB_invalidate_subdata,GL_ARB_map_buffer_alignment,GL_ARB_map_buffer_range,GL_ARB_matrix_palette,GL_ARB_multi_bind,GL_ARB_multi_draw_indirect,GL_ARB_multisample,GL_ARB_multitexture,GL_ARB_occlusion_query,GL_ARB_occlusion_query2,GL_ARB_parallel_shader_compile,GL_ARB_pipeline_statistics_query,GL_ARB_pixel_buffer_object,GL_ARB_point_parameters,GL_ARB_point_sprite,GL_ARB_polygon_offset_clamp,GL_ARB_post_depth_coverage,GL_ARB_program_interface_query,GL_ARB_provoking_vertex,GL_ARB_query_buffer_object,GL_ARB_robust_buffer_access_behavior,GL_ARB_robustness,GL_ARB_robustness_isolation,GL_ARB_sample_locations,GL_ARB_sample_shading,GL_ARB_sampler_objects,GL_ARB_seamless_cube_map,GL_ARB_seamless_cubemap_per_texture,GL_ARB_separate_shader_objects,GL_ARB_shader_atomic_counter_ops,GL_ARB_shader_atomic_counters,GL_ARB_shader_ballot,GL_ARB_shader_bit_encoding,GL_ARB_shader_clock,GL_ARB_shader_draw_parameters,GL_ARB_shader_group_vote,GL_ARB_shader_image_load_store,GL_ARB_shader_image_size,GL_ARB_shader_objects,GL_ARB_shader_precision,GL_ARB_shader_stencil_export,GL_ARB_shader_storage_buffer_object,GL_ARB_shader_subroutine,GL_ARB_shader_texture_image_samples,GL_ARB_shader_texture_lod,GL_ARB_shader_viewport_layer_array,GL_ARB_shading_language_100,GL_ARB_shading_language_420pack,GL_ARB_shading_language_include,GL_ARB_shading_language_packing,GL_ARB_shadow,GL_ARB_shadow_ambient,GL_ARB_sparse_buffer,GL_ARB_sparse_texture,GL_ARB_sparse_texture2,GL_ARB_sparse_texture_clamp,GL_ARB_spirv_extensions,GL_ARB_stencil_texturing,GL_ARB_sync,GL_ARB_tessellation_shader,GL_ARB_texture_barrier,GL_ARB_texture_border_clamp,GL_ARB_texture_buffer_object,GL_ARB_texture_buffer_object_rgb32,GL_ARB_texture_buffer_range,GL_ARB_texture_compression,GL_ARB_texture_compression_bptc,GL_ARB_texture_compression_rgtc,GL_ARB_texture_cube_map,GL_ARB_texture_cube_map_array,GL_ARB_texture_env_add,GL_ARB_texture_env_combine,GL_ARB_texture_env_crossbar,GL_ARB_texture_env_dot3,GL_ARB_texture_filter_anisotropic,GL_ARB_texture_filter_minmax,GL_ARB_texture_float,GL_ARB_texture_gather,GL_ARB_texture_mirror_clamp_to_edge,GL_ARB_texture_mirrored_repeat,GL_ARB_texture_multisample,GL_ARB_texture_non_power_of_two,GL_ARB_texture_query_levels,GL_ARB_texture_query_lod,GL_ARB_texture_rectangle,GL_ARB_texture_rg,GL_ARB_texture_rgb10_a2ui,GL_ARB_texture_stencil8,GL_ARB_texture_storage,GL_ARB_texture_storage_multisample,GL_ARB_texture_swizzle,GL_ARB_texture_view,GL_ARB_timer_query,GL_ARB_transform_feedback2,GL_ARB_transform_feedback3,GL_ARB_transform_feedback_instanced,GL_ARB_transform_feedback_overflow_query,GL_ARB_transpose_matrix,GL_ARB_uniform_buffer_object,GL_ARB_vertex_array_bgra,GL_ARB_vertex_array_object,GL_ARB_vertex_attrib_64bit,GL_ARB_vertex_attrib_binding,GL_ARB_vertex_blend,GL_ARB_vertex_buffer_object,GL_ARB_vertex_program,GL_ARB_vertex_shader,GL_ARB_vertex_type_10f_11f_11f_rev,GL_ARB_vertex_type_2_10_10_10_rev,GL_ARB_viewport_array,GL_ARB_window_pos,GL_ATI_draw_buffers,GL_ATI_element_array,GL_ATI_envmap_bumpmap,GL_ATI_fragment_shader,GL_ATI_map_object_buffer,GL_ATI_meminfo,GL_ATI_pixel_format_float,GL_ATI_pn_triangles,GL_ATI_separate_stencil,GL_ATI_text_fragment_shader,GL_ATI_texture_env_combine3,GL_ATI_texture_float,GL_ATI_texture_mirror_once,GL_ATI_vertex_array_object,GL_ATI_vertex_attrib_array_object,GL_ATI_vertex_streams,GL_EXT_422_pixels,GL_EXT_EGL_image_storage,GL_EXT_EGL_sync,GL_EXT_abgr,GL_EXT_bgra,GL_EXT_bindable_uniform,GL_EXT_blend_color,GL_EXT_blend_equation_separate,GL_EXT_blend_func_separate,GL_EXT_blend_logic_op,GL_EXT_blend_minmax,GL_EXT_blend_subtract,GL_EXT_clip_volume_hint,GL_EXT_cmyka,GL_EXT_color_subtable,GL_EXT_compiled_vertex_array,GL_EXT_convolution,GL_EXT_coordinate_frame,GL_EXT_copy_texture,GL_EXT_cull_vertex,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_depth_bounds_test,GL_EXT_direct_state_access,GL_EXT_draw_buffers2,GL_EXT_draw_instanced,GL_EXT_draw_range_elements,GL_EXT_external_buffer,GL_EXT_fog_coord,GL_EXT_framebuffer_blit,GL_EXT_framebuffer_blit_layers,GL_EXT_framebuffer_multisample,GL_EXT_framebuffer_multisample_blit_scaled,GL_EXT_framebuffer_object,GL_EXT_framebuffer_sRGB,GL_EXT_geometry_shader4,GL_EXT_gpu_program_parameters,GL_EXT_gpu_shader4,GL_EXT_histogram,GL_EXT_index_array_formats,GL_EXT_index_func,GL_EXT_index_material,GL_EXT_index_texture,GL_EXT_light_texture,GL_EXT_memory_object,GL_EXT_memory_object_fd,GL_EXT_memory_object_win32,GL_EXT_misc_attribute,GL_EXT_multi_draw_arrays,GL_EXT_multisample,GL_EXT_multiview_tessellation_geometry_shader,GL_EXT_multiview_texture_multisample,GL_EXT_multiview_timer_query,GL_EXT_packed_depth_stencil,GL_EXT_packed_float,GL_EXT_packed_pixels,GL_EXT_paletted_texture,GL_EXT_pixel_buffer_object,GL_EXT_pixel_transform,GL_EXT_pixel_transform_color_table,GL_EXT_point_parameters,GL_EXT_polygon_offset,GL_EXT_polygon_offset_clamp,GL_EXT_post_depth_coverage,GL_EXT_provoking_vertex,GL_EXT_raster_multisample,GL_EXT_rescale_normal,GL_EXT_secondary_color,GL_EXT_semaphore,GL_EXT_semaphore_fd,GL_EXT_semaphore_win32,GL_EXT_separate_shader_objects,GL_EXT_separate_specular_color,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_framebuffer_fetch_non_coherent,GL_EXT_shader_image_load_formatted,GL_EXT_shader_image_load_store,GL_EXT_shader_integer_mix,GL_EXT_shader_samples_identical,GL_EXT_shadow_funcs,GL_EXT_shared_texture_palette,GL_EXT_sparse_texture2,GL_EXT_stencil_clear_tag,GL_EXT_stencil_two_side,GL_EXT_stencil_wrap,GL_EXT_subtexture,GL_EXT_texture,GL_EXT_texture3D,GL_EXT_texture_array,GL_EXT_texture_buffer_object,GL_EXT_texture_compression_latc,GL_EXT_texture_compression_rgtc,GL_EXT_texture_compression_s3tc,GL_EXT_texture_cube_map,GL_EXT_texture_env_add,GL_EXT_texture_env_combine,GL_EXT_texture_env_dot3,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_filter_minmax,GL_EXT_texture_integer,GL_EXT_texture_lod_bias,GL_EXT_texture_mirror_clamp,GL_EXT_texture_object,GL_EXT_texture_perturb_normal,GL_EXT_texture_sRGB,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_RG8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_shadow_lod,GL_EXT_texture_shared_exponent,GL_EXT_texture_snorm,GL_EXT_texture_storage,GL_EXT_texture_swizzle,GL_EXT_timer_query,GL_EXT_transform_feedback,GL_EXT_vertex_array,GL_EXT_vertex_array_bgra,GL_EXT_vertex_attrib_64bit,GL_EXT_vertex_shader,GL_EXT_vertex_weighting,GL_EXT_win32_keyed_mutex,GL_EXT_window_rectangles,GL_EXT_x11_sync_object,GL_GREMEDY_frame_terminator,GL_GREMEDY_string_marker,GL_HP_convolution_border_modes,GL_HP_image_transform,GL_HP_occlusion_test,GL_HP_texture_lighting,GL_IBM_cull_vertex,GL_IBM_multimode_draw_arrays,GL_IBM_rasterpos_clip,GL_IBM_static_data,GL_IBM_texture_mirrored_repeat,GL_IBM_vertex_array_lists,GL_INGR_blend_func_separate,GL_INGR_color_clamp,GL_INGR_interlace_read,GL_INTEL_blackhole_render,GL_INTEL_conservative_rasterization,GL_INTEL_fragment_shader_ordering,GL_INTEL_framebuffer_CMAA,GL_INTEL_map_texture,GL_INTEL_parallel_arrays,GL_INTEL_performance_query,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_context_flush_control,GL_KHR_debug,GL_KHR_no_error,GL_KHR_parallel_shader_compile,GL_KHR_robust_buffer_access_behavior,GL_KHR_robustness,GL_KHR_shader_subgroup,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_KHR_texture_compression_astc_sliced_3d,GL_MESAX_texture_stack,GL_MESA_framebuffer_flip_x,GL_MESA_framebuffer_flip_y,GL_MESA_framebuffer_swap_xy,GL_MESA_pack_invert,GL_MESA_program_binary_formats,GL_MESA_resize_buffers,GL_MESA_shader_integer_functions,GL_MESA_tile_raster_order,GL_MESA_window_pos,GL_MESA_ycbcr_texture,GL_NVX_blend_equation_advanced_multi_draw_buffers,GL_NVX_conditional_render,GL_NVX_gpu_memory_info,GL_NVX_gpu_multicast2,GL_NVX_linked_gpu_multicast,GL_NVX_progress_fence,GL_NV_alpha_to_coverage_dither_control,GL_NV_bindless_multi_draw_indirect,GL_NV_bindless_multi_draw_indirect_count,GL_NV_bindless_texture,GL_NV_blend_equation_advanced,GL_NV_blend_equation_advanced_coherent,GL_NV_blend_minmax_factor,GL_NV_blend_square,GL_NV_clip_space_w_scaling,GL_NV_command_list,GL_NV_compute_program5,GL_NV_compute_shader_derivatives,GL_NV_conditional_render,GL_NV_conservative_raster,GL_NV_conservative_raster_dilate,GL_NV_conservative_raster_pre_snap,GL_NV_conservative_raster_pre_snap_triangles,GL_NV_conservative_raster_underestimation,GL_NV_copy_depth_to_color,GL_NV_copy_image,GL_NV_deep_texture3D,GL_NV_depth_buffer_float,GL_NV_depth_clamp,GL_NV_draw_texture,GL_NV_draw_vulkan_image,GL_NV_evaluators,GL_NV_explicit_multisample,GL_NV_fence,GL_NV_fill_rectangle,GL_NV_float_buffer,GL_NV_fog_distance,GL_NV_fragment_coverage_to_color,GL_NV_fragment_program,GL_NV_fragment_program2,GL_NV_fragment_program4,GL_NV_fragment_program_option,GL_NV_fragment_shader_barycentric,GL_NV_fragment_shader_interlock,GL_NV_framebuffer_mixed_samples,GL_NV_framebuffer_multisample_coverage,GL_NV_geometry_program4,GL_NV_geometry_shader4,GL_NV_geometry_shader_passthrough,GL_NV_gpu_multicast,GL_NV_gpu_program4,GL_NV_gpu_program5,GL_NV_gpu_program5_mem_extended,GL_NV_gpu_shader5,GL_NV_half_float,GL_NV_internalformat_sample_query,GL_NV_light_max_exponent,GL_NV_memory_attachment,GL_NV_memory_object_sparse,GL_NV_mesh_shader,GL_NV_multisample_coverage,GL_NV_multisample_filter_hint,GL_NV_occlusion_query,GL_NV_packed_depth_stencil,GL_NV_parameter_buffer_object,GL_NV_parameter_buffer_object2,GL_NV_path_rendering,GL_NV_path_rendering_shared_edge,GL_NV_pixel_data_range,GL_NV_point_sprite,GL_NV_present_video,GL_NV_primitive_restart,GL_NV_primitive_shading_rate,GL_NV_query_resource,GL_NV_query_resource_tag,GL_NV_register_combiners,GL_NV_register_combiners2,GL_NV_representative_fragment_test,GL_NV_robustness_video_memory_purge,GL_NV_sample_locations,GL_NV_sample_mask_override_coverage,GL_NV_scissor_exclusive,GL_NV_shader_atomic_counters,GL_NV_shader_atomic_float,GL_NV_shader_atomic_float64,GL_NV_shader_atomic_fp16_vector,GL_NV_shader_atomic_int64,GL_NV_shader_buffer_load,GL_NV_shader_buffer_store,GL_NV_shader_storage_buffer_object,GL_NV_shader_subgroup_partitioned,GL_NV_shader_texture_footprint,GL_NV_shader_thread_group,GL_NV_shader_thread_shuffle,GL_NV_shading_rate_image,GL_NV_stereo_view_rendering,GL_NV_tessellation_program5,GL_NV_texgen_emboss,GL_NV_texgen_reflection,GL_NV_texture_barrier,GL_NV_texture_compression_vtc,GL_NV_texture_env_combine4,GL_NV_texture_expand_normal,GL_NV_texture_multisample,GL_NV_texture_rectangle,GL_NV_texture_rectangle_compressed,GL_NV_texture_shader,GL_NV_texture_shader2,GL_NV_texture_shader3,GL_NV_timeline_semaphore,GL_NV_transform_feedback,GL_NV_transform_feedback2,GL_NV_uniform_buffer_std430_layout,GL_NV_uniform_buffer_unified_memory,GL_NV_vdpau_interop,GL_NV_vdpau_interop2,GL_NV_vertex_array_range,GL_NV_vertex_array_range2,GL_NV_vertex_attrib_integer_64bit,GL_NV_vertex_buffer_unified_memory,GL_NV_vertex_program,GL_NV_vertex_program1_1,GL_NV_vertex_program2,GL_NV_vertex_program2_option,GL_NV_vertex_program3,GL_NV_vertex_program4,GL_NV_video_capture,GL_NV_viewport_array2,GL_NV_viewport_swizzle,GL_OES_byte_coordinates,GL_OES_compressed_paletted_texture,GL_OES_fixed_point,GL_OES_query_matrix,GL_OES_read_format,GL_OES_single_precision,GL_OML_interlace,GL_OML_resample,GL_OML_subsample,GL_OVR_multiview,GL_OVR_multiview2,GL_PGI_misc_hints,GL_PGI_vertex_hints,GL_REND_screen_coordinates,GL_S3_s3tc,GL_SGIS_detail_texture,GL_SGIS_fog_function,GL_SGIS_generate_mipmap,GL_SGIS_multisample,GL_SGIS_pixel_texture,GL_SGIS_point_line_texgen,GL_SGIS_point_parameters,GL_SGIS_sharpen_texture,GL_SGIS_texture4D,GL_SGIS_texture_border_clamp,GL_SGIS_texture_color_mask,GL_SGIS_texture_edge_clamp,GL_SGIS_texture_filter4,GL_SGIS_texture_lod,GL_SGIS_texture_select,GL_SGIX_async,GL_SGIX_async_histogram,GL_SGIX_async_pixel,GL_SGIX_blend_alpha_minmax,GL_SGIX_calligraphic_fragment,GL_SGIX_clipmap,GL_SGIX_convolution_accuracy,GL_SGIX_depth_pass_instrument,GL_SGIX_depth_texture,GL_SGIX_flush_raster,GL_SGIX_fog_offset,GL_SGIX_fragment_lighting,GL_SGIX_framezoom,GL_SGIX_igloo_interface,GL_SGIX_instruments,GL_SGIX_interlace,GL_SGIX_ir_instrument1,GL_SGIX_list_priority,GL_SGIX_pixel_texture,GL_SGIX_pixel_tiles,GL_SGIX_polynomial_ffd,GL_SGIX_reference_plane,GL_SGIX_resample,GL_SGIX_scalebias_hint,GL_SGIX_shadow,GL_SGIX_shadow_ambient,GL_SGIX_sprite,GL_SGIX_subsample,GL_SGIX_tag_sample_buffer,GL_SGIX_texture_add_env,GL_SGIX_texture_coordinate_clamp,GL_SGIX_texture_lod_bias,GL_SGIX_texture_multi_buffer,GL_SGIX_texture_scale_bias,GL_SGIX_vertex_preclip,GL_SGIX_ycrcb,GL_SGIX_ycrcb_subsample,GL_SGIX_ycrcba,GL_SGI_color_matrix,GL_SGI_color_table,GL_SGI_texture_color_table,GL_SUNX_constant_data,GL_SUN_convolution_border_modes,GL_SUN_global_alpha,GL_SUN_mesh_array,GL_SUN_slice_accum,GL_SUN_triangle_list,GL_SUN_vertex,GL_WIN_phong_shading,GL_WIN_specular_fog' c --mx
+ *
+ * Online:
+ * http://glad.sh/#api=gl%3Acore%3D4.6&generator=c&options=MX
+ *
+ */
+
+#ifndef GLAD_GL_H_
+#define GLAD_GL_H_
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wreserved-id-macro"
+#endif
+#ifdef __gl_h_
+#error OpenGL (gl.h) header already included (API: gl), remove previous include!
+#endif
+#define __gl_h_ 1
+#ifdef __gl3_h_
+#error OpenGL (gl3.h) header already included (API: gl), remove previous include!
+#endif
+#define __gl3_h_ 1
+#ifdef __glext_h_
+#error OpenGL (glext.h) header already included (API: gl), remove previous include!
+#endif
+#define __glext_h_ 1
+#ifdef __gl3ext_h_
+#error OpenGL (gl3ext.h) header already included (API: gl), remove previous include!
+#endif
+#define __gl3ext_h_ 1
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+#define GLAD_GL
+#define GLAD_OPTION_GL_MX
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef GLAD_PLATFORM_H_
+#define GLAD_PLATFORM_H_
+
+#ifndef GLAD_PLATFORM_WIN32
+#if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__)
+#define GLAD_PLATFORM_WIN32 1
+#else
+#define GLAD_PLATFORM_WIN32 0
+#endif
+#endif
+
+#ifndef GLAD_PLATFORM_APPLE
+#ifdef __APPLE__
+#define GLAD_PLATFORM_APPLE 1
+#else
+#define GLAD_PLATFORM_APPLE 0
+#endif
+#endif
+
+#ifndef GLAD_PLATFORM_EMSCRIPTEN
+#ifdef __EMSCRIPTEN__
+#define GLAD_PLATFORM_EMSCRIPTEN 1
+#else
+#define GLAD_PLATFORM_EMSCRIPTEN 0
+#endif
+#endif
+
+#ifndef GLAD_PLATFORM_UWP
+#if defined(_MSC_VER) && !defined(GLAD_INTERNAL_HAVE_WINAPIFAMILY)
+#ifdef __has_include
+#if __has_include()
+#define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
+#endif
+#elif _MSC_VER >= 1700 && !_USING_V110_SDK71_
+#define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
+#endif
+#endif
+
+#ifdef GLAD_INTERNAL_HAVE_WINAPIFAMILY
+#include
+#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && \
+ WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+#define GLAD_PLATFORM_UWP 1
+#endif
+#endif
+
+#ifndef GLAD_PLATFORM_UWP
+#define GLAD_PLATFORM_UWP 0
+#endif
+#endif
+
+#ifdef __GNUC__
+#define GLAD_GNUC_EXTENSION __extension__
+#else
+#define GLAD_GNUC_EXTENSION
+#endif
+
+#define GLAD_UNUSED(x) (void)(x)
+
+#ifndef GLAD_API_CALL
+#if defined(GLAD_API_CALL_EXPORT)
+#if GLAD_PLATFORM_WIN32 || defined(__CYGWIN__)
+#if defined(GLAD_API_CALL_EXPORT_BUILD)
+#if defined(__GNUC__)
+#define GLAD_API_CALL __attribute__((dllexport)) extern
+#else
+#define GLAD_API_CALL __declspec(dllexport) extern
+#endif
+#else
+#if defined(__GNUC__)
+#define GLAD_API_CALL __attribute__((dllimport)) extern
+#else
+#define GLAD_API_CALL __declspec(dllimport) extern
+#endif
+#endif
+#elif defined(__GNUC__) && defined(GLAD_API_CALL_EXPORT_BUILD)
+#define GLAD_API_CALL __attribute__((visibility("default"))) extern
+#else
+#define GLAD_API_CALL extern
+#endif
+#else
+#define GLAD_API_CALL extern
+#endif
+#endif
+
+#ifdef APIENTRY
+#define GLAD_API_PTR APIENTRY
+#elif GLAD_PLATFORM_WIN32
+#define GLAD_API_PTR __stdcall
+#else
+#define GLAD_API_PTR
+#endif
+
+#ifndef GLAPI
+#define GLAPI GLAD_API_CALL
+#endif
+
+#ifndef GLAPIENTRY
+#define GLAPIENTRY GLAD_API_PTR
+#endif
+
+#define GLAD_MAKE_VERSION(major, minor) (major * 10000 + minor)
+#define GLAD_VERSION_MAJOR(version) (version / 10000)
+#define GLAD_VERSION_MINOR(version) (version % 10000)
+
+#define GLAD_GENERATOR_VERSION "2.0.5"
+
+typedef void (*GLADapiproc)(void);
+
+typedef GLADapiproc (*GLADloadfunc)(const char *name);
+typedef GLADapiproc (*GLADuserptrloadfunc)(void *userptr, const char *name);
+
+typedef void (*GLADprecallback)(const char *name, GLADapiproc apiproc, int len_args, ...);
+typedef void (*GLADpostcallback)(void *ret, const char *name, GLADapiproc apiproc, int len_args,
+ ...);
+
+#endif /* GLAD_PLATFORM_H_ */
+
+#define GL_1PASS_EXT 0x80A1
+#define GL_1PASS_SGIS 0x80A1
+#define GL_2PASS_0_EXT 0x80A2
+#define GL_2PASS_0_SGIS 0x80A2
+#define GL_2PASS_1_EXT 0x80A3
+#define GL_2PASS_1_SGIS 0x80A3
+#define GL_2X_BIT_ATI 0x00000001
+#define GL_422_AVERAGE_EXT 0x80CE
+#define GL_422_EXT 0x80CC
+#define GL_422_REV_AVERAGE_EXT 0x80CF
+#define GL_422_REV_EXT 0x80CD
+#define GL_4PASS_0_EXT 0x80A4
+#define GL_4PASS_0_SGIS 0x80A4
+#define GL_4PASS_1_EXT 0x80A5
+#define GL_4PASS_1_SGIS 0x80A5
+#define GL_4PASS_2_EXT 0x80A6
+#define GL_4PASS_2_SGIS 0x80A6
+#define GL_4PASS_3_EXT 0x80A7
+#define GL_4PASS_3_SGIS 0x80A7
+#define GL_4X_BIT_ATI 0x00000002
+#define GL_8X_BIT_ATI 0x00000004
+#define GL_ABGR_EXT 0x8000
+#define GL_ACCUM_ADJACENT_PAIRS_NV 0x90AD
+#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9
+#define GL_ACTIVE_ATTRIBUTES 0x8B89
+#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A
+#define GL_ACTIVE_PROGRAM 0x8259
+#define GL_ACTIVE_PROGRAM_EXT 0x8B8D
+#define GL_ACTIVE_RESOURCES 0x92F5
+#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911
+#define GL_ACTIVE_SUBROUTINES 0x8DE5
+#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48
+#define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6
+#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47
+#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49
+#define GL_ACTIVE_TEXTURE 0x84E0
+#define GL_ACTIVE_TEXTURE_ARB 0x84E0
+#define GL_ACTIVE_UNIFORMS 0x8B86
+#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36
+#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35
+#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87
+#define GL_ACTIVE_VARIABLES 0x9305
+#define GL_ACTIVE_VARYINGS_NV 0x8C81
+#define GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82
+#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5
+#define GL_ADD_ATI 0x8963
+#define GL_ADD_SIGNED_ARB 0x8574
+#define GL_ADD_SIGNED_EXT 0x8574
+#define GL_ADJACENT_PAIRS_NV 0x90AE
+#define GL_AFFINE_2D_NV 0x9092
+#define GL_AFFINE_3D_NV 0x9094
+#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
+#define GL_ALLOW_DRAW_FRG_HINT_PGI 0x1A210
+#define GL_ALLOW_DRAW_MEM_HINT_PGI 0x1A211
+#define GL_ALLOW_DRAW_OBJ_HINT_PGI 0x1A20E
+#define GL_ALLOW_DRAW_WIN_HINT_PGI 0x1A20F
+#define GL_ALL_BARRIER_BITS 0xFFFFFFFF
+#define GL_ALL_BARRIER_BITS_EXT 0xFFFFFFFF
+#define GL_ALL_COMPLETED_NV 0x84F2
+#define GL_ALL_PIXELS_AMD 0xFFFFFFFF
+#define GL_ALL_SHADER_BITS 0xFFFFFFFF
+#define GL_ALL_STATIC_DATA_IBM 103060
+#define GL_ALPHA 0x1906
+#define GL_ALPHA12_EXT 0x803D
+#define GL_ALPHA16F_ARB 0x881C
+#define GL_ALPHA16F_EXT 0x881C
+#define GL_ALPHA16I_EXT 0x8D8A
+#define GL_ALPHA16UI_EXT 0x8D78
+#define GL_ALPHA16_EXT 0x803E
+#define GL_ALPHA16_SNORM 0x9018
+#define GL_ALPHA32F_ARB 0x8816
+#define GL_ALPHA32F_EXT 0x8816
+#define GL_ALPHA32I_EXT 0x8D84
+#define GL_ALPHA32UI_EXT 0x8D72
+#define GL_ALPHA4_EXT 0x803B
+#define GL_ALPHA8I_EXT 0x8D90
+#define GL_ALPHA8UI_EXT 0x8D7E
+#define GL_ALPHA8_EXT 0x803C
+#define GL_ALPHA8_SNORM 0x9014
+#define GL_ALPHA_FLOAT16_APPLE 0x881C
+#define GL_ALPHA_FLOAT16_ATI 0x881C
+#define GL_ALPHA_FLOAT32_APPLE 0x8816
+#define GL_ALPHA_FLOAT32_ATI 0x8816
+#define GL_ALPHA_INTEGER_EXT 0x8D97
+#define GL_ALPHA_MAX_CLAMP_INGR 0x8567
+#define GL_ALPHA_MAX_SGIX 0x8321
+#define GL_ALPHA_MIN_CLAMP_INGR 0x8563
+#define GL_ALPHA_MIN_SGIX 0x8320
+#define GL_ALPHA_REF_COMMAND_NV 0x000F
+#define GL_ALPHA_SNORM 0x9010
+#define GL_ALPHA_TO_COVERAGE_DITHER_DEFAULT_NV 0x934D
+#define GL_ALPHA_TO_COVERAGE_DITHER_DISABLE_NV 0x934F
+#define GL_ALPHA_TO_COVERAGE_DITHER_ENABLE_NV 0x934E
+#define GL_ALPHA_TO_COVERAGE_DITHER_MODE_NV 0x92BF
+#define GL_ALREADY_SIGNALED 0x911A
+#define GL_ALWAYS 0x0207
+#define GL_ALWAYS_FAST_HINT_PGI 0x1A20C
+#define GL_ALWAYS_SOFT_HINT_PGI 0x1A20D
+#define GL_AND 0x1501
+#define GL_AND_INVERTED 0x1504
+#define GL_AND_REVERSE 0x1502
+#define GL_ANY_SAMPLES_PASSED 0x8C2F
+#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A
+#define GL_ARC_TO_NV 0xFE
+#define GL_ARRAY_BUFFER 0x8892
+#define GL_ARRAY_BUFFER_ARB 0x8892
+#define GL_ARRAY_BUFFER_BINDING 0x8894
+#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894
+#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9
+#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8
+#define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766
+#define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767
+#define GL_ARRAY_SIZE 0x92FB
+#define GL_ARRAY_STRIDE 0x92FE
+#define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D
+#define GL_ASYNC_HISTOGRAM_SGIX 0x832C
+#define GL_ASYNC_MARKER_SGIX 0x8329
+#define GL_ASYNC_READ_PIXELS_SGIX 0x835E
+#define GL_ASYNC_TEX_IMAGE_SGIX 0x835C
+#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000
+#define GL_ATOMIC_COUNTER_BARRIER_BIT_EXT 0x00001000
+#define GL_ATOMIC_COUNTER_BUFFER 0x92C0
+#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS 0x92C5
+#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES 0x92C6
+#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1
+#define GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE 0x92C4
+#define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER 0x90ED
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER 0x92CB
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER 0x92CA
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_MESH_SHADER_NV 0x959E
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TASK_SHADER_NV 0x959F
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER 0x92C8
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER 0x92C9
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER 0x92C7
+#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3
+#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2
+#define GL_ATTACHED_MEMORY_OBJECT_NV 0x95A4
+#define GL_ATTACHED_MEMORY_OFFSET_NV 0x95A5
+#define GL_ATTACHED_SHADERS 0x8B85
+#define GL_ATTENUATION_EXT 0x834D
+#define GL_ATTRIBUTE_ADDRESS_COMMAND_NV 0x0009
+#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645
+#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623
+#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624
+#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625
+#define GL_AUTO_GENERATE_MIPMAP 0x8295
+#define GL_AUX_DEPTH_STENCIL_APPLE 0x8A14
+#define GL_AVERAGE_EXT 0x8335
+#define GL_AVERAGE_HP 0x8160
+#define GL_BACK 0x0405
+#define GL_BACK_LEFT 0x0402
+#define GL_BACK_NORMALS_HINT_PGI 0x1A223
+#define GL_BACK_PRIMARY_COLOR_NV 0x8C77
+#define GL_BACK_RIGHT 0x0403
+#define GL_BACK_SECONDARY_COLOR_NV 0x8C78
+#define GL_BEVEL_NV 0x90A6
+#define GL_BGR 0x80E0
+#define GL_BGRA 0x80E1
+#define GL_BGRA8_EXT 0x93A1
+#define GL_BGRA_EXT 0x80E1
+#define GL_BGRA_INTEGER 0x8D9B
+#define GL_BGRA_INTEGER_EXT 0x8D9B
+#define GL_BGR_EXT 0x80E0
+#define GL_BGR_INTEGER 0x8D9A
+#define GL_BGR_INTEGER_EXT 0x8D9A
+#define GL_BIAS_BIT_ATI 0x00000008
+#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541
+#define GL_BINORMAL_ARRAY_EXT 0x843A
+#define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443
+#define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441
+#define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440
+#define GL_BLACKHOLE_RENDER_INTEL 0x83FC
+#define GL_BLEND 0x0BE2
+#define GL_BLEND_ADVANCED_COHERENT_KHR 0x9285
+#define GL_BLEND_ADVANCED_COHERENT_NV 0x9285
+#define GL_BLEND_COLOR 0x8005
+#define GL_BLEND_COLOR_COMMAND_NV 0x000B
+#define GL_BLEND_COLOR_EXT 0x8005
+#define GL_BLEND_DST 0x0BE0
+#define GL_BLEND_DST_ALPHA 0x80CA
+#define GL_BLEND_DST_ALPHA_EXT 0x80CA
+#define GL_BLEND_DST_RGB 0x80C8
+#define GL_BLEND_DST_RGB_EXT 0x80C8
+#define GL_BLEND_EQUATION 0x8009
+#define GL_BLEND_EQUATION_ALPHA 0x883D
+#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D
+#define GL_BLEND_EQUATION_EXT 0x8009
+#define GL_BLEND_EQUATION_RGB 0x8009
+#define GL_BLEND_EQUATION_RGB_EXT 0x8009
+#define GL_BLEND_OVERLAP_NV 0x9281
+#define GL_BLEND_PREMULTIPLIED_SRC_NV 0x9280
+#define GL_BLEND_SRC 0x0BE1
+#define GL_BLEND_SRC_ALPHA 0x80CB
+#define GL_BLEND_SRC_ALPHA_EXT 0x80CB
+#define GL_BLEND_SRC_RGB 0x80C9
+#define GL_BLEND_SRC_RGB_EXT 0x80C9
+#define GL_BLOCK_INDEX 0x92FD
+#define GL_BLUE 0x1905
+#define GL_BLUE_BIT_ATI 0x00000004
+#define GL_BLUE_INTEGER 0x8D96
+#define GL_BLUE_INTEGER_EXT 0x8D96
+#define GL_BLUE_MAX_CLAMP_INGR 0x8566
+#define GL_BLUE_MIN_CLAMP_INGR 0x8562
+#define GL_BLUE_NV 0x1905
+#define GL_BOLD_BIT_NV 0x01
+#define GL_BOOL 0x8B56
+#define GL_BOOL_ARB 0x8B56
+#define GL_BOOL_VEC2 0x8B57
+#define GL_BOOL_VEC2_ARB 0x8B57
+#define GL_BOOL_VEC3 0x8B58
+#define GL_BOOL_VEC3_ARB 0x8B58
+#define GL_BOOL_VEC4 0x8B59
+#define GL_BOOL_VEC4_ARB 0x8B59
+#define GL_BOUNDING_BOX_NV 0x908D
+#define GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV 0x909C
+#define GL_BUFFER 0x82E0
+#define GL_BUFFER_ACCESS 0x88BB
+#define GL_BUFFER_ACCESS_ARB 0x88BB
+#define GL_BUFFER_ACCESS_FLAGS 0x911F
+#define GL_BUFFER_BINDING 0x9302
+#define GL_BUFFER_DATA_SIZE 0x9303
+#define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13
+#define GL_BUFFER_GPU_ADDRESS_NV 0x8F1D
+#define GL_BUFFER_IMMUTABLE_STORAGE 0x821F
+#define GL_BUFFER_MAPPED 0x88BC
+#define GL_BUFFER_MAPPED_ARB 0x88BC
+#define GL_BUFFER_MAP_LENGTH 0x9120
+#define GL_BUFFER_MAP_OFFSET 0x9121
+#define GL_BUFFER_MAP_POINTER 0x88BD
+#define GL_BUFFER_MAP_POINTER_ARB 0x88BD
+#define GL_BUFFER_OBJECT_APPLE 0x85B3
+#define GL_BUFFER_OBJECT_EXT 0x9151
+#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12
+#define GL_BUFFER_SIZE 0x8764
+#define GL_BUFFER_SIZE_ARB 0x8764
+#define GL_BUFFER_STORAGE_FLAGS 0x8220
+#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200
+#define GL_BUFFER_UPDATE_BARRIER_BIT_EXT 0x00000200
+#define GL_BUFFER_USAGE 0x8765
+#define GL_BUFFER_USAGE_ARB 0x8765
+#define GL_BUFFER_VARIABLE 0x92E5
+#define GL_BUMP_ENVMAP_ATI 0x877B
+#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777
+#define GL_BUMP_ROT_MATRIX_ATI 0x8775
+#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776
+#define GL_BUMP_TARGET_ATI 0x877C
+#define GL_BUMP_TEX_UNITS_ATI 0x8778
+#define GL_BYTE 0x1400
+#define GL_CALLIGRAPHIC_FRAGMENT_SGIX 0x8183
+#define GL_CAVEAT_SUPPORT 0x82B8
+#define GL_CCW 0x0901
+#define GL_CIRCULAR_CCW_ARC_TO_NV 0xF8
+#define GL_CIRCULAR_CW_ARC_TO_NV 0xFA
+#define GL_CIRCULAR_TANGENT_ARC_TO_NV 0xFC
+#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B
+#define GL_CLAMP_READ_COLOR 0x891C
+#define GL_CLAMP_READ_COLOR_ARB 0x891C
+#define GL_CLAMP_TO_BORDER 0x812D
+#define GL_CLAMP_TO_BORDER_ARB 0x812D
+#define GL_CLAMP_TO_BORDER_SGIS 0x812D
+#define GL_CLAMP_TO_EDGE 0x812F
+#define GL_CLAMP_TO_EDGE_SGIS 0x812F
+#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A
+#define GL_CLEAR 0x1500
+#define GL_CLEAR_BUFFER 0x82B4
+#define GL_CLEAR_TEXTURE 0x9365
+#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1
+#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT 0x00004000
+#define GL_CLIENT_STORAGE_BIT 0x0200
+#define GL_CLIPPING_INPUT_PRIMITIVES 0x82F6
+#define GL_CLIPPING_INPUT_PRIMITIVES_ARB 0x82F6
+#define GL_CLIPPING_OUTPUT_PRIMITIVES 0x82F7
+#define GL_CLIPPING_OUTPUT_PRIMITIVES_ARB 0x82F7
+#define GL_CLIP_DEPTH_MODE 0x935D
+#define GL_CLIP_DISTANCE0 0x3000
+#define GL_CLIP_DISTANCE1 0x3001
+#define GL_CLIP_DISTANCE2 0x3002
+#define GL_CLIP_DISTANCE3 0x3003
+#define GL_CLIP_DISTANCE4 0x3004
+#define GL_CLIP_DISTANCE5 0x3005
+#define GL_CLIP_DISTANCE6 0x3006
+#define GL_CLIP_DISTANCE7 0x3007
+#define GL_CLIP_DISTANCE_NV 0x8C7A
+#define GL_CLIP_FAR_HINT_PGI 0x1A221
+#define GL_CLIP_NEAR_HINT_PGI 0x1A220
+#define GL_CLIP_ORIGIN 0x935C
+#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0
+#define GL_CLOSE_PATH_NV 0x00
+#define GL_CMYKA_EXT 0x800D
+#define GL_CMYK_EXT 0x800C
+#define GL_CND0_ATI 0x896B
+#define GL_CND_ATI 0x896A
+#define GL_COLOR 0x1800
+#define GL_COLOR3_BIT_PGI 0x00010000
+#define GL_COLOR4_BIT_PGI 0x00020000
+#define GL_COLORBURN_KHR 0x929A
+#define GL_COLORBURN_NV 0x929A
+#define GL_COLORDODGE_KHR 0x9299
+#define GL_COLORDODGE_NV 0x9299
+#define GL_COLOR_ALPHA_PAIRING_ATI 0x8975
+#define GL_COLOR_ARRAY_ADDRESS_NV 0x8F23
+#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898
+#define GL_COLOR_ARRAY_COUNT_EXT 0x8084
+#define GL_COLOR_ARRAY_EXT 0x8076
+#define GL_COLOR_ARRAY_LENGTH_NV 0x8F2D
+#define GL_COLOR_ARRAY_LIST_IBM 103072
+#define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082
+#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7
+#define GL_COLOR_ARRAY_POINTER_EXT 0x8090
+#define GL_COLOR_ARRAY_SIZE_EXT 0x8081
+#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083
+#define GL_COLOR_ARRAY_TYPE_EXT 0x8082
+#define GL_COLOR_ATTACHMENT0 0x8CE0
+#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0
+#define GL_COLOR_ATTACHMENT1 0x8CE1
+#define GL_COLOR_ATTACHMENT10 0x8CEA
+#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA
+#define GL_COLOR_ATTACHMENT11 0x8CEB
+#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB
+#define GL_COLOR_ATTACHMENT12 0x8CEC
+#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC
+#define GL_COLOR_ATTACHMENT13 0x8CED
+#define GL_COLOR_ATTACHMENT13_EXT 0x8CED
+#define GL_COLOR_ATTACHMENT14 0x8CEE
+#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE
+#define GL_COLOR_ATTACHMENT15 0x8CEF
+#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF
+#define GL_COLOR_ATTACHMENT16 0x8CF0
+#define GL_COLOR_ATTACHMENT17 0x8CF1
+#define GL_COLOR_ATTACHMENT18 0x8CF2
+#define GL_COLOR_ATTACHMENT19 0x8CF3
+#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1
+#define GL_COLOR_ATTACHMENT2 0x8CE2
+#define GL_COLOR_ATTACHMENT20 0x8CF4
+#define GL_COLOR_ATTACHMENT21 0x8CF5
+#define GL_COLOR_ATTACHMENT22 0x8CF6
+#define GL_COLOR_ATTACHMENT23 0x8CF7
+#define GL_COLOR_ATTACHMENT24 0x8CF8
+#define GL_COLOR_ATTACHMENT25 0x8CF9
+#define GL_COLOR_ATTACHMENT26 0x8CFA
+#define GL_COLOR_ATTACHMENT27 0x8CFB
+#define GL_COLOR_ATTACHMENT28 0x8CFC
+#define GL_COLOR_ATTACHMENT29 0x8CFD
+#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2
+#define GL_COLOR_ATTACHMENT3 0x8CE3
+#define GL_COLOR_ATTACHMENT30 0x8CFE
+#define GL_COLOR_ATTACHMENT31 0x8CFF
+#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3
+#define GL_COLOR_ATTACHMENT4 0x8CE4
+#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4
+#define GL_COLOR_ATTACHMENT5 0x8CE5
+#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5
+#define GL_COLOR_ATTACHMENT6 0x8CE6
+#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6
+#define GL_COLOR_ATTACHMENT7 0x8CE7
+#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7
+#define GL_COLOR_ATTACHMENT8 0x8CE8
+#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8
+#define GL_COLOR_ATTACHMENT9 0x8CE9
+#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9
+#define GL_COLOR_BUFFER_BIT 0x00004000
+#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835
+#define GL_COLOR_CLEAR_VALUE 0x0C22
+#define GL_COLOR_COMPONENTS 0x8283
+#define GL_COLOR_ENCODING 0x8296
+#define GL_COLOR_FLOAT_APPLE 0x8A0F
+#define GL_COLOR_INDEX12_EXT 0x80E6
+#define GL_COLOR_INDEX16_EXT 0x80E7
+#define GL_COLOR_INDEX1_EXT 0x80E2
+#define GL_COLOR_INDEX2_EXT 0x80E3
+#define GL_COLOR_INDEX4_EXT 0x80E4
+#define GL_COLOR_INDEX8_EXT 0x80E5
+#define GL_COLOR_LOGIC_OP 0x0BF2
+#define GL_COLOR_MATRIX_SGI 0x80B1
+#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2
+#define GL_COLOR_RENDERABLE 0x8286
+#define GL_COLOR_SAMPLES_NV 0x8E20
+#define GL_COLOR_SUM_ARB 0x8458
+#define GL_COLOR_SUM_CLAMP_NV 0x854F
+#define GL_COLOR_SUM_EXT 0x8458
+#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD
+#define GL_COLOR_TABLE_BIAS_SGI 0x80D7
+#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC
+#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8
+#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB
+#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF
+#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE
+#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA
+#define GL_COLOR_TABLE_SCALE_SGI 0x80D6
+#define GL_COLOR_TABLE_SGI 0x80D0
+#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9
+#define GL_COLOR_WRITEMASK 0x0C23
+#define GL_COMBINE4_NV 0x8503
+#define GL_COMBINER0_NV 0x8550
+#define GL_COMBINER1_NV 0x8551
+#define GL_COMBINER2_NV 0x8552
+#define GL_COMBINER3_NV 0x8553
+#define GL_COMBINER4_NV 0x8554
+#define GL_COMBINER5_NV 0x8555
+#define GL_COMBINER6_NV 0x8556
+#define GL_COMBINER7_NV 0x8557
+#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545
+#define GL_COMBINER_AB_OUTPUT_NV 0x854A
+#define GL_COMBINER_BIAS_NV 0x8549
+#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546
+#define GL_COMBINER_CD_OUTPUT_NV 0x854B
+#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544
+#define GL_COMBINER_INPUT_NV 0x8542
+#define GL_COMBINER_MAPPING_NV 0x8543
+#define GL_COMBINER_MUX_SUM_NV 0x8547
+#define GL_COMBINER_SCALE_NV 0x8548
+#define GL_COMBINER_SUM_OUTPUT_NV 0x854C
+#define GL_COMBINE_ALPHA_ARB 0x8572
+#define GL_COMBINE_ALPHA_EXT 0x8572
+#define GL_COMBINE_ARB 0x8570
+#define GL_COMBINE_EXT 0x8570
+#define GL_COMBINE_RGB_ARB 0x8571
+#define GL_COMBINE_RGB_EXT 0x8571
+#define GL_COMMAND_BARRIER_BIT 0x00000040
+#define GL_COMMAND_BARRIER_BIT_EXT 0x00000040
+#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E
+#define GL_COMPARE_REF_TO_TEXTURE 0x884E
+#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E
+#define GL_COMPATIBLE_SUBROUTINES 0x8E4B
+#define GL_COMPILE_STATUS 0x8B81
+#define GL_COMPLETION_STATUS_ARB 0x91B1
+#define GL_COMPLETION_STATUS_KHR 0x91B1
+#define GL_COMPRESSED_ALPHA_ARB 0x84E9
+#define GL_COMPRESSED_INTENSITY_ARB 0x84EC
+#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB
+#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72
+#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA
+#define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70
+#define GL_COMPRESSED_R11_EAC 0x9270
+#define GL_COMPRESSED_RED 0x8225
+#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD
+#define GL_COMPRESSED_RED_RGTC1 0x8DBB
+#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB
+#define GL_COMPRESSED_RG 0x8226
+#define GL_COMPRESSED_RG11_EAC 0x9272
+#define GL_COMPRESSED_RGB 0x84ED
+#define GL_COMPRESSED_RGB8_ETC2 0x9274
+#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276
+#define GL_COMPRESSED_RGBA 0x84EE
+#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278
+#define GL_COMPRESSED_RGBA_ARB 0x84EE
+#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB
+#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8
+#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9
+#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA
+#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC
+#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD
+#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0
+#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1
+#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2
+#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3
+#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4
+#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5
+#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6
+#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7
+#define GL_COMPRESSED_RGBA_BPTC_UNORM 0x8E8C
+#define GL_COMPRESSED_RGBA_BPTC_UNORM_ARB 0x8E8C
+#define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1
+#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1
+#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2
+#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3
+#define GL_COMPRESSED_RGB_ARB 0x84ED
+#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT 0x8E8E
+#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB 0x8E8E
+#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT 0x8E8F
+#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB 0x8E8F
+#define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0
+#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0
+#define GL_COMPRESSED_RG_RGTC2 0x8DBD
+#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73
+#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71
+#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271
+#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE
+#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC
+#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC
+#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273
+#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE
+#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B
+#define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A
+#define GL_COMPRESSED_SRGB 0x8C48
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7
+#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279
+#define GL_COMPRESSED_SRGB8_ETC2 0x9275
+#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277
+#define GL_COMPRESSED_SRGB_ALPHA 0x8C49
+#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM 0x8E8D
+#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB 0x8E8D
+#define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49
+#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D
+#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E
+#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F
+#define GL_COMPRESSED_SRGB_EXT 0x8C48
+#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C
+#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
+#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3
+#define GL_COMPUTE_PROGRAM_NV 0x90FB
+#define GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV 0x90FC
+#define GL_COMPUTE_SHADER 0x91B9
+#define GL_COMPUTE_SHADER_BIT 0x00000020
+#define GL_COMPUTE_SHADER_INVOCATIONS 0x82F5
+#define GL_COMPUTE_SHADER_INVOCATIONS_ARB 0x82F5
+#define GL_COMPUTE_SUBROUTINE 0x92ED
+#define GL_COMPUTE_SUBROUTINE_UNIFORM 0x92F3
+#define GL_COMPUTE_TEXTURE 0x82A0
+#define GL_COMPUTE_WORK_GROUP_SIZE 0x8267
+#define GL_COMP_BIT_ATI 0x00000002
+#define GL_CONDITION_SATISFIED 0x911C
+#define GL_CONFORMANT_NV 0x9374
+#define GL_CONIC_CURVE_TO_NV 0x1A
+#define GL_CONJOINT_NV 0x9284
+#define GL_CONSERVATIVE_RASTERIZATION_INTEL 0x83FE
+#define GL_CONSERVATIVE_RASTERIZATION_NV 0x9346
+#define GL_CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV 0x937B
+#define GL_CONSERVATIVE_RASTER_DILATE_NV 0x9379
+#define GL_CONSERVATIVE_RASTER_DILATE_RANGE_NV 0x937A
+#define GL_CONSERVATIVE_RASTER_MODE_NV 0x954D
+#define GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV 0x954E
+#define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_NV 0x9550
+#define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV 0x954F
+#define GL_CONSERVE_MEMORY_HINT_PGI 0x1A1FD
+#define GL_CONSTANT_ALPHA 0x8003
+#define GL_CONSTANT_ALPHA_EXT 0x8003
+#define GL_CONSTANT_ARB 0x8576
+#define GL_CONSTANT_BORDER_HP 0x8151
+#define GL_CONSTANT_COLOR 0x8001
+#define GL_CONSTANT_COLOR0_NV 0x852A
+#define GL_CONSTANT_COLOR1_NV 0x852B
+#define GL_CONSTANT_COLOR_EXT 0x8001
+#define GL_CONSTANT_EXT 0x8576
+#define GL_CONST_EYE_NV 0x86E5
+#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002
+#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001
+#define GL_CONTEXT_FLAGS 0x821E
+#define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002
+#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x00000001
+#define GL_CONTEXT_FLAG_NO_ERROR_BIT 0x00000008
+#define GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR 0x00000008
+#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT 0x00000004
+#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004
+#define GL_CONTEXT_LOST 0x0507
+#define GL_CONTEXT_PROFILE_MASK 0x9126
+#define GL_CONTEXT_RELEASE_BEHAVIOR 0x82FB
+#define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH 0x82FC
+#define GL_CONTEXT_ROBUST_ACCESS 0x90F3
+#define GL_CONTINUOUS_AMD 0x9007
+#define GL_CONTRAST_NV 0x92A1
+#define GL_CONVEX_HULL_NV 0x908B
+#define GL_CONVOLUTION_1D_EXT 0x8010
+#define GL_CONVOLUTION_2D_EXT 0x8011
+#define GL_CONVOLUTION_BORDER_COLOR_HP 0x8154
+#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013
+#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015
+#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014
+#define GL_CONVOLUTION_FORMAT_EXT 0x8017
+#define GL_CONVOLUTION_HEIGHT_EXT 0x8019
+#define GL_CONVOLUTION_HINT_SGIX 0x8316
+#define GL_CONVOLUTION_WIDTH_EXT 0x8018
+#define GL_CON_0_ATI 0x8941
+#define GL_CON_10_ATI 0x894B
+#define GL_CON_11_ATI 0x894C
+#define GL_CON_12_ATI 0x894D
+#define GL_CON_13_ATI 0x894E
+#define GL_CON_14_ATI 0x894F
+#define GL_CON_15_ATI 0x8950
+#define GL_CON_16_ATI 0x8951
+#define GL_CON_17_ATI 0x8952
+#define GL_CON_18_ATI 0x8953
+#define GL_CON_19_ATI 0x8954
+#define GL_CON_1_ATI 0x8942
+#define GL_CON_20_ATI 0x8955
+#define GL_CON_21_ATI 0x8956
+#define GL_CON_22_ATI 0x8957
+#define GL_CON_23_ATI 0x8958
+#define GL_CON_24_ATI 0x8959
+#define GL_CON_25_ATI 0x895A
+#define GL_CON_26_ATI 0x895B
+#define GL_CON_27_ATI 0x895C
+#define GL_CON_28_ATI 0x895D
+#define GL_CON_29_ATI 0x895E
+#define GL_CON_2_ATI 0x8943
+#define GL_CON_30_ATI 0x895F
+#define GL_CON_31_ATI 0x8960
+#define GL_CON_3_ATI 0x8944
+#define GL_CON_4_ATI 0x8945
+#define GL_CON_5_ATI 0x8946
+#define GL_CON_6_ATI 0x8947
+#define GL_CON_7_ATI 0x8948
+#define GL_CON_8_ATI 0x8949
+#define GL_CON_9_ATI 0x894A
+#define GL_COORD_REPLACE_ARB 0x8862
+#define GL_COORD_REPLACE_NV 0x8862
+#define GL_COPY 0x1503
+#define GL_COPY_INVERTED 0x150C
+#define GL_COPY_READ_BUFFER 0x8F36
+#define GL_COPY_READ_BUFFER_BINDING 0x8F36
+#define GL_COPY_WRITE_BUFFER 0x8F37
+#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37
+#define GL_COUNTER_RANGE_AMD 0x8BC1
+#define GL_COUNTER_TYPE_AMD 0x8BC0
+#define GL_COUNT_DOWN_NV 0x9089
+#define GL_COUNT_UP_NV 0x9088
+#define GL_COVERAGE_MODULATION_NV 0x9332
+#define GL_COVERAGE_MODULATION_TABLE_NV 0x9331
+#define GL_COVERAGE_MODULATION_TABLE_SIZE_NV 0x9333
+#define GL_CUBIC_CURVE_TO_NV 0x0C
+#define GL_CUBIC_EXT 0x8334
+#define GL_CUBIC_HP 0x815F
+#define GL_CULL_FACE 0x0B44
+#define GL_CULL_FACE_MODE 0x0B45
+#define GL_CULL_FRAGMENT_NV 0x86E7
+#define GL_CULL_MODES_NV 0x86E0
+#define GL_CULL_VERTEX_EXT 0x81AA
+#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB
+#define GL_CULL_VERTEX_IBM 103050
+#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC
+#define GL_CURRENT_ATTRIB_NV 0x8626
+#define GL_CURRENT_BINORMAL_EXT 0x843C
+#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453
+#define GL_CURRENT_MATRIX_ARB 0x8641
+#define GL_CURRENT_MATRIX_INDEX_ARB 0x8845
+#define GL_CURRENT_MATRIX_NV 0x8641
+#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640
+#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640
+#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865
+#define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843
+#define GL_CURRENT_PROGRAM 0x8B8D
+#define GL_CURRENT_QUERY 0x8865
+#define GL_CURRENT_QUERY_ARB 0x8865
+#define GL_CURRENT_RASTER_NORMAL_SGIX 0x8406
+#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459
+#define GL_CURRENT_TANGENT_EXT 0x843B
+#define GL_CURRENT_TIME_NV 0x8E28
+#define GL_CURRENT_VERTEX_ATTRIB 0x8626
+#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626
+#define GL_CURRENT_VERTEX_EXT 0x87E2
+#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B
+#define GL_CURRENT_WEIGHT_ARB 0x86A8
+#define GL_CW 0x0900
+#define GL_D3D12_FENCE_VALUE_EXT 0x9595
+#define GL_DARKEN_KHR 0x9297
+#define GL_DARKEN_NV 0x9297
+#define GL_DATA_BUFFER_AMD 0x9151
+#define GL_DEBUG_CALLBACK_FUNCTION 0x8244
+#define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244
+#define GL_DEBUG_CALLBACK_USER_PARAM 0x8245
+#define GL_DEBUG_CALLBACK_USER_PARAM_ARB 0x8245
+#define GL_DEBUG_CATEGORY_API_ERROR_AMD 0x9149
+#define GL_DEBUG_CATEGORY_APPLICATION_AMD 0x914F
+#define GL_DEBUG_CATEGORY_DEPRECATION_AMD 0x914B
+#define GL_DEBUG_CATEGORY_OTHER_AMD 0x9150
+#define GL_DEBUG_CATEGORY_PERFORMANCE_AMD 0x914D
+#define GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD 0x914E
+#define GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD 0x914C
+#define GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD 0x914A
+#define GL_DEBUG_GROUP_STACK_DEPTH 0x826D
+#define GL_DEBUG_LOGGED_MESSAGES 0x9145
+#define GL_DEBUG_LOGGED_MESSAGES_AMD 0x9145
+#define GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145
+#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243
+#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243
+#define GL_DEBUG_OUTPUT 0x92E0
+#define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242
+#define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242
+#define GL_DEBUG_SEVERITY_HIGH 0x9146
+#define GL_DEBUG_SEVERITY_HIGH_AMD 0x9146
+#define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146
+#define GL_DEBUG_SEVERITY_LOW 0x9148
+#define GL_DEBUG_SEVERITY_LOW_AMD 0x9148
+#define GL_DEBUG_SEVERITY_LOW_ARB 0x9148
+#define GL_DEBUG_SEVERITY_MEDIUM 0x9147
+#define GL_DEBUG_SEVERITY_MEDIUM_AMD 0x9147
+#define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147
+#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B
+#define GL_DEBUG_SOURCE_API 0x8246
+#define GL_DEBUG_SOURCE_API_ARB 0x8246
+#define GL_DEBUG_SOURCE_APPLICATION 0x824A
+#define GL_DEBUG_SOURCE_APPLICATION_ARB 0x824A
+#define GL_DEBUG_SOURCE_OTHER 0x824B
+#define GL_DEBUG_SOURCE_OTHER_ARB 0x824B
+#define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248
+#define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB 0x8248
+#define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249
+#define GL_DEBUG_SOURCE_THIRD_PARTY_ARB 0x8249
+#define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247
+#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB 0x8247
+#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D
+#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB 0x824D
+#define GL_DEBUG_TYPE_ERROR 0x824C
+#define GL_DEBUG_TYPE_ERROR_ARB 0x824C
+#define GL_DEBUG_TYPE_MARKER 0x8268
+#define GL_DEBUG_TYPE_OTHER 0x8251
+#define GL_DEBUG_TYPE_OTHER_ARB 0x8251
+#define GL_DEBUG_TYPE_PERFORMANCE 0x8250
+#define GL_DEBUG_TYPE_PERFORMANCE_ARB 0x8250
+#define GL_DEBUG_TYPE_POP_GROUP 0x826A
+#define GL_DEBUG_TYPE_PORTABILITY 0x824F
+#define GL_DEBUG_TYPE_PORTABILITY_ARB 0x824F
+#define GL_DEBUG_TYPE_PUSH_GROUP 0x8269
+#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E
+#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB 0x824E
+#define GL_DECODE_EXT 0x8A49
+#define GL_DECR 0x1E03
+#define GL_DECR_WRAP 0x8508
+#define GL_DECR_WRAP_EXT 0x8508
+#define GL_DEDICATED_MEMORY_OBJECT_EXT 0x9581
+#define GL_DEFORMATIONS_MASK_SGIX 0x8196
+#define GL_DELETE_STATUS 0x8B80
+#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9
+#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA
+#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858
+#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859
+#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A
+#define GL_DEPTH 0x1801
+#define GL_DEPTH24_STENCIL8 0x88F0
+#define GL_DEPTH24_STENCIL8_EXT 0x88F0
+#define GL_DEPTH32F_STENCIL8 0x8CAD
+#define GL_DEPTH32F_STENCIL8_NV 0x8DAC
+#define GL_DEPTH_ATTACHMENT 0x8D00
+#define GL_DEPTH_ATTACHMENT_EXT 0x8D00
+#define GL_DEPTH_BOUNDS_EXT 0x8891
+#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890
+#define GL_DEPTH_BUFFER_BIT 0x00000100
+#define GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF
+#define GL_DEPTH_CLAMP 0x864F
+#define GL_DEPTH_CLAMP_FAR_AMD 0x901F
+#define GL_DEPTH_CLAMP_NEAR_AMD 0x901E
+#define GL_DEPTH_CLAMP_NV 0x864F
+#define GL_DEPTH_CLEAR_VALUE 0x0B73
+#define GL_DEPTH_COMPONENT 0x1902
+#define GL_DEPTH_COMPONENT16 0x81A5
+#define GL_DEPTH_COMPONENT16_ARB 0x81A5
+#define GL_DEPTH_COMPONENT16_SGIX 0x81A5
+#define GL_DEPTH_COMPONENT24 0x81A6
+#define GL_DEPTH_COMPONENT24_ARB 0x81A6
+#define GL_DEPTH_COMPONENT24_SGIX 0x81A6
+#define GL_DEPTH_COMPONENT32 0x81A7
+#define GL_DEPTH_COMPONENT32F 0x8CAC
+#define GL_DEPTH_COMPONENT32F_NV 0x8DAB
+#define GL_DEPTH_COMPONENT32_ARB 0x81A7
+#define GL_DEPTH_COMPONENT32_SGIX 0x81A7
+#define GL_DEPTH_COMPONENTS 0x8284
+#define GL_DEPTH_FUNC 0x0B74
+#define GL_DEPTH_RANGE 0x0B70
+#define GL_DEPTH_RENDERABLE 0x8287
+#define GL_DEPTH_SAMPLES_NV 0x932D
+#define GL_DEPTH_STENCIL 0x84F9
+#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A
+#define GL_DEPTH_STENCIL_EXT 0x84F9
+#define GL_DEPTH_STENCIL_NV 0x84F9
+#define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA
+#define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F
+#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E
+#define GL_DEPTH_TEST 0x0B71
+#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B
+#define GL_DEPTH_WRITEMASK 0x0B72
+#define GL_DETACHED_BUFFERS_NV 0x95AB
+#define GL_DETACHED_MEMORY_INCARNATION_NV 0x95A9
+#define GL_DETACHED_TEXTURES_NV 0x95AA
+#define GL_DETAIL_TEXTURE_2D_BINDING_SGIS 0x8096
+#define GL_DETAIL_TEXTURE_2D_SGIS 0x8095
+#define GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS 0x809C
+#define GL_DETAIL_TEXTURE_LEVEL_SGIS 0x809A
+#define GL_DETAIL_TEXTURE_MODE_SGIS 0x809B
+#define GL_DEVICE_LUID_EXT 0x9599
+#define GL_DEVICE_NODE_MASK_EXT 0x959A
+#define GL_DEVICE_UUID_EXT 0x9597
+#define GL_DIFFERENCE_KHR 0x929E
+#define GL_DIFFERENCE_NV 0x929E
+#define GL_DISCARD_ATI 0x8763
+#define GL_DISCARD_NV 0x8530
+#define GL_DISCRETE_AMD 0x9006
+#define GL_DISJOINT_NV 0x9283
+#define GL_DISPATCH_INDIRECT_BUFFER 0x90EE
+#define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF
+#define GL_DISTANCE_ATTENUATION_EXT 0x8129
+#define GL_DISTANCE_ATTENUATION_SGIS 0x8129
+#define GL_DITHER 0x0BD0
+#define GL_DONT_CARE 0x1100
+#define GL_DOT2_ADD_ATI 0x896C
+#define GL_DOT3_ATI 0x8966
+#define GL_DOT3_RGBA_ARB 0x86AF
+#define GL_DOT3_RGBA_EXT 0x8741
+#define GL_DOT3_RGB_ARB 0x86AE
+#define GL_DOT3_RGB_EXT 0x8740
+#define GL_DOT4_ATI 0x8967
+#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D
+#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3
+#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED
+#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1
+#define GL_DOT_PRODUCT_NV 0x86EC
+#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B
+#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2
+#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C
+#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE
+#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF
+#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0
+#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E
+#define GL_DOUBLE 0x140A
+#define GL_DOUBLEBUFFER 0x0C32
+#define GL_DOUBLE_MAT2 0x8F46
+#define GL_DOUBLE_MAT2_EXT 0x8F46
+#define GL_DOUBLE_MAT2x3 0x8F49
+#define GL_DOUBLE_MAT2x3_EXT 0x8F49
+#define GL_DOUBLE_MAT2x4 0x8F4A
+#define GL_DOUBLE_MAT2x4_EXT 0x8F4A
+#define GL_DOUBLE_MAT3 0x8F47
+#define GL_DOUBLE_MAT3_EXT 0x8F47
+#define GL_DOUBLE_MAT3x2 0x8F4B
+#define GL_DOUBLE_MAT3x2_EXT 0x8F4B
+#define GL_DOUBLE_MAT3x4 0x8F4C
+#define GL_DOUBLE_MAT3x4_EXT 0x8F4C
+#define GL_DOUBLE_MAT4 0x8F48
+#define GL_DOUBLE_MAT4_EXT 0x8F48
+#define GL_DOUBLE_MAT4x2 0x8F4D
+#define GL_DOUBLE_MAT4x2_EXT 0x8F4D
+#define GL_DOUBLE_MAT4x3 0x8F4E
+#define GL_DOUBLE_MAT4x3_EXT 0x8F4E
+#define GL_DOUBLE_VEC2 0x8FFC
+#define GL_DOUBLE_VEC2_EXT 0x8FFC
+#define GL_DOUBLE_VEC3 0x8FFD
+#define GL_DOUBLE_VEC3_EXT 0x8FFD
+#define GL_DOUBLE_VEC4 0x8FFE
+#define GL_DOUBLE_VEC4_EXT 0x8FFE
+#define GL_DRAW_ARRAYS_COMMAND_NV 0x0003
+#define GL_DRAW_ARRAYS_INSTANCED_COMMAND_NV 0x0007
+#define GL_DRAW_ARRAYS_STRIP_COMMAND_NV 0x0005
+#define GL_DRAW_BUFFER 0x0C01
+#define GL_DRAW_BUFFER0 0x8825
+#define GL_DRAW_BUFFER0_ARB 0x8825
+#define GL_DRAW_BUFFER0_ATI 0x8825
+#define GL_DRAW_BUFFER1 0x8826
+#define GL_DRAW_BUFFER10 0x882F
+#define GL_DRAW_BUFFER10_ARB 0x882F
+#define GL_DRAW_BUFFER10_ATI 0x882F
+#define GL_DRAW_BUFFER11 0x8830
+#define GL_DRAW_BUFFER11_ARB 0x8830
+#define GL_DRAW_BUFFER11_ATI 0x8830
+#define GL_DRAW_BUFFER12 0x8831
+#define GL_DRAW_BUFFER12_ARB 0x8831
+#define GL_DRAW_BUFFER12_ATI 0x8831
+#define GL_DRAW_BUFFER13 0x8832
+#define GL_DRAW_BUFFER13_ARB 0x8832
+#define GL_DRAW_BUFFER13_ATI 0x8832
+#define GL_DRAW_BUFFER14 0x8833
+#define GL_DRAW_BUFFER14_ARB 0x8833
+#define GL_DRAW_BUFFER14_ATI 0x8833
+#define GL_DRAW_BUFFER15 0x8834
+#define GL_DRAW_BUFFER15_ARB 0x8834
+#define GL_DRAW_BUFFER15_ATI 0x8834
+#define GL_DRAW_BUFFER1_ARB 0x8826
+#define GL_DRAW_BUFFER1_ATI 0x8826
+#define GL_DRAW_BUFFER2 0x8827
+#define GL_DRAW_BUFFER2_ARB 0x8827
+#define GL_DRAW_BUFFER2_ATI 0x8827
+#define GL_DRAW_BUFFER3 0x8828
+#define GL_DRAW_BUFFER3_ARB 0x8828
+#define GL_DRAW_BUFFER3_ATI 0x8828
+#define GL_DRAW_BUFFER4 0x8829
+#define GL_DRAW_BUFFER4_ARB 0x8829
+#define GL_DRAW_BUFFER4_ATI 0x8829
+#define GL_DRAW_BUFFER5 0x882A
+#define GL_DRAW_BUFFER5_ARB 0x882A
+#define GL_DRAW_BUFFER5_ATI 0x882A
+#define GL_DRAW_BUFFER6 0x882B
+#define GL_DRAW_BUFFER6_ARB 0x882B
+#define GL_DRAW_BUFFER6_ATI 0x882B
+#define GL_DRAW_BUFFER7 0x882C
+#define GL_DRAW_BUFFER7_ARB 0x882C
+#define GL_DRAW_BUFFER7_ATI 0x882C
+#define GL_DRAW_BUFFER8 0x882D
+#define GL_DRAW_BUFFER8_ARB 0x882D
+#define GL_DRAW_BUFFER8_ATI 0x882D
+#define GL_DRAW_BUFFER9 0x882E
+#define GL_DRAW_BUFFER9_ARB 0x882E
+#define GL_DRAW_BUFFER9_ATI 0x882E
+#define GL_DRAW_ELEMENTS_COMMAND_NV 0x0002
+#define GL_DRAW_ELEMENTS_INSTANCED_COMMAND_NV 0x0006
+#define GL_DRAW_ELEMENTS_STRIP_COMMAND_NV 0x0004
+#define GL_DRAW_FRAMEBUFFER 0x8CA9
+#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6
+#define GL_DRAW_FRAMEBUFFER_BINDING_EXT 0x8CA6
+#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9
+#define GL_DRAW_INDIRECT_ADDRESS_NV 0x8F41
+#define GL_DRAW_INDIRECT_BUFFER 0x8F3F
+#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43
+#define GL_DRAW_INDIRECT_LENGTH_NV 0x8F42
+#define GL_DRAW_INDIRECT_UNIFIED_NV 0x8F40
+#define GL_DRAW_PIXELS_APPLE 0x8A0A
+#define GL_DRIVER_UUID_EXT 0x9598
+#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B
+#define GL_DSDT8_MAG8_NV 0x870A
+#define GL_DSDT8_NV 0x8709
+#define GL_DSDT_MAG_INTENSITY_NV 0x86DC
+#define GL_DSDT_MAG_NV 0x86F6
+#define GL_DSDT_MAG_VIB_NV 0x86F7
+#define GL_DSDT_NV 0x86F5
+#define GL_DST_ALPHA 0x0304
+#define GL_DST_ATOP_NV 0x928F
+#define GL_DST_COLOR 0x0306
+#define GL_DST_IN_NV 0x928B
+#define GL_DST_NV 0x9287
+#define GL_DST_OUT_NV 0x928D
+#define GL_DST_OVER_NV 0x9289
+#define GL_DS_BIAS_NV 0x8716
+#define GL_DS_SCALE_NV 0x8710
+#define GL_DT_BIAS_NV 0x8717
+#define GL_DT_SCALE_NV 0x8711
+#define GL_DU8DV8_ATI 0x877A
+#define GL_DUAL_ALPHA12_SGIS 0x8112
+#define GL_DUAL_ALPHA16_SGIS 0x8113
+#define GL_DUAL_ALPHA4_SGIS 0x8110
+#define GL_DUAL_ALPHA8_SGIS 0x8111
+#define GL_DUAL_INTENSITY12_SGIS 0x811A
+#define GL_DUAL_INTENSITY16_SGIS 0x811B
+#define GL_DUAL_INTENSITY4_SGIS 0x8118
+#define GL_DUAL_INTENSITY8_SGIS 0x8119
+#define GL_DUAL_LUMINANCE12_SGIS 0x8116
+#define GL_DUAL_LUMINANCE16_SGIS 0x8117
+#define GL_DUAL_LUMINANCE4_SGIS 0x8114
+#define GL_DUAL_LUMINANCE8_SGIS 0x8115
+#define GL_DUAL_LUMINANCE_ALPHA4_SGIS 0x811C
+#define GL_DUAL_LUMINANCE_ALPHA8_SGIS 0x811D
+#define GL_DUAL_TEXTURE_SELECT_SGIS 0x8124
+#define GL_DUDV_ATI 0x8779
+#define GL_DUP_FIRST_CUBIC_CURVE_TO_NV 0xF2
+#define GL_DUP_LAST_CUBIC_CURVE_TO_NV 0xF4
+#define GL_DYNAMIC_ATI 0x8761
+#define GL_DYNAMIC_COPY 0x88EA
+#define GL_DYNAMIC_COPY_ARB 0x88EA
+#define GL_DYNAMIC_DRAW 0x88E8
+#define GL_DYNAMIC_DRAW_ARB 0x88E8
+#define GL_DYNAMIC_READ 0x88E9
+#define GL_DYNAMIC_READ_ARB 0x88E9
+#define GL_DYNAMIC_STORAGE_BIT 0x0100
+#define GL_EDGEFLAG_BIT_PGI 0x00040000
+#define GL_EDGE_FLAG_ARRAY_ADDRESS_NV 0x8F26
+#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B
+#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D
+#define GL_EDGE_FLAG_ARRAY_EXT 0x8079
+#define GL_EDGE_FLAG_ARRAY_LENGTH_NV 0x8F30
+#define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075
+#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085
+#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093
+#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C
+#define GL_EFFECTIVE_RASTER_SAMPLES_EXT 0x932C
+#define GL_EIGHTH_BIT_ATI 0x00000020
+#define GL_ELEMENT_ADDRESS_COMMAND_NV 0x0008
+#define GL_ELEMENT_ARRAY_ADDRESS_NV 0x8F29
+#define GL_ELEMENT_ARRAY_APPLE 0x8A0C
+#define GL_ELEMENT_ARRAY_ATI 0x8768
+#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002
+#define GL_ELEMENT_ARRAY_BARRIER_BIT_EXT 0x00000002
+#define GL_ELEMENT_ARRAY_BUFFER 0x8893
+#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893
+#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
+#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895
+#define GL_ELEMENT_ARRAY_LENGTH_NV 0x8F33
+#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x8A0E
+#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A
+#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8A0D
+#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769
+#define GL_ELEMENT_ARRAY_UNIFIED_NV 0x8F1F
+#define GL_EMBOSS_CONSTANT_NV 0x855E
+#define GL_EMBOSS_LIGHT_NV 0x855D
+#define GL_EMBOSS_MAP_NV 0x855F
+#define GL_EQUAL 0x0202
+#define GL_EQUIV 0x1509
+#define GL_EVAL_2D_NV 0x86C0
+#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5
+#define GL_EVAL_TRIANGULAR_2D_NV 0x86C1
+#define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6
+#define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0
+#define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1
+#define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2
+#define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3
+#define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4
+#define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5
+#define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7
+#define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8
+#define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9
+#define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA
+#define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB
+#define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC
+#define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD
+#define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE
+#define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF
+#define GL_EXCLUSION_KHR 0x92A0
+#define GL_EXCLUSION_NV 0x92A0
+#define GL_EXCLUSIVE_EXT 0x8F11
+#define GL_EXPAND_NEGATE_NV 0x8539
+#define GL_EXPAND_NORMAL_NV 0x8538
+#define GL_EXTENSIONS 0x1F03
+#define GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD 0x9160
+#define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2
+#define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0
+#define GL_EYE_LINE_SGIS 0x81F6
+#define GL_EYE_PLANE 0x2502
+#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C
+#define GL_EYE_POINT_SGIS 0x81F4
+#define GL_EYE_RADIAL_NV 0x855B
+#define GL_E_TIMES_F_NV 0x8531
+#define GL_FACTOR_MAX_AMD 0x901D
+#define GL_FACTOR_MIN_AMD 0x901C
+#define GL_FAILURE_NV 0x9030
+#define GL_FALSE 0
+#define GL_FASTEST 0x1101
+#define GL_FENCE_APPLE 0x8A0B
+#define GL_FENCE_CONDITION_NV 0x84F4
+#define GL_FENCE_STATUS_NV 0x84F3
+#define GL_FIELDS_NV 0x8E27
+#define GL_FIELD_LOWER_NV 0x9023
+#define GL_FIELD_UPPER_NV 0x9022
+#define GL_FILE_NAME_NV 0x9074
+#define GL_FILL 0x1B02
+#define GL_FILL_RECTANGLE_NV 0x933C
+#define GL_FILTER 0x829A
+#define GL_FILTER4_SGIS 0x8146
+#define GL_FIRST_TO_REST_NV 0x90AF
+#define GL_FIRST_VERTEX_CONVENTION 0x8E4D
+#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D
+#define GL_FIXED 0x140C
+#define GL_FIXED_OES 0x140C
+#define GL_FIXED_ONLY 0x891D
+#define GL_FIXED_ONLY_ARB 0x891D
+#define GL_FLOAT 0x1406
+#define GL_FLOAT16_MAT2_AMD 0x91C5
+#define GL_FLOAT16_MAT2x3_AMD 0x91C8
+#define GL_FLOAT16_MAT2x4_AMD 0x91C9
+#define GL_FLOAT16_MAT3_AMD 0x91C6
+#define GL_FLOAT16_MAT3x2_AMD 0x91CA
+#define GL_FLOAT16_MAT3x4_AMD 0x91CB
+#define GL_FLOAT16_MAT4_AMD 0x91C7
+#define GL_FLOAT16_MAT4x2_AMD 0x91CC
+#define GL_FLOAT16_MAT4x3_AMD 0x91CD
+#define GL_FLOAT16_NV 0x8FF8
+#define GL_FLOAT16_VEC2_NV 0x8FF9
+#define GL_FLOAT16_VEC3_NV 0x8FFA
+#define GL_FLOAT16_VEC4_NV 0x8FFB
+#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD
+#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD
+#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D
+#define GL_FLOAT_MAT2 0x8B5A
+#define GL_FLOAT_MAT2_ARB 0x8B5A
+#define GL_FLOAT_MAT2x3 0x8B65
+#define GL_FLOAT_MAT2x4 0x8B66
+#define GL_FLOAT_MAT3 0x8B5B
+#define GL_FLOAT_MAT3_ARB 0x8B5B
+#define GL_FLOAT_MAT3x2 0x8B67
+#define GL_FLOAT_MAT3x4 0x8B68
+#define GL_FLOAT_MAT4 0x8B5C
+#define GL_FLOAT_MAT4_ARB 0x8B5C
+#define GL_FLOAT_MAT4x2 0x8B69
+#define GL_FLOAT_MAT4x3 0x8B6A
+#define GL_FLOAT_R16_NV 0x8884
+#define GL_FLOAT_R32_NV 0x8885
+#define GL_FLOAT_RG16_NV 0x8886
+#define GL_FLOAT_RG32_NV 0x8887
+#define GL_FLOAT_RGB16_NV 0x8888
+#define GL_FLOAT_RGB32_NV 0x8889
+#define GL_FLOAT_RGBA16_NV 0x888A
+#define GL_FLOAT_RGBA32_NV 0x888B
+#define GL_FLOAT_RGBA_MODE_NV 0x888E
+#define GL_FLOAT_RGBA_NV 0x8883
+#define GL_FLOAT_RGB_NV 0x8882
+#define GL_FLOAT_RG_NV 0x8881
+#define GL_FLOAT_R_NV 0x8880
+#define GL_FLOAT_VEC2 0x8B50
+#define GL_FLOAT_VEC2_ARB 0x8B50
+#define GL_FLOAT_VEC3 0x8B51
+#define GL_FLOAT_VEC3_ARB 0x8B51
+#define GL_FLOAT_VEC4 0x8B52
+#define GL_FLOAT_VEC4_ARB 0x8B52
+#define GL_FOG 0x0B60
+#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D
+#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457
+#define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076
+#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086
+#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456
+#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455
+#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454
+#define GL_FOG_COORDINATE_EXT 0x8451
+#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450
+#define GL_FOG_COORD_ARRAY_ADDRESS_NV 0x8F28
+#define GL_FOG_COORD_ARRAY_LENGTH_NV 0x8F32
+#define GL_FOG_DISTANCE_MODE_NV 0x855A
+#define GL_FOG_FUNC_POINTS_SGIS 0x812B
+#define GL_FOG_FUNC_SGIS 0x812A
+#define GL_FOG_OFFSET_SGIX 0x8198
+#define GL_FOG_OFFSET_VALUE_SGIX 0x8199
+#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC
+#define GL_FONT_ASCENDER_BIT_NV 0x00200000
+#define GL_FONT_DESCENDER_BIT_NV 0x00400000
+#define GL_FONT_GLYPHS_AVAILABLE_NV 0x9368
+#define GL_FONT_HAS_KERNING_BIT_NV 0x10000000
+#define GL_FONT_HEIGHT_BIT_NV 0x00800000
+#define GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV 0x02000000
+#define GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV 0x01000000
+#define GL_FONT_NUM_GLYPH_INDICES_BIT_NV 0x20000000
+#define GL_FONT_TARGET_UNAVAILABLE_NV 0x9369
+#define GL_FONT_UNAVAILABLE_NV 0x936A
+#define GL_FONT_UNDERLINE_POSITION_BIT_NV 0x04000000
+#define GL_FONT_UNDERLINE_THICKNESS_BIT_NV 0x08000000
+#define GL_FONT_UNINTELLIGIBLE_NV 0x936B
+#define GL_FONT_UNITS_PER_EM_BIT_NV 0x00100000
+#define GL_FONT_X_MAX_BOUNDS_BIT_NV 0x00040000
+#define GL_FONT_X_MIN_BOUNDS_BIT_NV 0x00010000
+#define GL_FONT_Y_MAX_BOUNDS_BIT_NV 0x00080000
+#define GL_FONT_Y_MIN_BOUNDS_BIT_NV 0x00020000
+#define GL_FORCE_BLUE_TO_ONE_NV 0x8860
+#define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983
+#define GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982
+#define GL_FRACTIONAL_EVEN 0x8E7C
+#define GL_FRACTIONAL_ODD 0x8E7B
+#define GL_FRAGMENT_COLOR_EXT 0x834C
+#define GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX 0x8402
+#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX 0x8403
+#define GL_FRAGMENT_COLOR_MATERIAL_SGIX 0x8401
+#define GL_FRAGMENT_COVERAGE_COLOR_NV 0x92DE
+#define GL_FRAGMENT_COVERAGE_TO_COLOR_NV 0x92DD
+#define GL_FRAGMENT_DEPTH_EXT 0x8452
+#define GL_FRAGMENT_INPUT_NV 0x936D
+#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D
+#define GL_FRAGMENT_LIGHT0_SGIX 0x840C
+#define GL_FRAGMENT_LIGHT1_SGIX 0x840D
+#define GL_FRAGMENT_LIGHT2_SGIX 0x840E
+#define GL_FRAGMENT_LIGHT3_SGIX 0x840F
+#define GL_FRAGMENT_LIGHT4_SGIX 0x8410
+#define GL_FRAGMENT_LIGHT5_SGIX 0x8411
+#define GL_FRAGMENT_LIGHT6_SGIX 0x8412
+#define GL_FRAGMENT_LIGHT7_SGIX 0x8413
+#define GL_FRAGMENT_LIGHTING_SGIX 0x8400
+#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX 0x840A
+#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX 0x8408
+#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX 0x840B
+#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX 0x8409
+#define GL_FRAGMENT_MATERIAL_EXT 0x8349
+#define GL_FRAGMENT_NORMAL_EXT 0x834A
+#define GL_FRAGMENT_PROGRAM_ARB 0x8804
+#define GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873
+#define GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV 0x8E5D
+#define GL_FRAGMENT_PROGRAM_NV 0x8870
+#define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4
+#define GL_FRAGMENT_SHADER 0x8B30
+#define GL_FRAGMENT_SHADER_ARB 0x8B30
+#define GL_FRAGMENT_SHADER_ATI 0x8920
+#define GL_FRAGMENT_SHADER_BIT 0x00000002
+#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B
+#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B
+#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52
+#define GL_FRAGMENT_SHADER_INVOCATIONS 0x82F4
+#define GL_FRAGMENT_SHADER_INVOCATIONS_ARB 0x82F4
+#define GL_FRAGMENT_SUBROUTINE 0x92EC
+#define GL_FRAGMENT_SUBROUTINE_UNIFORM 0x92F2
+#define GL_FRAGMENT_TEXTURE 0x829F
+#define GL_FRAMEBUFFER 0x8D40
+#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215
+#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214
+#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210
+#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211
+#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216
+#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213
+#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7
+#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8DA7
+#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0
+#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212
+#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR 0x9632
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR 0x9630
+#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400
+#define GL_FRAMEBUFFER_BARRIER_BIT_EXT 0x00000400
+#define GL_FRAMEBUFFER_BINDING 0x8CA6
+#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6
+#define GL_FRAMEBUFFER_BLEND 0x828B
+#define GL_FRAMEBUFFER_COMPLETE 0x8CD5
+#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5
+#define GL_FRAMEBUFFER_DEFAULT 0x8218
+#define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314
+#define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311
+#define GL_FRAMEBUFFER_DEFAULT_LAYERS 0x9312
+#define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313
+#define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310
+#define GL_FRAMEBUFFER_EXT 0x8D40
+#define GL_FRAMEBUFFER_FLIP_X_MESA 0x8BBC
+#define GL_FRAMEBUFFER_FLIP_Y_MESA 0x8BBB
+#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
+#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6
+#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9
+#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB
+#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB
+#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8
+#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
+#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7
+#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56
+#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56
+#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC
+#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC
+#define GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR 0x9633
+#define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB 0x9342
+#define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV 0x9342
+#define GL_FRAMEBUFFER_RENDERABLE 0x8289
+#define GL_FRAMEBUFFER_RENDERABLE_LAYERED 0x828A
+#define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB 0x9343
+#define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV 0x9343
+#define GL_FRAMEBUFFER_SRGB 0x8DB9
+#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA
+#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9
+#define GL_FRAMEBUFFER_SWAP_XY_MESA 0x8BBD
+#define GL_FRAMEBUFFER_UNDEFINED 0x8219
+#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD
+#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD
+#define GL_FRAMEZOOM_FACTOR_SGIX 0x818C
+#define GL_FRAMEZOOM_SGIX 0x818B
+#define GL_FRAME_NV 0x8E26
+#define GL_FRONT 0x0404
+#define GL_FRONT_AND_BACK 0x0408
+#define GL_FRONT_FACE 0x0B46
+#define GL_FRONT_FACE_COMMAND_NV 0x0012
+#define GL_FRONT_LEFT 0x0400
+#define GL_FRONT_RIGHT 0x0401
+#define GL_FULL_RANGE_EXT 0x87E1
+#define GL_FULL_STIPPLE_HINT_PGI 0x1A219
+#define GL_FULL_SUPPORT 0x82B7
+#define GL_FUNC_ADD 0x8006
+#define GL_FUNC_ADD_EXT 0x8006
+#define GL_FUNC_REVERSE_SUBTRACT 0x800B
+#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B
+#define GL_FUNC_SUBTRACT 0x800A
+#define GL_FUNC_SUBTRACT_EXT 0x800A
+#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192
+#define GL_GENERATE_MIPMAP_SGIS 0x8191
+#define GL_GENERIC_ATTRIB_NV 0x8C7D
+#define GL_GEOMETRY_DEFORMATION_BIT_SGIX 0x00000002
+#define GL_GEOMETRY_DEFORMATION_SGIX 0x8194
+#define GL_GEOMETRY_INPUT_TYPE 0x8917
+#define GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB
+#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB
+#define GL_GEOMETRY_OUTPUT_TYPE 0x8918
+#define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC
+#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC
+#define GL_GEOMETRY_PROGRAM_NV 0x8C26
+#define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3
+#define GL_GEOMETRY_SHADER 0x8DD9
+#define GL_GEOMETRY_SHADER_ARB 0x8DD9
+#define GL_GEOMETRY_SHADER_BIT 0x00000004
+#define GL_GEOMETRY_SHADER_EXT 0x8DD9
+#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F
+#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED 0x82F3
+#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB 0x82F3
+#define GL_GEOMETRY_SUBROUTINE 0x92EB
+#define GL_GEOMETRY_SUBROUTINE_UNIFORM 0x92F1
+#define GL_GEOMETRY_TEXTURE 0x829E
+#define GL_GEOMETRY_VERTICES_OUT 0x8916
+#define GL_GEOMETRY_VERTICES_OUT_ARB 0x8DDA
+#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA
+#define GL_GEQUAL 0x0206
+#define GL_GET_TEXTURE_IMAGE_FORMAT 0x8291
+#define GL_GET_TEXTURE_IMAGE_TYPE 0x8292
+#define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA
+#define GL_GLOBAL_ALPHA_SUN 0x81D9
+#define GL_GLYPH_HAS_KERNING_BIT_NV 0x100
+#define GL_GLYPH_HEIGHT_BIT_NV 0x02
+#define GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV 0x10
+#define GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV 0x04
+#define GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV 0x08
+#define GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV 0x80
+#define GL_GLYPH_VERTICAL_BEARING_X_BIT_NV 0x20
+#define GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV 0x40
+#define GL_GLYPH_WIDTH_BIT_NV 0x01
+#define GL_GPU_ADDRESS_NV 0x8F34
+#define GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX 0x9049
+#define GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX 0x9047
+#define GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX 0x904B
+#define GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX 0x904A
+#define GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX 0x9048
+#define GL_GREATER 0x0204
+#define GL_GREEN 0x1904
+#define GL_GREEN_BIT_ATI 0x00000002
+#define GL_GREEN_INTEGER 0x8D95
+#define GL_GREEN_INTEGER_EXT 0x8D95
+#define GL_GREEN_MAX_CLAMP_INGR 0x8565
+#define GL_GREEN_MIN_CLAMP_INGR 0x8561
+#define GL_GREEN_NV 0x1904
+#define GL_GUILTY_CONTEXT_RESET 0x8253
+#define GL_GUILTY_CONTEXT_RESET_ARB 0x8253
+#define GL_HALF_APPLE 0x140B
+#define GL_HALF_BIAS_NEGATE_NV 0x853B
+#define GL_HALF_BIAS_NORMAL_NV 0x853A
+#define GL_HALF_BIT_ATI 0x00000008
+#define GL_HALF_FLOAT 0x140B
+#define GL_HALF_FLOAT_ARB 0x140B
+#define GL_HALF_FLOAT_NV 0x140B
+#define GL_HANDLE_TYPE_D3D11_IMAGE_EXT 0x958B
+#define GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT 0x958C
+#define GL_HANDLE_TYPE_D3D12_FENCE_EXT 0x9594
+#define GL_HANDLE_TYPE_D3D12_RESOURCE_EXT 0x958A
+#define GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT 0x9589
+#define GL_HANDLE_TYPE_OPAQUE_FD_EXT 0x9586
+#define GL_HANDLE_TYPE_OPAQUE_WIN32_EXT 0x9587
+#define GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT 0x9588
+#define GL_HARDLIGHT_KHR 0x929B
+#define GL_HARDLIGHT_NV 0x929B
+#define GL_HARDMIX_NV 0x92A9
+#define GL_HIGH_FLOAT 0x8DF2
+#define GL_HIGH_INT 0x8DF5
+#define GL_HILO16_NV 0x86F8
+#define GL_HILO8_NV 0x885E
+#define GL_HILO_NV 0x86F4
+#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B
+#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A
+#define GL_HISTOGRAM_EXT 0x8024
+#define GL_HISTOGRAM_FORMAT_EXT 0x8027
+#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029
+#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C
+#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028
+#define GL_HISTOGRAM_SINK_EXT 0x802D
+#define GL_HISTOGRAM_WIDTH_EXT 0x8026
+#define GL_HI_BIAS_NV 0x8714
+#define GL_HI_SCALE_NV 0x870E
+#define GL_HORIZONTAL_LINE_TO_NV 0x06
+#define GL_HSL_COLOR_KHR 0x92AF
+#define GL_HSL_COLOR_NV 0x92AF
+#define GL_HSL_HUE_KHR 0x92AD
+#define GL_HSL_HUE_NV 0x92AD
+#define GL_HSL_LUMINOSITY_KHR 0x92B0
+#define GL_HSL_LUMINOSITY_NV 0x92B0
+#define GL_HSL_SATURATION_KHR 0x92AE
+#define GL_HSL_SATURATION_NV 0x92AE
+#define GL_IDENTITY_NV 0x862A
+#define GL_IGNORE_BORDER_HP 0x8150
+#define GL_IMAGE_1D 0x904C
+#define GL_IMAGE_1D_ARRAY 0x9052
+#define GL_IMAGE_1D_ARRAY_EXT 0x9052
+#define GL_IMAGE_1D_EXT 0x904C
+#define GL_IMAGE_2D 0x904D
+#define GL_IMAGE_2D_ARRAY 0x9053
+#define GL_IMAGE_2D_ARRAY_EXT 0x9053
+#define GL_IMAGE_2D_EXT 0x904D
+#define GL_IMAGE_2D_MULTISAMPLE 0x9055
+#define GL_IMAGE_2D_MULTISAMPLE_ARRAY 0x9056
+#define GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9056
+#define GL_IMAGE_2D_MULTISAMPLE_EXT 0x9055
+#define GL_IMAGE_2D_RECT 0x904F
+#define GL_IMAGE_2D_RECT_EXT 0x904F
+#define GL_IMAGE_3D 0x904E
+#define GL_IMAGE_3D_EXT 0x904E
+#define GL_IMAGE_BINDING_ACCESS 0x8F3E
+#define GL_IMAGE_BINDING_ACCESS_EXT 0x8F3E
+#define GL_IMAGE_BINDING_FORMAT 0x906E
+#define GL_IMAGE_BINDING_FORMAT_EXT 0x906E
+#define GL_IMAGE_BINDING_LAYER 0x8F3D
+#define GL_IMAGE_BINDING_LAYERED 0x8F3C
+#define GL_IMAGE_BINDING_LAYERED_EXT 0x8F3C
+#define GL_IMAGE_BINDING_LAYER_EXT 0x8F3D
+#define GL_IMAGE_BINDING_LEVEL 0x8F3B
+#define GL_IMAGE_BINDING_LEVEL_EXT 0x8F3B
+#define GL_IMAGE_BINDING_NAME 0x8F3A
+#define GL_IMAGE_BINDING_NAME_EXT 0x8F3A
+#define GL_IMAGE_BUFFER 0x9051
+#define GL_IMAGE_BUFFER_EXT 0x9051
+#define GL_IMAGE_CLASS_10_10_10_2 0x82C3
+#define GL_IMAGE_CLASS_11_11_10 0x82C2
+#define GL_IMAGE_CLASS_1_X_16 0x82BE
+#define GL_IMAGE_CLASS_1_X_32 0x82BB
+#define GL_IMAGE_CLASS_1_X_8 0x82C1
+#define GL_IMAGE_CLASS_2_X_16 0x82BD
+#define GL_IMAGE_CLASS_2_X_32 0x82BA
+#define GL_IMAGE_CLASS_2_X_8 0x82C0
+#define GL_IMAGE_CLASS_4_X_16 0x82BC
+#define GL_IMAGE_CLASS_4_X_32 0x82B9
+#define GL_IMAGE_CLASS_4_X_8 0x82BF
+#define GL_IMAGE_COMPATIBILITY_CLASS 0x82A8
+#define GL_IMAGE_CUBE 0x9050
+#define GL_IMAGE_CUBE_EXT 0x9050
+#define GL_IMAGE_CUBE_MAP_ARRAY 0x9054
+#define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054
+#define GL_IMAGE_CUBIC_WEIGHT_HP 0x815E
+#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9
+#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8
+#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7
+#define GL_IMAGE_MAG_FILTER_HP 0x815C
+#define GL_IMAGE_MIN_FILTER_HP 0x815D
+#define GL_IMAGE_PIXEL_FORMAT 0x82A9
+#define GL_IMAGE_PIXEL_TYPE 0x82AA
+#define GL_IMAGE_ROTATE_ANGLE_HP 0x8159
+#define GL_IMAGE_ROTATE_ORIGIN_X_HP 0x815A
+#define GL_IMAGE_ROTATE_ORIGIN_Y_HP 0x815B
+#define GL_IMAGE_SCALE_X_HP 0x8155
+#define GL_IMAGE_SCALE_Y_HP 0x8156
+#define GL_IMAGE_TEXEL_SIZE 0x82A7
+#define GL_IMAGE_TRANSFORM_2D_HP 0x8161
+#define GL_IMAGE_TRANSLATE_X_HP 0x8157
+#define GL_IMAGE_TRANSLATE_Y_HP 0x8158
+#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
+#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B
+#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A
+#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A
+#define GL_INCLUSIVE_EXT 0x8F10
+#define GL_INCR 0x1E02
+#define GL_INCR_WRAP 0x8507
+#define GL_INCR_WRAP_EXT 0x8507
+#define GL_INDEX_ARRAY_ADDRESS_NV 0x8F24
+#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899
+#define GL_INDEX_ARRAY_COUNT_EXT 0x8087
+#define GL_INDEX_ARRAY_EXT 0x8077
+#define GL_INDEX_ARRAY_LENGTH_NV 0x8F2E
+#define GL_INDEX_ARRAY_LIST_IBM 103073
+#define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083
+#define GL_INDEX_ARRAY_POINTER_EXT 0x8091
+#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086
+#define GL_INDEX_ARRAY_TYPE_EXT 0x8085
+#define GL_INDEX_BIT_PGI 0x00080000
+#define GL_INDEX_MATERIAL_EXT 0x81B8
+#define GL_INDEX_MATERIAL_FACE_EXT 0x81BA
+#define GL_INDEX_MATERIAL_PARAMETER_EXT 0x81B9
+#define GL_INDEX_TEST_EXT 0x81B5
+#define GL_INDEX_TEST_FUNC_EXT 0x81B6
+#define GL_INDEX_TEST_REF_EXT 0x81B7
+#define GL_INFO_LOG_LENGTH 0x8B84
+#define GL_INNOCENT_CONTEXT_RESET 0x8254
+#define GL_INNOCENT_CONTEXT_RESET_ARB 0x8254
+#define GL_INSTRUMENT_BUFFER_POINTER_SGIX 0x8180
+#define GL_INSTRUMENT_MEASUREMENTS_SGIX 0x8181
+#define GL_INT 0x1404
+#define GL_INT16_NV 0x8FE4
+#define GL_INT16_VEC2_NV 0x8FE5
+#define GL_INT16_VEC3_NV 0x8FE6
+#define GL_INT16_VEC4_NV 0x8FE7
+#define GL_INT64_ARB 0x140E
+#define GL_INT64_NV 0x140E
+#define GL_INT64_VEC2_ARB 0x8FE9
+#define GL_INT64_VEC2_NV 0x8FE9
+#define GL_INT64_VEC3_ARB 0x8FEA
+#define GL_INT64_VEC3_NV 0x8FEA
+#define GL_INT64_VEC4_ARB 0x8FEB
+#define GL_INT64_VEC4_NV 0x8FEB
+#define GL_INT8_NV 0x8FE0
+#define GL_INT8_VEC2_NV 0x8FE1
+#define GL_INT8_VEC3_NV 0x8FE2
+#define GL_INT8_VEC4_NV 0x8FE3
+#define GL_INTENSITY12_EXT 0x804C
+#define GL_INTENSITY16F_ARB 0x881D
+#define GL_INTENSITY16I_EXT 0x8D8B
+#define GL_INTENSITY16UI_EXT 0x8D79
+#define GL_INTENSITY16_EXT 0x804D
+#define GL_INTENSITY16_SNORM 0x901B
+#define GL_INTENSITY32F_ARB 0x8817
+#define GL_INTENSITY32I_EXT 0x8D85
+#define GL_INTENSITY32UI_EXT 0x8D73
+#define GL_INTENSITY4_EXT 0x804A
+#define GL_INTENSITY8I_EXT 0x8D91
+#define GL_INTENSITY8UI_EXT 0x8D7F
+#define GL_INTENSITY8_EXT 0x804B
+#define GL_INTENSITY8_SNORM 0x9017
+#define GL_INTENSITY_EXT 0x8049
+#define GL_INTENSITY_FLOAT16_APPLE 0x881D
+#define GL_INTENSITY_FLOAT16_ATI 0x881D
+#define GL_INTENSITY_FLOAT32_APPLE 0x8817
+#define GL_INTENSITY_FLOAT32_ATI 0x8817
+#define GL_INTENSITY_SNORM 0x9013
+#define GL_INTERLACE_OML 0x8980
+#define GL_INTERLACE_READ_INGR 0x8568
+#define GL_INTERLACE_READ_OML 0x8981
+#define GL_INTERLACE_SGIX 0x8094
+#define GL_INTERLEAVED_ATTRIBS 0x8C8C
+#define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C
+#define GL_INTERLEAVED_ATTRIBS_NV 0x8C8C
+#define GL_INTERNALFORMAT_ALPHA_SIZE 0x8274
+#define GL_INTERNALFORMAT_ALPHA_TYPE 0x827B
+#define GL_INTERNALFORMAT_BLUE_SIZE 0x8273
+#define GL_INTERNALFORMAT_BLUE_TYPE 0x827A
+#define GL_INTERNALFORMAT_DEPTH_SIZE 0x8275
+#define GL_INTERNALFORMAT_DEPTH_TYPE 0x827C
+#define GL_INTERNALFORMAT_GREEN_SIZE 0x8272
+#define GL_INTERNALFORMAT_GREEN_TYPE 0x8279
+#define GL_INTERNALFORMAT_PREFERRED 0x8270
+#define GL_INTERNALFORMAT_RED_SIZE 0x8271
+#define GL_INTERNALFORMAT_RED_TYPE 0x8278
+#define GL_INTERNALFORMAT_SHARED_SIZE 0x8277
+#define GL_INTERNALFORMAT_STENCIL_SIZE 0x8276
+#define GL_INTERNALFORMAT_STENCIL_TYPE 0x827D
+#define GL_INTERNALFORMAT_SUPPORTED 0x826F
+#define GL_INTERPOLATE_ARB 0x8575
+#define GL_INTERPOLATE_EXT 0x8575
+#define GL_INT_2_10_10_10_REV 0x8D9F
+#define GL_INT_IMAGE_1D 0x9057
+#define GL_INT_IMAGE_1D_ARRAY 0x905D
+#define GL_INT_IMAGE_1D_ARRAY_EXT 0x905D
+#define GL_INT_IMAGE_1D_EXT 0x9057
+#define GL_INT_IMAGE_2D 0x9058
+#define GL_INT_IMAGE_2D_ARRAY 0x905E
+#define GL_INT_IMAGE_2D_ARRAY_EXT 0x905E
+#define GL_INT_IMAGE_2D_EXT 0x9058
+#define GL_INT_IMAGE_2D_MULTISAMPLE 0x9060
+#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x9061
+#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9061
+#define GL_INT_IMAGE_2D_MULTISAMPLE_EXT 0x9060
+#define GL_INT_IMAGE_2D_RECT 0x905A
+#define GL_INT_IMAGE_2D_RECT_EXT 0x905A
+#define GL_INT_IMAGE_3D 0x9059
+#define GL_INT_IMAGE_3D_EXT 0x9059
+#define GL_INT_IMAGE_BUFFER 0x905C
+#define GL_INT_IMAGE_BUFFER_EXT 0x905C
+#define GL_INT_IMAGE_CUBE 0x905B
+#define GL_INT_IMAGE_CUBE_EXT 0x905B
+#define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F
+#define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F
+#define GL_INT_SAMPLER_1D 0x8DC9
+#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE
+#define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE
+#define GL_INT_SAMPLER_1D_EXT 0x8DC9
+#define GL_INT_SAMPLER_2D 0x8DCA
+#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF
+#define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF
+#define GL_INT_SAMPLER_2D_EXT 0x8DCA
+#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109
+#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C
+#define GL_INT_SAMPLER_2D_RECT 0x8DCD
+#define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD
+#define GL_INT_SAMPLER_3D 0x8DCB
+#define GL_INT_SAMPLER_3D_EXT 0x8DCB
+#define GL_INT_SAMPLER_BUFFER 0x8DD0
+#define GL_INT_SAMPLER_BUFFER_AMD 0x9002
+#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0
+#define GL_INT_SAMPLER_CUBE 0x8DCC
+#define GL_INT_SAMPLER_CUBE_EXT 0x8DCC
+#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E
+#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E
+#define GL_INT_SAMPLER_RENDERBUFFER_NV 0x8E57
+#define GL_INT_VEC2 0x8B53
+#define GL_INT_VEC2_ARB 0x8B53
+#define GL_INT_VEC3 0x8B54
+#define GL_INT_VEC3_ARB 0x8B54
+#define GL_INT_VEC4 0x8B55
+#define GL_INT_VEC4_ARB 0x8B55
+#define GL_INVALID_ENUM 0x0500
+#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
+#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506
+#define GL_INVALID_INDEX 0xFFFFFFFF
+#define GL_INVALID_OPERATION 0x0502
+#define GL_INVALID_VALUE 0x0501
+#define GL_INVARIANT_DATATYPE_EXT 0x87EB
+#define GL_INVARIANT_EXT 0x87C2
+#define GL_INVARIANT_VALUE_EXT 0x87EA
+#define GL_INVERSE_NV 0x862B
+#define GL_INVERSE_TRANSPOSE_NV 0x862D
+#define GL_INVERT 0x150A
+#define GL_INVERTED_SCREEN_W_REND 0x8491
+#define GL_INVERT_OVG_NV 0x92B4
+#define GL_INVERT_RGB_NV 0x92A3
+#define GL_IR_INSTRUMENT1_SGIX 0x817F
+#define GL_ISOLINES 0x8E7A
+#define GL_IS_PER_PATCH 0x92E7
+#define GL_IS_ROW_MAJOR 0x9300
+#define GL_ITALIC_BIT_NV 0x02
+#define GL_IUI_N3F_V2F_EXT 0x81AF
+#define GL_IUI_N3F_V3F_EXT 0x81B0
+#define GL_IUI_V2F_EXT 0x81AD
+#define GL_IUI_V3F_EXT 0x81AE
+#define GL_KEEP 0x1E00
+#define GL_LARGE_CCW_ARC_TO_NV 0x16
+#define GL_LARGE_CW_ARC_TO_NV 0x18
+#define GL_LAST_VERTEX_CONVENTION 0x8E4E
+#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E
+#define GL_LAST_VIDEO_CAPTURE_STATUS_NV 0x9027
+#define GL_LAYER_NV 0x8DAA
+#define GL_LAYER_PROVOKING_VERTEX 0x825E
+#define GL_LAYOUT_COLOR_ATTACHMENT_EXT 0x958E
+#define GL_LAYOUT_DEFAULT_INTEL 0
+#define GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT 0x9531
+#define GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT 0x9530
+#define GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT 0x958F
+#define GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT 0x9590
+#define GL_LAYOUT_GENERAL_EXT 0x958D
+#define GL_LAYOUT_LINEAR_CPU_CACHED_INTEL 2
+#define GL_LAYOUT_LINEAR_INTEL 1
+#define GL_LAYOUT_SHADER_READ_ONLY_EXT 0x9591
+#define GL_LAYOUT_TRANSFER_DST_EXT 0x9593
+#define GL_LAYOUT_TRANSFER_SRC_EXT 0x9592
+#define GL_LEFT 0x0406
+#define GL_LEQUAL 0x0203
+#define GL_LERP_ATI 0x8969
+#define GL_LESS 0x0201
+#define GL_LGPU_SEPARATE_STORAGE_BIT_NVX 0x0800
+#define GL_LIGHTEN_KHR 0x9298
+#define GL_LIGHTEN_NV 0x9298
+#define GL_LIGHT_ENV_MODE_SGIX 0x8407
+#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8
+#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0
+#define GL_LINE 0x1B01
+#define GL_LINEAR 0x2601
+#define GL_LINEARBURN_NV 0x92A5
+#define GL_LINEARDODGE_NV 0x92A4
+#define GL_LINEARLIGHT_NV 0x92A7
+#define GL_LINEAR_CLIPMAP_LINEAR_SGIX 0x8170
+#define GL_LINEAR_CLIPMAP_NEAREST_SGIX 0x844F
+#define GL_LINEAR_DETAIL_ALPHA_SGIS 0x8098
+#define GL_LINEAR_DETAIL_COLOR_SGIS 0x8099
+#define GL_LINEAR_DETAIL_SGIS 0x8097
+#define GL_LINEAR_MIPMAP_LINEAR 0x2703
+#define GL_LINEAR_MIPMAP_NEAREST 0x2701
+#define GL_LINEAR_SHARPEN_ALPHA_SGIS 0x80AE
+#define GL_LINEAR_SHARPEN_COLOR_SGIS 0x80AF
+#define GL_LINEAR_SHARPEN_SGIS 0x80AD
+#define GL_LINEAR_TILING_EXT 0x9585
+#define GL_LINES 0x0001
+#define GL_LINES_ADJACENCY 0x000A
+#define GL_LINES_ADJACENCY_ARB 0x000A
+#define GL_LINES_ADJACENCY_EXT 0x000A
+#define GL_LINE_LOOP 0x0002
+#define GL_LINE_SMOOTH 0x0B20
+#define GL_LINE_SMOOTH_HINT 0x0C52
+#define GL_LINE_STRIP 0x0003
+#define GL_LINE_STRIP_ADJACENCY 0x000B
+#define GL_LINE_STRIP_ADJACENCY_ARB 0x000B
+#define GL_LINE_STRIP_ADJACENCY_EXT 0x000B
+#define GL_LINE_TO_NV 0x04
+#define GL_LINE_WIDTH 0x0B21
+#define GL_LINE_WIDTH_COMMAND_NV 0x000D
+#define GL_LINE_WIDTH_GRANULARITY 0x0B23
+#define GL_LINE_WIDTH_RANGE 0x0B22
+#define GL_LINK_STATUS 0x8B82
+#define GL_LIST_PRIORITY_SGIX 0x8182
+#define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED
+#define GL_LOCAL_CONSTANT_EXT 0x87C3
+#define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC
+#define GL_LOCAL_EXT 0x87C4
+#define GL_LOCATION 0x930E
+#define GL_LOCATION_COMPONENT 0x934A
+#define GL_LOCATION_INDEX 0x930F
+#define GL_LOGIC_OP_MODE 0x0BF0
+#define GL_LOSE_CONTEXT_ON_RESET 0x8252
+#define GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252
+#define GL_LOWER_LEFT 0x8CA1
+#define GL_LOW_FLOAT 0x8DF0
+#define GL_LOW_INT 0x8DF3
+#define GL_LO_BIAS_NV 0x8715
+#define GL_LO_SCALE_NV 0x870F
+#define GL_LUID_SIZE_EXT 8
+#define GL_LUMINANCE12_ALPHA12_EXT 0x8047
+#define GL_LUMINANCE12_ALPHA4_EXT 0x8046
+#define GL_LUMINANCE12_EXT 0x8041
+#define GL_LUMINANCE16F_ARB 0x881E
+#define GL_LUMINANCE16F_EXT 0x881E
+#define GL_LUMINANCE16I_EXT 0x8D8C
+#define GL_LUMINANCE16UI_EXT 0x8D7A
+#define GL_LUMINANCE16_ALPHA16_EXT 0x8048
+#define GL_LUMINANCE16_ALPHA16_SNORM 0x901A
+#define GL_LUMINANCE16_EXT 0x8042
+#define GL_LUMINANCE16_SNORM 0x9019
+#define GL_LUMINANCE32F_ARB 0x8818
+#define GL_LUMINANCE32F_EXT 0x8818
+#define GL_LUMINANCE32I_EXT 0x8D86
+#define GL_LUMINANCE32UI_EXT 0x8D74
+#define GL_LUMINANCE4_ALPHA4_EXT 0x8043
+#define GL_LUMINANCE4_EXT 0x803F
+#define GL_LUMINANCE6_ALPHA2_EXT 0x8044
+#define GL_LUMINANCE8I_EXT 0x8D92
+#define GL_LUMINANCE8UI_EXT 0x8D80
+#define GL_LUMINANCE8_ALPHA8_EXT 0x8045
+#define GL_LUMINANCE8_ALPHA8_SNORM 0x9016
+#define GL_LUMINANCE8_EXT 0x8040
+#define GL_LUMINANCE8_SNORM 0x9015
+#define GL_LUMINANCE_ALPHA16F_ARB 0x881F
+#define GL_LUMINANCE_ALPHA16F_EXT 0x881F
+#define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D
+#define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B
+#define GL_LUMINANCE_ALPHA32F_ARB 0x8819
+#define GL_LUMINANCE_ALPHA32F_EXT 0x8819
+#define GL_LUMINANCE_ALPHA32I_EXT 0x8D87
+#define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75
+#define GL_LUMINANCE_ALPHA8I_EXT 0x8D93
+#define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81
+#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F
+#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F
+#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819
+#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819
+#define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D
+#define GL_LUMINANCE_ALPHA_SNORM 0x9012
+#define GL_LUMINANCE_FLOAT16_APPLE 0x881E
+#define GL_LUMINANCE_FLOAT16_ATI 0x881E
+#define GL_LUMINANCE_FLOAT32_APPLE 0x8818
+#define GL_LUMINANCE_FLOAT32_ATI 0x8818
+#define GL_LUMINANCE_INTEGER_EXT 0x8D9C
+#define GL_LUMINANCE_SNORM 0x9011
+#define GL_MAD_ATI 0x8968
+#define GL_MAGNITUDE_BIAS_NV 0x8718
+#define GL_MAGNITUDE_SCALE_NV 0x8712
+#define GL_MAJOR_VERSION 0x821B
+#define GL_MANUAL_GENERATE_MIPMAP 0x8294
+#define GL_MAP1_BINORMAL_EXT 0x8446
+#define GL_MAP1_TANGENT_EXT 0x8444
+#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660
+#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A
+#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B
+#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C
+#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D
+#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E
+#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F
+#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661
+#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662
+#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663
+#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664
+#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665
+#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666
+#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667
+#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668
+#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669
+#define GL_MAP2_BINORMAL_EXT 0x8447
+#define GL_MAP2_TANGENT_EXT 0x8445
+#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670
+#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A
+#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B
+#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C
+#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D
+#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E
+#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F
+#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671
+#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672
+#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673
+#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674
+#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675
+#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676
+#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677
+#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678
+#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679
+#define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3
+#define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4
+#define GL_MAP_COHERENT_BIT 0x0080
+#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010
+#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008
+#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004
+#define GL_MAP_PERSISTENT_BIT 0x0040
+#define GL_MAP_READ_BIT 0x0001
+#define GL_MAP_TESSELLATION_NV 0x86C2
+#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020
+#define GL_MAP_WRITE_BIT 0x0002
+#define GL_MATERIAL_SIDE_HINT_PGI 0x1A22C
+#define GL_MATRIX0_ARB 0x88C0
+#define GL_MATRIX0_NV 0x8630
+#define GL_MATRIX10_ARB 0x88CA
+#define GL_MATRIX11_ARB 0x88CB
+#define GL_MATRIX12_ARB 0x88CC
+#define GL_MATRIX13_ARB 0x88CD
+#define GL_MATRIX14_ARB 0x88CE
+#define GL_MATRIX15_ARB 0x88CF
+#define GL_MATRIX16_ARB 0x88D0
+#define GL_MATRIX17_ARB 0x88D1
+#define GL_MATRIX18_ARB 0x88D2
+#define GL_MATRIX19_ARB 0x88D3
+#define GL_MATRIX1_ARB 0x88C1
+#define GL_MATRIX1_NV 0x8631
+#define GL_MATRIX20_ARB 0x88D4
+#define GL_MATRIX21_ARB 0x88D5
+#define GL_MATRIX22_ARB 0x88D6
+#define GL_MATRIX23_ARB 0x88D7
+#define GL_MATRIX24_ARB 0x88D8
+#define GL_MATRIX25_ARB 0x88D9
+#define GL_MATRIX26_ARB 0x88DA
+#define GL_MATRIX27_ARB 0x88DB
+#define GL_MATRIX28_ARB 0x88DC
+#define GL_MATRIX29_ARB 0x88DD
+#define GL_MATRIX2_ARB 0x88C2
+#define GL_MATRIX2_NV 0x8632
+#define GL_MATRIX30_ARB 0x88DE
+#define GL_MATRIX31_ARB 0x88DF
+#define GL_MATRIX3_ARB 0x88C3
+#define GL_MATRIX3_NV 0x8633
+#define GL_MATRIX4_ARB 0x88C4
+#define GL_MATRIX4_NV 0x8634
+#define GL_MATRIX5_ARB 0x88C5
+#define GL_MATRIX5_NV 0x8635
+#define GL_MATRIX6_ARB 0x88C6
+#define GL_MATRIX6_NV 0x8636
+#define GL_MATRIX7_ARB 0x88C7
+#define GL_MATRIX7_NV 0x8637
+#define GL_MATRIX8_ARB 0x88C8
+#define GL_MATRIX9_ARB 0x88C9
+#define GL_MATRIX_EXT 0x87C0
+#define GL_MATRIX_INDEX_ARRAY_ARB 0x8844
+#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849
+#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846
+#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848
+#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847
+#define GL_MATRIX_PALETTE_ARB 0x8840
+#define GL_MATRIX_STRIDE 0x92FF
+#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000
+#define GL_MAT_AMBIENT_BIT_PGI 0x00100000
+#define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000
+#define GL_MAT_DIFFUSE_BIT_PGI 0x00400000
+#define GL_MAT_EMISSION_BIT_PGI 0x00800000
+#define GL_MAT_SHININESS_BIT_PGI 0x02000000
+#define GL_MAT_SPECULAR_BIT_PGI 0x04000000
+#define GL_MAX 0x8008
+#define GL_MAX_3D_TEXTURE_SIZE 0x8073
+#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073
+#define GL_MAX_4D_TEXTURE_SIZE_SGIS 0x8138
+#define GL_MAX_ACTIVE_LIGHTS_SGIX 0x8405
+#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF
+#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF
+#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360
+#define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D
+#define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361
+#define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F
+#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC
+#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8
+#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED
+#define GL_MAX_CLIPMAP_DEPTH_SGIX 0x8177
+#define GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8178
+#define GL_MAX_CLIP_DISTANCES 0x0D32
+#define GL_MAX_COARSE_FRAGMENT_SAMPLES_NV 0x955F
+#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF
+#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF
+#define GL_MAX_COLOR_FRAMEBUFFER_SAMPLES_AMD 0x91B3
+#define GL_MAX_COLOR_FRAMEBUFFER_STORAGE_SAMPLES_AMD 0x91B4
+#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3
+#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E
+#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7
+#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1
+#define GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES 0x82FA
+#define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266
+#define GL_MAX_COMBINED_DIMENSIONS 0x8282
+#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33
+#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32
+#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF
+#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 0x8F39
+#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT 0x8F39
+#define GL_MAX_COMBINED_MESH_UNIFORM_COMPONENTS_NV 0x8E67
+#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39
+#define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC
+#define GL_MAX_COMBINED_TASK_UNIFORM_COMPONENTS_NV 0x8E6F
+#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E
+#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F
+#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
+#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D
+#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E
+#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31
+#define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265
+#define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264
+#define GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB 0x90EB
+#define GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB 0x91BF
+#define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD
+#define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB
+#define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262
+#define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC
+#define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB
+#define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263
+#define GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB 0x9344
+#define GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB 0x9345
+#define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE
+#define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB
+#define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF
+#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B
+#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C
+#define GL_MAX_CULL_DISTANCES 0x82F9
+#define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C
+#define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144
+#define GL_MAX_DEBUG_LOGGED_MESSAGES_AMD 0x9144
+#define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144
+#define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143
+#define GL_MAX_DEBUG_MESSAGE_LENGTH_AMD 0x9143
+#define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143
+#define GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV 0x90D1
+#define GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV 0x90D0
+#define GL_MAX_DEFORMATION_ORDER_SGIX 0x8197
+#define GL_MAX_DEPTH 0x8280
+#define GL_MAX_DEPTH_STENCIL_FRAMEBUFFER_SAMPLES_AMD 0x91B5
+#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F
+#define GL_MAX_DETACHED_BUFFERS_NV 0x95AD
+#define GL_MAX_DETACHED_TEXTURES_NV 0x95AC
+#define GL_MAX_DRAW_BUFFERS 0x8824
+#define GL_MAX_DRAW_BUFFERS_ARB 0x8824
+#define GL_MAX_DRAW_BUFFERS_ATI 0x8824
+#define GL_MAX_DRAW_MESH_TASKS_COUNT_NV 0x953D
+#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC
+#define GL_MAX_ELEMENTS_INDICES 0x80E9
+#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9
+#define GL_MAX_ELEMENTS_VERTICES 0x80E8
+#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8
+#define GL_MAX_ELEMENT_INDEX 0x8D6B
+#define GL_MAX_EXT 0x8008
+#define GL_MAX_FOG_FUNC_POINTS_SGIS 0x812C
+#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6
+#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0
+#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3
+#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE
+#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125
+#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C
+#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5C
+#define GL_MAX_FRAGMENT_LIGHTS_SGIX 0x8404
+#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868
+#define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA
+#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D
+#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49
+#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49
+#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD
+#define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316
+#define GL_MAX_FRAMEBUFFER_LAYERS 0x9317
+#define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318
+#define GL_MAX_FRAMEBUFFER_WIDTH 0x9315
+#define GL_MAX_FRAMEZOOM_FACTOR_SGIX 0x818D
+#define GL_MAX_GENERAL_COMBINERS_NV 0x854D
+#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5
+#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF
+#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4
+#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD
+#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123
+#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124
+#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0
+#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8DE0
+#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0
+#define GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV 0x8E5A
+#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A
+#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS 0x90D7
+#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29
+#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8C29
+#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29
+#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1
+#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1
+#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1
+#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C
+#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF
+#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF
+#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF
+#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD
+#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD
+#define GL_MAX_HEIGHT 0x827F
+#define GL_MAX_IMAGE_SAMPLES 0x906D
+#define GL_MAX_IMAGE_SAMPLES_EXT 0x906D
+#define GL_MAX_IMAGE_UNITS 0x8F38
+#define GL_MAX_IMAGE_UNITS_EXT 0x8F38
+#define GL_MAX_INTEGER_SAMPLES 0x9110
+#define GL_MAX_LABEL_LENGTH 0x82E8
+#define GL_MAX_LAYERS 0x8281
+#define GL_MAX_LGPU_GPUS_NVX 0x92BA
+#define GL_MAX_MAP_TESSELLATION_NV 0x86D6
+#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841
+#define GL_MAX_MESH_ATOMIC_COUNTERS_NV 0x8E65
+#define GL_MAX_MESH_ATOMIC_COUNTER_BUFFERS_NV 0x8E64
+#define GL_MAX_MESH_IMAGE_UNIFORMS_NV 0x8E62
+#define GL_MAX_MESH_OUTPUT_PRIMITIVES_NV 0x9539
+#define GL_MAX_MESH_OUTPUT_VERTICES_NV 0x9538
+#define GL_MAX_MESH_SHADER_STORAGE_BLOCKS_NV 0x8E66
+#define GL_MAX_MESH_TEXTURE_IMAGE_UNITS_NV 0x8E61
+#define GL_MAX_MESH_TOTAL_MEMORY_SIZE_NV 0x9536
+#define GL_MAX_MESH_UNIFORM_BLOCKS_NV 0x8E60
+#define GL_MAX_MESH_UNIFORM_COMPONENTS_NV 0x8E63
+#define GL_MAX_MESH_VIEWS_NV 0x9557
+#define GL_MAX_MESH_WORK_GROUP_INVOCATIONS_NV 0x95A2
+#define GL_MAX_MESH_WORK_GROUP_SIZE_NV 0x953B
+#define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11
+#define GL_MAX_NAME_LENGTH 0x92F6
+#define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7
+#define GL_MAX_NUM_COMPATIBLE_SUBROUTINES 0x92F8
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CD
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CC
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB
+#define GL_MAX_PALETTE_MATRICES_ARB 0x8842
+#define GL_MAX_PATCH_VERTICES 0x8E7D
+#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337
+#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1
+#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1
+#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B
+#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD
+#define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908
+#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5
+#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5
+#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4
+#define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5
+#define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6
+#define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6
+#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1
+#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4
+#define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8
+#define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7
+#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F
+#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E
+#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3
+#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E
+#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF
+#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3
+#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB
+#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7
+#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810
+#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F
+#define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27
+#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9
+#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0
+#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1
+#define GL_MAX_PROGRAM_PATCH_ATTRIBS_NV 0x86D8
+#define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909
+#define GL_MAX_PROGRAM_SUBROUTINE_NUM_NV 0x8F45
+#define GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV 0x8F44
+#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5
+#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905
+#define GL_MAX_PROGRAM_TEXEL_OFFSET_EXT 0x8905
+#define GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905
+#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB 0x8F9F
+#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F
+#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5F
+#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5F
+#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D
+#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C
+#define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28
+#define GL_MAX_RASTER_SAMPLES_EXT 0x9329
+#define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7
+#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8
+#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8
+#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8
+#define GL_MAX_RENDERBUFFER_SIZE 0x84E8
+#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8
+#define GL_MAX_SAMPLES 0x8D57
+#define GL_MAX_SAMPLES_EXT 0x8D57
+#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59
+#define GL_MAX_SAMPLE_MASK_WORDS_NV 0x8E59
+#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111
+#define GL_MAX_SHADER_BUFFER_ADDRESS_NV 0x8F35
+#define GL_MAX_SHADER_COMPILER_THREADS_ARB 0x91B0
+#define GL_MAX_SHADER_COMPILER_THREADS_KHR 0x91B0
+#define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE
+#define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD
+#define GL_MAX_SHININESS_NV 0x8504
+#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD 0x9199
+#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB 0x9199
+#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS 0x919A
+#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB 0x919A
+#define GL_MAX_SPARSE_TEXTURE_SIZE_AMD 0x9198
+#define GL_MAX_SPARSE_TEXTURE_SIZE_ARB 0x9198
+#define GL_MAX_SPOT_EXPONENT_NV 0x8505
+#define GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV 0x9349
+#define GL_MAX_SUBROUTINES 0x8DE7
+#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8
+#define GL_MAX_TASK_ATOMIC_COUNTERS_NV 0x8E6D
+#define GL_MAX_TASK_ATOMIC_COUNTER_BUFFERS_NV 0x8E6C
+#define GL_MAX_TASK_IMAGE_UNIFORMS_NV 0x8E6A
+#define GL_MAX_TASK_OUTPUT_COUNT_NV 0x953A
+#define GL_MAX_TASK_SHADER_STORAGE_BLOCKS_NV 0x8E6E
+#define GL_MAX_TASK_TEXTURE_IMAGE_UNITS_NV 0x8E69
+#define GL_MAX_TASK_TOTAL_MEMORY_SIZE_NV 0x9537
+#define GL_MAX_TASK_UNIFORM_BLOCKS_NV 0x8E68
+#define GL_MAX_TASK_UNIFORM_COMPONENTS_NV 0x8E6B
+#define GL_MAX_TASK_WORK_GROUP_INVOCATIONS_NV 0x95A3
+#define GL_MAX_TASK_WORK_GROUP_SIZE_NV 0x953C
+#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3
+#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD
+#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB
+#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C
+#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83
+#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS 0x90D8
+#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81
+#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85
+#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89
+#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F
+#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4
+#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE
+#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC
+#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D
+#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86
+#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS 0x90D9
+#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82
+#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A
+#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80
+#define GL_MAX_TESS_GEN_LEVEL 0x8E7E
+#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84
+#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B
+#define GL_MAX_TEXTURE_BUFFER_SIZE_ARB 0x8C2B
+#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B
+#define GL_MAX_TEXTURE_COORDS_ARB 0x8871
+#define GL_MAX_TEXTURE_COORDS_NV 0x8871
+#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872
+#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872
+#define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872
+#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD
+#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD
+#define GL_MAX_TEXTURE_MAX_ANISOTROPY 0x84FF
+#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
+#define GL_MAX_TEXTURE_SIZE 0x0D33
+#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2
+#define GL_MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV 0x95B6
+#define GL_MAX_TRACK_MATRICES_NV 0x862F
+#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E
+#define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70
+#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A
+#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A
+#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV 0x8C8A
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80
+#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30
+#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F
+#define GL_MAX_UNIFORM_LOCATIONS 0x826E
+#define GL_MAX_VARYING_COMPONENTS 0x8B4B
+#define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B
+#define GL_MAX_VARYING_FLOATS 0x8B4B
+#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B
+#define GL_MAX_VARYING_VECTORS 0x8DFC
+#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520
+#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2
+#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC
+#define GL_MAX_VERTEX_ATTRIBS 0x8869
+#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869
+#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA
+#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9
+#define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5
+#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2
+#define GL_MAX_VERTEX_HINT_PGI 0x1A22D
+#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA
+#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122
+#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5
+#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7
+#define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9
+#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8
+#define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6
+#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6
+#define GL_MAX_VERTEX_STREAMS 0x8E71
+#define GL_MAX_VERTEX_STREAMS_ATI 0x876B
+#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
+#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C
+#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B
+#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A
+#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A
+#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB
+#define GL_MAX_VERTEX_UNITS_ARB 0x86A4
+#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE
+#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE
+#define GL_MAX_VIEWPORTS 0x825B
+#define GL_MAX_VIEWPORT_DIMS 0x0D3A
+#define GL_MAX_VIEWS_OVR 0x9631
+#define GL_MAX_WIDTH 0x827E
+#define GL_MAX_WINDOW_RECTANGLES_EXT 0x8F14
+#define GL_MEDIUM_FLOAT 0x8DF1
+#define GL_MEDIUM_INT 0x8DF4
+#define GL_MEMORY_ATTACHABLE_ALIGNMENT_NV 0x95A6
+#define GL_MEMORY_ATTACHABLE_NV 0x95A8
+#define GL_MEMORY_ATTACHABLE_SIZE_NV 0x95A7
+#define GL_MESH_OUTPUT_PER_PRIMITIVE_GRANULARITY_NV 0x9543
+#define GL_MESH_OUTPUT_PER_VERTEX_GRANULARITY_NV 0x92DF
+#define GL_MESH_OUTPUT_TYPE_NV 0x957B
+#define GL_MESH_PRIMITIVES_OUT_NV 0x957A
+#define GL_MESH_SHADER_BIT_NV 0x00000040
+#define GL_MESH_SHADER_NV 0x9559
+#define GL_MESH_SUBROUTINE_NV 0x957C
+#define GL_MESH_SUBROUTINE_UNIFORM_NV 0x957E
+#define GL_MESH_VERTICES_OUT_NV 0x9579
+#define GL_MESH_WORK_GROUP_SIZE_NV 0x953E
+#define GL_MIN 0x8007
+#define GL_MINMAX_EXT 0x802E
+#define GL_MINMAX_FORMAT_EXT 0x802F
+#define GL_MINMAX_SINK_EXT 0x8030
+#define GL_MINOR_VERSION 0x821C
+#define GL_MINUS_CLAMPED_NV 0x92B3
+#define GL_MINUS_NV 0x929F
+#define GL_MIN_EXT 0x8007
+#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B
+#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5B
+#define GL_MIN_LOD_WARNING_AMD 0x919C
+#define GL_MIN_MAP_BUFFER_ALIGNMENT 0x90BC
+#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904
+#define GL_MIN_PROGRAM_TEXEL_OFFSET_EXT 0x8904
+#define GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904
+#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E
+#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5E
+#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5E
+#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37
+#define GL_MIN_SAMPLE_SHADING_VALUE_ARB 0x8C37
+#define GL_MIN_SPARSE_LEVEL_AMD 0x919B
+#define GL_MIPMAP 0x8293
+#define GL_MIRRORED_REPEAT 0x8370
+#define GL_MIRRORED_REPEAT_ARB 0x8370
+#define GL_MIRRORED_REPEAT_IBM 0x8370
+#define GL_MIRROR_CLAMP_ATI 0x8742
+#define GL_MIRROR_CLAMP_EXT 0x8742
+#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912
+#define GL_MIRROR_CLAMP_TO_EDGE 0x8743
+#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743
+#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743
+#define GL_MITER_REVERT_NV 0x90A7
+#define GL_MITER_TRUNCATE_NV 0x90A8
+#define GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV 0x932F
+#define GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV 0x9330
+#define GL_MODELVIEW0_ARB 0x1700
+#define GL_MODELVIEW0_EXT 0x1700
+#define GL_MODELVIEW0_MATRIX_EXT 0x0BA6
+#define GL_MODELVIEW0_STACK_DEPTH_EXT 0x0BA3
+#define GL_MODELVIEW10_ARB 0x872A
+#define GL_MODELVIEW11_ARB 0x872B
+#define GL_MODELVIEW12_ARB 0x872C
+#define GL_MODELVIEW13_ARB 0x872D
+#define GL_MODELVIEW14_ARB 0x872E
+#define GL_MODELVIEW15_ARB 0x872F
+#define GL_MODELVIEW16_ARB 0x8730
+#define GL_MODELVIEW17_ARB 0x8731
+#define GL_MODELVIEW18_ARB 0x8732
+#define GL_MODELVIEW19_ARB 0x8733
+#define GL_MODELVIEW1_ARB 0x850A
+#define GL_MODELVIEW1_EXT 0x850A
+#define GL_MODELVIEW1_MATRIX_EXT 0x8506
+#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502
+#define GL_MODELVIEW20_ARB 0x8734
+#define GL_MODELVIEW21_ARB 0x8735
+#define GL_MODELVIEW22_ARB 0x8736
+#define GL_MODELVIEW23_ARB 0x8737
+#define GL_MODELVIEW24_ARB 0x8738
+#define GL_MODELVIEW25_ARB 0x8739
+#define GL_MODELVIEW26_ARB 0x873A
+#define GL_MODELVIEW27_ARB 0x873B
+#define GL_MODELVIEW28_ARB 0x873C
+#define GL_MODELVIEW29_ARB 0x873D
+#define GL_MODELVIEW2_ARB 0x8722
+#define GL_MODELVIEW30_ARB 0x873E
+#define GL_MODELVIEW31_ARB 0x873F
+#define GL_MODELVIEW3_ARB 0x8723
+#define GL_MODELVIEW4_ARB 0x8724
+#define GL_MODELVIEW5_ARB 0x8725
+#define GL_MODELVIEW6_ARB 0x8726
+#define GL_MODELVIEW7_ARB 0x8727
+#define GL_MODELVIEW8_ARB 0x8728
+#define GL_MODELVIEW9_ARB 0x8729
+#define GL_MODELVIEW_PROJECTION_NV 0x8629
+#define GL_MODULATE_ADD_ATI 0x8744
+#define GL_MODULATE_SIGNED_ADD_ATI 0x8745
+#define GL_MODULATE_SUBTRACT_ATI 0x8746
+#define GL_MOVE_TO_CONTINUES_NV 0x90B6
+#define GL_MOVE_TO_NV 0x02
+#define GL_MOVE_TO_RESETS_NV 0x90B5
+#define GL_MOV_ATI 0x8961
+#define GL_MULTICAST_GPUS_NV 0x92BA
+#define GL_MULTICAST_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9549
+#define GL_MULTIPLY_KHR 0x9294
+#define GL_MULTIPLY_NV 0x9294
+#define GL_MULTISAMPLE 0x809D
+#define GL_MULTISAMPLES_NV 0x9371
+#define GL_MULTISAMPLE_3DFX 0x86B2
+#define GL_MULTISAMPLE_ARB 0x809D
+#define GL_MULTISAMPLE_BIT_3DFX 0x20000000
+#define GL_MULTISAMPLE_BIT_ARB 0x20000000
+#define GL_MULTISAMPLE_BIT_EXT 0x20000000
+#define GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12
+#define GL_MULTISAMPLE_EXT 0x809D
+#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534
+#define GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB 0x9382
+#define GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB 0x9381
+#define GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT 0x932B
+#define GL_MULTISAMPLE_SGIS 0x809D
+#define GL_MUL_ATI 0x8964
+#define GL_MVP_MATRIX_EXT 0x87E3
+#define GL_NAMED_STRING_LENGTH_ARB 0x8DE9
+#define GL_NAMED_STRING_TYPE_ARB 0x8DEA
+#define GL_NAME_LENGTH 0x92F9
+#define GL_NAND 0x150E
+#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 0x1A203
+#define GL_NATIVE_GRAPHICS_END_HINT_PGI 0x1A204
+#define GL_NATIVE_GRAPHICS_HANDLE_PGI 0x1A202
+#define GL_NEAREST 0x2600
+#define GL_NEAREST_CLIPMAP_LINEAR_SGIX 0x844E
+#define GL_NEAREST_CLIPMAP_NEAREST_SGIX 0x844D
+#define GL_NEAREST_MIPMAP_LINEAR 0x2702
+#define GL_NEAREST_MIPMAP_NEAREST 0x2700
+#define GL_NEGATE_BIT_ATI 0x00000004
+#define GL_NEGATIVE_ONE_EXT 0x87DF
+#define GL_NEGATIVE_ONE_TO_ONE 0x935E
+#define GL_NEGATIVE_W_EXT 0x87DC
+#define GL_NEGATIVE_X_EXT 0x87D9
+#define GL_NEGATIVE_Y_EXT 0x87DA
+#define GL_NEGATIVE_Z_EXT 0x87DB
+#define GL_NEVER 0x0200
+#define GL_NEXT_BUFFER_NV -2
+#define GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV 0x9025
+#define GL_NICEST 0x1102
+#define GL_NONE 0
+#define GL_NOOP 0x1505
+#define GL_NOP_COMMAND_NV 0x0001
+#define GL_NOR 0x1508
+#define GL_NORMALIZED_RANGE_EXT 0x87E0
+#define GL_NORMAL_ARRAY_ADDRESS_NV 0x8F22
+#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897
+#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080
+#define GL_NORMAL_ARRAY_EXT 0x8075
+#define GL_NORMAL_ARRAY_LENGTH_NV 0x8F2C
+#define GL_NORMAL_ARRAY_LIST_IBM 103071
+#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081
+#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6
+#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F
+#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F
+#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E
+#define GL_NORMAL_BIT_PGI 0x08000000
+#define GL_NORMAL_MAP_ARB 0x8511
+#define GL_NORMAL_MAP_EXT 0x8511
+#define GL_NORMAL_MAP_NV 0x8511
+#define GL_NOTEQUAL 0x0205
+#define GL_NO_ERROR 0
+#define GL_NO_RESET_NOTIFICATION 0x8261
+#define GL_NO_RESET_NOTIFICATION_ARB 0x8261
+#define GL_NUM_ACTIVE_VARIABLES 0x9304
+#define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A
+#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
+#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2
+#define GL_NUM_DEVICE_UUIDS_EXT 0x9596
+#define GL_NUM_EXTENSIONS 0x821D
+#define GL_NUM_FILL_STREAMS_NV 0x8E29
+#define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F
+#define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E
+#define GL_NUM_GENERAL_COMBINERS_NV 0x854E
+#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973
+#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971
+#define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972
+#define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974
+#define GL_NUM_PASSES_ATI 0x8970
+#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE
+#define GL_NUM_SAMPLE_COUNTS 0x9380
+#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9
+#define GL_NUM_SHADING_LANGUAGE_VERSIONS 0x82E9
+#define GL_NUM_SPARSE_LEVELS_ARB 0x91AA
+#define GL_NUM_SPIR_V_EXTENSIONS 0x9554
+#define GL_NUM_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B6
+#define GL_NUM_TILING_TYPES_EXT 0x9582
+#define GL_NUM_VIDEO_CAPTURE_STREAMS_NV 0x9024
+#define GL_NUM_VIRTUAL_PAGE_SIZES_ARB 0x91A8
+#define GL_NUM_WINDOW_RECTANGLES_EXT 0x8F15
+#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89
+#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A
+#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86
+#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87
+#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85
+#define GL_OBJECT_BUFFER_SIZE_ATI 0x8764
+#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765
+#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81
+#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80
+#define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3
+#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1
+#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84
+#define GL_OBJECT_LINE_SGIS 0x81F7
+#define GL_OBJECT_LINK_STATUS_ARB 0x8B82
+#define GL_OBJECT_POINT_SGIS 0x81F5
+#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88
+#define GL_OBJECT_SUBTYPE_ARB 0x8B4F
+#define GL_OBJECT_TYPE 0x9112
+#define GL_OBJECT_TYPE_ARB 0x8B4E
+#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83
+#define GL_OCCLUSION_QUERY_EVENT_MASK_AMD 0x874F
+#define GL_OCCLUSION_TEST_HP 0x8165
+#define GL_OCCLUSION_TEST_RESULT_HP 0x8166
+#define GL_OFFSET 0x92FC
+#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856
+#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857
+#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854
+#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855
+#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850
+#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851
+#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852
+#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853
+#define GL_OFFSET_TEXTURE_2D_BIAS_NV 0x86E3
+#define GL_OFFSET_TEXTURE_2D_MATRIX_NV 0x86E1
+#define GL_OFFSET_TEXTURE_2D_NV 0x86E8
+#define GL_OFFSET_TEXTURE_2D_SCALE_NV 0x86E2
+#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3
+#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1
+#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C
+#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D
+#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2
+#define GL_ONE 1
+#define GL_ONE_EXT 0x87DE
+#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
+#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004
+#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
+#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002
+#define GL_ONE_MINUS_DST_ALPHA 0x0305
+#define GL_ONE_MINUS_DST_COLOR 0x0307
+#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB
+#define GL_ONE_MINUS_SRC1_COLOR 0x88FA
+#define GL_ONE_MINUS_SRC_ALPHA 0x0303
+#define GL_ONE_MINUS_SRC_COLOR 0x0301
+#define GL_OPERAND0_ALPHA_ARB 0x8598
+#define GL_OPERAND0_ALPHA_EXT 0x8598
+#define GL_OPERAND0_RGB_ARB 0x8590
+#define GL_OPERAND0_RGB_EXT 0x8590
+#define GL_OPERAND1_ALPHA_ARB 0x8599
+#define GL_OPERAND1_ALPHA_EXT 0x8599
+#define GL_OPERAND1_RGB_ARB 0x8591
+#define GL_OPERAND1_RGB_EXT 0x8591
+#define GL_OPERAND2_ALPHA_ARB 0x859A
+#define GL_OPERAND2_ALPHA_EXT 0x859A
+#define GL_OPERAND2_RGB_ARB 0x8592
+#define GL_OPERAND2_RGB_EXT 0x8592
+#define GL_OPERAND3_ALPHA_NV 0x859B
+#define GL_OPERAND3_RGB_NV 0x8593
+#define GL_OPTIMAL_TILING_EXT 0x9584
+#define GL_OP_ADD_EXT 0x8787
+#define GL_OP_CLAMP_EXT 0x878E
+#define GL_OP_CROSS_PRODUCT_EXT 0x8797
+#define GL_OP_DOT3_EXT 0x8784
+#define GL_OP_DOT4_EXT 0x8785
+#define GL_OP_EXP_BASE_2_EXT 0x8791
+#define GL_OP_FLOOR_EXT 0x878F
+#define GL_OP_FRAC_EXT 0x8789
+#define GL_OP_INDEX_EXT 0x8782
+#define GL_OP_LOG_BASE_2_EXT 0x8792
+#define GL_OP_MADD_EXT 0x8788
+#define GL_OP_MAX_EXT 0x878A
+#define GL_OP_MIN_EXT 0x878B
+#define GL_OP_MOV_EXT 0x8799
+#define GL_OP_MULTIPLY_MATRIX_EXT 0x8798
+#define GL_OP_MUL_EXT 0x8786
+#define GL_OP_NEGATE_EXT 0x8783
+#define GL_OP_POWER_EXT 0x8793
+#define GL_OP_RECIP_EXT 0x8794
+#define GL_OP_RECIP_SQRT_EXT 0x8795
+#define GL_OP_ROUND_EXT 0x8790
+#define GL_OP_SET_GE_EXT 0x878C
+#define GL_OP_SET_LT_EXT 0x878D
+#define GL_OP_SUB_EXT 0x8796
+#define GL_OR 0x1507
+#define GL_OR_INVERTED 0x150D
+#define GL_OR_REVERSE 0x150B
+#define GL_OUTPUT_COLOR0_EXT 0x879B
+#define GL_OUTPUT_COLOR1_EXT 0x879C
+#define GL_OUTPUT_FOG_EXT 0x87BD
+#define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D
+#define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7
+#define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8
+#define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9
+#define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA
+#define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB
+#define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC
+#define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD
+#define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE
+#define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF
+#define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0
+#define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E
+#define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1
+#define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2
+#define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3
+#define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4
+#define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5
+#define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6
+#define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7
+#define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8
+#define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9
+#define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA
+#define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F
+#define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB
+#define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC
+#define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0
+#define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1
+#define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2
+#define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3
+#define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4
+#define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5
+#define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6
+#define GL_OUTPUT_VERTEX_EXT 0x879A
+#define GL_OUT_OF_MEMORY 0x0505
+#define GL_OVERLAY_KHR 0x9296
+#define GL_OVERLAY_NV 0x9296
+#define GL_PACK_ALIGNMENT 0x0D05
+#define GL_PACK_CMYK_HINT_EXT 0x800E
+#define GL_PACK_COMPRESSED_BLOCK_DEPTH 0x912D
+#define GL_PACK_COMPRESSED_BLOCK_HEIGHT 0x912C
+#define GL_PACK_COMPRESSED_BLOCK_SIZE 0x912E
+#define GL_PACK_COMPRESSED_BLOCK_WIDTH 0x912B
+#define GL_PACK_IMAGE_DEPTH_SGIS 0x8131
+#define GL_PACK_IMAGE_HEIGHT 0x806C
+#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C
+#define GL_PACK_INVERT_MESA 0x8758
+#define GL_PACK_LSB_FIRST 0x0D01
+#define GL_PACK_RESAMPLE_OML 0x8984
+#define GL_PACK_RESAMPLE_SGIX 0x842E
+#define GL_PACK_ROW_BYTES_APPLE 0x8A15
+#define GL_PACK_ROW_LENGTH 0x0D02
+#define GL_PACK_SKIP_IMAGES 0x806B
+#define GL_PACK_SKIP_IMAGES_EXT 0x806B
+#define GL_PACK_SKIP_PIXELS 0x0D04
+#define GL_PACK_SKIP_ROWS 0x0D03
+#define GL_PACK_SKIP_VOLUMES_SGIS 0x8130
+#define GL_PACK_SUBSAMPLE_RATE_SGIX 0x85A0
+#define GL_PACK_SWAP_BYTES 0x0D00
+#define GL_PALETTE4_R5_G6_B5_OES 0x8B92
+#define GL_PALETTE4_RGB5_A1_OES 0x8B94
+#define GL_PALETTE4_RGB8_OES 0x8B90
+#define GL_PALETTE4_RGBA4_OES 0x8B93
+#define GL_PALETTE4_RGBA8_OES 0x8B91
+#define GL_PALETTE8_R5_G6_B5_OES 0x8B97
+#define GL_PALETTE8_RGB5_A1_OES 0x8B99
+#define GL_PALETTE8_RGB8_OES 0x8B95
+#define GL_PALETTE8_RGBA4_OES 0x8B98
+#define GL_PALETTE8_RGBA8_OES 0x8B96
+#define GL_PARALLEL_ARRAYS_INTEL 0x83F4
+#define GL_PARAMETER_BUFFER 0x80EE
+#define GL_PARAMETER_BUFFER_ARB 0x80EE
+#define GL_PARAMETER_BUFFER_BINDING 0x80EF
+#define GL_PARAMETER_BUFFER_BINDING_ARB 0x80EF
+#define GL_PARTIAL_SUCCESS_NV 0x902E
+#define GL_PASS_THROUGH_NV 0x86E6
+#define GL_PATCHES 0x000E
+#define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73
+#define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74
+#define GL_PATCH_VERTICES 0x8E72
+#define GL_PATH_CLIENT_LENGTH_NV 0x907F
+#define GL_PATH_COMMAND_COUNT_NV 0x909D
+#define GL_PATH_COMPUTED_LENGTH_NV 0x90A0
+#define GL_PATH_COORD_COUNT_NV 0x909E
+#define GL_PATH_COVER_DEPTH_FUNC_NV 0x90BF
+#define GL_PATH_DASH_ARRAY_COUNT_NV 0x909F
+#define GL_PATH_DASH_CAPS_NV 0x907B
+#define GL_PATH_DASH_OFFSET_NV 0x907E
+#define GL_PATH_DASH_OFFSET_RESET_NV 0x90B4
+#define GL_PATH_END_CAPS_NV 0x9076
+#define GL_PATH_ERROR_POSITION_NV 0x90AB
+#define GL_PATH_FILL_BOUNDING_BOX_NV 0x90A1
+#define GL_PATH_FILL_COVER_MODE_NV 0x9082
+#define GL_PATH_FILL_MASK_NV 0x9081
+#define GL_PATH_FILL_MODE_NV 0x9080
+#define GL_PATH_FORMAT_PS_NV 0x9071
+#define GL_PATH_FORMAT_SVG_NV 0x9070
+#define GL_PATH_GEN_COEFF_NV 0x90B1
+#define GL_PATH_GEN_COMPONENTS_NV 0x90B3
+#define GL_PATH_GEN_MODE_NV 0x90B0
+#define GL_PATH_INITIAL_DASH_CAP_NV 0x907C
+#define GL_PATH_INITIAL_END_CAP_NV 0x9077
+#define GL_PATH_JOIN_STYLE_NV 0x9079
+#define GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV 0x0D36
+#define GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV 0x0D38
+#define GL_PATH_MITER_LIMIT_NV 0x907A
+#define GL_PATH_MODELVIEW_MATRIX_NV 0x0BA6
+#define GL_PATH_MODELVIEW_NV 0x1700
+#define GL_PATH_MODELVIEW_STACK_DEPTH_NV 0x0BA3
+#define GL_PATH_OBJECT_BOUNDING_BOX_NV 0x908A
+#define GL_PATH_PROJECTION_MATRIX_NV 0x0BA7
+#define GL_PATH_PROJECTION_NV 0x1701
+#define GL_PATH_PROJECTION_STACK_DEPTH_NV 0x0BA4
+#define GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV 0x90BD
+#define GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV 0x90BE
+#define GL_PATH_STENCIL_FUNC_NV 0x90B7
+#define GL_PATH_STENCIL_REF_NV 0x90B8
+#define GL_PATH_STENCIL_VALUE_MASK_NV 0x90B9
+#define GL_PATH_STROKE_BOUNDING_BOX_NV 0x90A2
+#define GL_PATH_STROKE_COVER_MODE_NV 0x9083
+#define GL_PATH_STROKE_MASK_NV 0x9084
+#define GL_PATH_STROKE_WIDTH_NV 0x9075
+#define GL_PATH_TERMINAL_DASH_CAP_NV 0x907D
+#define GL_PATH_TERMINAL_END_CAP_NV 0x9078
+#define GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV 0x84E3
+#define GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV 0x84E4
+#define GL_PERCENTAGE_AMD 0x8BC3
+#define GL_PERFMON_RESULT_AMD 0x8BC6
+#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4
+#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5
+#define GL_PERFORMANCE_MONITOR_AMD 0x9152
+#define GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL 0x94FC
+#define GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL 0x94FB
+#define GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL 0x94FA
+#define GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL 0x94F8
+#define GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL 0x94F9
+#define GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL 0x94FF
+#define GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL 0x94F1
+#define GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL 0x94F2
+#define GL_PERFQUERY_COUNTER_EVENT_INTEL 0x94F0
+#define GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL 0x94FE
+#define GL_PERFQUERY_COUNTER_RAW_INTEL 0x94F4
+#define GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL 0x94F3
+#define GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL 0x94F5
+#define GL_PERFQUERY_DONOT_FLUSH_INTEL 0x83F9
+#define GL_PERFQUERY_FLUSH_INTEL 0x83FA
+#define GL_PERFQUERY_GLOBAL_CONTEXT_INTEL 0x00000001
+#define GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL 0x9500
+#define GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL 0x94FD
+#define GL_PERFQUERY_SINGLE_CONTEXT_INTEL 0x00000000
+#define GL_PERFQUERY_WAIT_INTEL 0x83FB
+#define GL_PERTURB_EXT 0x85AE
+#define GL_PER_GPU_STORAGE_BIT_NV 0x0800
+#define GL_PER_GPU_STORAGE_NV 0x9548
+#define GL_PER_STAGE_CONSTANTS_NV 0x8535
+#define GL_PHONG_HINT_WIN 0x80EB
+#define GL_PHONG_WIN 0x80EA
+#define GL_PINLIGHT_NV 0x92A8
+#define GL_PIXELS_PER_SAMPLE_PATTERN_X_AMD 0x91AE
+#define GL_PIXELS_PER_SAMPLE_PATTERN_Y_AMD 0x91AF
+#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080
+#define GL_PIXEL_BUFFER_BARRIER_BIT_EXT 0x00000080
+#define GL_PIXEL_COUNTER_BITS_NV 0x8864
+#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867
+#define GL_PIXEL_COUNT_NV 0x8866
+#define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333
+#define GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS 0x8355
+#define GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS 0x8354
+#define GL_PIXEL_GROUP_COLOR_SGIS 0x8356
+#define GL_PIXEL_MAG_FILTER_EXT 0x8331
+#define GL_PIXEL_MIN_FILTER_EXT 0x8332
+#define GL_PIXEL_PACK_BUFFER 0x88EB
+#define GL_PIXEL_PACK_BUFFER_ARB 0x88EB
+#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED
+#define GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED
+#define GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED
+#define GL_PIXEL_PACK_BUFFER_EXT 0x88EB
+#define GL_PIXEL_SUBSAMPLE_2424_SGIX 0x85A3
+#define GL_PIXEL_SUBSAMPLE_4242_SGIX 0x85A4
+#define GL_PIXEL_SUBSAMPLE_4444_SGIX 0x85A2
+#define GL_PIXEL_TEXTURE_SGIS 0x8353
+#define GL_PIXEL_TEX_GEN_MODE_SGIX 0x832B
+#define GL_PIXEL_TEX_GEN_SGIX 0x8139
+#define GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX 0x813E
+#define GL_PIXEL_TILE_CACHE_INCREMENT_SGIX 0x813F
+#define GL_PIXEL_TILE_CACHE_SIZE_SGIX 0x8145
+#define GL_PIXEL_TILE_GRID_DEPTH_SGIX 0x8144
+#define GL_PIXEL_TILE_GRID_HEIGHT_SGIX 0x8143
+#define GL_PIXEL_TILE_GRID_WIDTH_SGIX 0x8142
+#define GL_PIXEL_TILE_HEIGHT_SGIX 0x8141
+#define GL_PIXEL_TILE_WIDTH_SGIX 0x8140
+#define GL_PIXEL_TRANSFORM_2D_EXT 0x8330
+#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338
+#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336
+#define GL_PIXEL_UNPACK_BUFFER 0x88EC
+#define GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC
+#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF
+#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF
+#define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF
+#define GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC
+#define GL_PLUS_CLAMPED_ALPHA_NV 0x92B2
+#define GL_PLUS_CLAMPED_NV 0x92B1
+#define GL_PLUS_DARKER_NV 0x9292
+#define GL_PLUS_NV 0x9291
+#define GL_PN_TRIANGLES_ATI 0x87F0
+#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3
+#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7
+#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8
+#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2
+#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6
+#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5
+#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4
+#define GL_POINT 0x1B00
+#define GL_POINTS 0x0000
+#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129
+#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128
+#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128
+#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128
+#define GL_POINT_FADE_THRESHOLD_SIZE_SGIS 0x8128
+#define GL_POINT_SIZE 0x0B11
+#define GL_POINT_SIZE_GRANULARITY 0x0B13
+#define GL_POINT_SIZE_MAX_ARB 0x8127
+#define GL_POINT_SIZE_MAX_EXT 0x8127
+#define GL_POINT_SIZE_MAX_SGIS 0x8127
+#define GL_POINT_SIZE_MIN_ARB 0x8126
+#define GL_POINT_SIZE_MIN_EXT 0x8126
+#define GL_POINT_SIZE_MIN_SGIS 0x8126
+#define GL_POINT_SIZE_RANGE 0x0B12
+#define GL_POINT_SPRITE_ARB 0x8861
+#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0
+#define GL_POINT_SPRITE_NV 0x8861
+#define GL_POINT_SPRITE_R_MODE_NV 0x8863
+#define GL_POLYGON_MODE 0x0B40
+#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039
+#define GL_POLYGON_OFFSET_CLAMP 0x8E1B
+#define GL_POLYGON_OFFSET_CLAMP_EXT 0x8E1B
+#define GL_POLYGON_OFFSET_COMMAND_NV 0x000E
+#define GL_POLYGON_OFFSET_EXT 0x8037
+#define GL_POLYGON_OFFSET_FACTOR 0x8038
+#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038
+#define GL_POLYGON_OFFSET_FILL 0x8037
+#define GL_POLYGON_OFFSET_LINE 0x2A02
+#define GL_POLYGON_OFFSET_POINT 0x2A01
+#define GL_POLYGON_OFFSET_UNITS 0x2A00
+#define GL_POLYGON_SMOOTH 0x0B41
+#define GL_POLYGON_SMOOTH_HINT 0x0C53
+#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB
+#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7
+#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA
+#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6
+#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2
+#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9
+#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5
+#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8
+#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4
+#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023
+#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F
+#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022
+#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E
+#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1
+#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021
+#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D
+#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020
+#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C
+#define GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8162
+#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B
+#define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179
+#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C
+#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A
+#define GL_PREFER_DOUBLEBUFFER_HINT_PGI 0x1A1F8
+#define GL_PRESENT_DURATION_NV 0x8E2B
+#define GL_PRESENT_TIME_NV 0x8E2A
+#define GL_PRESERVE_ATI 0x8762
+#define GL_PREVIOUS_ARB 0x8578
+#define GL_PREVIOUS_EXT 0x8578
+#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4
+#define GL_PRIMARY_COLOR_ARB 0x8577
+#define GL_PRIMARY_COLOR_EXT 0x8577
+#define GL_PRIMARY_COLOR_NV 0x852C
+#define GL_PRIMITIVES_GENERATED 0x8C87
+#define GL_PRIMITIVES_GENERATED_EXT 0x8C87
+#define GL_PRIMITIVES_GENERATED_NV 0x8C87
+#define GL_PRIMITIVES_SUBMITTED 0x82EF
+#define GL_PRIMITIVES_SUBMITTED_ARB 0x82EF
+#define GL_PRIMITIVE_BOUNDING_BOX_ARB 0x92BE
+#define GL_PRIMITIVE_ID_NV 0x8C7C
+#define GL_PRIMITIVE_RESTART 0x8F9D
+#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69
+#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221
+#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E
+#define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559
+#define GL_PRIMITIVE_RESTART_NV 0x8558
+#define GL_PROGRAM 0x82E2
+#define GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB 0x9341
+#define GL_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9341
+#define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB 0x9340
+#define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV 0x9340
+#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0
+#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805
+#define GL_PROGRAM_ATTRIBS_ARB 0x88AC
+#define GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906
+#define GL_PROGRAM_BINARY_FORMATS 0x87FF
+#define GL_PROGRAM_BINARY_FORMAT_MESA 0x875F
+#define GL_PROGRAM_BINARY_LENGTH 0x8741
+#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257
+#define GL_PROGRAM_BINDING_ARB 0x8677
+#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B
+#define GL_PROGRAM_ERROR_POSITION_NV 0x864B
+#define GL_PROGRAM_ERROR_STRING_ARB 0x8874
+#define GL_PROGRAM_ERROR_STRING_NV 0x8874
+#define GL_PROGRAM_FORMAT_ARB 0x8876
+#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875
+#define GL_PROGRAM_INPUT 0x92E3
+#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0
+#define GL_PROGRAM_LENGTH_ARB 0x8627
+#define GL_PROGRAM_LENGTH_NV 0x8627
+#define GL_PROGRAM_MATRIX_EXT 0x8E2D
+#define GL_PROGRAM_MATRIX_STACK_DEPTH_EXT 0x8E2F
+#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2
+#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808
+#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE
+#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2
+#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA
+#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6
+#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A
+#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809
+#define GL_PROGRAM_OBJECT_ARB 0x8B40
+#define GL_PROGRAM_OBJECT_EXT 0x8B40
+#define GL_PROGRAM_OUTPUT 0x92E4
+#define GL_PROGRAM_PARAMETERS_ARB 0x88A8
+#define GL_PROGRAM_PARAMETER_NV 0x8644
+#define GL_PROGRAM_PIPELINE 0x82E4
+#define GL_PROGRAM_PIPELINE_BINDING 0x825A
+#define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F
+#define GL_PROGRAM_POINT_SIZE 0x8642
+#define GL_PROGRAM_POINT_SIZE_ARB 0x8642
+#define GL_PROGRAM_POINT_SIZE_EXT 0x8642
+#define GL_PROGRAM_RESIDENT_NV 0x8647
+#define GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907
+#define GL_PROGRAM_SEPARABLE 0x8258
+#define GL_PROGRAM_STRING_ARB 0x8628
+#define GL_PROGRAM_STRING_NV 0x8628
+#define GL_PROGRAM_TARGET_NV 0x8646
+#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4
+#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807
+#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806
+#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6
+#define GL_PROTECTED_MEMORY_OBJECT_EXT 0x959B
+#define GL_PROVOKING_VERTEX 0x8E4F
+#define GL_PROVOKING_VERTEX_EXT 0x8E4F
+#define GL_PROXY_COLOR_TABLE_SGI 0x80D3
+#define GL_PROXY_HISTOGRAM_EXT 0x8025
+#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5
+#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4
+#define GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8163
+#define GL_PROXY_TEXTURE_1D 0x8063
+#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19
+#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19
+#define GL_PROXY_TEXTURE_1D_EXT 0x8063
+#define GL_PROXY_TEXTURE_1D_STACK_MESAX 0x875B
+#define GL_PROXY_TEXTURE_2D 0x8064
+#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B
+#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B
+#define GL_PROXY_TEXTURE_2D_EXT 0x8064
+#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101
+#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103
+#define GL_PROXY_TEXTURE_2D_STACK_MESAX 0x875C
+#define GL_PROXY_TEXTURE_3D 0x8070
+#define GL_PROXY_TEXTURE_3D_EXT 0x8070
+#define GL_PROXY_TEXTURE_4D_SGIS 0x8135
+#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD
+#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B
+#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B
+#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B
+#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB 0x900B
+#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B
+#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7
+#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7
+#define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7
+#define GL_PURGEABLE_APPLE 0x8A1D
+#define GL_PURGED_CONTEXT_RESET_NV 0x92BB
+#define GL_QUADRATIC_CURVE_TO_NV 0x0A
+#define GL_QUADS 0x0007
+#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C
+#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT 0x8E4C
+#define GL_QUAD_ALPHA4_SGIS 0x811E
+#define GL_QUAD_ALPHA8_SGIS 0x811F
+#define GL_QUAD_INTENSITY4_SGIS 0x8122
+#define GL_QUAD_INTENSITY8_SGIS 0x8123
+#define GL_QUAD_LUMINANCE4_SGIS 0x8120
+#define GL_QUAD_LUMINANCE8_SGIS 0x8121
+#define GL_QUAD_MESH_SUN 0x8614
+#define GL_QUAD_TEXTURE_SELECT_SGIS 0x8125
+#define GL_QUARTER_BIT_ATI 0x00000010
+#define GL_QUERY 0x82E3
+#define GL_QUERY_ALL_EVENT_BITS_AMD 0xFFFFFFFF
+#define GL_QUERY_BUFFER 0x9192
+#define GL_QUERY_BUFFER_AMD 0x9192
+#define GL_QUERY_BUFFER_BARRIER_BIT 0x00008000
+#define GL_QUERY_BUFFER_BINDING 0x9193
+#define GL_QUERY_BUFFER_BINDING_AMD 0x9193
+#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16
+#define GL_QUERY_BY_REGION_NO_WAIT_INVERTED 0x8E1A
+#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16
+#define GL_QUERY_BY_REGION_WAIT 0x8E15
+#define GL_QUERY_BY_REGION_WAIT_INVERTED 0x8E19
+#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15
+#define GL_QUERY_COUNTER_BITS 0x8864
+#define GL_QUERY_COUNTER_BITS_ARB 0x8864
+#define GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD 0x00000008
+#define GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD 0x00000002
+#define GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD 0x00000001
+#define GL_QUERY_NO_WAIT 0x8E14
+#define GL_QUERY_NO_WAIT_INVERTED 0x8E18
+#define GL_QUERY_NO_WAIT_NV 0x8E14
+#define GL_QUERY_OBJECT_AMD 0x9153
+#define GL_QUERY_OBJECT_EXT 0x9153
+#define GL_QUERY_RESOURCE_BUFFEROBJECT_NV 0x9547
+#define GL_QUERY_RESOURCE_MEMTYPE_VIDMEM_NV 0x9542
+#define GL_QUERY_RESOURCE_RENDERBUFFER_NV 0x9546
+#define GL_QUERY_RESOURCE_SYS_RESERVED_NV 0x9544
+#define GL_QUERY_RESOURCE_TEXTURE_NV 0x9545
+#define GL_QUERY_RESOURCE_TYPE_VIDMEM_ALLOC_NV 0x9540
+#define GL_QUERY_RESULT 0x8866
+#define GL_QUERY_RESULT_ARB 0x8866
+#define GL_QUERY_RESULT_AVAILABLE 0x8867
+#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867
+#define GL_QUERY_RESULT_NO_WAIT 0x9194
+#define GL_QUERY_RESULT_NO_WAIT_AMD 0x9194
+#define GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD 0x00000004
+#define GL_QUERY_TARGET 0x82EA
+#define GL_QUERY_WAIT 0x8E13
+#define GL_QUERY_WAIT_INVERTED 0x8E17
+#define GL_QUERY_WAIT_NV 0x8E13
+#define GL_R11F_G11F_B10F 0x8C3A
+#define GL_R11F_G11F_B10F_EXT 0x8C3A
+#define GL_R16 0x822A
+#define GL_R16F 0x822D
+#define GL_R16F_EXT 0x822D
+#define GL_R16I 0x8233
+#define GL_R16UI 0x8234
+#define GL_R16_SNORM 0x8F98
+#define GL_R1UI_C3F_V3F_SUN 0x85C6
+#define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8
+#define GL_R1UI_C4UB_V3F_SUN 0x85C5
+#define GL_R1UI_N3F_V3F_SUN 0x85C7
+#define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB
+#define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA
+#define GL_R1UI_T2F_V3F_SUN 0x85C9
+#define GL_R1UI_V3F_SUN 0x85C4
+#define GL_R32F 0x822E
+#define GL_R32F_EXT 0x822E
+#define GL_R32I 0x8235
+#define GL_R32UI 0x8236
+#define GL_R3_G3_B2 0x2A10
+#define GL_R8 0x8229
+#define GL_R8I 0x8231
+#define GL_R8UI 0x8232
+#define GL_R8_EXT 0x8229
+#define GL_R8_SNORM 0x8F94
+#define GL_RASTERIZER_DISCARD 0x8C89
+#define GL_RASTERIZER_DISCARD_EXT 0x8C89
+#define GL_RASTERIZER_DISCARD_NV 0x8C89
+#define GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT 0x932A
+#define GL_RASTER_MULTISAMPLE_EXT 0x9327
+#define GL_RASTER_POSITION_UNCLIPPED_IBM 0x19262
+#define GL_RASTER_SAMPLES_EXT 0x9328
+#define GL_READ_BUFFER 0x0C02
+#define GL_READ_FRAMEBUFFER 0x8CA8
+#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA
+#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA
+#define GL_READ_FRAMEBUFFER_EXT 0x8CA8
+#define GL_READ_ONLY 0x88B8
+#define GL_READ_ONLY_ARB 0x88B8
+#define GL_READ_PIXELS 0x828C
+#define GL_READ_PIXELS_FORMAT 0x828D
+#define GL_READ_PIXELS_TYPE 0x828E
+#define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B
+#define GL_READ_PIXEL_DATA_RANGE_NV 0x8879
+#define GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D
+#define GL_READ_WRITE 0x88BA
+#define GL_READ_WRITE_ARB 0x88BA
+#define GL_RECLAIM_MEMORY_HINT_PGI 0x1A1FE
+#define GL_RECT_NV 0xF6
+#define GL_RED 0x1903
+#define GL_REDUCE_EXT 0x8016
+#define GL_RED_BIT_ATI 0x00000001
+#define GL_RED_INTEGER 0x8D94
+#define GL_RED_INTEGER_EXT 0x8D94
+#define GL_RED_MAX_CLAMP_INGR 0x8564
+#define GL_RED_MIN_CLAMP_INGR 0x8560
+#define GL_RED_NV 0x1903
+#define GL_RED_SNORM 0x8F90
+#define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B
+#define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A
+#define GL_REFERENCED_BY_GEOMETRY_SHADER 0x9309
+#define GL_REFERENCED_BY_MESH_SHADER_NV 0x95A0
+#define GL_REFERENCED_BY_TASK_SHADER_NV 0x95A1
+#define GL_REFERENCED_BY_TESS_CONTROL_SHADER 0x9307
+#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER 0x9308
+#define GL_REFERENCED_BY_VERTEX_SHADER 0x9306
+#define GL_REFERENCE_PLANE_EQUATION_SGIX 0x817E
+#define GL_REFERENCE_PLANE_SGIX 0x817D
+#define GL_REFLECTION_MAP_ARB 0x8512
+#define GL_REFLECTION_MAP_EXT 0x8512
+#define GL_REFLECTION_MAP_NV 0x8512
+#define GL_REGISTER_COMBINERS_NV 0x8522
+#define GL_REG_0_ATI 0x8921
+#define GL_REG_10_ATI 0x892B
+#define GL_REG_11_ATI 0x892C
+#define GL_REG_12_ATI 0x892D
+#define GL_REG_13_ATI 0x892E
+#define GL_REG_14_ATI 0x892F
+#define GL_REG_15_ATI 0x8930
+#define GL_REG_16_ATI 0x8931
+#define GL_REG_17_ATI 0x8932
+#define GL_REG_18_ATI 0x8933
+#define GL_REG_19_ATI 0x8934
+#define GL_REG_1_ATI 0x8922
+#define GL_REG_20_ATI 0x8935
+#define GL_REG_21_ATI 0x8936
+#define GL_REG_22_ATI 0x8937
+#define GL_REG_23_ATI 0x8938
+#define GL_REG_24_ATI 0x8939
+#define GL_REG_25_ATI 0x893A
+#define GL_REG_26_ATI 0x893B
+#define GL_REG_27_ATI 0x893C
+#define GL_REG_28_ATI 0x893D
+#define GL_REG_29_ATI 0x893E
+#define GL_REG_2_ATI 0x8923
+#define GL_REG_30_ATI 0x893F
+#define GL_REG_31_ATI 0x8940
+#define GL_REG_3_ATI 0x8924
+#define GL_REG_4_ATI 0x8925
+#define GL_REG_5_ATI 0x8926
+#define GL_REG_6_ATI 0x8927
+#define GL_REG_7_ATI 0x8928
+#define GL_REG_8_ATI 0x8929
+#define GL_REG_9_ATI 0x892A
+#define GL_RELATIVE_ARC_TO_NV 0xFF
+#define GL_RELATIVE_CONIC_CURVE_TO_NV 0x1B
+#define GL_RELATIVE_CUBIC_CURVE_TO_NV 0x0D
+#define GL_RELATIVE_HORIZONTAL_LINE_TO_NV 0x07
+#define GL_RELATIVE_LARGE_CCW_ARC_TO_NV 0x17
+#define GL_RELATIVE_LARGE_CW_ARC_TO_NV 0x19
+#define GL_RELATIVE_LINE_TO_NV 0x05
+#define GL_RELATIVE_MOVE_TO_NV 0x03
+#define GL_RELATIVE_QUADRATIC_CURVE_TO_NV 0x0B
+#define GL_RELATIVE_RECT_NV 0xF7
+#define GL_RELATIVE_ROUNDED_RECT2_NV 0xEB
+#define GL_RELATIVE_ROUNDED_RECT4_NV 0xED
+#define GL_RELATIVE_ROUNDED_RECT8_NV 0xEF
+#define GL_RELATIVE_ROUNDED_RECT_NV 0xE9
+#define GL_RELATIVE_SMALL_CCW_ARC_TO_NV 0x13
+#define GL_RELATIVE_SMALL_CW_ARC_TO_NV 0x15
+#define GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV 0x11
+#define GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0F
+#define GL_RELATIVE_VERTICAL_LINE_TO_NV 0x09
+#define GL_RELEASED_APPLE 0x8A19
+#define GL_RENDERBUFFER 0x8D41
+#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53
+#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53
+#define GL_RENDERBUFFER_BINDING 0x8CA7
+#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7
+#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52
+#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52
+#define GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10
+#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB
+#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54
+#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54
+#define GL_RENDERBUFFER_EXT 0x8D41
+#define GL_RENDERBUFFER_FREE_MEMORY_ATI 0x87FD
+#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51
+#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51
+#define GL_RENDERBUFFER_HEIGHT 0x8D43
+#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43
+#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44
+#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44
+#define GL_RENDERBUFFER_RED_SIZE 0x8D50
+#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50
+#define GL_RENDERBUFFER_SAMPLES 0x8CAB
+#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB
+#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55
+#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55
+#define GL_RENDERBUFFER_STORAGE_SAMPLES_AMD 0x91B2
+#define GL_RENDERBUFFER_WIDTH 0x8D42
+#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42
+#define GL_RENDERER 0x1F01
+#define GL_RENDER_GPU_MASK_NV 0x9558
+#define GL_REPEAT 0x2901
+#define GL_REPLACE 0x1E01
+#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3
+#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2
+#define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0
+#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1
+#define GL_REPLACEMENT_CODE_SUN 0x81D8
+#define GL_REPLACE_EXT 0x8062
+#define GL_REPLACE_MIDDLE_SUN 0x0002
+#define GL_REPLACE_OLDEST_SUN 0x0003
+#define GL_REPLACE_VALUE_AMD 0x874B
+#define GL_REPLICATE_BORDER_HP 0x8153
+#define GL_REPRESENTATIVE_FRAGMENT_TEST_NV 0x937F
+#define GL_RESAMPLE_AVERAGE_OML 0x8988
+#define GL_RESAMPLE_DECIMATE_OML 0x8989
+#define GL_RESAMPLE_DECIMATE_SGIX 0x8430
+#define GL_RESAMPLE_REPLICATE_OML 0x8986
+#define GL_RESAMPLE_REPLICATE_SGIX 0x8433
+#define GL_RESAMPLE_ZERO_FILL_OML 0x8987
+#define GL_RESAMPLE_ZERO_FILL_SGIX 0x8434
+#define GL_RESCALE_NORMAL_EXT 0x803A
+#define GL_RESET_NOTIFICATION_STRATEGY 0x8256
+#define GL_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
+#define GL_RESTART_PATH_NV 0xF0
+#define GL_RESTART_SUN 0x0001
+#define GL_RETAINED_APPLE 0x8A1B
+#define GL_RG 0x8227
+#define GL_RG16 0x822C
+#define GL_RG16F 0x822F
+#define GL_RG16F_EXT 0x822F
+#define GL_RG16I 0x8239
+#define GL_RG16UI 0x823A
+#define GL_RG16_SNORM 0x8F99
+#define GL_RG32F 0x8230
+#define GL_RG32F_EXT 0x8230
+#define GL_RG32I 0x823B
+#define GL_RG32UI 0x823C
+#define GL_RG8 0x822B
+#define GL_RG8I 0x8237
+#define GL_RG8UI 0x8238
+#define GL_RG8_EXT 0x822B
+#define GL_RG8_SNORM 0x8F95
+#define GL_RGB 0x1907
+#define GL_RGB10 0x8052
+#define GL_RGB10_A2 0x8059
+#define GL_RGB10_A2UI 0x906F
+#define GL_RGB10_A2_EXT 0x8059
+#define GL_RGB10_EXT 0x8052
+#define GL_RGB12 0x8053
+#define GL_RGB12_EXT 0x8053
+#define GL_RGB16 0x8054
+#define GL_RGB16F 0x881B
+#define GL_RGB16F_ARB 0x881B
+#define GL_RGB16F_EXT 0x881B
+#define GL_RGB16I 0x8D89
+#define GL_RGB16I_EXT 0x8D89
+#define GL_RGB16UI 0x8D77
+#define GL_RGB16UI_EXT 0x8D77
+#define GL_RGB16_EXT 0x8054
+#define GL_RGB16_SNORM 0x8F9A
+#define GL_RGB2_EXT 0x804E
+#define GL_RGB32F 0x8815
+#define GL_RGB32F_ARB 0x8815
+#define GL_RGB32F_EXT 0x8815
+#define GL_RGB32I 0x8D83
+#define GL_RGB32I_EXT 0x8D83
+#define GL_RGB32UI 0x8D71
+#define GL_RGB32UI_EXT 0x8D71
+#define GL_RGB4 0x804F
+#define GL_RGB4_EXT 0x804F
+#define GL_RGB4_S3TC 0x83A1
+#define GL_RGB5 0x8050
+#define GL_RGB565 0x8D62
+#define GL_RGB5_A1 0x8057
+#define GL_RGB5_A1_EXT 0x8057
+#define GL_RGB5_EXT 0x8050
+#define GL_RGB8 0x8051
+#define GL_RGB8I 0x8D8F
+#define GL_RGB8I_EXT 0x8D8F
+#define GL_RGB8UI 0x8D7D
+#define GL_RGB8UI_EXT 0x8D7D
+#define GL_RGB8_EXT 0x8051
+#define GL_RGB8_SNORM 0x8F96
+#define GL_RGB9_E5 0x8C3D
+#define GL_RGB9_E5_EXT 0x8C3D
+#define GL_RGBA 0x1908
+#define GL_RGBA12 0x805A
+#define GL_RGBA12_EXT 0x805A
+#define GL_RGBA16 0x805B
+#define GL_RGBA16F 0x881A
+#define GL_RGBA16F_ARB 0x881A
+#define GL_RGBA16F_EXT 0x881A
+#define GL_RGBA16I 0x8D88
+#define GL_RGBA16I_EXT 0x8D88
+#define GL_RGBA16UI 0x8D76
+#define GL_RGBA16UI_EXT 0x8D76
+#define GL_RGBA16_EXT 0x805B
+#define GL_RGBA16_SNORM 0x8F9B
+#define GL_RGBA2 0x8055
+#define GL_RGBA2_EXT 0x8055
+#define GL_RGBA32F 0x8814
+#define GL_RGBA32F_ARB 0x8814
+#define GL_RGBA32F_EXT 0x8814
+#define GL_RGBA32I 0x8D82
+#define GL_RGBA32I_EXT 0x8D82
+#define GL_RGBA32UI 0x8D70
+#define GL_RGBA32UI_EXT 0x8D70
+#define GL_RGBA4 0x8056
+#define GL_RGBA4_DXT5_S3TC 0x83A5
+#define GL_RGBA4_EXT 0x8056
+#define GL_RGBA4_S3TC 0x83A3
+#define GL_RGBA8 0x8058
+#define GL_RGBA8I 0x8D8E
+#define GL_RGBA8I_EXT 0x8D8E
+#define GL_RGBA8UI 0x8D7C
+#define GL_RGBA8UI_EXT 0x8D7C
+#define GL_RGBA8_EXT 0x8058
+#define GL_RGBA8_SNORM 0x8F97
+#define GL_RGBA_DXT5_S3TC 0x83A4
+#define GL_RGBA_FLOAT16_APPLE 0x881A
+#define GL_RGBA_FLOAT16_ATI 0x881A
+#define GL_RGBA_FLOAT32_APPLE 0x8814
+#define GL_RGBA_FLOAT32_ATI 0x8814
+#define GL_RGBA_FLOAT_MODE_ARB 0x8820
+#define GL_RGBA_FLOAT_MODE_ATI 0x8820
+#define GL_RGBA_INTEGER 0x8D99
+#define GL_RGBA_INTEGER_EXT 0x8D99
+#define GL_RGBA_INTEGER_MODE_EXT 0x8D9E
+#define GL_RGBA_S3TC 0x83A2
+#define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C
+#define GL_RGBA_SNORM 0x8F93
+#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9
+#define GL_RGB_422_APPLE 0x8A1F
+#define GL_RGB_FLOAT16_APPLE 0x881B
+#define GL_RGB_FLOAT16_ATI 0x881B
+#define GL_RGB_FLOAT32_APPLE 0x8815
+#define GL_RGB_FLOAT32_ATI 0x8815
+#define GL_RGB_INTEGER 0x8D98
+#define GL_RGB_INTEGER_EXT 0x8D98
+#define GL_RGB_RAW_422_APPLE 0x8A51
+#define GL_RGB_S3TC 0x83A0
+#define GL_RGB_SCALE_ARB 0x8573
+#define GL_RGB_SCALE_EXT 0x8573
+#define GL_RGB_SNORM 0x8F92
+#define GL_RG_INTEGER 0x8228
+#define GL_RG_SNORM 0x8F91
+#define GL_RIGHT 0x0407
+#define GL_ROUNDED_RECT2_NV 0xEA
+#define GL_ROUNDED_RECT4_NV 0xEC
+#define GL_ROUNDED_RECT8_NV 0xEE
+#define GL_ROUNDED_RECT_NV 0xE8
+#define GL_ROUND_NV 0x90A4
+#define GL_SAMPLER 0x82E6
+#define GL_SAMPLER_1D 0x8B5D
+#define GL_SAMPLER_1D_ARB 0x8B5D
+#define GL_SAMPLER_1D_ARRAY 0x8DC0
+#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0
+#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3
+#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3
+#define GL_SAMPLER_1D_SHADOW 0x8B61
+#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61
+#define GL_SAMPLER_2D 0x8B5E
+#define GL_SAMPLER_2D_ARB 0x8B5E
+#define GL_SAMPLER_2D_ARRAY 0x8DC1
+#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1
+#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4
+#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4
+#define GL_SAMPLER_2D_MULTISAMPLE 0x9108
+#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B
+#define GL_SAMPLER_2D_RECT 0x8B63
+#define GL_SAMPLER_2D_RECT_ARB 0x8B63
+#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64
+#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64
+#define GL_SAMPLER_2D_SHADOW 0x8B62
+#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62
+#define GL_SAMPLER_3D 0x8B5F
+#define GL_SAMPLER_3D_ARB 0x8B5F
+#define GL_SAMPLER_BINDING 0x8919
+#define GL_SAMPLER_BUFFER 0x8DC2
+#define GL_SAMPLER_BUFFER_AMD 0x9001
+#define GL_SAMPLER_BUFFER_EXT 0x8DC2
+#define GL_SAMPLER_CUBE 0x8B60
+#define GL_SAMPLER_CUBE_ARB 0x8B60
+#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C
+#define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C
+#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D
+#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D
+#define GL_SAMPLER_CUBE_SHADOW 0x8DC5
+#define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5
+#define GL_SAMPLER_OBJECT_AMD 0x9155
+#define GL_SAMPLER_RENDERBUFFER_NV 0x8E56
+#define GL_SAMPLES 0x80A9
+#define GL_SAMPLES_3DFX 0x86B4
+#define GL_SAMPLES_ARB 0x80A9
+#define GL_SAMPLES_EXT 0x80A9
+#define GL_SAMPLES_PASSED 0x8914
+#define GL_SAMPLES_PASSED_ARB 0x8914
+#define GL_SAMPLES_SGIS 0x80A9
+#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
+#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E
+#define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E
+#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E
+#define GL_SAMPLE_ALPHA_TO_ONE 0x809F
+#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F
+#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F
+#define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F
+#define GL_SAMPLE_BUFFERS 0x80A8
+#define GL_SAMPLE_BUFFERS_3DFX 0x86B3
+#define GL_SAMPLE_BUFFERS_ARB 0x80A8
+#define GL_SAMPLE_BUFFERS_EXT 0x80A8
+#define GL_SAMPLE_BUFFERS_SGIS 0x80A8
+#define GL_SAMPLE_COVERAGE 0x80A0
+#define GL_SAMPLE_COVERAGE_ARB 0x80A0
+#define GL_SAMPLE_COVERAGE_INVERT 0x80AB
+#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB
+#define GL_SAMPLE_COVERAGE_VALUE 0x80AA
+#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA
+#define GL_SAMPLE_LOCATION_ARB 0x8E50
+#define GL_SAMPLE_LOCATION_NV 0x8E50
+#define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB 0x933F
+#define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV 0x933F
+#define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB 0x933E
+#define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV 0x933E
+#define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB 0x933D
+#define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV 0x933D
+#define GL_SAMPLE_MASK 0x8E51
+#define GL_SAMPLE_MASK_EXT 0x80A0
+#define GL_SAMPLE_MASK_INVERT_EXT 0x80AB
+#define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB
+#define GL_SAMPLE_MASK_NV 0x8E51
+#define GL_SAMPLE_MASK_SGIS 0x80A0
+#define GL_SAMPLE_MASK_VALUE 0x8E52
+#define GL_SAMPLE_MASK_VALUE_EXT 0x80AA
+#define GL_SAMPLE_MASK_VALUE_NV 0x8E52
+#define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA
+#define GL_SAMPLE_PATTERN_EXT 0x80AC
+#define GL_SAMPLE_PATTERN_SGIS 0x80AC
+#define GL_SAMPLE_POSITION 0x8E50
+#define GL_SAMPLE_POSITION_NV 0x8E50
+#define GL_SAMPLE_SHADING 0x8C36
+#define GL_SAMPLE_SHADING_ARB 0x8C36
+#define GL_SATURATE_BIT_ATI 0x00000040
+#define GL_SCALAR_EXT 0x87BE
+#define GL_SCALEBIAS_HINT_SGIX 0x8322
+#define GL_SCALED_RESOLVE_FASTEST_EXT 0x90BA
+#define GL_SCALED_RESOLVE_NICEST_EXT 0x90BB
+#define GL_SCALE_BY_FOUR_NV 0x853F
+#define GL_SCALE_BY_ONE_HALF_NV 0x8540
+#define GL_SCALE_BY_TWO_NV 0x853E
+#define GL_SCISSOR_BOX 0x0C10
+#define GL_SCISSOR_BOX_EXCLUSIVE_NV 0x9556
+#define GL_SCISSOR_COMMAND_NV 0x0011
+#define GL_SCISSOR_TEST 0x0C11
+#define GL_SCISSOR_TEST_EXCLUSIVE_NV 0x9555
+#define GL_SCREEN_COORDINATES_REND 0x8490
+#define GL_SCREEN_KHR 0x9295
+#define GL_SCREEN_NV 0x9295
+#define GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV 0x8F27
+#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C
+#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E
+#define GL_SECONDARY_COLOR_ARRAY_LENGTH_NV 0x8F31
+#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077
+#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087
+#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D
+#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A
+#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C
+#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B
+#define GL_SECONDARY_COLOR_NV 0x852D
+#define GL_SECONDARY_INTERPOLATOR_ATI 0x896D
+#define GL_SEMAPHORE_TYPE_BINARY_NV 0x95B4
+#define GL_SEMAPHORE_TYPE_NV 0x95B3
+#define GL_SEMAPHORE_TYPE_TIMELINE_NV 0x95B5
+#define GL_SEPARABLE_2D_EXT 0x8012
+#define GL_SEPARATE_ATTRIBS 0x8C8D
+#define GL_SEPARATE_ATTRIBS_EXT 0x8C8D
+#define GL_SEPARATE_ATTRIBS_NV 0x8C8D
+#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA
+#define GL_SET 0x150F
+#define GL_SET_AMD 0x874A
+#define GL_SHADER 0x82E1
+#define GL_SHADER_BINARY_FORMATS 0x8DF8
+#define GL_SHADER_BINARY_FORMAT_SPIR_V 0x9551
+#define GL_SHADER_BINARY_FORMAT_SPIR_V_ARB 0x9551
+#define GL_SHADER_COMPILER 0x8DFA
+#define GL_SHADER_CONSISTENT_NV 0x86DD
+#define GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV 0x00000010
+#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020
+#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT 0x00000020
+#define GL_SHADER_IMAGE_ATOMIC 0x82A6
+#define GL_SHADER_IMAGE_LOAD 0x82A4
+#define GL_SHADER_IMAGE_STORE 0x82A5
+#define GL_SHADER_INCLUDE_ARB 0x8DAE
+#define GL_SHADER_OBJECT_ARB 0x8B48
+#define GL_SHADER_OBJECT_EXT 0x8B48
+#define GL_SHADER_OPERATION_NV 0x86DF
+#define GL_SHADER_SOURCE_LENGTH 0x8B88
+#define GL_SHADER_STORAGE_BARRIER_BIT 0x00002000
+#define GL_SHADER_STORAGE_BLOCK 0x92E6
+#define GL_SHADER_STORAGE_BUFFER 0x90D2
+#define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3
+#define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF
+#define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5
+#define GL_SHADER_STORAGE_BUFFER_START 0x90D4
+#define GL_SHADER_TYPE 0x8B4F
+#define GL_SHADING_LANGUAGE_VERSION 0x8B8C
+#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C
+#define GL_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV 0x956F
+#define GL_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV 0x9566
+#define GL_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV 0x9567
+#define GL_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV 0x9568
+#define GL_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV 0x9569
+#define GL_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV 0x956A
+#define GL_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV 0x956B
+#define GL_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV 0x9565
+#define GL_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV 0x956C
+#define GL_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV 0x956D
+#define GL_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV 0x956E
+#define GL_SHADING_RATE_IMAGE_BINDING_NV 0x955B
+#define GL_SHADING_RATE_IMAGE_NV 0x9563
+#define GL_SHADING_RATE_IMAGE_PALETTE_COUNT_NV 0x95B2
+#define GL_SHADING_RATE_IMAGE_PALETTE_SIZE_NV 0x955E
+#define GL_SHADING_RATE_IMAGE_PER_PRIMITIVE_NV 0x95B1
+#define GL_SHADING_RATE_IMAGE_TEXEL_HEIGHT_NV 0x955D
+#define GL_SHADING_RATE_IMAGE_TEXEL_WIDTH_NV 0x955C
+#define GL_SHADING_RATE_NO_INVOCATIONS_NV 0x9564
+#define GL_SHADING_RATE_SAMPLE_ORDER_DEFAULT_NV 0x95AE
+#define GL_SHADING_RATE_SAMPLE_ORDER_PIXEL_MAJOR_NV 0x95AF
+#define GL_SHADING_RATE_SAMPLE_ORDER_SAMPLE_MAJOR_NV 0x95B0
+#define GL_SHADOW_AMBIENT_SGIX 0x80BF
+#define GL_SHADOW_ATTENUATION_EXT 0x834E
+#define GL_SHARED_EDGE_NV 0xC0
+#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB
+#define GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS 0x80B0
+#define GL_SHORT 0x1402
+#define GL_SIGNALED 0x9119
+#define GL_SIGNED_ALPHA8_NV 0x8706
+#define GL_SIGNED_ALPHA_NV 0x8705
+#define GL_SIGNED_HILO16_NV 0x86FA
+#define GL_SIGNED_HILO8_NV 0x885F
+#define GL_SIGNED_HILO_NV 0x86F9
+#define GL_SIGNED_IDENTITY_NV 0x853C
+#define GL_SIGNED_INTENSITY8_NV 0x8708
+#define GL_SIGNED_INTENSITY_NV 0x8707
+#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704
+#define GL_SIGNED_LUMINANCE8_NV 0x8702
+#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703
+#define GL_SIGNED_LUMINANCE_NV 0x8701
+#define GL_SIGNED_NEGATE_NV 0x853D
+#define GL_SIGNED_NORMALIZED 0x8F9C
+#define GL_SIGNED_RGB8_NV 0x86FF
+#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D
+#define GL_SIGNED_RGBA8_NV 0x86FC
+#define GL_SIGNED_RGBA_NV 0x86FB
+#define GL_SIGNED_RGB_NV 0x86FE
+#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C
+#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST 0x82AC
+#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE 0x82AE
+#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST 0x82AD
+#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE 0x82AF
+#define GL_SINGLE_COLOR_EXT 0x81F9
+#define GL_SKIP_COMPONENTS1_NV -6
+#define GL_SKIP_COMPONENTS2_NV -5
+#define GL_SKIP_COMPONENTS3_NV -4
+#define GL_SKIP_COMPONENTS4_NV -3
+#define GL_SKIP_DECODE_EXT 0x8A4A
+#define GL_SKIP_MISSING_GLYPH_NV 0x90A9
+#define GL_SLICE_ACCUM_SUN 0x85CC
+#define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45
+#define GL_SLUMINANCE8_EXT 0x8C47
+#define GL_SLUMINANCE_ALPHA_EXT 0x8C44
+#define GL_SLUMINANCE_EXT 0x8C46
+#define GL_SMALL_CCW_ARC_TO_NV 0x12
+#define GL_SMALL_CW_ARC_TO_NV 0x14
+#define GL_SMOOTH_CUBIC_CURVE_TO_NV 0x10
+#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23
+#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22
+#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13
+#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12
+#define GL_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0E
+#define GL_SM_COUNT_NV 0x933B
+#define GL_SOFTLIGHT_KHR 0x929C
+#define GL_SOFTLIGHT_NV 0x929C
+#define GL_SOURCE0_ALPHA_ARB 0x8588
+#define GL_SOURCE0_ALPHA_EXT 0x8588
+#define GL_SOURCE0_RGB_ARB 0x8580
+#define GL_SOURCE0_RGB_EXT 0x8580
+#define GL_SOURCE1_ALPHA 0x8589
+#define GL_SOURCE1_ALPHA_ARB 0x8589
+#define GL_SOURCE1_ALPHA_EXT 0x8589
+#define GL_SOURCE1_RGB_ARB 0x8581
+#define GL_SOURCE1_RGB_EXT 0x8581
+#define GL_SOURCE2_ALPHA_ARB 0x858A
+#define GL_SOURCE2_ALPHA_EXT 0x858A
+#define GL_SOURCE2_RGB_ARB 0x8582
+#define GL_SOURCE2_RGB_EXT 0x8582
+#define GL_SOURCE3_ALPHA_NV 0x858B
+#define GL_SOURCE3_RGB_NV 0x8583
+#define GL_SPARE0_NV 0x852E
+#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532
+#define GL_SPARE1_NV 0x852F
+#define GL_SPARSE_BUFFER_PAGE_SIZE_ARB 0x82F8
+#define GL_SPARSE_STORAGE_BIT_ARB 0x0400
+#define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB 0x91A9
+#define GL_SPIR_V_BINARY 0x9552
+#define GL_SPIR_V_BINARY_ARB 0x9552
+#define GL_SPIR_V_EXTENSIONS 0x9553
+#define GL_SPRITE_AXIAL_SGIX 0x814C
+#define GL_SPRITE_AXIS_SGIX 0x814A
+#define GL_SPRITE_EYE_ALIGNED_SGIX 0x814E
+#define GL_SPRITE_MODE_SGIX 0x8149
+#define GL_SPRITE_OBJECT_ALIGNED_SGIX 0x814D
+#define GL_SPRITE_SGIX 0x8148
+#define GL_SPRITE_TRANSLATION_SGIX 0x814B
+#define GL_SQUARE_NV 0x90A3
+#define GL_SR8_EXT 0x8FBD
+#define GL_SRC1_ALPHA 0x8589
+#define GL_SRC1_COLOR 0x88F9
+#define GL_SRC_ALPHA 0x0302
+#define GL_SRC_ALPHA_SATURATE 0x0308
+#define GL_SRC_ATOP_NV 0x928E
+#define GL_SRC_COLOR 0x0300
+#define GL_SRC_IN_NV 0x928A
+#define GL_SRC_NV 0x9286
+#define GL_SRC_OUT_NV 0x928C
+#define GL_SRC_OVER_NV 0x9288
+#define GL_SRG8_EXT 0x8FBE
+#define GL_SRGB 0x8C40
+#define GL_SRGB8 0x8C41
+#define GL_SRGB8_ALPHA8 0x8C43
+#define GL_SRGB8_ALPHA8_EXT 0x8C43
+#define GL_SRGB8_EXT 0x8C41
+#define GL_SRGB_ALPHA 0x8C42
+#define GL_SRGB_ALPHA_EXT 0x8C42
+#define GL_SRGB_DECODE_ARB 0x8299
+#define GL_SRGB_EXT 0x8C40
+#define GL_SRGB_READ 0x8297
+#define GL_SRGB_WRITE 0x8298
+#define GL_STACK_OVERFLOW 0x0503
+#define GL_STACK_UNDERFLOW 0x0504
+#define GL_STANDARD_FONT_FORMAT_NV 0x936C
+#define GL_STANDARD_FONT_NAME_NV 0x9072
+#define GL_STATIC_ATI 0x8760
+#define GL_STATIC_COPY 0x88E6
+#define GL_STATIC_COPY_ARB 0x88E6
+#define GL_STATIC_DRAW 0x88E4
+#define GL_STATIC_DRAW_ARB 0x88E4
+#define GL_STATIC_READ 0x88E5
+#define GL_STATIC_READ_ARB 0x88E5
+#define GL_STATIC_VERTEX_ARRAY_IBM 103061
+#define GL_STENCIL 0x1802
+#define GL_STENCIL_ATTACHMENT 0x8D20
+#define GL_STENCIL_ATTACHMENT_EXT 0x8D20
+#define GL_STENCIL_BACK_FAIL 0x8801
+#define GL_STENCIL_BACK_FAIL_ATI 0x8801
+#define GL_STENCIL_BACK_FUNC 0x8800
+#define GL_STENCIL_BACK_FUNC_ATI 0x8800
+#define GL_STENCIL_BACK_OP_VALUE_AMD 0x874D
+#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802
+#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802
+#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803
+#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803
+#define GL_STENCIL_BACK_REF 0x8CA3
+#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4
+#define GL_STENCIL_BACK_WRITEMASK 0x8CA5
+#define GL_STENCIL_BUFFER_BIT 0x00000400
+#define GL_STENCIL_CLEAR_TAG_VALUE_EXT 0x88F3
+#define GL_STENCIL_CLEAR_VALUE 0x0B91
+#define GL_STENCIL_COMPONENTS 0x8285
+#define GL_STENCIL_FAIL 0x0B94
+#define GL_STENCIL_FUNC 0x0B92
+#define GL_STENCIL_INDEX 0x1901
+#define GL_STENCIL_INDEX1 0x8D46
+#define GL_STENCIL_INDEX16 0x8D49
+#define GL_STENCIL_INDEX16_EXT 0x8D49
+#define GL_STENCIL_INDEX1_EXT 0x8D46
+#define GL_STENCIL_INDEX4 0x8D47
+#define GL_STENCIL_INDEX4_EXT 0x8D47
+#define GL_STENCIL_INDEX8 0x8D48
+#define GL_STENCIL_INDEX8_EXT 0x8D48
+#define GL_STENCIL_OP_VALUE_AMD 0x874C
+#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
+#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96
+#define GL_STENCIL_REF 0x0B97
+#define GL_STENCIL_REF_COMMAND_NV 0x000C
+#define GL_STENCIL_RENDERABLE 0x8288
+#define GL_STENCIL_SAMPLES_NV 0x932E
+#define GL_STENCIL_TAG_BITS_EXT 0x88F2
+#define GL_STENCIL_TEST 0x0B90
+#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910
+#define GL_STENCIL_VALUE_MASK 0x0B93
+#define GL_STENCIL_WRITEMASK 0x0B98
+#define GL_STEREO 0x0C33
+#define GL_STORAGE_CACHED_APPLE 0x85BE
+#define GL_STORAGE_CLIENT_APPLE 0x85B4
+#define GL_STORAGE_PRIVATE_APPLE 0x85BD
+#define GL_STORAGE_SHARED_APPLE 0x85BF
+#define GL_STREAM_COPY 0x88E2
+#define GL_STREAM_COPY_ARB 0x88E2
+#define GL_STREAM_DRAW 0x88E0
+#define GL_STREAM_DRAW_ARB 0x88E0
+#define GL_STREAM_RASTERIZATION_AMD 0x91A0
+#define GL_STREAM_READ 0x88E1
+#define GL_STREAM_READ_ARB 0x88E1
+#define GL_STRICT_DEPTHFUNC_HINT_PGI 0x1A216
+#define GL_STRICT_LIGHTING_HINT_PGI 0x1A217
+#define GL_STRICT_SCISSOR_HINT_PGI 0x1A218
+#define GL_SUBGROUP_FEATURE_ARITHMETIC_BIT_KHR 0x00000004
+#define GL_SUBGROUP_FEATURE_BALLOT_BIT_KHR 0x00000008
+#define GL_SUBGROUP_FEATURE_BASIC_BIT_KHR 0x00000001
+#define GL_SUBGROUP_FEATURE_CLUSTERED_BIT_KHR 0x00000040
+#define GL_SUBGROUP_FEATURE_PARTITIONED_BIT_NV 0x00000100
+#define GL_SUBGROUP_FEATURE_QUAD_BIT_KHR 0x00000080
+#define GL_SUBGROUP_FEATURE_SHUFFLE_BIT_KHR 0x00000010
+#define GL_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT_KHR 0x00000020
+#define GL_SUBGROUP_FEATURE_VOTE_BIT_KHR 0x00000002
+#define GL_SUBGROUP_QUAD_ALL_STAGES_KHR 0x9535
+#define GL_SUBGROUP_SIZE_KHR 0x9532
+#define GL_SUBGROUP_SUPPORTED_FEATURES_KHR 0x9534
+#define GL_SUBGROUP_SUPPORTED_STAGES_KHR 0x9533
+#define GL_SUBPIXEL_BITS 0x0D50
+#define GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV 0x9347
+#define GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV 0x9348
+#define GL_SUBSAMPLE_DISTANCE_AMD 0x883F
+#define GL_SUBTRACT_ARB 0x84E7
+#define GL_SUB_ATI 0x8965
+#define GL_SUCCESS_NV 0x902F
+#define GL_SUPERSAMPLE_SCALE_X_NV 0x9372
+#define GL_SUPERSAMPLE_SCALE_Y_NV 0x9373
+#define GL_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B7
+#define GL_SURFACE_MAPPED_NV 0x8700
+#define GL_SURFACE_REGISTERED_NV 0x86FD
+#define GL_SURFACE_STATE_NV 0x86EB
+#define GL_SWIZZLE_STQ_ATI 0x8977
+#define GL_SWIZZLE_STQ_DQ_ATI 0x8979
+#define GL_SWIZZLE_STRQ_ATI 0x897A
+#define GL_SWIZZLE_STRQ_DQ_ATI 0x897B
+#define GL_SWIZZLE_STR_ATI 0x8976
+#define GL_SWIZZLE_STR_DR_ATI 0x8978
+#define GL_SYNC_CL_EVENT_ARB 0x8240
+#define GL_SYNC_CL_EVENT_COMPLETE_ARB 0x8241
+#define GL_SYNC_CONDITION 0x9113
+#define GL_SYNC_FENCE 0x9116
+#define GL_SYNC_FLAGS 0x9115
+#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001
+#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117
+#define GL_SYNC_STATUS 0x9114
+#define GL_SYNC_X11_FENCE_EXT 0x90E1
+#define GL_SYSTEM_FONT_NAME_NV 0x9073
+#define GL_T2F_IUI_N3F_V2F_EXT 0x81B3
+#define GL_T2F_IUI_N3F_V3F_EXT 0x81B4
+#define GL_T2F_IUI_V2F_EXT 0x81B1
+#define GL_T2F_IUI_V3F_EXT 0x81B2
+#define GL_TABLE_TOO_LARGE_EXT 0x8031
+#define GL_TANGENT_ARRAY_EXT 0x8439
+#define GL_TANGENT_ARRAY_POINTER_EXT 0x8442
+#define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F
+#define GL_TANGENT_ARRAY_TYPE_EXT 0x843E
+#define GL_TASK_SHADER_BIT_NV 0x00000080
+#define GL_TASK_SHADER_NV 0x955A
+#define GL_TASK_SUBROUTINE_NV 0x957D
+#define GL_TASK_SUBROUTINE_UNIFORM_NV 0x957F
+#define GL_TASK_WORK_GROUP_SIZE_NV 0x953F
+#define GL_TERMINATE_SEQUENCE_COMMAND_NV 0x0000
+#define GL_TESSELLATION_FACTOR_AMD 0x9005
+#define GL_TESSELLATION_MODE_AMD 0x9004
+#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75
+#define GL_TESS_CONTROL_PROGRAM_NV 0x891E
+#define GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV 0x8C74
+#define GL_TESS_CONTROL_SHADER 0x8E88
+#define GL_TESS_CONTROL_SHADER_BIT 0x00000008
+#define GL_TESS_CONTROL_SHADER_PATCHES 0x82F1
+#define GL_TESS_CONTROL_SHADER_PATCHES_ARB 0x82F1
+#define GL_TESS_CONTROL_SUBROUTINE 0x92E9
+#define GL_TESS_CONTROL_SUBROUTINE_UNIFORM 0x92EF
+#define GL_TESS_CONTROL_TEXTURE 0x829C
+#define GL_TESS_EVALUATION_PROGRAM_NV 0x891F
+#define GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV 0x8C75
+#define GL_TESS_EVALUATION_SHADER 0x8E87
+#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010
+#define GL_TESS_EVALUATION_SHADER_INVOCATIONS 0x82F2
+#define GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB 0x82F2
+#define GL_TESS_EVALUATION_SUBROUTINE 0x92EA
+#define GL_TESS_EVALUATION_SUBROUTINE_UNIFORM 0x92F0
+#define GL_TESS_EVALUATION_TEXTURE 0x829D
+#define GL_TESS_GEN_MODE 0x8E76
+#define GL_TESS_GEN_POINT_MODE 0x8E79
+#define GL_TESS_GEN_SPACING 0x8E77
+#define GL_TESS_GEN_VERTEX_ORDER 0x8E78
+#define GL_TEXCOORD1_BIT_PGI 0x10000000
+#define GL_TEXCOORD2_BIT_PGI 0x20000000
+#define GL_TEXCOORD3_BIT_PGI 0x40000000
+#define GL_TEXCOORD4_BIT_PGI 0x80000000
+#define GL_TEXTURE 0x1702
+#define GL_TEXTURE0 0x84C0
+#define GL_TEXTURE0_ARB 0x84C0
+#define GL_TEXTURE1 0x84C1
+#define GL_TEXTURE10 0x84CA
+#define GL_TEXTURE10_ARB 0x84CA
+#define GL_TEXTURE11 0x84CB
+#define GL_TEXTURE11_ARB 0x84CB
+#define GL_TEXTURE12 0x84CC
+#define GL_TEXTURE12_ARB 0x84CC
+#define GL_TEXTURE13 0x84CD
+#define GL_TEXTURE13_ARB 0x84CD
+#define GL_TEXTURE14 0x84CE
+#define GL_TEXTURE14_ARB 0x84CE
+#define GL_TEXTURE15 0x84CF
+#define GL_TEXTURE15_ARB 0x84CF
+#define GL_TEXTURE16 0x84D0
+#define GL_TEXTURE16_ARB 0x84D0
+#define GL_TEXTURE17 0x84D1
+#define GL_TEXTURE17_ARB 0x84D1
+#define GL_TEXTURE18 0x84D2
+#define GL_TEXTURE18_ARB 0x84D2
+#define GL_TEXTURE19 0x84D3
+#define GL_TEXTURE19_ARB 0x84D3
+#define GL_TEXTURE1_ARB 0x84C1
+#define GL_TEXTURE2 0x84C2
+#define GL_TEXTURE20 0x84D4
+#define GL_TEXTURE20_ARB 0x84D4
+#define GL_TEXTURE21 0x84D5
+#define GL_TEXTURE21_ARB 0x84D5
+#define GL_TEXTURE22 0x84D6
+#define GL_TEXTURE22_ARB 0x84D6
+#define GL_TEXTURE23 0x84D7
+#define GL_TEXTURE23_ARB 0x84D7
+#define GL_TEXTURE24 0x84D8
+#define GL_TEXTURE24_ARB 0x84D8
+#define GL_TEXTURE25 0x84D9
+#define GL_TEXTURE25_ARB 0x84D9
+#define GL_TEXTURE26 0x84DA
+#define GL_TEXTURE26_ARB 0x84DA
+#define GL_TEXTURE27 0x84DB
+#define GL_TEXTURE27_ARB 0x84DB
+#define GL_TEXTURE28 0x84DC
+#define GL_TEXTURE28_ARB 0x84DC
+#define GL_TEXTURE29 0x84DD
+#define GL_TEXTURE29_ARB 0x84DD
+#define GL_TEXTURE2_ARB 0x84C2
+#define GL_TEXTURE3 0x84C3
+#define GL_TEXTURE30 0x84DE
+#define GL_TEXTURE30_ARB 0x84DE
+#define GL_TEXTURE31 0x84DF
+#define GL_TEXTURE31_ARB 0x84DF
+#define GL_TEXTURE3_ARB 0x84C3
+#define GL_TEXTURE4 0x84C4
+#define GL_TEXTURE4_ARB 0x84C4
+#define GL_TEXTURE5 0x84C5
+#define GL_TEXTURE5_ARB 0x84C5
+#define GL_TEXTURE6 0x84C6
+#define GL_TEXTURE6_ARB 0x84C6
+#define GL_TEXTURE7 0x84C7
+#define GL_TEXTURE7_ARB 0x84C7
+#define GL_TEXTURE8 0x84C8
+#define GL_TEXTURE8_ARB 0x84C8
+#define GL_TEXTURE9 0x84C9
+#define GL_TEXTURE9_ARB 0x84C9
+#define GL_TEXTURE_1D 0x0DE0
+#define GL_TEXTURE_1D_ARRAY 0x8C18
+#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18
+#define GL_TEXTURE_1D_BINDING_EXT 0x8068
+#define GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D
+#define GL_TEXTURE_1D_STACK_MESAX 0x8759
+#define GL_TEXTURE_2D 0x0DE1
+#define GL_TEXTURE_2D_ARRAY 0x8C1A
+#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A
+#define GL_TEXTURE_2D_BINDING_EXT 0x8069
+#define GL_TEXTURE_2D_MULTISAMPLE 0x9100
+#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102
+#define GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E
+#define GL_TEXTURE_2D_STACK_MESAX 0x875A
+#define GL_TEXTURE_3D 0x806F
+#define GL_TEXTURE_3D_BINDING_EXT 0x806A
+#define GL_TEXTURE_3D_EXT 0x806F
+#define GL_TEXTURE_4DSIZE_SGIS 0x8136
+#define GL_TEXTURE_4D_BINDING_SGIS 0x814F
+#define GL_TEXTURE_4D_SGIS 0x8134
+#define GL_TEXTURE_ALPHA_SIZE 0x805F
+#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F
+#define GL_TEXTURE_ALPHA_TYPE 0x8C13
+#define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13
+#define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F
+#define GL_TEXTURE_BASE_LEVEL 0x813C
+#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C
+#define GL_TEXTURE_BINDING_1D 0x8068
+#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C
+#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C
+#define GL_TEXTURE_BINDING_2D 0x8069
+#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D
+#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D
+#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104
+#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105
+#define GL_TEXTURE_BINDING_3D 0x806A
+#define GL_TEXTURE_BINDING_BUFFER 0x8C2C
+#define GL_TEXTURE_BINDING_BUFFER_ARB 0x8C2C
+#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C
+#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
+#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514
+#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A
+#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB 0x900A
+#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514
+#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6
+#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6
+#define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6
+#define GL_TEXTURE_BINDING_RENDERBUFFER_NV 0x8E53
+#define GL_TEXTURE_BLUE_SIZE 0x805E
+#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E
+#define GL_TEXTURE_BLUE_TYPE 0x8C12
+#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12
+#define GL_TEXTURE_BORDER_COLOR 0x1004
+#define GL_TEXTURE_BORDER_VALUES_NV 0x871A
+#define GL_TEXTURE_BUFFER 0x8C2A
+#define GL_TEXTURE_BUFFER_ARB 0x8C2A
+#define GL_TEXTURE_BUFFER_BINDING 0x8C2A
+#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D
+#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB 0x8C2D
+#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D
+#define GL_TEXTURE_BUFFER_EXT 0x8C2A
+#define GL_TEXTURE_BUFFER_FORMAT_ARB 0x8C2E
+#define GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E
+#define GL_TEXTURE_BUFFER_OFFSET 0x919D
+#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 0x919F
+#define GL_TEXTURE_BUFFER_SIZE 0x919E
+#define GL_TEXTURE_CLIPMAP_CENTER_SGIX 0x8171
+#define GL_TEXTURE_CLIPMAP_DEPTH_SGIX 0x8176
+#define GL_TEXTURE_CLIPMAP_FRAME_SGIX 0x8172
+#define GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX 0x8175
+#define GL_TEXTURE_CLIPMAP_OFFSET_SGIX 0x8173
+#define GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8174
+#define GL_TEXTURE_COLOR_SAMPLES_NV 0x9046
+#define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC
+#define GL_TEXTURE_COLOR_WRITEMASK_SGIS 0x81EF
+#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF
+#define GL_TEXTURE_COMPARE_FUNC 0x884D
+#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D
+#define GL_TEXTURE_COMPARE_MODE 0x884C
+#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C
+#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B
+#define GL_TEXTURE_COMPARE_SGIX 0x819A
+#define GL_TEXTURE_COMPRESSED 0x86A1
+#define GL_TEXTURE_COMPRESSED_ARB 0x86A1
+#define GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT 0x82B2
+#define GL_TEXTURE_COMPRESSED_BLOCK_SIZE 0x82B3
+#define GL_TEXTURE_COMPRESSED_BLOCK_WIDTH 0x82B1
+#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0
+#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0
+#define GL_TEXTURE_COMPRESSION_HINT 0x84EF
+#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF
+#define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6
+#define GL_TEXTURE_COORD_ARRAY_ADDRESS_NV 0x8F25
+#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A
+#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B
+#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078
+#define GL_TEXTURE_COORD_ARRAY_LENGTH_NV 0x8F2F
+#define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074
+#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084
+#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8
+#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092
+#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088
+#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A
+#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089
+#define GL_TEXTURE_COORD_NV 0x8C79
+#define GL_TEXTURE_COVERAGE_SAMPLES_NV 0x9045
+#define GL_TEXTURE_CUBE_MAP 0x8513
+#define GL_TEXTURE_CUBE_MAP_ARB 0x8513
+#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009
+#define GL_TEXTURE_CUBE_MAP_ARRAY_ARB 0x9009
+#define GL_TEXTURE_CUBE_MAP_EXT 0x8513
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519
+#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F
+#define GL_TEXTURE_DEFORMATION_BIT_SGIX 0x00000001
+#define GL_TEXTURE_DEFORMATION_SGIX 0x8195
+#define GL_TEXTURE_DEPTH 0x8071
+#define GL_TEXTURE_DEPTH_EXT 0x8071
+#define GL_TEXTURE_DEPTH_SIZE 0x884A
+#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A
+#define GL_TEXTURE_DEPTH_TYPE 0x8C16
+#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16
+#define GL_TEXTURE_DS_SIZE_NV 0x871D
+#define GL_TEXTURE_DT_SIZE_NV 0x871E
+#define GL_TEXTURE_ENV_BIAS_SGIX 0x80BE
+#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008
+#define GL_TEXTURE_FETCH_BARRIER_BIT_EXT 0x00000008
+#define GL_TEXTURE_FILTER4_SIZE_SGIS 0x8147
+#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500
+#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107
+#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C
+#define GL_TEXTURE_FREE_MEMORY_ATI 0x87FC
+#define GL_TEXTURE_GATHER 0x82A2
+#define GL_TEXTURE_GATHER_SHADOW 0x82A3
+#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D
+#define GL_TEXTURE_GREEN_SIZE 0x805D
+#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D
+#define GL_TEXTURE_GREEN_TYPE 0x8C11
+#define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11
+#define GL_TEXTURE_HEIGHT 0x1001
+#define GL_TEXTURE_HI_SIZE_NV 0x871B
+#define GL_TEXTURE_IMAGE_FORMAT 0x828F
+#define GL_TEXTURE_IMAGE_TYPE 0x8290
+#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F
+#define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F
+#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF
+#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED
+#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061
+#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15
+#define GL_TEXTURE_INTERNAL_FORMAT 0x1003
+#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C
+#define GL_TEXTURE_LIGHTING_MODE_HP 0x8167
+#define GL_TEXTURE_LIGHT_EXT 0x8350
+#define GL_TEXTURE_LOD_BIAS 0x8501
+#define GL_TEXTURE_LOD_BIAS_EXT 0x8501
+#define GL_TEXTURE_LOD_BIAS_R_SGIX 0x8190
+#define GL_TEXTURE_LOD_BIAS_S_SGIX 0x818E
+#define GL_TEXTURE_LOD_BIAS_T_SGIX 0x818F
+#define GL_TEXTURE_LO_SIZE_NV 0x871C
+#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060
+#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14
+#define GL_TEXTURE_MAG_FILTER 0x2800
+#define GL_TEXTURE_MAG_SIZE_NV 0x871F
+#define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351
+#define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352
+#define GL_TEXTURE_MAX_ANISOTROPY 0x84FE
+#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
+#define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B
+#define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369
+#define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A
+#define GL_TEXTURE_MAX_LEVEL 0x813D
+#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D
+#define GL_TEXTURE_MAX_LOD 0x813B
+#define GL_TEXTURE_MAX_LOD_SGIS 0x813B
+#define GL_TEXTURE_MEMORY_LAYOUT_INTEL 0x83FF
+#define GL_TEXTURE_MIN_FILTER 0x2801
+#define GL_TEXTURE_MIN_LOD 0x813A
+#define GL_TEXTURE_MIN_LOD_SGIS 0x813A
+#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E
+#define GL_TEXTURE_NORMAL_EXT 0x85AF
+#define GL_TEXTURE_POST_SPECULAR_HP 0x8168
+#define GL_TEXTURE_PRE_SPECULAR_HP 0x8169
+#define GL_TEXTURE_PRIORITY_EXT 0x8066
+#define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7
+#define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8
+#define GL_TEXTURE_RECTANGLE 0x84F5
+#define GL_TEXTURE_RECTANGLE_ARB 0x84F5
+#define GL_TEXTURE_RECTANGLE_NV 0x84F5
+#define GL_TEXTURE_REDUCTION_MODE_ARB 0x9366
+#define GL_TEXTURE_REDUCTION_MODE_EXT 0x9366
+#define GL_TEXTURE_RED_SIZE 0x805C
+#define GL_TEXTURE_RED_SIZE_EXT 0x805C
+#define GL_TEXTURE_RED_TYPE 0x8C10
+#define GL_TEXTURE_RED_TYPE_ARB 0x8C10
+#define GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV 0x8E54
+#define GL_TEXTURE_RENDERBUFFER_NV 0x8E55
+#define GL_TEXTURE_RESIDENT_EXT 0x8067
+#define GL_TEXTURE_SAMPLES 0x9106
+#define GL_TEXTURE_SHADER_NV 0x86DE
+#define GL_TEXTURE_SHADOW 0x82A1
+#define GL_TEXTURE_SHARED_SIZE 0x8C3F
+#define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F
+#define GL_TEXTURE_SPARSE_ARB 0x91A6
+#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48
+#define GL_TEXTURE_STENCIL_SIZE 0x88F1
+#define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1
+#define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC
+#define GL_TEXTURE_STORAGE_SPARSE_BIT_AMD 0x00000001
+#define GL_TEXTURE_SWIZZLE_A 0x8E45
+#define GL_TEXTURE_SWIZZLE_A_EXT 0x8E45
+#define GL_TEXTURE_SWIZZLE_B 0x8E44
+#define GL_TEXTURE_SWIZZLE_B_EXT 0x8E44
+#define GL_TEXTURE_SWIZZLE_G 0x8E43
+#define GL_TEXTURE_SWIZZLE_G_EXT 0x8E43
+#define GL_TEXTURE_SWIZZLE_R 0x8E42
+#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46
+#define GL_TEXTURE_SWIZZLE_RGBA_EXT 0x8E46
+#define GL_TEXTURE_SWIZZLE_R_EXT 0x8E42
+#define GL_TEXTURE_TARGET 0x1006
+#define GL_TEXTURE_TILING_EXT 0x9580
+#define GL_TEXTURE_TOO_LARGE_EXT 0x8065
+#define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F
+#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100
+#define GL_TEXTURE_UPDATE_BARRIER_BIT_EXT 0x00000100
+#define GL_TEXTURE_VIEW 0x82B5
+#define GL_TEXTURE_VIEW_MIN_LAYER 0x82DD
+#define GL_TEXTURE_VIEW_MIN_LEVEL 0x82DB
+#define GL_TEXTURE_VIEW_NUM_LAYERS 0x82DE
+#define GL_TEXTURE_VIEW_NUM_LEVELS 0x82DC
+#define GL_TEXTURE_WIDTH 0x1000
+#define GL_TEXTURE_WRAP_Q_SGIS 0x8137
+#define GL_TEXTURE_WRAP_R 0x8072
+#define GL_TEXTURE_WRAP_R_EXT 0x8072
+#define GL_TEXTURE_WRAP_S 0x2802
+#define GL_TEXTURE_WRAP_T 0x2803
+#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200
+#define GL_TILE_RASTER_ORDER_FIXED_MESA 0x8BB8
+#define GL_TILE_RASTER_ORDER_INCREASING_X_MESA 0x8BB9
+#define GL_TILE_RASTER_ORDER_INCREASING_Y_MESA 0x8BBA
+#define GL_TILING_TYPES_EXT 0x9583
+#define GL_TIMELINE_SEMAPHORE_VALUE_NV 0x9595
+#define GL_TIMEOUT_EXPIRED 0x911B
+#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFF
+#define GL_TIMESTAMP 0x8E28
+#define GL_TIME_ELAPSED 0x88BF
+#define GL_TIME_ELAPSED_EXT 0x88BF
+#define GL_TOP_LEVEL_ARRAY_SIZE 0x930C
+#define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D
+#define GL_TRACK_MATRIX_NV 0x8648
+#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649
+#define GL_TRANSFORM_FEEDBACK 0x8E22
+#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24
+#define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E
+#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800
+#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT 0x00000800
+#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25
+#define GL_TRANSFORM_FEEDBACK_BINDING_NV 0x8E25
+#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E
+#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24
+#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV 0x8E24
+#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F
+#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F
+#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F
+#define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E
+#define GL_TRANSFORM_FEEDBACK_BUFFER_INDEX 0x934B
+#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F
+#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F
+#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F
+#define GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E
+#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23
+#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV 0x8E23
+#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85
+#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85
+#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85
+#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84
+#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84
+#define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84
+#define GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE 0x934C
+#define GL_TRANSFORM_FEEDBACK_NV 0x8E22
+#define GL_TRANSFORM_FEEDBACK_OVERFLOW 0x82EC
+#define GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB 0x82EC
+#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23
+#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88
+#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88
+#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88
+#define GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86
+#define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW 0x82ED
+#define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB 0x82ED
+#define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4
+#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83
+#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83
+#define GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83
+#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76
+#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76
+#define GL_TRANSFORM_HINT_APPLE 0x85B1
+#define GL_TRANSLATE_2D_NV 0x9090
+#define GL_TRANSLATE_3D_NV 0x9091
+#define GL_TRANSLATE_X_NV 0x908E
+#define GL_TRANSLATE_Y_NV 0x908F
+#define GL_TRANSPOSE_AFFINE_2D_NV 0x9096
+#define GL_TRANSPOSE_AFFINE_3D_NV 0x9098
+#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6
+#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7
+#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3
+#define GL_TRANSPOSE_NV 0x862C
+#define GL_TRANSPOSE_PROGRAM_MATRIX_EXT 0x8E2E
+#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4
+#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5
+#define GL_TRIANGLES 0x0004
+#define GL_TRIANGLES_ADJACENCY 0x000C
+#define GL_TRIANGLES_ADJACENCY_ARB 0x000C
+#define GL_TRIANGLES_ADJACENCY_EXT 0x000C
+#define GL_TRIANGLE_FAN 0x0006
+#define GL_TRIANGLE_LIST_SUN 0x81D7
+#define GL_TRIANGLE_MESH_SUN 0x8615
+#define GL_TRIANGLE_STRIP 0x0005
+#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D
+#define GL_TRIANGLE_STRIP_ADJACENCY_ARB 0x000D
+#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0x000D
+#define GL_TRIANGULAR_NV 0x90A5
+#define GL_TRUE 1
+#define GL_TYPE 0x92FA
+#define GL_UNCORRELATED_NV 0x9282
+#define GL_UNDEFINED_APPLE 0x8A1C
+#define GL_UNDEFINED_VERTEX 0x8260
+#define GL_UNIFORM 0x92E1
+#define GL_UNIFORM_ADDRESS_COMMAND_NV 0x000A
+#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C
+#define GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX 0x92DA
+#define GL_UNIFORM_BARRIER_BIT 0x00000004
+#define GL_UNIFORM_BARRIER_BIT_EXT 0x00000004
+#define GL_UNIFORM_BLOCK 0x92E2
+#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42
+#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43
+#define GL_UNIFORM_BLOCK_BINDING 0x8A3F
+#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40
+#define GL_UNIFORM_BLOCK_INDEX 0x8A3A
+#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER 0x90EC
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_MESH_SHADER_NV 0x959C
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_TASK_SHADER_NV 0x959D
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44
+#define GL_UNIFORM_BUFFER 0x8A11
+#define GL_UNIFORM_BUFFER_ADDRESS_NV 0x936F
+#define GL_UNIFORM_BUFFER_BINDING 0x8A28
+#define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF
+#define GL_UNIFORM_BUFFER_EXT 0x8DEE
+#define GL_UNIFORM_BUFFER_LENGTH_NV 0x9370
+#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34
+#define GL_UNIFORM_BUFFER_SIZE 0x8A2A
+#define GL_UNIFORM_BUFFER_START 0x8A29
+#define GL_UNIFORM_BUFFER_UNIFIED_NV 0x936E
+#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E
+#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D
+#define GL_UNIFORM_NAME_LENGTH 0x8A39
+#define GL_UNIFORM_OFFSET 0x8A3B
+#define GL_UNIFORM_SIZE 0x8A38
+#define GL_UNIFORM_TYPE 0x8A37
+#define GL_UNKNOWN_CONTEXT_RESET 0x8255
+#define GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255
+#define GL_UNPACK_ALIGNMENT 0x0CF5
+#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2
+#define GL_UNPACK_CMYK_HINT_EXT 0x800F
+#define GL_UNPACK_COMPRESSED_BLOCK_DEPTH 0x9129
+#define GL_UNPACK_COMPRESSED_BLOCK_HEIGHT 0x9128
+#define GL_UNPACK_COMPRESSED_BLOCK_SIZE 0x912A
+#define GL_UNPACK_COMPRESSED_BLOCK_WIDTH 0x9127
+#define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5
+#define GL_UNPACK_IMAGE_DEPTH_SGIS 0x8133
+#define GL_UNPACK_IMAGE_HEIGHT 0x806E
+#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E
+#define GL_UNPACK_LSB_FIRST 0x0CF1
+#define GL_UNPACK_RESAMPLE_OML 0x8985
+#define GL_UNPACK_RESAMPLE_SGIX 0x842F
+#define GL_UNPACK_ROW_BYTES_APPLE 0x8A16
+#define GL_UNPACK_ROW_LENGTH 0x0CF2
+#define GL_UNPACK_SKIP_IMAGES 0x806D
+#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D
+#define GL_UNPACK_SKIP_PIXELS 0x0CF4
+#define GL_UNPACK_SKIP_ROWS 0x0CF3
+#define GL_UNPACK_SKIP_VOLUMES_SGIS 0x8132
+#define GL_UNPACK_SUBSAMPLE_RATE_SGIX 0x85A1
+#define GL_UNPACK_SWAP_BYTES 0x0CF0
+#define GL_UNSIGNALED 0x9118
+#define GL_UNSIGNED_BYTE 0x1401
+#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362
+#define GL_UNSIGNED_BYTE_3_3_2 0x8032
+#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032
+#define GL_UNSIGNED_IDENTITY_NV 0x8536
+#define GL_UNSIGNED_INT 0x1405
+#define GL_UNSIGNED_INT16_NV 0x8FF0
+#define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1
+#define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2
+#define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3
+#define GL_UNSIGNED_INT64_AMD 0x8BC2
+#define GL_UNSIGNED_INT64_ARB 0x140F
+#define GL_UNSIGNED_INT64_NV 0x140F
+#define GL_UNSIGNED_INT64_VEC2_ARB 0x8FF5
+#define GL_UNSIGNED_INT64_VEC2_NV 0x8FF5
+#define GL_UNSIGNED_INT64_VEC3_ARB 0x8FF6
+#define GL_UNSIGNED_INT64_VEC3_NV 0x8FF6
+#define GL_UNSIGNED_INT64_VEC4_ARB 0x8FF7
+#define GL_UNSIGNED_INT64_VEC4_NV 0x8FF7
+#define GL_UNSIGNED_INT8_NV 0x8FEC
+#define GL_UNSIGNED_INT8_VEC2_NV 0x8FED
+#define GL_UNSIGNED_INT8_VEC3_NV 0x8FEE
+#define GL_UNSIGNED_INT8_VEC4_NV 0x8FEF
+#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B
+#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B
+#define GL_UNSIGNED_INT_10_10_10_2 0x8036
+#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036
+#define GL_UNSIGNED_INT_24_8 0x84FA
+#define GL_UNSIGNED_INT_24_8_EXT 0x84FA
+#define GL_UNSIGNED_INT_24_8_NV 0x84FA
+#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368
+#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E
+#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E
+#define GL_UNSIGNED_INT_8_8_8_8 0x8035
+#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035
+#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367
+#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB
+#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB
+#define GL_UNSIGNED_INT_IMAGE_1D 0x9062
+#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY 0x9068
+#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT 0x9068
+#define GL_UNSIGNED_INT_IMAGE_1D_EXT 0x9062
+#define GL_UNSIGNED_INT_IMAGE_2D 0x9063
+#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069
+#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT 0x9069
+#define GL_UNSIGNED_INT_IMAGE_2D_EXT 0x9063
+#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE 0x906B
+#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x906C
+#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x906C
+#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT 0x906B
+#define GL_UNSIGNED_INT_IMAGE_2D_RECT 0x9065
+#define GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT 0x9065
+#define GL_UNSIGNED_INT_IMAGE_3D 0x9064
+#define GL_UNSIGNED_INT_IMAGE_3D_EXT 0x9064
+#define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067
+#define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067
+#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066
+#define GL_UNSIGNED_INT_IMAGE_CUBE_EXT 0x9066
+#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A
+#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A
+#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA
+#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1
+#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6
+#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6
+#define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1
+#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2
+#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7
+#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7
+#define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2
+#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A
+#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D
+#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5
+#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5
+#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3
+#define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3
+#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8
+#define GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD 0x9003
+#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8
+#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4
+#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4
+#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F
+#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F
+#define GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV 0x8E58
+#define GL_UNSIGNED_INT_VEC2 0x8DC6
+#define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6
+#define GL_UNSIGNED_INT_VEC3 0x8DC7
+#define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7
+#define GL_UNSIGNED_INT_VEC4 0x8DC8
+#define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8
+#define GL_UNSIGNED_INVERT_NV 0x8537
+#define GL_UNSIGNED_NORMALIZED 0x8C17
+#define GL_UNSIGNED_NORMALIZED_ARB 0x8C17
+#define GL_UNSIGNED_SHORT 0x1403
+#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366
+#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
+#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033
+#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365
+#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
+#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034
+#define GL_UNSIGNED_SHORT_5_6_5 0x8363
+#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364
+#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA
+#define GL_UNSIGNED_SHORT_8_8_MESA 0x85BA
+#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB
+#define GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB
+#define GL_UPLOAD_GPU_MASK_NVX 0x954A
+#define GL_UPPER_LEFT 0x8CA2
+#define GL_USE_MISSING_GLYPH_NV 0x90AA
+#define GL_UTF16_NV 0x909B
+#define GL_UTF8_NV 0x909A
+#define GL_UUID_SIZE_EXT 16
+#define GL_VALIDATE_STATUS 0x8B83
+#define GL_VARIABLE_A_NV 0x8523
+#define GL_VARIABLE_B_NV 0x8524
+#define GL_VARIABLE_C_NV 0x8525
+#define GL_VARIABLE_D_NV 0x8526
+#define GL_VARIABLE_E_NV 0x8527
+#define GL_VARIABLE_F_NV 0x8528
+#define GL_VARIABLE_G_NV 0x8529
+#define GL_VARIANT_ARRAY_EXT 0x87E8
+#define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9
+#define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6
+#define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7
+#define GL_VARIANT_DATATYPE_EXT 0x87E5
+#define GL_VARIANT_EXT 0x87C1
+#define GL_VARIANT_VALUE_EXT 0x87E4
+#define GL_VBO_FREE_MEMORY_ATI 0x87FB
+#define GL_VECTOR_EXT 0x87BF
+#define GL_VENDOR 0x1F00
+#define GL_VERSION 0x1F02
+#define GL_VERTEX23_BIT_PGI 0x00000004
+#define GL_VERTEX4_BIT_PGI 0x00000008
+#define GL_VERTEX_ARRAY 0x8074
+#define GL_VERTEX_ARRAY_ADDRESS_NV 0x8F21
+#define GL_VERTEX_ARRAY_BINDING 0x85B5
+#define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5
+#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896
+#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D
+#define GL_VERTEX_ARRAY_EXT 0x8074
+#define GL_VERTEX_ARRAY_LENGTH_NV 0x8F2B
+#define GL_VERTEX_ARRAY_LIST_IBM 103070
+#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080
+#define GL_VERTEX_ARRAY_OBJECT_AMD 0x9154
+#define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154
+#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5
+#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E
+#define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D
+#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E
+#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E
+#define GL_VERTEX_ARRAY_RANGE_NV 0x851D
+#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521
+#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521
+#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F
+#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533
+#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A
+#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F
+#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C
+#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B
+#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650
+#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A
+#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B
+#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C
+#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D
+#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E
+#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F
+#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651
+#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652
+#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653
+#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654
+#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655
+#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656
+#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657
+#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658
+#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659
+#define GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV 0x8F20
+#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001
+#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT 0x00000001
+#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
+#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F
+#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE
+#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE
+#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622
+#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622
+#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD
+#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT 0x88FD
+#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD
+#define GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV 0x8F2A
+#define GL_VERTEX_ATTRIB_ARRAY_LONG 0x874E
+#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
+#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A
+#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645
+#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645
+#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623
+#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623
+#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624
+#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624
+#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625
+#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625
+#define GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV 0x8F1E
+#define GL_VERTEX_ATTRIB_BINDING 0x82D4
+#define GL_VERTEX_ATTRIB_MAP1_APPLE 0x8A00
+#define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE 0x8A03
+#define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8A05
+#define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE 0x8A04
+#define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE 0x8A02
+#define GL_VERTEX_ATTRIB_MAP2_APPLE 0x8A01
+#define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE 0x8A07
+#define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8A09
+#define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE 0x8A08
+#define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE 0x8A06
+#define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5
+#define GL_VERTEX_BINDING_BUFFER 0x8F4F
+#define GL_VERTEX_BINDING_DIVISOR 0x82D6
+#define GL_VERTEX_BINDING_OFFSET 0x82D7
+#define GL_VERTEX_BINDING_STRIDE 0x82D8
+#define GL_VERTEX_BLEND_ARB 0x86A7
+#define GL_VERTEX_CONSISTENT_HINT_PGI 0x1A22B
+#define GL_VERTEX_DATA_HINT_PGI 0x1A22A
+#define GL_VERTEX_ELEMENT_SWIZZLE_AMD 0x91A4
+#define GL_VERTEX_ID_NV 0x8C7B
+#define GL_VERTEX_ID_SWIZZLE_AMD 0x91A5
+#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF
+#define GL_VERTEX_PRECLIP_SGIX 0x83EE
+#define GL_VERTEX_PROGRAM_ARB 0x8620
+#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A
+#define GL_VERTEX_PROGRAM_NV 0x8620
+#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2
+#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642
+#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642
+#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642
+#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643
+#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643
+#define GL_VERTEX_SHADER 0x8B31
+#define GL_VERTEX_SHADER_ARB 0x8B31
+#define GL_VERTEX_SHADER_BINDING_EXT 0x8781
+#define GL_VERTEX_SHADER_BIT 0x00000001
+#define GL_VERTEX_SHADER_EXT 0x8780
+#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF
+#define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1
+#define GL_VERTEX_SHADER_INVOCATIONS 0x82F0
+#define GL_VERTEX_SHADER_INVOCATIONS_ARB 0x82F0
+#define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3
+#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2
+#define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4
+#define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0
+#define GL_VERTEX_SOURCE_ATI 0x8774
+#define GL_VERTEX_STATE_PROGRAM_NV 0x8621
+#define GL_VERTEX_STREAM0_ATI 0x876C
+#define GL_VERTEX_STREAM1_ATI 0x876D
+#define GL_VERTEX_STREAM2_ATI 0x876E
+#define GL_VERTEX_STREAM3_ATI 0x876F
+#define GL_VERTEX_STREAM4_ATI 0x8770
+#define GL_VERTEX_STREAM5_ATI 0x8771
+#define GL_VERTEX_STREAM6_ATI 0x8772
+#define GL_VERTEX_STREAM7_ATI 0x8773
+#define GL_VERTEX_SUBROUTINE 0x92E8
+#define GL_VERTEX_SUBROUTINE_UNIFORM 0x92EE
+#define GL_VERTEX_TEXTURE 0x829B
+#define GL_VERTEX_WEIGHTING_EXT 0x8509
+#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C
+#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510
+#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D
+#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F
+#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E
+#define GL_VERTICAL_LINE_TO_NV 0x08
+#define GL_VERTICES_SUBMITTED 0x82EE
+#define GL_VERTICES_SUBMITTED_ARB 0x82EE
+#define GL_VIBRANCE_BIAS_NV 0x8719
+#define GL_VIBRANCE_SCALE_NV 0x8713
+#define GL_VIDEO_BUFFER_BINDING_NV 0x9021
+#define GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV 0x902D
+#define GL_VIDEO_BUFFER_NV 0x9020
+#define GL_VIDEO_BUFFER_PITCH_NV 0x9028
+#define GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV 0x903B
+#define GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV 0x903A
+#define GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV 0x9039
+#define GL_VIDEO_CAPTURE_FRAME_WIDTH_NV 0x9038
+#define GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV 0x903C
+#define GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV 0x9026
+#define GL_VIDEO_COLOR_CONVERSION_MATRIX_NV 0x9029
+#define GL_VIDEO_COLOR_CONVERSION_MAX_NV 0x902A
+#define GL_VIDEO_COLOR_CONVERSION_MIN_NV 0x902B
+#define GL_VIDEO_COLOR_CONVERSION_OFFSET_NV 0x902C
+#define GL_VIEWPORT 0x0BA2
+#define GL_VIEWPORT_BOUNDS_RANGE 0x825D
+#define GL_VIEWPORT_COMMAND_NV 0x0010
+#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F
+#define GL_VIEWPORT_POSITION_W_SCALE_NV 0x937C
+#define GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV 0x937D
+#define GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV 0x937E
+#define GL_VIEWPORT_SUBPIXEL_BITS 0x825C
+#define GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV 0x9357
+#define GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV 0x9351
+#define GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV 0x9353
+#define GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV 0x9355
+#define GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV 0x9356
+#define GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV 0x9350
+#define GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV 0x9352
+#define GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV 0x9354
+#define GL_VIEWPORT_SWIZZLE_W_NV 0x935B
+#define GL_VIEWPORT_SWIZZLE_X_NV 0x9358
+#define GL_VIEWPORT_SWIZZLE_Y_NV 0x9359
+#define GL_VIEWPORT_SWIZZLE_Z_NV 0x935A
+#define GL_VIEW_CLASS_128_BITS 0x82C4
+#define GL_VIEW_CLASS_16_BITS 0x82CA
+#define GL_VIEW_CLASS_24_BITS 0x82C9
+#define GL_VIEW_CLASS_32_BITS 0x82C8
+#define GL_VIEW_CLASS_48_BITS 0x82C7
+#define GL_VIEW_CLASS_64_BITS 0x82C6
+#define GL_VIEW_CLASS_8_BITS 0x82CB
+#define GL_VIEW_CLASS_96_BITS 0x82C5
+#define GL_VIEW_CLASS_ASTC_10x10_RGBA 0x9393
+#define GL_VIEW_CLASS_ASTC_10x5_RGBA 0x9390
+#define GL_VIEW_CLASS_ASTC_10x6_RGBA 0x9391
+#define GL_VIEW_CLASS_ASTC_10x8_RGBA 0x9392
+#define GL_VIEW_CLASS_ASTC_12x10_RGBA 0x9394
+#define GL_VIEW_CLASS_ASTC_12x12_RGBA 0x9395
+#define GL_VIEW_CLASS_ASTC_4x4_RGBA 0x9388
+#define GL_VIEW_CLASS_ASTC_5x4_RGBA 0x9389
+#define GL_VIEW_CLASS_ASTC_5x5_RGBA 0x938A
+#define GL_VIEW_CLASS_ASTC_6x5_RGBA 0x938B
+#define GL_VIEW_CLASS_ASTC_6x6_RGBA 0x938C
+#define GL_VIEW_CLASS_ASTC_8x5_RGBA 0x938D
+#define GL_VIEW_CLASS_ASTC_8x6_RGBA 0x938E
+#define GL_VIEW_CLASS_ASTC_8x8_RGBA 0x938F
+#define GL_VIEW_CLASS_BPTC_FLOAT 0x82D3
+#define GL_VIEW_CLASS_BPTC_UNORM 0x82D2
+#define GL_VIEW_CLASS_EAC_R11 0x9383
+#define GL_VIEW_CLASS_EAC_RG11 0x9384
+#define GL_VIEW_CLASS_ETC2_EAC_RGBA 0x9387
+#define GL_VIEW_CLASS_ETC2_RGB 0x9385
+#define GL_VIEW_CLASS_ETC2_RGBA 0x9386
+#define GL_VIEW_CLASS_RGTC1_RED 0x82D0
+#define GL_VIEW_CLASS_RGTC2_RG 0x82D1
+#define GL_VIEW_CLASS_S3TC_DXT1_RGB 0x82CC
+#define GL_VIEW_CLASS_S3TC_DXT1_RGBA 0x82CD
+#define GL_VIEW_CLASS_S3TC_DXT3_RGBA 0x82CE
+#define GL_VIEW_CLASS_S3TC_DXT5_RGBA 0x82CF
+#define GL_VIEW_COMPATIBILITY_CLASS 0x82B6
+#define GL_VIRTUAL_PAGE_SIZE_INDEX_ARB 0x91A7
+#define GL_VIRTUAL_PAGE_SIZE_X_AMD 0x9195
+#define GL_VIRTUAL_PAGE_SIZE_X_ARB 0x9195
+#define GL_VIRTUAL_PAGE_SIZE_Y_AMD 0x9196
+#define GL_VIRTUAL_PAGE_SIZE_Y_ARB 0x9196
+#define GL_VIRTUAL_PAGE_SIZE_Z_AMD 0x9197
+#define GL_VIRTUAL_PAGE_SIZE_Z_ARB 0x9197
+#define GL_VIVIDLIGHT_NV 0x92A6
+#define GL_VOLATILE_APPLE 0x8A1A
+#define GL_WAIT_FAILED 0x911D
+#define GL_WARPS_PER_SM_NV 0x933A
+#define GL_WARP_SIZE_NV 0x9339
+#define GL_WEIGHTED_AVERAGE_ARB 0x9367
+#define GL_WEIGHTED_AVERAGE_EXT 0x9367
+#define GL_WEIGHT_ARRAY_ARB 0x86AD
+#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E
+#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC
+#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB
+#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA
+#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9
+#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6
+#define GL_WIDE_LINE_HINT_PGI 0x1A222
+#define GL_WINDOW_RECTANGLE_EXT 0x8F12
+#define GL_WINDOW_RECTANGLE_MODE_EXT 0x8F13
+#define GL_WRAP_BORDER_SUN 0x81D4
+#define GL_WRITE_DISCARD_NV 0x88BE
+#define GL_WRITE_ONLY 0x88B9
+#define GL_WRITE_ONLY_ARB 0x88B9
+#define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A
+#define GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878
+#define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C
+#define GL_W_EXT 0x87D8
+#define GL_XOR 0x1506
+#define GL_XOR_NV 0x1506
+#define GL_X_EXT 0x87D5
+#define GL_YCBAYCR8A_4224_NV 0x9032
+#define GL_YCBCR_422_APPLE 0x85B9
+#define GL_YCBCR_MESA 0x8757
+#define GL_YCBYCR8_422_NV 0x9031
+#define GL_YCRCBA_SGIX 0x8319
+#define GL_YCRCB_422_SGIX 0x81BB
+#define GL_YCRCB_444_SGIX 0x81BC
+#define GL_YCRCB_SGIX 0x8318
+#define GL_Y_EXT 0x87D6
+#define GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV 0x9036
+#define GL_Z4Y12Z4CB12Z4CR12_444_NV 0x9037
+#define GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV 0x9035
+#define GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV 0x9034
+#define GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV 0x9033
+#define GL_ZERO 0
+#define GL_ZERO_EXT 0x87DD
+#define GL_ZERO_TO_ONE 0x935F
+#define GL_Z_EXT 0x87D7
+
+#include "khrplatform.h"
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef void GLvoid;
+typedef khronos_int8_t GLbyte;
+typedef khronos_uint8_t GLubyte;
+typedef khronos_int16_t GLshort;
+typedef khronos_uint16_t GLushort;
+typedef int GLint;
+typedef unsigned int GLuint;
+typedef khronos_int32_t GLclampx;
+typedef int GLsizei;
+typedef khronos_float_t GLfloat;
+typedef khronos_float_t GLclampf;
+typedef double GLdouble;
+typedef double GLclampd;
+typedef void *GLeglClientBufferEXT;
+typedef void *GLeglImageOES;
+typedef char GLchar;
+typedef char GLcharARB;
+#ifdef __APPLE__
+typedef void *GLhandleARB;
+#else
+typedef unsigned int GLhandleARB;
+#endif
+typedef khronos_uint16_t GLhalf;
+typedef khronos_uint16_t GLhalfARB;
+typedef khronos_int32_t GLfixed;
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && \
+ (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
+typedef khronos_intptr_t GLintptr;
+#else
+typedef khronos_intptr_t GLintptr;
+#endif
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && \
+ (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
+typedef khronos_intptr_t GLintptrARB;
+#else
+typedef khronos_intptr_t GLintptrARB;
+#endif
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && \
+ (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
+typedef khronos_ssize_t GLsizeiptr;
+#else
+typedef khronos_ssize_t GLsizeiptr;
+#endif
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && \
+ (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
+typedef khronos_ssize_t GLsizeiptrARB;
+#else
+typedef khronos_ssize_t GLsizeiptrARB;
+#endif
+typedef khronos_int64_t GLint64;
+typedef khronos_int64_t GLint64EXT;
+typedef khronos_uint64_t GLuint64;
+typedef khronos_uint64_t GLuint64EXT;
+typedef struct __GLsync *GLsync;
+struct _cl_context;
+struct _cl_event;
+typedef void(GLAD_API_PTR *GLDEBUGPROC)(GLenum source, GLenum type, GLuint id, GLenum severity,
+ GLsizei length, const GLchar *message,
+ const void *userParam);
+typedef void(GLAD_API_PTR *GLDEBUGPROCARB)(GLenum source, GLenum type, GLuint id, GLenum severity,
+ GLsizei length, const GLchar *message,
+ const void *userParam);
+typedef void(GLAD_API_PTR *GLDEBUGPROCKHR)(GLenum source, GLenum type, GLuint id, GLenum severity,
+ GLsizei length, const GLchar *message,
+ const void *userParam);
+typedef void(GLAD_API_PTR *GLDEBUGPROCAMD)(GLuint id, GLenum category, GLenum severity,
+ GLsizei length, const GLchar *message, void *userParam);
+typedef unsigned short GLhalfNV;
+typedef GLintptr GLvdpauSurfaceNV;
+typedef void(GLAD_API_PTR *GLVULKANPROCNV)(void);
+
+#define GL_VERSION_1_0 1
+#define GL_VERSION_1_1 1
+#define GL_VERSION_1_2 1
+#define GL_VERSION_1_3 1
+#define GL_VERSION_1_4 1
+#define GL_VERSION_1_5 1
+#define GL_VERSION_2_0 1
+#define GL_VERSION_2_1 1
+#define GL_VERSION_3_0 1
+#define GL_VERSION_3_1 1
+#define GL_VERSION_3_2 1
+#define GL_VERSION_3_3 1
+#define GL_VERSION_4_0 1
+#define GL_VERSION_4_1 1
+#define GL_VERSION_4_2 1
+#define GL_VERSION_4_3 1
+#define GL_VERSION_4_4 1
+#define GL_VERSION_4_5 1
+#define GL_VERSION_4_6 1
+#define GL_3DFX_multisample 1
+#define GL_3DFX_tbuffer 1
+#define GL_3DFX_texture_compression_FXT1 1
+#define GL_AMD_blend_minmax_factor 1
+#define GL_AMD_conservative_depth 1
+#define GL_AMD_debug_output 1
+#define GL_AMD_depth_clamp_separate 1
+#define GL_AMD_draw_buffers_blend 1
+#define GL_AMD_framebuffer_multisample_advanced 1
+#define GL_AMD_framebuffer_sample_positions 1
+#define GL_AMD_gcn_shader 1
+#define GL_AMD_gpu_shader_half_float 1
+#define GL_AMD_gpu_shader_int16 1
+#define GL_AMD_gpu_shader_int64 1
+#define GL_AMD_interleaved_elements 1
+#define GL_AMD_multi_draw_indirect 1
+#define GL_AMD_name_gen_delete 1
+#define GL_AMD_occlusion_query_event 1
+#define GL_AMD_performance_monitor 1
+#define GL_AMD_pinned_memory 1
+#define GL_AMD_query_buffer_object 1
+#define GL_AMD_sample_positions 1
+#define GL_AMD_seamless_cubemap_per_texture 1
+#define GL_AMD_shader_atomic_counter_ops 1
+#define GL_AMD_shader_ballot 1
+#define GL_AMD_shader_explicit_vertex_parameter 1
+#define GL_AMD_shader_gpu_shader_half_float_fetch 1
+#define GL_AMD_shader_image_load_store_lod 1
+#define GL_AMD_shader_stencil_export 1
+#define GL_AMD_shader_trinary_minmax 1
+#define GL_AMD_sparse_texture 1
+#define GL_AMD_stencil_operation_extended 1
+#define GL_AMD_texture_gather_bias_lod 1
+#define GL_AMD_texture_texture4 1
+#define GL_AMD_transform_feedback3_lines_triangles 1
+#define GL_AMD_transform_feedback4 1
+#define GL_AMD_vertex_shader_layer 1
+#define GL_AMD_vertex_shader_tessellator 1
+#define GL_AMD_vertex_shader_viewport_index 1
+#define GL_APPLE_aux_depth_stencil 1
+#define GL_APPLE_client_storage 1
+#define GL_APPLE_element_array 1
+#define GL_APPLE_fence 1
+#define GL_APPLE_float_pixels 1
+#define GL_APPLE_flush_buffer_range 1
+#define GL_APPLE_object_purgeable 1
+#define GL_APPLE_rgb_422 1
+#define GL_APPLE_row_bytes 1
+#define GL_APPLE_specular_vector 1
+#define GL_APPLE_texture_range 1
+#define GL_APPLE_transform_hint 1
+#define GL_APPLE_vertex_array_object 1
+#define GL_APPLE_vertex_array_range 1
+#define GL_APPLE_vertex_program_evaluators 1
+#define GL_APPLE_ycbcr_422 1
+#define GL_ARB_ES2_compatibility 1
+#define GL_ARB_ES3_1_compatibility 1
+#define GL_ARB_ES3_2_compatibility 1
+#define GL_ARB_ES3_compatibility 1
+#define GL_ARB_arrays_of_arrays 1
+#define GL_ARB_base_instance 1
+#define GL_ARB_bindless_texture 1
+#define GL_ARB_blend_func_extended 1
+#define GL_ARB_buffer_storage 1
+#define GL_ARB_cl_event 1
+#define GL_ARB_clear_buffer_object 1
+#define GL_ARB_clear_texture 1
+#define GL_ARB_clip_control 1
+#define GL_ARB_color_buffer_float 1
+#define GL_ARB_compatibility 1
+#define GL_ARB_compressed_texture_pixel_storage 1
+#define GL_ARB_compute_shader 1
+#define GL_ARB_compute_variable_group_size 1
+#define GL_ARB_conditional_render_inverted 1
+#define GL_ARB_conservative_depth 1
+#define GL_ARB_copy_buffer 1
+#define GL_ARB_copy_image 1
+#define GL_ARB_cull_distance 1
+#define GL_ARB_debug_output 1
+#define GL_ARB_depth_buffer_float 1
+#define GL_ARB_depth_clamp 1
+#define GL_ARB_depth_texture 1
+#define GL_ARB_derivative_control 1
+#define GL_ARB_direct_state_access 1
+#define GL_ARB_draw_buffers 1
+#define GL_ARB_draw_buffers_blend 1
+#define GL_ARB_draw_elements_base_vertex 1
+#define GL_ARB_draw_indirect 1
+#define GL_ARB_draw_instanced 1
+#define GL_ARB_enhanced_layouts 1
+#define GL_ARB_explicit_attrib_location 1
+#define GL_ARB_explicit_uniform_location 1
+#define GL_ARB_fragment_coord_conventions 1
+#define GL_ARB_fragment_layer_viewport 1
+#define GL_ARB_fragment_program 1
+#define GL_ARB_fragment_program_shadow 1
+#define GL_ARB_fragment_shader 1
+#define GL_ARB_fragment_shader_interlock 1
+#define GL_ARB_framebuffer_no_attachments 1
+#define GL_ARB_framebuffer_object 1
+#define GL_ARB_framebuffer_sRGB 1
+#define GL_ARB_geometry_shader4 1
+#define GL_ARB_get_program_binary 1
+#define GL_ARB_get_texture_sub_image 1
+#define GL_ARB_gl_spirv 1
+#define GL_ARB_gpu_shader5 1
+#define GL_ARB_gpu_shader_fp64 1
+#define GL_ARB_gpu_shader_int64 1
+#define GL_ARB_half_float_pixel 1
+#define GL_ARB_half_float_vertex 1
+#define GL_ARB_imaging 1
+#define GL_ARB_indirect_parameters 1
+#define GL_ARB_instanced_arrays 1
+#define GL_ARB_internalformat_query 1
+#define GL_ARB_internalformat_query2 1
+#define GL_ARB_invalidate_subdata 1
+#define GL_ARB_map_buffer_alignment 1
+#define GL_ARB_map_buffer_range 1
+#define GL_ARB_matrix_palette 1
+#define GL_ARB_multi_bind 1
+#define GL_ARB_multi_draw_indirect 1
+#define GL_ARB_multisample 1
+#define GL_ARB_multitexture 1
+#define GL_ARB_occlusion_query 1
+#define GL_ARB_occlusion_query2 1
+#define GL_ARB_parallel_shader_compile 1
+#define GL_ARB_pipeline_statistics_query 1
+#define GL_ARB_pixel_buffer_object 1
+#define GL_ARB_point_parameters 1
+#define GL_ARB_point_sprite 1
+#define GL_ARB_polygon_offset_clamp 1
+#define GL_ARB_post_depth_coverage 1
+#define GL_ARB_program_interface_query 1
+#define GL_ARB_provoking_vertex 1
+#define GL_ARB_query_buffer_object 1
+#define GL_ARB_robust_buffer_access_behavior 1
+#define GL_ARB_robustness 1
+#define GL_ARB_robustness_isolation 1
+#define GL_ARB_sample_locations 1
+#define GL_ARB_sample_shading 1
+#define GL_ARB_sampler_objects 1
+#define GL_ARB_seamless_cube_map 1
+#define GL_ARB_seamless_cubemap_per_texture 1
+#define GL_ARB_separate_shader_objects 1
+#define GL_ARB_shader_atomic_counter_ops 1
+#define GL_ARB_shader_atomic_counters 1
+#define GL_ARB_shader_ballot 1
+#define GL_ARB_shader_bit_encoding 1
+#define GL_ARB_shader_clock 1
+#define GL_ARB_shader_draw_parameters 1
+#define GL_ARB_shader_group_vote 1
+#define GL_ARB_shader_image_load_store 1
+#define GL_ARB_shader_image_size 1
+#define GL_ARB_shader_objects 1
+#define GL_ARB_shader_precision 1
+#define GL_ARB_shader_stencil_export 1
+#define GL_ARB_shader_storage_buffer_object 1
+#define GL_ARB_shader_subroutine 1
+#define GL_ARB_shader_texture_image_samples 1
+#define GL_ARB_shader_texture_lod 1
+#define GL_ARB_shader_viewport_layer_array 1
+#define GL_ARB_shading_language_100 1
+#define GL_ARB_shading_language_420pack 1
+#define GL_ARB_shading_language_include 1
+#define GL_ARB_shading_language_packing 1
+#define GL_ARB_shadow 1
+#define GL_ARB_shadow_ambient 1
+#define GL_ARB_sparse_buffer 1
+#define GL_ARB_sparse_texture 1
+#define GL_ARB_sparse_texture2 1
+#define GL_ARB_sparse_texture_clamp 1
+#define GL_ARB_spirv_extensions 1
+#define GL_ARB_stencil_texturing 1
+#define GL_ARB_sync 1
+#define GL_ARB_tessellation_shader 1
+#define GL_ARB_texture_barrier 1
+#define GL_ARB_texture_border_clamp 1
+#define GL_ARB_texture_buffer_object 1
+#define GL_ARB_texture_buffer_object_rgb32 1
+#define GL_ARB_texture_buffer_range 1
+#define GL_ARB_texture_compression 1
+#define GL_ARB_texture_compression_bptc 1
+#define GL_ARB_texture_compression_rgtc 1
+#define GL_ARB_texture_cube_map 1
+#define GL_ARB_texture_cube_map_array 1
+#define GL_ARB_texture_env_add 1
+#define GL_ARB_texture_env_combine 1
+#define GL_ARB_texture_env_crossbar 1
+#define GL_ARB_texture_env_dot3 1
+#define GL_ARB_texture_filter_anisotropic 1
+#define GL_ARB_texture_filter_minmax 1
+#define GL_ARB_texture_float 1
+#define GL_ARB_texture_gather 1
+#define GL_ARB_texture_mirror_clamp_to_edge 1
+#define GL_ARB_texture_mirrored_repeat 1
+#define GL_ARB_texture_multisample 1
+#define GL_ARB_texture_non_power_of_two 1
+#define GL_ARB_texture_query_levels 1
+#define GL_ARB_texture_query_lod 1
+#define GL_ARB_texture_rectangle 1
+#define GL_ARB_texture_rg 1
+#define GL_ARB_texture_rgb10_a2ui 1
+#define GL_ARB_texture_stencil8 1
+#define GL_ARB_texture_storage 1
+#define GL_ARB_texture_storage_multisample 1
+#define GL_ARB_texture_swizzle 1
+#define GL_ARB_texture_view 1
+#define GL_ARB_timer_query 1
+#define GL_ARB_transform_feedback2 1
+#define GL_ARB_transform_feedback3 1
+#define GL_ARB_transform_feedback_instanced 1
+#define GL_ARB_transform_feedback_overflow_query 1
+#define GL_ARB_transpose_matrix 1
+#define GL_ARB_uniform_buffer_object 1
+#define GL_ARB_vertex_array_bgra 1
+#define GL_ARB_vertex_array_object 1
+#define GL_ARB_vertex_attrib_64bit 1
+#define GL_ARB_vertex_attrib_binding 1
+#define GL_ARB_vertex_blend 1
+#define GL_ARB_vertex_buffer_object 1
+#define GL_ARB_vertex_program 1
+#define GL_ARB_vertex_shader 1
+#define GL_ARB_vertex_type_10f_11f_11f_rev 1
+#define GL_ARB_vertex_type_2_10_10_10_rev 1
+#define GL_ARB_viewport_array 1
+#define GL_ARB_window_pos 1
+#define GL_ATI_draw_buffers 1
+#define GL_ATI_element_array 1
+#define GL_ATI_envmap_bumpmap 1
+#define GL_ATI_fragment_shader 1
+#define GL_ATI_map_object_buffer 1
+#define GL_ATI_meminfo 1
+#define GL_ATI_pixel_format_float 1
+#define GL_ATI_pn_triangles 1
+#define GL_ATI_separate_stencil 1
+#define GL_ATI_text_fragment_shader 1
+#define GL_ATI_texture_env_combine3 1
+#define GL_ATI_texture_float 1
+#define GL_ATI_texture_mirror_once 1
+#define GL_ATI_vertex_array_object 1
+#define GL_ATI_vertex_attrib_array_object 1
+#define GL_ATI_vertex_streams 1
+#define GL_EXT_422_pixels 1
+#define GL_EXT_EGL_image_storage 1
+#define GL_EXT_EGL_sync 1
+#define GL_EXT_abgr 1
+#define GL_EXT_bgra 1
+#define GL_EXT_bindable_uniform 1
+#define GL_EXT_blend_color 1
+#define GL_EXT_blend_equation_separate 1
+#define GL_EXT_blend_func_separate 1
+#define GL_EXT_blend_logic_op 1
+#define GL_EXT_blend_minmax 1
+#define GL_EXT_blend_subtract 1
+#define GL_EXT_clip_volume_hint 1
+#define GL_EXT_cmyka 1
+#define GL_EXT_color_subtable 1
+#define GL_EXT_compiled_vertex_array 1
+#define GL_EXT_convolution 1
+#define GL_EXT_coordinate_frame 1
+#define GL_EXT_copy_texture 1
+#define GL_EXT_cull_vertex 1
+#define GL_EXT_debug_label 1
+#define GL_EXT_debug_marker 1
+#define GL_EXT_depth_bounds_test 1
+#define GL_EXT_direct_state_access 1
+#define GL_EXT_draw_buffers2 1
+#define GL_EXT_draw_instanced 1
+#define GL_EXT_draw_range_elements 1
+#define GL_EXT_external_buffer 1
+#define GL_EXT_fog_coord 1
+#define GL_EXT_framebuffer_blit 1
+#define GL_EXT_framebuffer_blit_layers 1
+#define GL_EXT_framebuffer_multisample 1
+#define GL_EXT_framebuffer_multisample_blit_scaled 1
+#define GL_EXT_framebuffer_object 1
+#define GL_EXT_framebuffer_sRGB 1
+#define GL_EXT_geometry_shader4 1
+#define GL_EXT_gpu_program_parameters 1
+#define GL_EXT_gpu_shader4 1
+#define GL_EXT_histogram 1
+#define GL_EXT_index_array_formats 1
+#define GL_EXT_index_func 1
+#define GL_EXT_index_material 1
+#define GL_EXT_index_texture 1
+#define GL_EXT_light_texture 1
+#define GL_EXT_memory_object 1
+#define GL_EXT_memory_object_fd 1
+#define GL_EXT_memory_object_win32 1
+#define GL_EXT_misc_attribute 1
+#define GL_EXT_multi_draw_arrays 1
+#define GL_EXT_multisample 1
+#define GL_EXT_multiview_tessellation_geometry_shader 1
+#define GL_EXT_multiview_texture_multisample 1
+#define GL_EXT_multiview_timer_query 1
+#define GL_EXT_packed_depth_stencil 1
+#define GL_EXT_packed_float 1
+#define GL_EXT_packed_pixels 1
+#define GL_EXT_paletted_texture 1
+#define GL_EXT_pixel_buffer_object 1
+#define GL_EXT_pixel_transform 1
+#define GL_EXT_pixel_transform_color_table 1
+#define GL_EXT_point_parameters 1
+#define GL_EXT_polygon_offset 1
+#define GL_EXT_polygon_offset_clamp 1
+#define GL_EXT_post_depth_coverage 1
+#define GL_EXT_provoking_vertex 1
+#define GL_EXT_raster_multisample 1
+#define GL_EXT_rescale_normal 1
+#define GL_EXT_secondary_color 1
+#define GL_EXT_semaphore 1
+#define GL_EXT_semaphore_fd 1
+#define GL_EXT_semaphore_win32 1
+#define GL_EXT_separate_shader_objects 1
+#define GL_EXT_separate_specular_color 1
+#define GL_EXT_shader_framebuffer_fetch 1
+#define GL_EXT_shader_framebuffer_fetch_non_coherent 1
+#define GL_EXT_shader_image_load_formatted 1
+#define GL_EXT_shader_image_load_store 1
+#define GL_EXT_shader_integer_mix 1
+#define GL_EXT_shader_samples_identical 1
+#define GL_EXT_shadow_funcs 1
+#define GL_EXT_shared_texture_palette 1
+#define GL_EXT_sparse_texture2 1
+#define GL_EXT_stencil_clear_tag 1
+#define GL_EXT_stencil_two_side 1
+#define GL_EXT_stencil_wrap 1
+#define GL_EXT_subtexture 1
+#define GL_EXT_texture 1
+#define GL_EXT_texture3D 1
+#define GL_EXT_texture_array 1
+#define GL_EXT_texture_buffer_object 1
+#define GL_EXT_texture_compression_latc 1
+#define GL_EXT_texture_compression_rgtc 1
+#define GL_EXT_texture_compression_s3tc 1
+#define GL_EXT_texture_cube_map 1
+#define GL_EXT_texture_env_add 1
+#define GL_EXT_texture_env_combine 1
+#define GL_EXT_texture_env_dot3 1
+#define GL_EXT_texture_filter_anisotropic 1
+#define GL_EXT_texture_filter_minmax 1
+#define GL_EXT_texture_integer 1
+#define GL_EXT_texture_lod_bias 1
+#define GL_EXT_texture_mirror_clamp 1
+#define GL_EXT_texture_object 1
+#define GL_EXT_texture_perturb_normal 1
+#define GL_EXT_texture_sRGB 1
+#define GL_EXT_texture_sRGB_R8 1
+#define GL_EXT_texture_sRGB_RG8 1
+#define GL_EXT_texture_sRGB_decode 1
+#define GL_EXT_texture_shadow_lod 1
+#define GL_EXT_texture_shared_exponent 1
+#define GL_EXT_texture_snorm 1
+#define GL_EXT_texture_storage 1
+#define GL_EXT_texture_swizzle 1
+#define GL_EXT_timer_query 1
+#define GL_EXT_transform_feedback 1
+#define GL_EXT_vertex_array 1
+#define GL_EXT_vertex_array_bgra 1
+#define GL_EXT_vertex_attrib_64bit 1
+#define GL_EXT_vertex_shader 1
+#define GL_EXT_vertex_weighting 1
+#define GL_EXT_win32_keyed_mutex 1
+#define GL_EXT_window_rectangles 1
+#define GL_EXT_x11_sync_object 1
+#define GL_GREMEDY_frame_terminator 1
+#define GL_GREMEDY_string_marker 1
+#define GL_HP_convolution_border_modes 1
+#define GL_HP_image_transform 1
+#define GL_HP_occlusion_test 1
+#define GL_HP_texture_lighting 1
+#define GL_IBM_cull_vertex 1
+#define GL_IBM_multimode_draw_arrays 1
+#define GL_IBM_rasterpos_clip 1
+#define GL_IBM_static_data 1
+#define GL_IBM_texture_mirrored_repeat 1
+#define GL_IBM_vertex_array_lists 1
+#define GL_INGR_blend_func_separate 1
+#define GL_INGR_color_clamp 1
+#define GL_INGR_interlace_read 1
+#define GL_INTEL_blackhole_render 1
+#define GL_INTEL_conservative_rasterization 1
+#define GL_INTEL_fragment_shader_ordering 1
+#define GL_INTEL_framebuffer_CMAA 1
+#define GL_INTEL_map_texture 1
+#define GL_INTEL_parallel_arrays 1
+#define GL_INTEL_performance_query 1
+#define GL_KHR_blend_equation_advanced 1
+#define GL_KHR_blend_equation_advanced_coherent 1
+#define GL_KHR_context_flush_control 1
+#define GL_KHR_debug 1
+#define GL_KHR_no_error 1
+#define GL_KHR_parallel_shader_compile 1
+#define GL_KHR_robust_buffer_access_behavior 1
+#define GL_KHR_robustness 1
+#define GL_KHR_shader_subgroup 1
+#define GL_KHR_texture_compression_astc_hdr 1
+#define GL_KHR_texture_compression_astc_ldr 1
+#define GL_KHR_texture_compression_astc_sliced_3d 1
+#define GL_MESAX_texture_stack 1
+#define GL_MESA_framebuffer_flip_x 1
+#define GL_MESA_framebuffer_flip_y 1
+#define GL_MESA_framebuffer_swap_xy 1
+#define GL_MESA_pack_invert 1
+#define GL_MESA_program_binary_formats 1
+#define GL_MESA_resize_buffers 1
+#define GL_MESA_shader_integer_functions 1
+#define GL_MESA_tile_raster_order 1
+#define GL_MESA_window_pos 1
+#define GL_MESA_ycbcr_texture 1
+#define GL_NVX_blend_equation_advanced_multi_draw_buffers 1
+#define GL_NVX_conditional_render 1
+#define GL_NVX_gpu_memory_info 1
+#define GL_NVX_gpu_multicast2 1
+#define GL_NVX_linked_gpu_multicast 1
+#define GL_NVX_progress_fence 1
+#define GL_NV_alpha_to_coverage_dither_control 1
+#define GL_NV_bindless_multi_draw_indirect 1
+#define GL_NV_bindless_multi_draw_indirect_count 1
+#define GL_NV_bindless_texture 1
+#define GL_NV_blend_equation_advanced 1
+#define GL_NV_blend_equation_advanced_coherent 1
+#define GL_NV_blend_minmax_factor 1
+#define GL_NV_blend_square 1
+#define GL_NV_clip_space_w_scaling 1
+#define GL_NV_command_list 1
+#define GL_NV_compute_program5 1
+#define GL_NV_compute_shader_derivatives 1
+#define GL_NV_conditional_render 1
+#define GL_NV_conservative_raster 1
+#define GL_NV_conservative_raster_dilate 1
+#define GL_NV_conservative_raster_pre_snap 1
+#define GL_NV_conservative_raster_pre_snap_triangles 1
+#define GL_NV_conservative_raster_underestimation 1
+#define GL_NV_copy_depth_to_color 1
+#define GL_NV_copy_image 1
+#define GL_NV_deep_texture3D 1
+#define GL_NV_depth_buffer_float 1
+#define GL_NV_depth_clamp 1
+#define GL_NV_draw_texture 1
+#define GL_NV_draw_vulkan_image 1
+#define GL_NV_evaluators 1
+#define GL_NV_explicit_multisample 1
+#define GL_NV_fence 1
+#define GL_NV_fill_rectangle 1
+#define GL_NV_float_buffer 1
+#define GL_NV_fog_distance 1
+#define GL_NV_fragment_coverage_to_color 1
+#define GL_NV_fragment_program 1
+#define GL_NV_fragment_program2 1
+#define GL_NV_fragment_program4 1
+#define GL_NV_fragment_program_option 1
+#define GL_NV_fragment_shader_barycentric 1
+#define GL_NV_fragment_shader_interlock 1
+#define GL_NV_framebuffer_mixed_samples 1
+#define GL_NV_framebuffer_multisample_coverage 1
+#define GL_NV_geometry_program4 1
+#define GL_NV_geometry_shader4 1
+#define GL_NV_geometry_shader_passthrough 1
+#define GL_NV_gpu_multicast 1
+#define GL_NV_gpu_program4 1
+#define GL_NV_gpu_program5 1
+#define GL_NV_gpu_program5_mem_extended 1
+#define GL_NV_gpu_shader5 1
+#define GL_NV_half_float 1
+#define GL_NV_internalformat_sample_query 1
+#define GL_NV_light_max_exponent 1
+#define GL_NV_memory_attachment 1
+#define GL_NV_memory_object_sparse 1
+#define GL_NV_mesh_shader 1
+#define GL_NV_multisample_coverage 1
+#define GL_NV_multisample_filter_hint 1
+#define GL_NV_occlusion_query 1
+#define GL_NV_packed_depth_stencil 1
+#define GL_NV_parameter_buffer_object 1
+#define GL_NV_parameter_buffer_object2 1
+#define GL_NV_path_rendering 1
+#define GL_NV_path_rendering_shared_edge 1
+#define GL_NV_pixel_data_range 1
+#define GL_NV_point_sprite 1
+#define GL_NV_present_video 1
+#define GL_NV_primitive_restart 1
+#define GL_NV_primitive_shading_rate 1
+#define GL_NV_query_resource 1
+#define GL_NV_query_resource_tag 1
+#define GL_NV_register_combiners 1
+#define GL_NV_register_combiners2 1
+#define GL_NV_representative_fragment_test 1
+#define GL_NV_robustness_video_memory_purge 1
+#define GL_NV_sample_locations 1
+#define GL_NV_sample_mask_override_coverage 1
+#define GL_NV_scissor_exclusive 1
+#define GL_NV_shader_atomic_counters 1
+#define GL_NV_shader_atomic_float 1
+#define GL_NV_shader_atomic_float64 1
+#define GL_NV_shader_atomic_fp16_vector 1
+#define GL_NV_shader_atomic_int64 1
+#define GL_NV_shader_buffer_load 1
+#define GL_NV_shader_buffer_store 1
+#define GL_NV_shader_storage_buffer_object 1
+#define GL_NV_shader_subgroup_partitioned 1
+#define GL_NV_shader_texture_footprint 1
+#define GL_NV_shader_thread_group 1
+#define GL_NV_shader_thread_shuffle 1
+#define GL_NV_shading_rate_image 1
+#define GL_NV_stereo_view_rendering 1
+#define GL_NV_tessellation_program5 1
+#define GL_NV_texgen_emboss 1
+#define GL_NV_texgen_reflection 1
+#define GL_NV_texture_barrier 1
+#define GL_NV_texture_compression_vtc 1
+#define GL_NV_texture_env_combine4 1
+#define GL_NV_texture_expand_normal 1
+#define GL_NV_texture_multisample 1
+#define GL_NV_texture_rectangle 1
+#define GL_NV_texture_rectangle_compressed 1
+#define GL_NV_texture_shader 1
+#define GL_NV_texture_shader2 1
+#define GL_NV_texture_shader3 1
+#define GL_NV_timeline_semaphore 1
+#define GL_NV_transform_feedback 1
+#define GL_NV_transform_feedback2 1
+#define GL_NV_uniform_buffer_std430_layout 1
+#define GL_NV_uniform_buffer_unified_memory 1
+#define GL_NV_vdpau_interop 1
+#define GL_NV_vdpau_interop2 1
+#define GL_NV_vertex_array_range 1
+#define GL_NV_vertex_array_range2 1
+#define GL_NV_vertex_attrib_integer_64bit 1
+#define GL_NV_vertex_buffer_unified_memory 1
+#define GL_NV_vertex_program 1
+#define GL_NV_vertex_program1_1 1
+#define GL_NV_vertex_program2 1
+#define GL_NV_vertex_program2_option 1
+#define GL_NV_vertex_program3 1
+#define GL_NV_vertex_program4 1
+#define GL_NV_video_capture 1
+#define GL_NV_viewport_array2 1
+#define GL_NV_viewport_swizzle 1
+#define GL_OES_byte_coordinates 1
+#define GL_OES_compressed_paletted_texture 1
+#define GL_OES_fixed_point 1
+#define GL_OES_query_matrix 1
+#define GL_OES_read_format 1
+#define GL_OES_single_precision 1
+#define GL_OML_interlace 1
+#define GL_OML_resample 1
+#define GL_OML_subsample 1
+#define GL_OVR_multiview 1
+#define GL_OVR_multiview2 1
+#define GL_PGI_misc_hints 1
+#define GL_PGI_vertex_hints 1
+#define GL_REND_screen_coordinates 1
+#define GL_S3_s3tc 1
+#define GL_SGIS_detail_texture 1
+#define GL_SGIS_fog_function 1
+#define GL_SGIS_generate_mipmap 1
+#define GL_SGIS_multisample 1
+#define GL_SGIS_pixel_texture 1
+#define GL_SGIS_point_line_texgen 1
+#define GL_SGIS_point_parameters 1
+#define GL_SGIS_sharpen_texture 1
+#define GL_SGIS_texture4D 1
+#define GL_SGIS_texture_border_clamp 1
+#define GL_SGIS_texture_color_mask 1
+#define GL_SGIS_texture_edge_clamp 1
+#define GL_SGIS_texture_filter4 1
+#define GL_SGIS_texture_lod 1
+#define GL_SGIS_texture_select 1
+#define GL_SGIX_async 1
+#define GL_SGIX_async_histogram 1
+#define GL_SGIX_async_pixel 1
+#define GL_SGIX_blend_alpha_minmax 1
+#define GL_SGIX_calligraphic_fragment 1
+#define GL_SGIX_clipmap 1
+#define GL_SGIX_convolution_accuracy 1
+#define GL_SGIX_depth_pass_instrument 1
+#define GL_SGIX_depth_texture 1
+#define GL_SGIX_flush_raster 1
+#define GL_SGIX_fog_offset 1
+#define GL_SGIX_fragment_lighting 1
+#define GL_SGIX_framezoom 1
+#define GL_SGIX_igloo_interface 1
+#define GL_SGIX_instruments 1
+#define GL_SGIX_interlace 1
+#define GL_SGIX_ir_instrument1 1
+#define GL_SGIX_list_priority 1
+#define GL_SGIX_pixel_texture 1
+#define GL_SGIX_pixel_tiles 1
+#define GL_SGIX_polynomial_ffd 1
+#define GL_SGIX_reference_plane 1
+#define GL_SGIX_resample 1
+#define GL_SGIX_scalebias_hint 1
+#define GL_SGIX_shadow 1
+#define GL_SGIX_shadow_ambient 1
+#define GL_SGIX_sprite 1
+#define GL_SGIX_subsample 1
+#define GL_SGIX_tag_sample_buffer 1
+#define GL_SGIX_texture_add_env 1
+#define GL_SGIX_texture_coordinate_clamp 1
+#define GL_SGIX_texture_lod_bias 1
+#define GL_SGIX_texture_multi_buffer 1
+#define GL_SGIX_texture_scale_bias 1
+#define GL_SGIX_vertex_preclip 1
+#define GL_SGIX_ycrcb 1
+#define GL_SGIX_ycrcb_subsample 1
+#define GL_SGIX_ycrcba 1
+#define GL_SGI_color_matrix 1
+#define GL_SGI_color_table 1
+#define GL_SGI_texture_color_table 1
+#define GL_SUNX_constant_data 1
+#define GL_SUN_convolution_border_modes 1
+#define GL_SUN_global_alpha 1
+#define GL_SUN_mesh_array 1
+#define GL_SUN_slice_accum 1
+#define GL_SUN_triangle_list 1
+#define GL_SUN_vertex 1
+#define GL_WIN_phong_shading 1
+#define GL_WIN_specular_fog 1
+
+typedef void(GLAD_API_PTR *PFNGLACCUMXOESPROC)(GLenum op, GLfixed value);
+typedef GLboolean(GLAD_API_PTR *PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC)(GLuint memory, GLuint64 key,
+ GLuint timeout);
+typedef void(GLAD_API_PTR *PFNGLACTIVEPROGRAMEXTPROC)(GLuint program);
+typedef void(GLAD_API_PTR *PFNGLACTIVESHADERPROGRAMPROC)(GLuint pipeline, GLuint program);
+typedef void(GLAD_API_PTR *PFNGLACTIVESTENCILFACEEXTPROC)(GLenum face);
+typedef void(GLAD_API_PTR *PFNGLACTIVETEXTUREPROC)(GLenum texture);
+typedef void(GLAD_API_PTR *PFNGLACTIVETEXTUREARBPROC)(GLenum texture);
+typedef void(GLAD_API_PTR *PFNGLACTIVEVARYINGNVPROC)(GLuint program, const GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLALPHAFRAGMENTOP1ATIPROC)(GLenum op, GLuint dst, GLuint dstMod,
+ GLuint arg1, GLuint arg1Rep,
+ GLuint arg1Mod);
+typedef void(GLAD_API_PTR *PFNGLALPHAFRAGMENTOP2ATIPROC)(GLenum op, GLuint dst, GLuint dstMod,
+ GLuint arg1, GLuint arg1Rep,
+ GLuint arg1Mod, GLuint arg2,
+ GLuint arg2Rep, GLuint arg2Mod);
+typedef void(GLAD_API_PTR *PFNGLALPHAFRAGMENTOP3ATIPROC)(
+ GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod,
+ GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
+typedef void(GLAD_API_PTR *PFNGLALPHAFUNCXOESPROC)(GLenum func, GLfixed ref);
+typedef void(GLAD_API_PTR *PFNGLALPHATOCOVERAGEDITHERCONTROLNVPROC)(GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLAPPLYFRAMEBUFFERATTACHMENTCMAAINTELPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLAPPLYTEXTUREEXTPROC)(GLenum mode);
+typedef GLboolean(GLAD_API_PTR *PFNGLAREPROGRAMSRESIDENTNVPROC)(GLsizei n, const GLuint *programs,
+ GLboolean *residences);
+typedef GLboolean(GLAD_API_PTR *PFNGLARETEXTURESRESIDENTEXTPROC)(GLsizei n, const GLuint *textures,
+ GLboolean *residences);
+typedef void(GLAD_API_PTR *PFNGLARRAYELEMENTEXTPROC)(GLint i);
+typedef void(GLAD_API_PTR *PFNGLARRAYOBJECTATIPROC)(GLenum array, GLint size, GLenum type,
+ GLsizei stride, GLuint buffer, GLuint offset);
+typedef GLuint(GLAD_API_PTR *PFNGLASYNCCOPYBUFFERSUBDATANVXPROC)(
+ GLsizei waitSemaphoreCount, const GLuint *waitSemaphoreArray,
+ const GLuint64 *fenceValueArray, GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer,
+ GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size,
+ GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray,
+ const GLuint64 *signalValueArray);
+typedef GLuint(GLAD_API_PTR *PFNGLASYNCCOPYIMAGESUBDATANVXPROC)(
+ GLsizei waitSemaphoreCount, const GLuint *waitSemaphoreArray,
+ const GLuint64 *waitValueArray, GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName,
+ GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName,
+ GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth,
+ GLsizei srcHeight, GLsizei srcDepth, GLsizei signalSemaphoreCount,
+ const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray);
+typedef void(GLAD_API_PTR *PFNGLASYNCMARKERSGIXPROC)(GLuint marker);
+typedef void(GLAD_API_PTR *PFNGLATTACHOBJECTARBPROC)(GLhandleARB containerObj, GLhandleARB obj);
+typedef void(GLAD_API_PTR *PFNGLATTACHSHADERPROC)(GLuint program, GLuint shader);
+typedef void(GLAD_API_PTR *PFNGLBEGINCONDITIONALRENDERPROC)(GLuint id, GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLBEGINCONDITIONALRENDERNVPROC)(GLuint id, GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLBEGINCONDITIONALRENDERNVXPROC)(GLuint id);
+typedef void(GLAD_API_PTR *PFNGLBEGINFRAGMENTSHADERATIPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLBEGINOCCLUSIONQUERYNVPROC)(GLuint id);
+typedef void(GLAD_API_PTR *PFNGLBEGINPERFMONITORAMDPROC)(GLuint monitor);
+typedef void(GLAD_API_PTR *PFNGLBEGINPERFQUERYINTELPROC)(GLuint queryHandle);
+typedef void(GLAD_API_PTR *PFNGLBEGINQUERYPROC)(GLenum target, GLuint id);
+typedef void(GLAD_API_PTR *PFNGLBEGINQUERYARBPROC)(GLenum target, GLuint id);
+typedef void(GLAD_API_PTR *PFNGLBEGINQUERYINDEXEDPROC)(GLenum target, GLuint index, GLuint id);
+typedef void(GLAD_API_PTR *PFNGLBEGINTRANSFORMFEEDBACKPROC)(GLenum primitiveMode);
+typedef void(GLAD_API_PTR *PFNGLBEGINTRANSFORMFEEDBACKEXTPROC)(GLenum primitiveMode);
+typedef void(GLAD_API_PTR *PFNGLBEGINTRANSFORMFEEDBACKNVPROC)(GLenum primitiveMode);
+typedef void(GLAD_API_PTR *PFNGLBEGINVERTEXSHADEREXTPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLBEGINVIDEOCAPTURENVPROC)(GLuint video_capture_slot);
+typedef void(GLAD_API_PTR *PFNGLBINDATTRIBLOCATIONPROC)(GLuint program, GLuint index,
+ const GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLBINDATTRIBLOCATIONARBPROC)(GLhandleARB programObj, GLuint index,
+ const GLcharARB *name);
+typedef void(GLAD_API_PTR *PFNGLBINDBUFFERPROC)(GLenum target, GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLBINDBUFFERARBPROC)(GLenum target, GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLBINDBUFFERBASEPROC)(GLenum target, GLuint index, GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLBINDBUFFERBASEEXTPROC)(GLenum target, GLuint index, GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLBINDBUFFERBASENVPROC)(GLenum target, GLuint index, GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLBINDBUFFEROFFSETEXTPROC)(GLenum target, GLuint index, GLuint buffer,
+ GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLBINDBUFFEROFFSETNVPROC)(GLenum target, GLuint index, GLuint buffer,
+ GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLBINDBUFFERRANGEPROC)(GLenum target, GLuint index, GLuint buffer,
+ GLintptr offset, GLsizeiptr size);
+typedef void(GLAD_API_PTR *PFNGLBINDBUFFERRANGEEXTPROC)(GLenum target, GLuint index, GLuint buffer,
+ GLintptr offset, GLsizeiptr size);
+typedef void(GLAD_API_PTR *PFNGLBINDBUFFERRANGENVPROC)(GLenum target, GLuint index, GLuint buffer,
+ GLintptr offset, GLsizeiptr size);
+typedef void(GLAD_API_PTR *PFNGLBINDBUFFERSBASEPROC)(GLenum target, GLuint first, GLsizei count,
+ const GLuint *buffers);
+typedef void(GLAD_API_PTR *PFNGLBINDBUFFERSRANGEPROC)(GLenum target, GLuint first, GLsizei count,
+ const GLuint *buffers,
+ const GLintptr *offsets,
+ const GLsizeiptr *sizes);
+typedef void(GLAD_API_PTR *PFNGLBINDFRAGDATALOCATIONPROC)(GLuint program, GLuint color,
+ const GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLBINDFRAGDATALOCATIONEXTPROC)(GLuint program, GLuint color,
+ const GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)(GLuint program, GLuint colorNumber,
+ GLuint index, const GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLBINDFRAGMENTSHADERATIPROC)(GLuint id);
+typedef void(GLAD_API_PTR *PFNGLBINDFRAMEBUFFERPROC)(GLenum target, GLuint framebuffer);
+typedef void(GLAD_API_PTR *PFNGLBINDFRAMEBUFFEREXTPROC)(GLenum target, GLuint framebuffer);
+typedef void(GLAD_API_PTR *PFNGLBINDIMAGETEXTUREPROC)(GLuint unit, GLuint texture, GLint level,
+ GLboolean layered, GLint layer, GLenum access,
+ GLenum format);
+typedef void(GLAD_API_PTR *PFNGLBINDIMAGETEXTUREEXTPROC)(GLuint index, GLuint texture, GLint level,
+ GLboolean layered, GLint layer,
+ GLenum access, GLint format);
+typedef void(GLAD_API_PTR *PFNGLBINDIMAGETEXTURESPROC)(GLuint first, GLsizei count,
+ const GLuint *textures);
+typedef GLuint(GLAD_API_PTR *PFNGLBINDLIGHTPARAMETEREXTPROC)(GLenum light, GLenum value);
+typedef GLuint(GLAD_API_PTR *PFNGLBINDMATERIALPARAMETEREXTPROC)(GLenum face, GLenum value);
+typedef void(GLAD_API_PTR *PFNGLBINDMULTITEXTUREEXTPROC)(GLenum texunit, GLenum target,
+ GLuint texture);
+typedef GLuint(GLAD_API_PTR *PFNGLBINDPARAMETEREXTPROC)(GLenum value);
+typedef void(GLAD_API_PTR *PFNGLBINDPROGRAMARBPROC)(GLenum target, GLuint program);
+typedef void(GLAD_API_PTR *PFNGLBINDPROGRAMNVPROC)(GLenum target, GLuint id);
+typedef void(GLAD_API_PTR *PFNGLBINDPROGRAMPIPELINEPROC)(GLuint pipeline);
+typedef void(GLAD_API_PTR *PFNGLBINDRENDERBUFFERPROC)(GLenum target, GLuint renderbuffer);
+typedef void(GLAD_API_PTR *PFNGLBINDRENDERBUFFEREXTPROC)(GLenum target, GLuint renderbuffer);
+typedef void(GLAD_API_PTR *PFNGLBINDSAMPLERPROC)(GLuint unit, GLuint sampler);
+typedef void(GLAD_API_PTR *PFNGLBINDSAMPLERSPROC)(GLuint first, GLsizei count,
+ const GLuint *samplers);
+typedef void(GLAD_API_PTR *PFNGLBINDSHADINGRATEIMAGENVPROC)(GLuint texture);
+typedef GLuint(GLAD_API_PTR *PFNGLBINDTEXGENPARAMETEREXTPROC)(GLenum unit, GLenum coord,
+ GLenum value);
+typedef void(GLAD_API_PTR *PFNGLBINDTEXTUREPROC)(GLenum target, GLuint texture);
+typedef void(GLAD_API_PTR *PFNGLBINDTEXTUREEXTPROC)(GLenum target, GLuint texture);
+typedef void(GLAD_API_PTR *PFNGLBINDTEXTUREUNITPROC)(GLuint unit, GLuint texture);
+typedef GLuint(GLAD_API_PTR *PFNGLBINDTEXTUREUNITPARAMETEREXTPROC)(GLenum unit, GLenum value);
+typedef void(GLAD_API_PTR *PFNGLBINDTEXTURESPROC)(GLuint first, GLsizei count,
+ const GLuint *textures);
+typedef void(GLAD_API_PTR *PFNGLBINDTRANSFORMFEEDBACKPROC)(GLenum target, GLuint id);
+typedef void(GLAD_API_PTR *PFNGLBINDTRANSFORMFEEDBACKNVPROC)(GLenum target, GLuint id);
+typedef void(GLAD_API_PTR *PFNGLBINDVERTEXARRAYPROC)(GLuint array);
+typedef void(GLAD_API_PTR *PFNGLBINDVERTEXARRAYAPPLEPROC)(GLuint array);
+typedef void(GLAD_API_PTR *PFNGLBINDVERTEXBUFFERPROC)(GLuint bindingindex, GLuint buffer,
+ GLintptr offset, GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLBINDVERTEXBUFFERSPROC)(GLuint first, GLsizei count,
+ const GLuint *buffers,
+ const GLintptr *offsets,
+ const GLsizei *strides);
+typedef void(GLAD_API_PTR *PFNGLBINDVERTEXSHADEREXTPROC)(GLuint id);
+typedef void(GLAD_API_PTR *PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC)(GLuint video_capture_slot,
+ GLuint stream,
+ GLenum frame_region,
+ GLintptrARB offset);
+typedef void(GLAD_API_PTR *PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC)(GLuint video_capture_slot,
+ GLuint stream,
+ GLenum frame_region,
+ GLenum target, GLuint texture);
+typedef void(GLAD_API_PTR *PFNGLBINORMAL3BEXTPROC)(GLbyte bx, GLbyte by, GLbyte bz);
+typedef void(GLAD_API_PTR *PFNGLBINORMAL3BVEXTPROC)(const GLbyte *v);
+typedef void(GLAD_API_PTR *PFNGLBINORMAL3DEXTPROC)(GLdouble bx, GLdouble by, GLdouble bz);
+typedef void(GLAD_API_PTR *PFNGLBINORMAL3DVEXTPROC)(const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLBINORMAL3FEXTPROC)(GLfloat bx, GLfloat by, GLfloat bz);
+typedef void(GLAD_API_PTR *PFNGLBINORMAL3FVEXTPROC)(const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLBINORMAL3IEXTPROC)(GLint bx, GLint by, GLint bz);
+typedef void(GLAD_API_PTR *PFNGLBINORMAL3IVEXTPROC)(const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLBINORMAL3SEXTPROC)(GLshort bx, GLshort by, GLshort bz);
+typedef void(GLAD_API_PTR *PFNGLBINORMAL3SVEXTPROC)(const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLBINORMALPOINTEREXTPROC)(GLenum type, GLsizei stride,
+ const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLBITMAPXOESPROC)(GLsizei width, GLsizei height, GLfixed xorig,
+ GLfixed yorig, GLfixed xmove, GLfixed ymove,
+ const GLubyte *bitmap);
+typedef void(GLAD_API_PTR *PFNGLBLENDBARRIERKHRPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLBLENDBARRIERNVPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLBLENDCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue,
+ GLfloat alpha);
+typedef void(GLAD_API_PTR *PFNGLBLENDCOLOREXTPROC)(GLfloat red, GLfloat green, GLfloat blue,
+ GLfloat alpha);
+typedef void(GLAD_API_PTR *PFNGLBLENDCOLORXOESPROC)(GLfixed red, GLfixed green, GLfixed blue,
+ GLfixed alpha);
+typedef void(GLAD_API_PTR *PFNGLBLENDEQUATIONPROC)(GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLBLENDEQUATIONEXTPROC)(GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLBLENDEQUATIONINDEXEDAMDPROC)(GLuint buf, GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLBLENDEQUATIONSEPARATEPROC)(GLenum modeRGB, GLenum modeAlpha);
+typedef void(GLAD_API_PTR *PFNGLBLENDEQUATIONSEPARATEEXTPROC)(GLenum modeRGB, GLenum modeAlpha);
+typedef void(GLAD_API_PTR *PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC)(GLuint buf, GLenum modeRGB,
+ GLenum modeAlpha);
+typedef void(GLAD_API_PTR *PFNGLBLENDEQUATIONSEPARATEIPROC)(GLuint buf, GLenum modeRGB,
+ GLenum modeAlpha);
+typedef void(GLAD_API_PTR *PFNGLBLENDEQUATIONSEPARATEIARBPROC)(GLuint buf, GLenum modeRGB,
+ GLenum modeAlpha);
+typedef void(GLAD_API_PTR *PFNGLBLENDEQUATIONIPROC)(GLuint buf, GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLBLENDEQUATIONIARBPROC)(GLuint buf, GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLBLENDFUNCPROC)(GLenum sfactor, GLenum dfactor);
+typedef void(GLAD_API_PTR *PFNGLBLENDFUNCINDEXEDAMDPROC)(GLuint buf, GLenum src, GLenum dst);
+typedef void(GLAD_API_PTR *PFNGLBLENDFUNCSEPARATEPROC)(GLenum sfactorRGB, GLenum dfactorRGB,
+ GLenum sfactorAlpha, GLenum dfactorAlpha);
+typedef void(GLAD_API_PTR *PFNGLBLENDFUNCSEPARATEEXTPROC)(GLenum sfactorRGB, GLenum dfactorRGB,
+ GLenum sfactorAlpha, GLenum dfactorAlpha);
+typedef void(GLAD_API_PTR *PFNGLBLENDFUNCSEPARATEINGRPROC)(GLenum sfactorRGB, GLenum dfactorRGB,
+ GLenum sfactorAlpha,
+ GLenum dfactorAlpha);
+typedef void(GLAD_API_PTR *PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC)(GLuint buf, GLenum srcRGB,
+ GLenum dstRGB, GLenum srcAlpha,
+ GLenum dstAlpha);
+typedef void(GLAD_API_PTR *PFNGLBLENDFUNCSEPARATEIPROC)(GLuint buf, GLenum srcRGB, GLenum dstRGB,
+ GLenum srcAlpha, GLenum dstAlpha);
+typedef void(GLAD_API_PTR *PFNGLBLENDFUNCSEPARATEIARBPROC)(GLuint buf, GLenum srcRGB, GLenum dstRGB,
+ GLenum srcAlpha, GLenum dstAlpha);
+typedef void(GLAD_API_PTR *PFNGLBLENDFUNCIPROC)(GLuint buf, GLenum src, GLenum dst);
+typedef void(GLAD_API_PTR *PFNGLBLENDFUNCIARBPROC)(GLuint buf, GLenum src, GLenum dst);
+typedef void(GLAD_API_PTR *PFNGLBLENDPARAMETERINVPROC)(GLenum pname, GLint value);
+typedef void(GLAD_API_PTR *PFNGLBLITFRAMEBUFFERPROC)(GLint srcX0, GLint srcY0, GLint srcX1,
+ GLint srcY1, GLint dstX0, GLint dstY0,
+ GLint dstX1, GLint dstY1, GLbitfield mask,
+ GLenum filter);
+typedef void(GLAD_API_PTR *PFNGLBLITFRAMEBUFFEREXTPROC)(GLint srcX0, GLint srcY0, GLint srcX1,
+ GLint srcY1, GLint dstX0, GLint dstY0,
+ GLint dstX1, GLint dstY1, GLbitfield mask,
+ GLenum filter);
+typedef void(GLAD_API_PTR *PFNGLBLITFRAMEBUFFERLAYEREXTPROC)(GLint srcX0, GLint srcY0, GLint srcX1,
+ GLint srcY1, GLint srcLayer,
+ GLint dstX0, GLint dstY0, GLint dstX1,
+ GLint dstY1, GLint dstLayer,
+ GLbitfield mask, GLenum filter);
+typedef void(GLAD_API_PTR *PFNGLBLITFRAMEBUFFERLAYERSEXTPROC)(GLint srcX0, GLint srcY0, GLint srcX1,
+ GLint srcY1, GLint dstX0, GLint dstY0,
+ GLint dstX1, GLint dstY1,
+ GLbitfield mask, GLenum filter);
+typedef void(GLAD_API_PTR *PFNGLBLITNAMEDFRAMEBUFFERPROC)(GLuint readFramebuffer,
+ GLuint drawFramebuffer, GLint srcX0,
+ GLint srcY0, GLint srcX1, GLint srcY1,
+ GLint dstX0, GLint dstY0, GLint dstX1,
+ GLint dstY1, GLbitfield mask,
+ GLenum filter);
+typedef void(GLAD_API_PTR *PFNGLBUFFERADDRESSRANGENVPROC)(GLenum pname, GLuint index,
+ GLuint64EXT address, GLsizeiptr length);
+typedef void(GLAD_API_PTR *PFNGLBUFFERATTACHMEMORYNVPROC)(GLenum target, GLuint memory,
+ GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLBUFFERDATAPROC)(GLenum target, GLsizeiptr size, const void *data,
+ GLenum usage);
+typedef void(GLAD_API_PTR *PFNGLBUFFERDATAARBPROC)(GLenum target, GLsizeiptrARB size,
+ const void *data, GLenum usage);
+typedef void(GLAD_API_PTR *PFNGLBUFFERPAGECOMMITMENTARBPROC)(GLenum target, GLintptr offset,
+ GLsizeiptr size, GLboolean commit);
+typedef void(GLAD_API_PTR *PFNGLBUFFERPAGECOMMITMENTMEMNVPROC)(GLenum target, GLintptr offset,
+ GLsizeiptr size, GLuint memory,
+ GLuint64 memOffset,
+ GLboolean commit);
+typedef void(GLAD_API_PTR *PFNGLBUFFERPARAMETERIAPPLEPROC)(GLenum target, GLenum pname,
+ GLint param);
+typedef void(GLAD_API_PTR *PFNGLBUFFERSTORAGEPROC)(GLenum target, GLsizeiptr size, const void *data,
+ GLbitfield flags);
+typedef void(GLAD_API_PTR *PFNGLBUFFERSTORAGEEXTERNALEXTPROC)(GLenum target, GLintptr offset,
+ GLsizeiptr size,
+ GLeglClientBufferEXT clientBuffer,
+ GLbitfield flags);
+typedef void(GLAD_API_PTR *PFNGLBUFFERSTORAGEMEMEXTPROC)(GLenum target, GLsizeiptr size,
+ GLuint memory, GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLBUFFERSUBDATAARBPROC)(GLenum target, GLintptrARB offset,
+ GLsizeiptrARB size, const void *data);
+typedef void(GLAD_API_PTR *PFNGLCALLCOMMANDLISTNVPROC)(GLuint list);
+typedef GLenum(GLAD_API_PTR *PFNGLCHECKFRAMEBUFFERSTATUSPROC)(GLenum target);
+typedef GLenum(GLAD_API_PTR *PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)(GLenum target);
+typedef GLenum(GLAD_API_PTR *PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC)(GLuint framebuffer,
+ GLenum target);
+typedef GLenum(GLAD_API_PTR *PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC)(GLuint framebuffer,
+ GLenum target);
+typedef void(GLAD_API_PTR *PFNGLCLAMPCOLORPROC)(GLenum target, GLenum clamp);
+typedef void(GLAD_API_PTR *PFNGLCLAMPCOLORARBPROC)(GLenum target, GLenum clamp);
+typedef void(GLAD_API_PTR *PFNGLCLEARPROC)(GLbitfield mask);
+typedef void(GLAD_API_PTR *PFNGLCLEARACCUMXOESPROC)(GLfixed red, GLfixed green, GLfixed blue,
+ GLfixed alpha);
+typedef void(GLAD_API_PTR *PFNGLCLEARBUFFERDATAPROC)(GLenum target, GLenum internalformat,
+ GLenum format, GLenum type, const void *data);
+typedef void(GLAD_API_PTR *PFNGLCLEARBUFFERSUBDATAPROC)(GLenum target, GLenum internalformat,
+ GLintptr offset, GLsizeiptr size,
+ GLenum format, GLenum type,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCLEARBUFFERFIPROC)(GLenum buffer, GLint drawbuffer, GLfloat depth,
+ GLint stencil);
+typedef void(GLAD_API_PTR *PFNGLCLEARBUFFERFVPROC)(GLenum buffer, GLint drawbuffer,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLCLEARBUFFERIVPROC)(GLenum buffer, GLint drawbuffer,
+ const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLCLEARBUFFERUIVPROC)(GLenum buffer, GLint drawbuffer,
+ const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLCLEARCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue,
+ GLfloat alpha);
+typedef void(GLAD_API_PTR *PFNGLCLEARCOLORIIEXTPROC)(GLint red, GLint green, GLint blue,
+ GLint alpha);
+typedef void(GLAD_API_PTR *PFNGLCLEARCOLORIUIEXTPROC)(GLuint red, GLuint green, GLuint blue,
+ GLuint alpha);
+typedef void(GLAD_API_PTR *PFNGLCLEARCOLORXOESPROC)(GLfixed red, GLfixed green, GLfixed blue,
+ GLfixed alpha);
+typedef void(GLAD_API_PTR *PFNGLCLEARDEPTHPROC)(GLdouble depth);
+typedef void(GLAD_API_PTR *PFNGLCLEARDEPTHDNVPROC)(GLdouble depth);
+typedef void(GLAD_API_PTR *PFNGLCLEARDEPTHFPROC)(GLfloat d);
+typedef void(GLAD_API_PTR *PFNGLCLEARDEPTHFOESPROC)(GLclampf depth);
+typedef void(GLAD_API_PTR *PFNGLCLEARDEPTHXOESPROC)(GLfixed depth);
+typedef void(GLAD_API_PTR *PFNGLCLEARNAMEDBUFFERDATAPROC)(GLuint buffer, GLenum internalformat,
+ GLenum format, GLenum type,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCLEARNAMEDBUFFERDATAEXTPROC)(GLuint buffer, GLenum internalformat,
+ GLenum format, GLenum type,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCLEARNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLenum internalformat,
+ GLintptr offset, GLsizeiptr size,
+ GLenum format, GLenum type,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC)(GLuint buffer,
+ GLenum internalformat,
+ GLsizeiptr offset, GLsizeiptr size,
+ GLenum format, GLenum type,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCLEARNAMEDFRAMEBUFFERFIPROC)(GLuint framebuffer, GLenum buffer,
+ GLint drawbuffer, GLfloat depth,
+ GLint stencil);
+typedef void(GLAD_API_PTR *PFNGLCLEARNAMEDFRAMEBUFFERFVPROC)(GLuint framebuffer, GLenum buffer,
+ GLint drawbuffer,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLCLEARNAMEDFRAMEBUFFERIVPROC)(GLuint framebuffer, GLenum buffer,
+ GLint drawbuffer, const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC)(GLuint framebuffer, GLenum buffer,
+ GLint drawbuffer,
+ const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLCLEARSTENCILPROC)(GLint s);
+typedef void(GLAD_API_PTR *PFNGLCLEARTEXIMAGEPROC)(GLuint texture, GLint level, GLenum format,
+ GLenum type, const void *data);
+typedef void(GLAD_API_PTR *PFNGLCLEARTEXSUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset,
+ GLint yoffset, GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth, GLenum format,
+ GLenum type, const void *data);
+typedef void(GLAD_API_PTR *PFNGLCLIENTACTIVETEXTUREARBPROC)(GLenum texture);
+typedef void(GLAD_API_PTR *PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC)(GLenum stream);
+typedef void(GLAD_API_PTR *PFNGLCLIENTATTRIBDEFAULTEXTPROC)(GLbitfield mask);
+typedef void(GLAD_API_PTR *PFNGLCLIENTWAITSEMAPHOREUI64NVXPROC)(GLsizei fenceObjectCount,
+ const GLuint *semaphoreArray,
+ const GLuint64 *fenceValueArray);
+typedef GLenum(GLAD_API_PTR *PFNGLCLIENTWAITSYNCPROC)(GLsync sync, GLbitfield flags,
+ GLuint64 timeout);
+typedef void(GLAD_API_PTR *PFNGLCLIPCONTROLPROC)(GLenum origin, GLenum depth);
+typedef void(GLAD_API_PTR *PFNGLCLIPPLANEFOESPROC)(GLenum plane, const GLfloat *equation);
+typedef void(GLAD_API_PTR *PFNGLCLIPPLANEXOESPROC)(GLenum plane, const GLfixed *equation);
+typedef void(GLAD_API_PTR *PFNGLCOLOR3FVERTEX3FSUNPROC)(GLfloat r, GLfloat g, GLfloat b, GLfloat x,
+ GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLCOLOR3FVERTEX3FVSUNPROC)(const GLfloat *c, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLCOLOR3HNVPROC)(GLhalfNV red, GLhalfNV green, GLhalfNV blue);
+typedef void(GLAD_API_PTR *PFNGLCOLOR3HVNVPROC)(const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLCOLOR3XOESPROC)(GLfixed red, GLfixed green, GLfixed blue);
+typedef void(GLAD_API_PTR *PFNGLCOLOR3XVOESPROC)(const GLfixed *components);
+typedef void(GLAD_API_PTR *PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC)(GLfloat r, GLfloat g, GLfloat b,
+ GLfloat a, GLfloat nx, GLfloat ny,
+ GLfloat nz, GLfloat x, GLfloat y,
+ GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC)(const GLfloat *c, const GLfloat *n,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLCOLOR4HNVPROC)(GLhalfNV red, GLhalfNV green, GLhalfNV blue,
+ GLhalfNV alpha);
+typedef void(GLAD_API_PTR *PFNGLCOLOR4HVNVPROC)(const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLCOLOR4UBVERTEX2FSUNPROC)(GLubyte r, GLubyte g, GLubyte b, GLubyte a,
+ GLfloat x, GLfloat y);
+typedef void(GLAD_API_PTR *PFNGLCOLOR4UBVERTEX2FVSUNPROC)(const GLubyte *c, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLCOLOR4UBVERTEX3FSUNPROC)(GLubyte r, GLubyte g, GLubyte b, GLubyte a,
+ GLfloat x, GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLCOLOR4UBVERTEX3FVSUNPROC)(const GLubyte *c, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLCOLOR4XOESPROC)(GLfixed red, GLfixed green, GLfixed blue,
+ GLfixed alpha);
+typedef void(GLAD_API_PTR *PFNGLCOLOR4XVOESPROC)(const GLfixed *components);
+typedef void(GLAD_API_PTR *PFNGLCOLORFORMATNVPROC)(GLint size, GLenum type, GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLCOLORFRAGMENTOP1ATIPROC)(GLenum op, GLuint dst, GLuint dstMask,
+ GLuint dstMod, GLuint arg1, GLuint arg1Rep,
+ GLuint arg1Mod);
+typedef void(GLAD_API_PTR *PFNGLCOLORFRAGMENTOP2ATIPROC)(GLenum op, GLuint dst, GLuint dstMask,
+ GLuint dstMod, GLuint arg1, GLuint arg1Rep,
+ GLuint arg1Mod, GLuint arg2,
+ GLuint arg2Rep, GLuint arg2Mod);
+typedef void(GLAD_API_PTR *PFNGLCOLORFRAGMENTOP3ATIPROC)(GLenum op, GLuint dst, GLuint dstMask,
+ GLuint dstMod, GLuint arg1, GLuint arg1Rep,
+ GLuint arg1Mod, GLuint arg2,
+ GLuint arg2Rep, GLuint arg2Mod,
+ GLuint arg3, GLuint arg3Rep,
+ GLuint arg3Mod);
+typedef void(GLAD_API_PTR *PFNGLCOLORMASKPROC)(GLboolean red, GLboolean green, GLboolean blue,
+ GLboolean alpha);
+typedef void(GLAD_API_PTR *PFNGLCOLORMASKINDEXEDEXTPROC)(GLuint index, GLboolean r, GLboolean g,
+ GLboolean b, GLboolean a);
+typedef void(GLAD_API_PTR *PFNGLCOLORMASKIPROC)(GLuint index, GLboolean r, GLboolean g, GLboolean b,
+ GLboolean a);
+typedef void(GLAD_API_PTR *PFNGLCOLORPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride,
+ GLsizei count, const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLCOLORPOINTERLISTIBMPROC)(GLint size, GLenum type, GLint stride,
+ const void **pointer, GLint ptrstride);
+typedef void(GLAD_API_PTR *PFNGLCOLORPOINTERVINTELPROC)(GLint size, GLenum type,
+ const void **pointer);
+typedef void(GLAD_API_PTR *PFNGLCOLORSUBTABLEEXTPROC)(GLenum target, GLsizei start, GLsizei count,
+ GLenum format, GLenum type, const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOLORTABLEEXTPROC)(GLenum target, GLenum internalFormat,
+ GLsizei width, GLenum format, GLenum type,
+ const void *table);
+typedef void(GLAD_API_PTR *PFNGLCOLORTABLEPARAMETERFVSGIPROC)(GLenum target, GLenum pname,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLCOLORTABLEPARAMETERIVSGIPROC)(GLenum target, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLCOLORTABLESGIPROC)(GLenum target, GLenum internalformat,
+ GLsizei width, GLenum format, GLenum type,
+ const void *table);
+typedef void(GLAD_API_PTR *PFNGLCOMBINERINPUTNVPROC)(GLenum stage, GLenum portion, GLenum variable,
+ GLenum input, GLenum mapping,
+ GLenum componentUsage);
+typedef void(GLAD_API_PTR *PFNGLCOMBINEROUTPUTNVPROC)(GLenum stage, GLenum portion, GLenum abOutput,
+ GLenum cdOutput, GLenum sumOutput,
+ GLenum scale, GLenum bias,
+ GLboolean abDotProduct,
+ GLboolean cdDotProduct, GLboolean muxSum);
+typedef void(GLAD_API_PTR *PFNGLCOMBINERPARAMETERFNVPROC)(GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLCOMBINERPARAMETERFVNVPROC)(GLenum pname, const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLCOMBINERPARAMETERINVPROC)(GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLCOMBINERPARAMETERIVNVPROC)(GLenum pname, const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLCOMBINERSTAGEPARAMETERFVNVPROC)(GLenum stage, GLenum pname,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLCOMMANDLISTSEGMENTSNVPROC)(GLuint list, GLuint segments);
+typedef void(GLAD_API_PTR *PFNGLCOMPILECOMMANDLISTNVPROC)(GLuint list);
+typedef void(GLAD_API_PTR *PFNGLCOMPILESHADERPROC)(GLuint shader);
+typedef void(GLAD_API_PTR *PFNGLCOMPILESHADERARBPROC)(GLhandleARB shaderObj);
+typedef void(GLAD_API_PTR *PFNGLCOMPILESHADERINCLUDEARBPROC)(GLuint shader, GLsizei count,
+ const GLchar *const *path,
+ const GLint *length);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC)(
+ GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width,
+ GLint border, GLsizei imageSize, const void *bits);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC)(
+ GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width,
+ GLsizei height, GLint border, GLsizei imageSize, const void *bits);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC)(
+ GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width,
+ GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC)(GLenum texunit, GLenum target,
+ GLint level, GLint xoffset,
+ GLsizei width, GLenum format,
+ GLsizei imageSize,
+ const void *bits);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC)(
+ GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
+ GLsizei height, GLenum format, GLsizei imageSize, const void *bits);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC)(
+ GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,
+ GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize,
+ const void *bits);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE1DPROC)(GLenum target, GLint level,
+ GLenum internalformat, GLsizei width,
+ GLint border, GLsizei imageSize,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE1DARBPROC)(GLenum target, GLint level,
+ GLenum internalformat, GLsizei width,
+ GLint border, GLsizei imageSize,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE2DPROC)(GLenum target, GLint level,
+ GLenum internalformat, GLsizei width,
+ GLsizei height, GLint border,
+ GLsizei imageSize, const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE2DARBPROC)(GLenum target, GLint level,
+ GLenum internalformat, GLsizei width,
+ GLsizei height, GLint border,
+ GLsizei imageSize, const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE3DPROC)(GLenum target, GLint level,
+ GLenum internalformat, GLsizei width,
+ GLsizei height, GLsizei depth,
+ GLint border, GLsizei imageSize,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE3DARBPROC)(GLenum target, GLint level,
+ GLenum internalformat, GLsizei width,
+ GLsizei height, GLsizei depth,
+ GLint border, GLsizei imageSize,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)(GLenum target, GLint level,
+ GLint xoffset, GLsizei width,
+ GLenum format, GLsizei imageSize,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC)(GLenum target, GLint level,
+ GLint xoffset, GLsizei width,
+ GLenum format, GLsizei imageSize,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)(GLenum target, GLint level,
+ GLint xoffset, GLint yoffset,
+ GLsizei width, GLsizei height,
+ GLenum format, GLsizei imageSize,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC)(GLenum target, GLint level,
+ GLint xoffset, GLint yoffset,
+ GLsizei width, GLsizei height,
+ GLenum format, GLsizei imageSize,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)(
+ GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC)(
+ GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC)(GLuint texture, GLenum target,
+ GLint level, GLenum internalformat,
+ GLsizei width, GLint border,
+ GLsizei imageSize,
+ const void *bits);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC)(GLuint texture, GLenum target,
+ GLint level, GLenum internalformat,
+ GLsizei width, GLsizei height,
+ GLint border, GLsizei imageSize,
+ const void *bits);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC)(
+ GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width,
+ GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level,
+ GLint xoffset, GLsizei width,
+ GLenum format, GLsizei imageSize,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC)(GLuint texture, GLenum target,
+ GLint level, GLint xoffset,
+ GLsizei width, GLenum format,
+ GLsizei imageSize,
+ const void *bits);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level,
+ GLint xoffset, GLint yoffset,
+ GLsizei width, GLsizei height,
+ GLenum format, GLsizei imageSize,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC)(
+ GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
+ GLsizei height, GLenum format, GLsizei imageSize, const void *bits);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC)(
+ GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
+typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC)(
+ GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,
+ GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize,
+ const void *bits);
+typedef void(GLAD_API_PTR *PFNGLCONSERVATIVERASTERPARAMETERFNVPROC)(GLenum pname, GLfloat value);
+typedef void(GLAD_API_PTR *PFNGLCONSERVATIVERASTERPARAMETERINVPROC)(GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLCONVOLUTIONFILTER1DEXTPROC)(GLenum target, GLenum internalformat,
+ GLsizei width, GLenum format,
+ GLenum type, const void *image);
+typedef void(GLAD_API_PTR *PFNGLCONVOLUTIONFILTER2DEXTPROC)(GLenum target, GLenum internalformat,
+ GLsizei width, GLsizei height,
+ GLenum format, GLenum type,
+ const void *image);
+typedef void(GLAD_API_PTR *PFNGLCONVOLUTIONPARAMETERFEXTPROC)(GLenum target, GLenum pname,
+ GLfloat params);
+typedef void(GLAD_API_PTR *PFNGLCONVOLUTIONPARAMETERFVEXTPROC)(GLenum target, GLenum pname,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLCONVOLUTIONPARAMETERIEXTPROC)(GLenum target, GLenum pname,
+ GLint params);
+typedef void(GLAD_API_PTR *PFNGLCONVOLUTIONPARAMETERIVEXTPROC)(GLenum target, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLCONVOLUTIONPARAMETERXOESPROC)(GLenum target, GLenum pname,
+ GLfixed param);
+typedef void(GLAD_API_PTR *PFNGLCONVOLUTIONPARAMETERXVOESPROC)(GLenum target, GLenum pname,
+ const GLfixed *params);
+typedef void(GLAD_API_PTR *PFNGLCOPYBUFFERSUBDATAPROC)(GLenum readTarget, GLenum writeTarget,
+ GLintptr readOffset, GLintptr writeOffset,
+ GLsizeiptr size);
+typedef void(GLAD_API_PTR *PFNGLCOPYCOLORSUBTABLEEXTPROC)(GLenum target, GLsizei start, GLint x,
+ GLint y, GLsizei width);
+typedef void(GLAD_API_PTR *PFNGLCOPYCOLORTABLESGIPROC)(GLenum target, GLenum internalformat,
+ GLint x, GLint y, GLsizei width);
+typedef void(GLAD_API_PTR *PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC)(GLenum target,
+ GLenum internalformat, GLint x,
+ GLint y, GLsizei width);
+typedef void(GLAD_API_PTR *PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC)(GLenum target,
+ GLenum internalformat, GLint x,
+ GLint y, GLsizei width,
+ GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLCOPYIMAGESUBDATAPROC)(GLuint srcName, GLenum srcTarget,
+ GLint srcLevel, GLint srcX, GLint srcY,
+ GLint srcZ, GLuint dstName, GLenum dstTarget,
+ GLint dstLevel, GLint dstX, GLint dstY,
+ GLint dstZ, GLsizei srcWidth,
+ GLsizei srcHeight, GLsizei srcDepth);
+typedef void(GLAD_API_PTR *PFNGLCOPYIMAGESUBDATANVPROC)(
+ GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ,
+ GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ,
+ GLsizei width, GLsizei height, GLsizei depth);
+typedef void(GLAD_API_PTR *PFNGLCOPYMULTITEXIMAGE1DEXTPROC)(GLenum texunit, GLenum target,
+ GLint level, GLenum internalformat,
+ GLint x, GLint y, GLsizei width,
+ GLint border);
+typedef void(GLAD_API_PTR *PFNGLCOPYMULTITEXIMAGE2DEXTPROC)(GLenum texunit, GLenum target,
+ GLint level, GLenum internalformat,
+ GLint x, GLint y, GLsizei width,
+ GLsizei height, GLint border);
+typedef void(GLAD_API_PTR *PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC)(GLenum texunit, GLenum target,
+ GLint level, GLint xoffset, GLint x,
+ GLint y, GLsizei width);
+typedef void(GLAD_API_PTR *PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC)(GLenum texunit, GLenum target,
+ GLint level, GLint xoffset,
+ GLint yoffset, GLint x, GLint y,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC)(GLenum texunit, GLenum target,
+ GLint level, GLint xoffset,
+ GLint yoffset, GLint zoffset,
+ GLint x, GLint y, GLsizei width,
+ GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLCOPYNAMEDBUFFERSUBDATAPROC)(GLuint readBuffer, GLuint writeBuffer,
+ GLintptr readOffset,
+ GLintptr writeOffset, GLsizeiptr size);
+typedef void(GLAD_API_PTR *PFNGLCOPYPATHNVPROC)(GLuint resultPath, GLuint srcPath);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXIMAGE1DPROC)(GLenum target, GLint level,
+ GLenum internalformat, GLint x, GLint y,
+ GLsizei width, GLint border);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXIMAGE1DEXTPROC)(GLenum target, GLint level,
+ GLenum internalformat, GLint x, GLint y,
+ GLsizei width, GLint border);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXIMAGE2DPROC)(GLenum target, GLint level,
+ GLenum internalformat, GLint x, GLint y,
+ GLsizei width, GLsizei height, GLint border);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXIMAGE2DEXTPROC)(GLenum target, GLint level,
+ GLenum internalformat, GLint x, GLint y,
+ GLsizei width, GLsizei height, GLint border);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset,
+ GLint x, GLint y, GLsizei width);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXSUBIMAGE1DEXTPROC)(GLenum target, GLint level, GLint xoffset,
+ GLint x, GLint y, GLsizei width);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset,
+ GLint yoffset, GLint x, GLint y,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXSUBIMAGE2DEXTPROC)(GLenum target, GLint level, GLint xoffset,
+ GLint yoffset, GLint x, GLint y,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset,
+ GLint yoffset, GLint zoffset, GLint x,
+ GLint y, GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXSUBIMAGE3DEXTPROC)(GLenum target, GLint level, GLint xoffset,
+ GLint yoffset, GLint zoffset, GLint x,
+ GLint y, GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXTUREIMAGE1DEXTPROC)(GLuint texture, GLenum target,
+ GLint level, GLenum internalformat,
+ GLint x, GLint y, GLsizei width,
+ GLint border);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXTUREIMAGE2DEXTPROC)(GLuint texture, GLenum target,
+ GLint level, GLenum internalformat,
+ GLint x, GLint y, GLsizei width,
+ GLsizei height, GLint border);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level,
+ GLint xoffset, GLint x, GLint y,
+ GLsizei width);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC)(GLuint texture, GLenum target,
+ GLint level, GLint xoffset, GLint x,
+ GLint y, GLsizei width);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level,
+ GLint xoffset, GLint yoffset, GLint x,
+ GLint y, GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC)(GLuint texture, GLenum target,
+ GLint level, GLint xoffset,
+ GLint yoffset, GLint x, GLint y,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXTURESUBIMAGE3DPROC)(GLuint texture, GLint level,
+ GLint xoffset, GLint yoffset,
+ GLint zoffset, GLint x, GLint y,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC)(GLuint texture, GLenum target,
+ GLint level, GLint xoffset,
+ GLint yoffset, GLint zoffset, GLint x,
+ GLint y, GLsizei width,
+ GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLCOVERFILLPATHINSTANCEDNVPROC)(GLsizei numPaths, GLenum pathNameType,
+ const void *paths, GLuint pathBase,
+ GLenum coverMode,
+ GLenum transformType,
+ const GLfloat *transformValues);
+typedef void(GLAD_API_PTR *PFNGLCOVERFILLPATHNVPROC)(GLuint path, GLenum coverMode);
+typedef void(GLAD_API_PTR *PFNGLCOVERSTROKEPATHINSTANCEDNVPROC)(
+ GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode,
+ GLenum transformType, const GLfloat *transformValues);
+typedef void(GLAD_API_PTR *PFNGLCOVERSTROKEPATHNVPROC)(GLuint path, GLenum coverMode);
+typedef void(GLAD_API_PTR *PFNGLCOVERAGEMODULATIONNVPROC)(GLenum components);
+typedef void(GLAD_API_PTR *PFNGLCOVERAGEMODULATIONTABLENVPROC)(GLsizei n, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLCREATEBUFFERSPROC)(GLsizei n, GLuint *buffers);
+typedef void(GLAD_API_PTR *PFNGLCREATECOMMANDLISTSNVPROC)(GLsizei n, GLuint *lists);
+typedef void(GLAD_API_PTR *PFNGLCREATEFRAMEBUFFERSPROC)(GLsizei n, GLuint *framebuffers);
+typedef void(GLAD_API_PTR *PFNGLCREATEMEMORYOBJECTSEXTPROC)(GLsizei n, GLuint *memoryObjects);
+typedef void(GLAD_API_PTR *PFNGLCREATEPERFQUERYINTELPROC)(GLuint queryId, GLuint *queryHandle);
+typedef GLuint(GLAD_API_PTR *PFNGLCREATEPROGRAMPROC)(void);
+typedef GLhandleARB(GLAD_API_PTR *PFNGLCREATEPROGRAMOBJECTARBPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLCREATEPROGRAMPIPELINESPROC)(GLsizei n, GLuint *pipelines);
+typedef GLuint(GLAD_API_PTR *PFNGLCREATEPROGRESSFENCENVXPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLCREATEQUERIESPROC)(GLenum target, GLsizei n, GLuint *ids);
+typedef void(GLAD_API_PTR *PFNGLCREATERENDERBUFFERSPROC)(GLsizei n, GLuint *renderbuffers);
+typedef void(GLAD_API_PTR *PFNGLCREATESAMPLERSPROC)(GLsizei n, GLuint *samplers);
+typedef void(GLAD_API_PTR *PFNGLCREATESEMAPHORESNVPROC)(GLsizei n, GLuint *semaphores);
+typedef GLuint(GLAD_API_PTR *PFNGLCREATESHADERPROC)(GLenum type);
+typedef GLhandleARB(GLAD_API_PTR *PFNGLCREATESHADEROBJECTARBPROC)(GLenum shaderType);
+typedef GLuint(GLAD_API_PTR *PFNGLCREATESHADERPROGRAMEXTPROC)(GLenum type, const GLchar *string);
+typedef GLuint(GLAD_API_PTR *PFNGLCREATESHADERPROGRAMVPROC)(GLenum type, GLsizei count,
+ const GLchar *const *strings);
+typedef void(GLAD_API_PTR *PFNGLCREATESTATESNVPROC)(GLsizei n, GLuint *states);
+typedef GLsync(GLAD_API_PTR *PFNGLCREATESYNCFROMCLEVENTARBPROC)(struct _cl_context *context,
+ struct _cl_event *event,
+ GLbitfield flags);
+typedef void(GLAD_API_PTR *PFNGLCREATETEXTURESPROC)(GLenum target, GLsizei n, GLuint *textures);
+typedef void(GLAD_API_PTR *PFNGLCREATETRANSFORMFEEDBACKSPROC)(GLsizei n, GLuint *ids);
+typedef void(GLAD_API_PTR *PFNGLCREATEVERTEXARRAYSPROC)(GLsizei n, GLuint *arrays);
+typedef void(GLAD_API_PTR *PFNGLCULLFACEPROC)(GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLCULLPARAMETERDVEXTPROC)(GLenum pname, GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLCULLPARAMETERFVEXTPROC)(GLenum pname, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLCURRENTPALETTEMATRIXARBPROC)(GLint index);
+typedef void(GLAD_API_PTR *PFNGLDEBUGMESSAGECALLBACKPROC)(GLDEBUGPROC callback,
+ const void *userParam);
+typedef void(GLAD_API_PTR *PFNGLDEBUGMESSAGECALLBACKAMDPROC)(GLDEBUGPROCAMD callback,
+ void *userParam);
+typedef void(GLAD_API_PTR *PFNGLDEBUGMESSAGECALLBACKARBPROC)(GLDEBUGPROCARB callback,
+ const void *userParam);
+typedef void(GLAD_API_PTR *PFNGLDEBUGMESSAGECONTROLPROC)(GLenum source, GLenum type,
+ GLenum severity, GLsizei count,
+ const GLuint *ids, GLboolean enabled);
+typedef void(GLAD_API_PTR *PFNGLDEBUGMESSAGECONTROLARBPROC)(GLenum source, GLenum type,
+ GLenum severity, GLsizei count,
+ const GLuint *ids, GLboolean enabled);
+typedef void(GLAD_API_PTR *PFNGLDEBUGMESSAGEENABLEAMDPROC)(GLenum category, GLenum severity,
+ GLsizei count, const GLuint *ids,
+ GLboolean enabled);
+typedef void(GLAD_API_PTR *PFNGLDEBUGMESSAGEINSERTPROC)(GLenum source, GLenum type, GLuint id,
+ GLenum severity, GLsizei length,
+ const GLchar *buf);
+typedef void(GLAD_API_PTR *PFNGLDEBUGMESSAGEINSERTAMDPROC)(GLenum category, GLenum severity,
+ GLuint id, GLsizei length,
+ const GLchar *buf);
+typedef void(GLAD_API_PTR *PFNGLDEBUGMESSAGEINSERTARBPROC)(GLenum source, GLenum type, GLuint id,
+ GLenum severity, GLsizei length,
+ const GLchar *buf);
+typedef void(GLAD_API_PTR *PFNGLDEFORMSGIXPROC)(GLbitfield mask);
+typedef void(GLAD_API_PTR *PFNGLDEFORMATIONMAP3DSGIXPROC)(GLenum target, GLdouble u1, GLdouble u2,
+ GLint ustride, GLint uorder, GLdouble v1,
+ GLdouble v2, GLint vstride, GLint vorder,
+ GLdouble w1, GLdouble w2, GLint wstride,
+ GLint worder, const GLdouble *points);
+typedef void(GLAD_API_PTR *PFNGLDEFORMATIONMAP3FSGIXPROC)(GLenum target, GLfloat u1, GLfloat u2,
+ GLint ustride, GLint uorder, GLfloat v1,
+ GLfloat v2, GLint vstride, GLint vorder,
+ GLfloat w1, GLfloat w2, GLint wstride,
+ GLint worder, const GLfloat *points);
+typedef void(GLAD_API_PTR *PFNGLDELETEASYNCMARKERSSGIXPROC)(GLuint marker, GLsizei range);
+typedef void(GLAD_API_PTR *PFNGLDELETEBUFFERSPROC)(GLsizei n, const GLuint *buffers);
+typedef void(GLAD_API_PTR *PFNGLDELETEBUFFERSARBPROC)(GLsizei n, const GLuint *buffers);
+typedef void(GLAD_API_PTR *PFNGLDELETECOMMANDLISTSNVPROC)(GLsizei n, const GLuint *lists);
+typedef void(GLAD_API_PTR *PFNGLDELETEFENCESAPPLEPROC)(GLsizei n, const GLuint *fences);
+typedef void(GLAD_API_PTR *PFNGLDELETEFENCESNVPROC)(GLsizei n, const GLuint *fences);
+typedef void(GLAD_API_PTR *PFNGLDELETEFRAGMENTSHADERATIPROC)(GLuint id);
+typedef void(GLAD_API_PTR *PFNGLDELETEFRAMEBUFFERSPROC)(GLsizei n, const GLuint *framebuffers);
+typedef void(GLAD_API_PTR *PFNGLDELETEFRAMEBUFFERSEXTPROC)(GLsizei n, const GLuint *framebuffers);
+typedef void(GLAD_API_PTR *PFNGLDELETEMEMORYOBJECTSEXTPROC)(GLsizei n, const GLuint *memoryObjects);
+typedef void(GLAD_API_PTR *PFNGLDELETENAMEDSTRINGARBPROC)(GLint namelen, const GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLDELETENAMESAMDPROC)(GLenum identifier, GLuint num,
+ const GLuint *names);
+typedef void(GLAD_API_PTR *PFNGLDELETEOBJECTARBPROC)(GLhandleARB obj);
+typedef void(GLAD_API_PTR *PFNGLDELETEOCCLUSIONQUERIESNVPROC)(GLsizei n, const GLuint *ids);
+typedef void(GLAD_API_PTR *PFNGLDELETEPATHSNVPROC)(GLuint path, GLsizei range);
+typedef void(GLAD_API_PTR *PFNGLDELETEPERFMONITORSAMDPROC)(GLsizei n, GLuint *monitors);
+typedef void(GLAD_API_PTR *PFNGLDELETEPERFQUERYINTELPROC)(GLuint queryHandle);
+typedef void(GLAD_API_PTR *PFNGLDELETEPROGRAMPROC)(GLuint program);
+typedef void(GLAD_API_PTR *PFNGLDELETEPROGRAMPIPELINESPROC)(GLsizei n, const GLuint *pipelines);
+typedef void(GLAD_API_PTR *PFNGLDELETEPROGRAMSARBPROC)(GLsizei n, const GLuint *programs);
+typedef void(GLAD_API_PTR *PFNGLDELETEPROGRAMSNVPROC)(GLsizei n, const GLuint *programs);
+typedef void(GLAD_API_PTR *PFNGLDELETEQUERIESPROC)(GLsizei n, const GLuint *ids);
+typedef void(GLAD_API_PTR *PFNGLDELETEQUERIESARBPROC)(GLsizei n, const GLuint *ids);
+typedef void(GLAD_API_PTR *PFNGLDELETEQUERYRESOURCETAGNVPROC)(GLsizei n, const GLint *tagIds);
+typedef void(GLAD_API_PTR *PFNGLDELETERENDERBUFFERSPROC)(GLsizei n, const GLuint *renderbuffers);
+typedef void(GLAD_API_PTR *PFNGLDELETERENDERBUFFERSEXTPROC)(GLsizei n, const GLuint *renderbuffers);
+typedef void(GLAD_API_PTR *PFNGLDELETESAMPLERSPROC)(GLsizei count, const GLuint *samplers);
+typedef void(GLAD_API_PTR *PFNGLDELETESEMAPHORESEXTPROC)(GLsizei n, const GLuint *semaphores);
+typedef void(GLAD_API_PTR *PFNGLDELETESHADERPROC)(GLuint shader);
+typedef void(GLAD_API_PTR *PFNGLDELETESTATESNVPROC)(GLsizei n, const GLuint *states);
+typedef void(GLAD_API_PTR *PFNGLDELETESYNCPROC)(GLsync sync);
+typedef void(GLAD_API_PTR *PFNGLDELETETEXTURESPROC)(GLsizei n, const GLuint *textures);
+typedef void(GLAD_API_PTR *PFNGLDELETETEXTURESEXTPROC)(GLsizei n, const GLuint *textures);
+typedef void(GLAD_API_PTR *PFNGLDELETETRANSFORMFEEDBACKSPROC)(GLsizei n, const GLuint *ids);
+typedef void(GLAD_API_PTR *PFNGLDELETETRANSFORMFEEDBACKSNVPROC)(GLsizei n, const GLuint *ids);
+typedef void(GLAD_API_PTR *PFNGLDELETEVERTEXARRAYSPROC)(GLsizei n, const GLuint *arrays);
+typedef void(GLAD_API_PTR *PFNGLDELETEVERTEXARRAYSAPPLEPROC)(GLsizei n, const GLuint *arrays);
+typedef void(GLAD_API_PTR *PFNGLDELETEVERTEXSHADEREXTPROC)(GLuint id);
+typedef void(GLAD_API_PTR *PFNGLDEPTHBOUNDSEXTPROC)(GLclampd zmin, GLclampd zmax);
+typedef void(GLAD_API_PTR *PFNGLDEPTHBOUNDSDNVPROC)(GLdouble zmin, GLdouble zmax);
+typedef void(GLAD_API_PTR *PFNGLDEPTHFUNCPROC)(GLenum func);
+typedef void(GLAD_API_PTR *PFNGLDEPTHMASKPROC)(GLboolean flag);
+typedef void(GLAD_API_PTR *PFNGLDEPTHRANGEPROC)(GLdouble n, GLdouble f);
+typedef void(GLAD_API_PTR *PFNGLDEPTHRANGEARRAYDVNVPROC)(GLuint first, GLsizei count,
+ const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLDEPTHRANGEARRAYVPROC)(GLuint first, GLsizei count,
+ const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLDEPTHRANGEINDEXEDPROC)(GLuint index, GLdouble n, GLdouble f);
+typedef void(GLAD_API_PTR *PFNGLDEPTHRANGEINDEXEDDNVPROC)(GLuint index, GLdouble n, GLdouble f);
+typedef void(GLAD_API_PTR *PFNGLDEPTHRANGEDNVPROC)(GLdouble zNear, GLdouble zFar);
+typedef void(GLAD_API_PTR *PFNGLDEPTHRANGEFPROC)(GLfloat n, GLfloat f);
+typedef void(GLAD_API_PTR *PFNGLDEPTHRANGEFOESPROC)(GLclampf n, GLclampf f);
+typedef void(GLAD_API_PTR *PFNGLDEPTHRANGEXOESPROC)(GLfixed n, GLfixed f);
+typedef void(GLAD_API_PTR *PFNGLDETACHOBJECTARBPROC)(GLhandleARB containerObj,
+ GLhandleARB attachedObj);
+typedef void(GLAD_API_PTR *PFNGLDETACHSHADERPROC)(GLuint program, GLuint shader);
+typedef void(GLAD_API_PTR *PFNGLDETAILTEXFUNCSGISPROC)(GLenum target, GLsizei n,
+ const GLfloat *points);
+typedef void(GLAD_API_PTR *PFNGLDISABLEPROC)(GLenum cap);
+typedef void(GLAD_API_PTR *PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC)(GLenum array, GLuint index);
+typedef void(GLAD_API_PTR *PFNGLDISABLECLIENTSTATEIEXTPROC)(GLenum array, GLuint index);
+typedef void(GLAD_API_PTR *PFNGLDISABLEINDEXEDEXTPROC)(GLenum target, GLuint index);
+typedef void(GLAD_API_PTR *PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC)(GLuint id);
+typedef void(GLAD_API_PTR *PFNGLDISABLEVERTEXARRAYATTRIBPROC)(GLuint vaobj, GLuint index);
+typedef void(GLAD_API_PTR *PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC)(GLuint vaobj, GLuint index);
+typedef void(GLAD_API_PTR *PFNGLDISABLEVERTEXARRAYEXTPROC)(GLuint vaobj, GLenum array);
+typedef void(GLAD_API_PTR *PFNGLDISABLEVERTEXATTRIBAPPLEPROC)(GLuint index, GLenum pname);
+typedef void(GLAD_API_PTR *PFNGLDISABLEVERTEXATTRIBARRAYPROC)(GLuint index);
+typedef void(GLAD_API_PTR *PFNGLDISABLEVERTEXATTRIBARRAYARBPROC)(GLuint index);
+typedef void(GLAD_API_PTR *PFNGLDISABLEIPROC)(GLenum target, GLuint index);
+typedef void(GLAD_API_PTR *PFNGLDISPATCHCOMPUTEPROC)(GLuint num_groups_x, GLuint num_groups_y,
+ GLuint num_groups_z);
+typedef void(GLAD_API_PTR *PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC)(
+ GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x,
+ GLuint group_size_y, GLuint group_size_z);
+typedef void(GLAD_API_PTR *PFNGLDISPATCHCOMPUTEINDIRECTPROC)(GLintptr indirect);
+typedef void(GLAD_API_PTR *PFNGLDRAWARRAYSPROC)(GLenum mode, GLint first, GLsizei count);
+typedef void(GLAD_API_PTR *PFNGLDRAWARRAYSEXTPROC)(GLenum mode, GLint first, GLsizei count);
+typedef void(GLAD_API_PTR *PFNGLDRAWARRAYSINDIRECTPROC)(GLenum mode, const void *indirect);
+typedef void(GLAD_API_PTR *PFNGLDRAWARRAYSINSTANCEDPROC)(GLenum mode, GLint first, GLsizei count,
+ GLsizei instancecount);
+typedef void(GLAD_API_PTR *PFNGLDRAWARRAYSINSTANCEDARBPROC)(GLenum mode, GLint first, GLsizei count,
+ GLsizei primcount);
+typedef void(GLAD_API_PTR *PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC)(GLenum mode, GLint first,
+ GLsizei count,
+ GLsizei instancecount,
+ GLuint baseinstance);
+typedef void(GLAD_API_PTR *PFNGLDRAWARRAYSINSTANCEDEXTPROC)(GLenum mode, GLint start, GLsizei count,
+ GLsizei primcount);
+typedef void(GLAD_API_PTR *PFNGLDRAWBUFFERPROC)(GLenum buf);
+typedef void(GLAD_API_PTR *PFNGLDRAWBUFFERSPROC)(GLsizei n, const GLenum *bufs);
+typedef void(GLAD_API_PTR *PFNGLDRAWBUFFERSARBPROC)(GLsizei n, const GLenum *bufs);
+typedef void(GLAD_API_PTR *PFNGLDRAWBUFFERSATIPROC)(GLsizei n, const GLenum *bufs);
+typedef void(GLAD_API_PTR *PFNGLDRAWCOMMANDSADDRESSNVPROC)(GLenum primitiveMode,
+ const GLuint64 *indirects,
+ const GLsizei *sizes, GLuint count);
+typedef void(GLAD_API_PTR *PFNGLDRAWCOMMANDSNVPROC)(GLenum primitiveMode, GLuint buffer,
+ const GLintptr *indirects, const GLsizei *sizes,
+ GLuint count);
+typedef void(GLAD_API_PTR *PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC)(const GLuint64 *indirects,
+ const GLsizei *sizes,
+ const GLuint *states,
+ const GLuint *fbos, GLuint count);
+typedef void(GLAD_API_PTR *PFNGLDRAWCOMMANDSSTATESNVPROC)(GLuint buffer, const GLintptr *indirects,
+ const GLsizei *sizes,
+ const GLuint *states, const GLuint *fbos,
+ GLuint count);
+typedef void(GLAD_API_PTR *PFNGLDRAWELEMENTARRAYAPPLEPROC)(GLenum mode, GLint first, GLsizei count);
+typedef void(GLAD_API_PTR *PFNGLDRAWELEMENTARRAYATIPROC)(GLenum mode, GLsizei count);
+typedef void(GLAD_API_PTR *PFNGLDRAWELEMENTSPROC)(GLenum mode, GLsizei count, GLenum type,
+ const void *indices);
+typedef void(GLAD_API_PTR *PFNGLDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type,
+ const void *indices, GLint basevertex);
+typedef void(GLAD_API_PTR *PFNGLDRAWELEMENTSINDIRECTPROC)(GLenum mode, GLenum type,
+ const void *indirect);
+typedef void(GLAD_API_PTR *PFNGLDRAWELEMENTSINSTANCEDPROC)(GLenum mode, GLsizei count, GLenum type,
+ const void *indices,
+ GLsizei instancecount);
+typedef void(GLAD_API_PTR *PFNGLDRAWELEMENTSINSTANCEDARBPROC)(GLenum mode, GLsizei count,
+ GLenum type, const void *indices,
+ GLsizei primcount);
+typedef void(GLAD_API_PTR *PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC)(GLenum mode, GLsizei count,
+ GLenum type,
+ const void *indices,
+ GLsizei instancecount,
+ GLuint baseinstance);
+typedef void(GLAD_API_PTR *PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)(GLenum mode, GLsizei count,
+ GLenum type,
+ const void *indices,
+ GLsizei instancecount,
+ GLint basevertex);
+typedef void(GLAD_API_PTR *PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC)(
+ GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount,
+ GLint basevertex, GLuint baseinstance);
+typedef void(GLAD_API_PTR *PFNGLDRAWELEMENTSINSTANCEDEXTPROC)(GLenum mode, GLsizei count,
+ GLenum type, const void *indices,
+ GLsizei primcount);
+typedef void(GLAD_API_PTR *PFNGLDRAWMESHARRAYSSUNPROC)(GLenum mode, GLint first, GLsizei count,
+ GLsizei width);
+typedef void(GLAD_API_PTR *PFNGLDRAWMESHTASKSINDIRECTNVPROC)(GLintptr indirect);
+typedef void(GLAD_API_PTR *PFNGLDRAWMESHTASKSNVPROC)(GLuint first, GLuint count);
+typedef void(GLAD_API_PTR *PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC)(GLenum mode, GLuint start,
+ GLuint end, GLint first,
+ GLsizei count);
+typedef void(GLAD_API_PTR *PFNGLDRAWRANGEELEMENTARRAYATIPROC)(GLenum mode, GLuint start, GLuint end,
+ GLsizei count);
+typedef void(GLAD_API_PTR *PFNGLDRAWRANGEELEMENTSPROC)(GLenum mode, GLuint start, GLuint end,
+ GLsizei count, GLenum type,
+ const void *indices);
+typedef void(GLAD_API_PTR *PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)(GLenum mode, GLuint start,
+ GLuint end, GLsizei count,
+ GLenum type, const void *indices,
+ GLint basevertex);
+typedef void(GLAD_API_PTR *PFNGLDRAWRANGEELEMENTSEXTPROC)(GLenum mode, GLuint start, GLuint end,
+ GLsizei count, GLenum type,
+ const void *indices);
+typedef void(GLAD_API_PTR *PFNGLDRAWTEXTURENVPROC)(GLuint texture, GLuint sampler, GLfloat x0,
+ GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z,
+ GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1);
+typedef void(GLAD_API_PTR *PFNGLDRAWTRANSFORMFEEDBACKPROC)(GLenum mode, GLuint id);
+typedef void(GLAD_API_PTR *PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC)(GLenum mode, GLuint id,
+ GLsizei instancecount);
+typedef void(GLAD_API_PTR *PFNGLDRAWTRANSFORMFEEDBACKNVPROC)(GLenum mode, GLuint id);
+typedef void(GLAD_API_PTR *PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC)(GLenum mode, GLuint id,
+ GLuint stream);
+typedef void(GLAD_API_PTR *PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC)(GLenum mode, GLuint id,
+ GLuint stream,
+ GLsizei instancecount);
+typedef void(GLAD_API_PTR *PFNGLDRAWVKIMAGENVPROC)(GLuint64 vkImage, GLuint sampler, GLfloat x0,
+ GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z,
+ GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1);
+typedef void(GLAD_API_PTR *PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC)(GLenum target, GLeglImageOES image,
+ const GLint *attrib_list);
+typedef void(GLAD_API_PTR *PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC)(GLuint texture,
+ GLeglImageOES image,
+ const GLint *attrib_list);
+typedef void(GLAD_API_PTR *PFNGLEDGEFLAGFORMATNVPROC)(GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLEDGEFLAGPOINTEREXTPROC)(GLsizei stride, GLsizei count,
+ const GLboolean *pointer);
+typedef void(GLAD_API_PTR *PFNGLEDGEFLAGPOINTERLISTIBMPROC)(GLint stride, const GLboolean **pointer,
+ GLint ptrstride);
+typedef void(GLAD_API_PTR *PFNGLELEMENTPOINTERAPPLEPROC)(GLenum type, const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLELEMENTPOINTERATIPROC)(GLenum type, const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLENABLEPROC)(GLenum cap);
+typedef void(GLAD_API_PTR *PFNGLENABLECLIENTSTATEINDEXEDEXTPROC)(GLenum array, GLuint index);
+typedef void(GLAD_API_PTR *PFNGLENABLECLIENTSTATEIEXTPROC)(GLenum array, GLuint index);
+typedef void(GLAD_API_PTR *PFNGLENABLEINDEXEDEXTPROC)(GLenum target, GLuint index);
+typedef void(GLAD_API_PTR *PFNGLENABLEVARIANTCLIENTSTATEEXTPROC)(GLuint id);
+typedef void(GLAD_API_PTR *PFNGLENABLEVERTEXARRAYATTRIBPROC)(GLuint vaobj, GLuint index);
+typedef void(GLAD_API_PTR *PFNGLENABLEVERTEXARRAYATTRIBEXTPROC)(GLuint vaobj, GLuint index);
+typedef void(GLAD_API_PTR *PFNGLENABLEVERTEXARRAYEXTPROC)(GLuint vaobj, GLenum array);
+typedef void(GLAD_API_PTR *PFNGLENABLEVERTEXATTRIBAPPLEPROC)(GLuint index, GLenum pname);
+typedef void(GLAD_API_PTR *PFNGLENABLEVERTEXATTRIBARRAYPROC)(GLuint index);
+typedef void(GLAD_API_PTR *PFNGLENABLEVERTEXATTRIBARRAYARBPROC)(GLuint index);
+typedef void(GLAD_API_PTR *PFNGLENABLEIPROC)(GLenum target, GLuint index);
+typedef void(GLAD_API_PTR *PFNGLENDCONDITIONALRENDERPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLENDCONDITIONALRENDERNVPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLENDCONDITIONALRENDERNVXPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLENDFRAGMENTSHADERATIPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLENDOCCLUSIONQUERYNVPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLENDPERFMONITORAMDPROC)(GLuint monitor);
+typedef void(GLAD_API_PTR *PFNGLENDPERFQUERYINTELPROC)(GLuint queryHandle);
+typedef void(GLAD_API_PTR *PFNGLENDQUERYPROC)(GLenum target);
+typedef void(GLAD_API_PTR *PFNGLENDQUERYARBPROC)(GLenum target);
+typedef void(GLAD_API_PTR *PFNGLENDQUERYINDEXEDPROC)(GLenum target, GLuint index);
+typedef void(GLAD_API_PTR *PFNGLENDTRANSFORMFEEDBACKPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLENDTRANSFORMFEEDBACKEXTPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLENDTRANSFORMFEEDBACKNVPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLENDVERTEXSHADEREXTPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLENDVIDEOCAPTURENVPROC)(GLuint video_capture_slot);
+typedef void(GLAD_API_PTR *PFNGLEVALCOORD1XOESPROC)(GLfixed u);
+typedef void(GLAD_API_PTR *PFNGLEVALCOORD1XVOESPROC)(const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLEVALCOORD2XOESPROC)(GLfixed u, GLfixed v);
+typedef void(GLAD_API_PTR *PFNGLEVALCOORD2XVOESPROC)(const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLEVALMAPSNVPROC)(GLenum target, GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLEVALUATEDEPTHVALUESARBPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLEXECUTEPROGRAMNVPROC)(GLenum target, GLuint id,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLEXTRACTCOMPONENTEXTPROC)(GLuint res, GLuint src, GLuint num);
+typedef void(GLAD_API_PTR *PFNGLFEEDBACKBUFFERXOESPROC)(GLsizei n, GLenum type,
+ const GLfixed *buffer);
+typedef GLsync(GLAD_API_PTR *PFNGLFENCESYNCPROC)(GLenum condition, GLbitfield flags);
+typedef void(GLAD_API_PTR *PFNGLFINALCOMBINERINPUTNVPROC)(GLenum variable, GLenum input,
+ GLenum mapping, GLenum componentUsage);
+typedef void(GLAD_API_PTR *PFNGLFINISHPROC)(void);
+typedef GLint(GLAD_API_PTR *PFNGLFINISHASYNCSGIXPROC)(GLuint *markerp);
+typedef void(GLAD_API_PTR *PFNGLFINISHFENCEAPPLEPROC)(GLuint fence);
+typedef void(GLAD_API_PTR *PFNGLFINISHFENCENVPROC)(GLuint fence);
+typedef void(GLAD_API_PTR *PFNGLFINISHOBJECTAPPLEPROC)(GLenum object, GLint name);
+typedef void(GLAD_API_PTR *PFNGLFINISHTEXTURESUNXPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLFLUSHPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLFLUSHMAPPEDBUFFERRANGEPROC)(GLenum target, GLintptr offset,
+ GLsizeiptr length);
+typedef void(GLAD_API_PTR *PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC)(GLenum target, GLintptr offset,
+ GLsizeiptr size);
+typedef void(GLAD_API_PTR *PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC)(GLuint buffer, GLintptr offset,
+ GLsizeiptr length);
+typedef void(GLAD_API_PTR *PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC)(GLuint buffer, GLintptr offset,
+ GLsizeiptr length);
+typedef void(GLAD_API_PTR *PFNGLFLUSHPIXELDATARANGENVPROC)(GLenum target);
+typedef void(GLAD_API_PTR *PFNGLFLUSHRASTERSGIXPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLFLUSHSTATICDATAIBMPROC)(GLenum target);
+typedef void(GLAD_API_PTR *PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC)(GLsizei length, void *pointer);
+typedef void(GLAD_API_PTR *PFNGLFLUSHVERTEXARRAYRANGENVPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLFOGCOORDFORMATNVPROC)(GLenum type, GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLFOGCOORDPOINTEREXTPROC)(GLenum type, GLsizei stride,
+ const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLFOGCOORDPOINTERLISTIBMPROC)(GLenum type, GLint stride,
+ const void **pointer, GLint ptrstride);
+typedef void(GLAD_API_PTR *PFNGLFOGCOORDDEXTPROC)(GLdouble coord);
+typedef void(GLAD_API_PTR *PFNGLFOGCOORDDVEXTPROC)(const GLdouble *coord);
+typedef void(GLAD_API_PTR *PFNGLFOGCOORDFEXTPROC)(GLfloat coord);
+typedef void(GLAD_API_PTR *PFNGLFOGCOORDFVEXTPROC)(const GLfloat *coord);
+typedef void(GLAD_API_PTR *PFNGLFOGCOORDHNVPROC)(GLhalfNV fog);
+typedef void(GLAD_API_PTR *PFNGLFOGCOORDHVNVPROC)(const GLhalfNV *fog);
+typedef void(GLAD_API_PTR *PFNGLFOGFUNCSGISPROC)(GLsizei n, const GLfloat *points);
+typedef void(GLAD_API_PTR *PFNGLFOGXOESPROC)(GLenum pname, GLfixed param);
+typedef void(GLAD_API_PTR *PFNGLFOGXVOESPROC)(GLenum pname, const GLfixed *param);
+typedef void(GLAD_API_PTR *PFNGLFRAGMENTCOLORMATERIALSGIXPROC)(GLenum face, GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLFRAGMENTCOVERAGECOLORNVPROC)(GLuint color);
+typedef void(GLAD_API_PTR *PFNGLFRAGMENTLIGHTMODELFSGIXPROC)(GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLFRAGMENTLIGHTMODELFVSGIXPROC)(GLenum pname, const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLFRAGMENTLIGHTMODELISGIXPROC)(GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLFRAGMENTLIGHTMODELIVSGIXPROC)(GLenum pname, const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLFRAGMENTLIGHTFSGIXPROC)(GLenum light, GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLFRAGMENTLIGHTFVSGIXPROC)(GLenum light, GLenum pname,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLFRAGMENTLIGHTISGIXPROC)(GLenum light, GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLFRAGMENTLIGHTIVSGIXPROC)(GLenum light, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLFRAGMENTMATERIALFSGIXPROC)(GLenum face, GLenum pname,
+ GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLFRAGMENTMATERIALFVSGIXPROC)(GLenum face, GLenum pname,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLFRAGMENTMATERIALISGIXPROC)(GLenum face, GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLFRAGMENTMATERIALIVSGIXPROC)(GLenum face, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLFRAMETERMINATORGREMEDYPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLFRAMEZOOMSGIXPROC)(GLint factor);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC)(GLuint framebuffer, GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC)(GLuint framebuffer, GLsizei n,
+ const GLenum *bufs);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERPARAMETERIPROC)(GLenum target, GLenum pname,
+ GLint param);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERPARAMETERIMESAPROC)(GLenum target, GLenum pname,
+ GLint param);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERREADBUFFEREXTPROC)(GLuint framebuffer, GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERRENDERBUFFERPROC)(GLenum target, GLenum attachment,
+ GLenum renderbuffertarget,
+ GLuint renderbuffer);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC)(GLenum target, GLenum attachment,
+ GLenum renderbuffertarget,
+ GLuint renderbuffer);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC)(GLenum target, GLuint start,
+ GLsizei count,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC)(GLenum target, GLuint start,
+ GLsizei count,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC)(GLenum target,
+ GLuint numsamples,
+ GLuint pixelindex,
+ const GLfloat *values);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTUREPROC)(GLenum target, GLenum attachment,
+ GLuint texture, GLint level);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE1DPROC)(GLenum target, GLenum attachment,
+ GLenum textarget, GLuint texture,
+ GLint level);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE1DEXTPROC)(GLenum target, GLenum attachment,
+ GLenum textarget, GLuint texture,
+ GLint level);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE2DPROC)(GLenum target, GLenum attachment,
+ GLenum textarget, GLuint texture,
+ GLint level);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)(GLenum target, GLenum attachment,
+ GLenum textarget, GLuint texture,
+ GLint level);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE3DPROC)(GLenum target, GLenum attachment,
+ GLenum textarget, GLuint texture,
+ GLint level, GLint zoffset);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE3DEXTPROC)(GLenum target, GLenum attachment,
+ GLenum textarget, GLuint texture,
+ GLint level, GLint zoffset);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTUREARBPROC)(GLenum target, GLenum attachment,
+ GLuint texture, GLint level);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTUREEXTPROC)(GLenum target, GLenum attachment,
+ GLuint texture, GLint level);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTUREFACEARBPROC)(GLenum target, GLenum attachment,
+ GLuint texture, GLint level,
+ GLenum face);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC)(GLenum target, GLenum attachment,
+ GLuint texture, GLint level,
+ GLenum face);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURELAYERPROC)(GLenum target, GLenum attachment,
+ GLuint texture, GLint level,
+ GLint layer);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURELAYERARBPROC)(GLenum target, GLenum attachment,
+ GLuint texture, GLint level,
+ GLint layer);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC)(GLenum target, GLenum attachment,
+ GLuint texture, GLint level,
+ GLint layer);
+typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC)(GLenum target,
+ GLenum attachment,
+ GLuint texture, GLint level,
+ GLint baseViewIndex,
+ GLsizei numViews);
+typedef void(GLAD_API_PTR *PFNGLFREEOBJECTBUFFERATIPROC)(GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLFRONTFACEPROC)(GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLFRUSTUMFOESPROC)(GLfloat l, GLfloat r, GLfloat b, GLfloat t,
+ GLfloat n, GLfloat f);
+typedef void(GLAD_API_PTR *PFNGLFRUSTUMXOESPROC)(GLfixed l, GLfixed r, GLfixed b, GLfixed t,
+ GLfixed n, GLfixed f);
+typedef GLuint(GLAD_API_PTR *PFNGLGENASYNCMARKERSSGIXPROC)(GLsizei range);
+typedef void(GLAD_API_PTR *PFNGLGENBUFFERSPROC)(GLsizei n, GLuint *buffers);
+typedef void(GLAD_API_PTR *PFNGLGENBUFFERSARBPROC)(GLsizei n, GLuint *buffers);
+typedef void(GLAD_API_PTR *PFNGLGENFENCESAPPLEPROC)(GLsizei n, GLuint *fences);
+typedef void(GLAD_API_PTR *PFNGLGENFENCESNVPROC)(GLsizei n, GLuint *fences);
+typedef GLuint(GLAD_API_PTR *PFNGLGENFRAGMENTSHADERSATIPROC)(GLuint range);
+typedef void(GLAD_API_PTR *PFNGLGENFRAMEBUFFERSPROC)(GLsizei n, GLuint *framebuffers);
+typedef void(GLAD_API_PTR *PFNGLGENFRAMEBUFFERSEXTPROC)(GLsizei n, GLuint *framebuffers);
+typedef void(GLAD_API_PTR *PFNGLGENNAMESAMDPROC)(GLenum identifier, GLuint num, GLuint *names);
+typedef void(GLAD_API_PTR *PFNGLGENOCCLUSIONQUERIESNVPROC)(GLsizei n, GLuint *ids);
+typedef GLuint(GLAD_API_PTR *PFNGLGENPATHSNVPROC)(GLsizei range);
+typedef void(GLAD_API_PTR *PFNGLGENPERFMONITORSAMDPROC)(GLsizei n, GLuint *monitors);
+typedef void(GLAD_API_PTR *PFNGLGENPROGRAMPIPELINESPROC)(GLsizei n, GLuint *pipelines);
+typedef void(GLAD_API_PTR *PFNGLGENPROGRAMSARBPROC)(GLsizei n, GLuint *programs);
+typedef void(GLAD_API_PTR *PFNGLGENPROGRAMSNVPROC)(GLsizei n, GLuint *programs);
+typedef void(GLAD_API_PTR *PFNGLGENQUERIESPROC)(GLsizei n, GLuint *ids);
+typedef void(GLAD_API_PTR *PFNGLGENQUERIESARBPROC)(GLsizei n, GLuint *ids);
+typedef void(GLAD_API_PTR *PFNGLGENQUERYRESOURCETAGNVPROC)(GLsizei n, GLint *tagIds);
+typedef void(GLAD_API_PTR *PFNGLGENRENDERBUFFERSPROC)(GLsizei n, GLuint *renderbuffers);
+typedef void(GLAD_API_PTR *PFNGLGENRENDERBUFFERSEXTPROC)(GLsizei n, GLuint *renderbuffers);
+typedef void(GLAD_API_PTR *PFNGLGENSAMPLERSPROC)(GLsizei count, GLuint *samplers);
+typedef void(GLAD_API_PTR *PFNGLGENSEMAPHORESEXTPROC)(GLsizei n, GLuint *semaphores);
+typedef GLuint(GLAD_API_PTR *PFNGLGENSYMBOLSEXTPROC)(GLenum datatype, GLenum storagetype,
+ GLenum range, GLuint components);
+typedef void(GLAD_API_PTR *PFNGLGENTEXTURESPROC)(GLsizei n, GLuint *textures);
+typedef void(GLAD_API_PTR *PFNGLGENTEXTURESEXTPROC)(GLsizei n, GLuint *textures);
+typedef void(GLAD_API_PTR *PFNGLGENTRANSFORMFEEDBACKSPROC)(GLsizei n, GLuint *ids);
+typedef void(GLAD_API_PTR *PFNGLGENTRANSFORMFEEDBACKSNVPROC)(GLsizei n, GLuint *ids);
+typedef void(GLAD_API_PTR *PFNGLGENVERTEXARRAYSPROC)(GLsizei n, GLuint *arrays);
+typedef void(GLAD_API_PTR *PFNGLGENVERTEXARRAYSAPPLEPROC)(GLsizei n, GLuint *arrays);
+typedef GLuint(GLAD_API_PTR *PFNGLGENVERTEXSHADERSEXTPROC)(GLuint range);
+typedef void(GLAD_API_PTR *PFNGLGENERATEMIPMAPPROC)(GLenum target);
+typedef void(GLAD_API_PTR *PFNGLGENERATEMIPMAPEXTPROC)(GLenum target);
+typedef void(GLAD_API_PTR *PFNGLGENERATEMULTITEXMIPMAPEXTPROC)(GLenum texunit, GLenum target);
+typedef void(GLAD_API_PTR *PFNGLGENERATETEXTUREMIPMAPPROC)(GLuint texture);
+typedef void(GLAD_API_PTR *PFNGLGENERATETEXTUREMIPMAPEXTPROC)(GLuint texture, GLenum target);
+typedef void(GLAD_API_PTR *PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC)(GLuint program,
+ GLuint bufferIndex,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETACTIVEATTRIBPROC)(GLuint program, GLuint index, GLsizei bufSize,
+ GLsizei *length, GLint *size, GLenum *type,
+ GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLGETACTIVEATTRIBARBPROC)(GLhandleARB programObj, GLuint index,
+ GLsizei maxLength, GLsizei *length,
+ GLint *size, GLenum *type, GLcharARB *name);
+typedef void(GLAD_API_PTR *PFNGLGETACTIVESUBROUTINENAMEPROC)(GLuint program, GLenum shadertype,
+ GLuint index, GLsizei bufSize,
+ GLsizei *length, GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC)(GLuint program,
+ GLenum shadertype, GLuint index,
+ GLsizei bufSize,
+ GLsizei *length, GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC)(GLuint program, GLenum shadertype,
+ GLuint index, GLenum pname,
+ GLint *values);
+typedef void(GLAD_API_PTR *PFNGLGETACTIVEUNIFORMPROC)(GLuint program, GLuint index, GLsizei bufSize,
+ GLsizei *length, GLint *size, GLenum *type,
+ GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLGETACTIVEUNIFORMARBPROC)(GLhandleARB programObj, GLuint index,
+ GLsizei maxLength, GLsizei *length,
+ GLint *size, GLenum *type,
+ GLcharARB *name);
+typedef void(GLAD_API_PTR *PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)(GLuint program,
+ GLuint uniformBlockIndex,
+ GLsizei bufSize, GLsizei *length,
+ GLchar *uniformBlockName);
+typedef void(GLAD_API_PTR *PFNGLGETACTIVEUNIFORMBLOCKIVPROC)(GLuint program,
+ GLuint uniformBlockIndex, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETACTIVEUNIFORMNAMEPROC)(GLuint program, GLuint uniformIndex,
+ GLsizei bufSize, GLsizei *length,
+ GLchar *uniformName);
+typedef void(GLAD_API_PTR *PFNGLGETACTIVEUNIFORMSIVPROC)(GLuint program, GLsizei uniformCount,
+ const GLuint *uniformIndices, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETACTIVEVARYINGNVPROC)(GLuint program, GLuint index,
+ GLsizei bufSize, GLsizei *length,
+ GLsizei *size, GLenum *type, GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLGETARRAYOBJECTFVATIPROC)(GLenum array, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETARRAYOBJECTIVATIPROC)(GLenum array, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETATTACHEDOBJECTSARBPROC)(GLhandleARB containerObj,
+ GLsizei maxCount, GLsizei *count,
+ GLhandleARB *obj);
+typedef void(GLAD_API_PTR *PFNGLGETATTACHEDSHADERSPROC)(GLuint program, GLsizei maxCount,
+ GLsizei *count, GLuint *shaders);
+typedef GLint(GLAD_API_PTR *PFNGLGETATTRIBLOCATIONPROC)(GLuint program, const GLchar *name);
+typedef GLint(GLAD_API_PTR *PFNGLGETATTRIBLOCATIONARBPROC)(GLhandleARB programObj,
+ const GLcharARB *name);
+typedef void(GLAD_API_PTR *PFNGLGETBOOLEANINDEXEDVEXTPROC)(GLenum target, GLuint index,
+ GLboolean *data);
+typedef void(GLAD_API_PTR *PFNGLGETBOOLEANI_VPROC)(GLenum target, GLuint index, GLboolean *data);
+typedef void(GLAD_API_PTR *PFNGLGETBOOLEANVPROC)(GLenum pname, GLboolean *data);
+typedef void(GLAD_API_PTR *PFNGLGETBUFFERPARAMETERI64VPROC)(GLenum target, GLenum pname,
+ GLint64 *params);
+typedef void(GLAD_API_PTR *PFNGLGETBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETBUFFERPARAMETERIVARBPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETBUFFERPARAMETERUI64VNVPROC)(GLenum target, GLenum pname,
+ GLuint64EXT *params);
+typedef void(GLAD_API_PTR *PFNGLGETBUFFERPOINTERVPROC)(GLenum target, GLenum pname, void **params);
+typedef void(GLAD_API_PTR *PFNGLGETBUFFERPOINTERVARBPROC)(GLenum target, GLenum pname,
+ void **params);
+typedef void(GLAD_API_PTR *PFNGLGETBUFFERSUBDATAPROC)(GLenum target, GLintptr offset,
+ GLsizeiptr size, void *data);
+typedef void(GLAD_API_PTR *PFNGLGETBUFFERSUBDATAARBPROC)(GLenum target, GLintptrARB offset,
+ GLsizeiptrARB size, void *data);
+typedef void(GLAD_API_PTR *PFNGLGETCLIPPLANEFOESPROC)(GLenum plane, GLfloat *equation);
+typedef void(GLAD_API_PTR *PFNGLGETCLIPPLANEXOESPROC)(GLenum plane, GLfixed *equation);
+typedef void(GLAD_API_PTR *PFNGLGETCOLORTABLEEXTPROC)(GLenum target, GLenum format, GLenum type,
+ void *data);
+typedef void(GLAD_API_PTR *PFNGLGETCOLORTABLEPARAMETERFVEXTPROC)(GLenum target, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETCOLORTABLEPARAMETERFVSGIPROC)(GLenum target, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETCOLORTABLEPARAMETERIVEXTPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETCOLORTABLEPARAMETERIVSGIPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETCOLORTABLESGIPROC)(GLenum target, GLenum format, GLenum type,
+ void *table);
+typedef void(GLAD_API_PTR *PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC)(GLenum stage, GLenum portion,
+ GLenum variable, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC)(GLenum stage, GLenum portion,
+ GLenum variable, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC)(GLenum stage, GLenum portion,
+ GLenum pname, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC)(GLenum stage, GLenum portion,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC)(GLenum stage, GLenum pname,
+ GLfloat *params);
+typedef GLuint(GLAD_API_PTR *PFNGLGETCOMMANDHEADERNVPROC)(GLenum tokenID, GLuint size);
+typedef void(GLAD_API_PTR *PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC)(GLenum texunit, GLenum target,
+ GLint lod, void *img);
+typedef void(GLAD_API_PTR *PFNGLGETCOMPRESSEDTEXIMAGEPROC)(GLenum target, GLint level, void *img);
+typedef void(GLAD_API_PTR *PFNGLGETCOMPRESSEDTEXIMAGEARBPROC)(GLenum target, GLint level,
+ void *img);
+typedef void(GLAD_API_PTR *PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC)(GLuint texture, GLint level,
+ GLsizei bufSize, void *pixels);
+typedef void(GLAD_API_PTR *PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC)(GLuint texture, GLenum target,
+ GLint lod, void *img);
+typedef void(GLAD_API_PTR *PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC)(GLuint texture, GLint level,
+ GLint xoffset, GLint yoffset,
+ GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth,
+ GLsizei bufSize, void *pixels);
+typedef void(GLAD_API_PTR *PFNGLGETCONVOLUTIONFILTEREXTPROC)(GLenum target, GLenum format,
+ GLenum type, void *image);
+typedef void(GLAD_API_PTR *PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC)(GLenum target, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETCONVOLUTIONPARAMETERXVOESPROC)(GLenum target, GLenum pname,
+ GLfixed *params);
+typedef void(GLAD_API_PTR *PFNGLGETCOVERAGEMODULATIONTABLENVPROC)(GLsizei bufSize, GLfloat *v);
+typedef GLuint(GLAD_API_PTR *PFNGLGETDEBUGMESSAGELOGPROC)(GLuint count, GLsizei bufSize,
+ GLenum *sources, GLenum *types,
+ GLuint *ids, GLenum *severities,
+ GLsizei *lengths, GLchar *messageLog);
+typedef GLuint(GLAD_API_PTR *PFNGLGETDEBUGMESSAGELOGAMDPROC)(GLuint count, GLsizei bufSize,
+ GLenum *categories, GLenum *severities,
+ GLuint *ids, GLsizei *lengths,
+ GLchar *message);
+typedef GLuint(GLAD_API_PTR *PFNGLGETDEBUGMESSAGELOGARBPROC)(GLuint count, GLsizei bufSize,
+ GLenum *sources, GLenum *types,
+ GLuint *ids, GLenum *severities,
+ GLsizei *lengths, GLchar *messageLog);
+typedef void(GLAD_API_PTR *PFNGLGETDETAILTEXFUNCSGISPROC)(GLenum target, GLfloat *points);
+typedef void(GLAD_API_PTR *PFNGLGETDOUBLEINDEXEDVEXTPROC)(GLenum target, GLuint index,
+ GLdouble *data);
+typedef void(GLAD_API_PTR *PFNGLGETDOUBLEI_VPROC)(GLenum target, GLuint index, GLdouble *data);
+typedef void(GLAD_API_PTR *PFNGLGETDOUBLEI_VEXTPROC)(GLenum pname, GLuint index, GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETDOUBLEVPROC)(GLenum pname, GLdouble *data);
+typedef GLenum(GLAD_API_PTR *PFNGLGETERRORPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLGETFENCEIVNVPROC)(GLuint fence, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC)(GLenum variable,
+ GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC)(GLenum variable,
+ GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETFIRSTPERFQUERYIDINTELPROC)(GLuint *queryId);
+typedef void(GLAD_API_PTR *PFNGLGETFIXEDVOESPROC)(GLenum pname, GLfixed *params);
+typedef void(GLAD_API_PTR *PFNGLGETFLOATINDEXEDVEXTPROC)(GLenum target, GLuint index,
+ GLfloat *data);
+typedef void(GLAD_API_PTR *PFNGLGETFLOATI_VPROC)(GLenum target, GLuint index, GLfloat *data);
+typedef void(GLAD_API_PTR *PFNGLGETFLOATI_VEXTPROC)(GLenum pname, GLuint index, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETFLOATVPROC)(GLenum pname, GLfloat *data);
+typedef void(GLAD_API_PTR *PFNGLGETFOGFUNCSGISPROC)(GLfloat *points);
+typedef GLint(GLAD_API_PTR *PFNGLGETFRAGDATAINDEXPROC)(GLuint program, const GLchar *name);
+typedef GLint(GLAD_API_PTR *PFNGLGETFRAGDATALOCATIONPROC)(GLuint program, const GLchar *name);
+typedef GLint(GLAD_API_PTR *PFNGLGETFRAGDATALOCATIONEXTPROC)(GLuint program, const GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLGETFRAGMENTLIGHTFVSGIXPROC)(GLenum light, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETFRAGMENTLIGHTIVSGIXPROC)(GLenum light, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETFRAGMENTMATERIALFVSGIXPROC)(GLenum face, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETFRAGMENTMATERIALIVSGIXPROC)(GLenum face, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLenum target,
+ GLenum attachment,
+ GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)(GLenum target,
+ GLenum attachment,
+ GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETFRAMEBUFFERPARAMETERFVAMDPROC)(GLenum target, GLenum pname,
+ GLuint numsamples,
+ GLuint pixelindex, GLsizei size,
+ GLfloat *values);
+typedef void(GLAD_API_PTR *PFNGLGETFRAMEBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC)(GLuint framebuffer, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef GLenum(GLAD_API_PTR *PFNGLGETGRAPHICSRESETSTATUSPROC)(void);
+typedef GLenum(GLAD_API_PTR *PFNGLGETGRAPHICSRESETSTATUSARBPROC)(void);
+typedef GLhandleARB(GLAD_API_PTR *PFNGLGETHANDLEARBPROC)(GLenum pname);
+typedef void(GLAD_API_PTR *PFNGLGETHISTOGRAMEXTPROC)(GLenum target, GLboolean reset, GLenum format,
+ GLenum type, void *values);
+typedef void(GLAD_API_PTR *PFNGLGETHISTOGRAMPARAMETERFVEXTPROC)(GLenum target, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETHISTOGRAMPARAMETERIVEXTPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETHISTOGRAMPARAMETERXVOESPROC)(GLenum target, GLenum pname,
+ GLfixed *params);
+typedef GLuint64(GLAD_API_PTR *PFNGLGETIMAGEHANDLEARBPROC)(GLuint texture, GLint level,
+ GLboolean layered, GLint layer,
+ GLenum format);
+typedef GLuint64(GLAD_API_PTR *PFNGLGETIMAGEHANDLENVPROC)(GLuint texture, GLint level,
+ GLboolean layered, GLint layer,
+ GLenum format);
+typedef void(GLAD_API_PTR *PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC)(GLenum target, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETINFOLOGARBPROC)(GLhandleARB obj, GLsizei maxLength,
+ GLsizei *length, GLcharARB *infoLog);
+typedef GLint(GLAD_API_PTR *PFNGLGETINSTRUMENTSSGIXPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLGETINTEGER64I_VPROC)(GLenum target, GLuint index, GLint64 *data);
+typedef void(GLAD_API_PTR *PFNGLGETINTEGER64VPROC)(GLenum pname, GLint64 *data);
+typedef void(GLAD_API_PTR *PFNGLGETINTEGERINDEXEDVEXTPROC)(GLenum target, GLuint index,
+ GLint *data);
+typedef void(GLAD_API_PTR *PFNGLGETINTEGERI_VPROC)(GLenum target, GLuint index, GLint *data);
+typedef void(GLAD_API_PTR *PFNGLGETINTEGERUI64I_VNVPROC)(GLenum value, GLuint index,
+ GLuint64EXT *result);
+typedef void(GLAD_API_PTR *PFNGLGETINTEGERUI64VNVPROC)(GLenum value, GLuint64EXT *result);
+typedef void(GLAD_API_PTR *PFNGLGETINTEGERVPROC)(GLenum pname, GLint *data);
+typedef void(GLAD_API_PTR *PFNGLGETINTERNALFORMATSAMPLEIVNVPROC)(GLenum target,
+ GLenum internalformat,
+ GLsizei samples, GLenum pname,
+ GLsizei count, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETINTERNALFORMATI64VPROC)(GLenum target, GLenum internalformat,
+ GLenum pname, GLsizei count,
+ GLint64 *params);
+typedef void(GLAD_API_PTR *PFNGLGETINTERNALFORMATIVPROC)(GLenum target, GLenum internalformat,
+ GLenum pname, GLsizei count,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETINVARIANTBOOLEANVEXTPROC)(GLuint id, GLenum value,
+ GLboolean *data);
+typedef void(GLAD_API_PTR *PFNGLGETINVARIANTFLOATVEXTPROC)(GLuint id, GLenum value, GLfloat *data);
+typedef void(GLAD_API_PTR *PFNGLGETINVARIANTINTEGERVEXTPROC)(GLuint id, GLenum value, GLint *data);
+typedef void(GLAD_API_PTR *PFNGLGETLIGHTXOESPROC)(GLenum light, GLenum pname, GLfixed *params);
+typedef void(GLAD_API_PTR *PFNGLGETLISTPARAMETERFVSGIXPROC)(GLuint list, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETLISTPARAMETERIVSGIXPROC)(GLuint list, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC)(GLuint id, GLenum value,
+ GLboolean *data);
+typedef void(GLAD_API_PTR *PFNGLGETLOCALCONSTANTFLOATVEXTPROC)(GLuint id, GLenum value,
+ GLfloat *data);
+typedef void(GLAD_API_PTR *PFNGLGETLOCALCONSTANTINTEGERVEXTPROC)(GLuint id, GLenum value,
+ GLint *data);
+typedef void(GLAD_API_PTR *PFNGLGETMAPATTRIBPARAMETERFVNVPROC)(GLenum target, GLuint index,
+ GLenum pname, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETMAPATTRIBPARAMETERIVNVPROC)(GLenum target, GLuint index,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETMAPCONTROLPOINTSNVPROC)(GLenum target, GLuint index, GLenum type,
+ GLsizei ustride, GLsizei vstride,
+ GLboolean packed, void *points);
+typedef void(GLAD_API_PTR *PFNGLGETMAPPARAMETERFVNVPROC)(GLenum target, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETMAPPARAMETERIVNVPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETMAPXVOESPROC)(GLenum target, GLenum query, GLfixed *v);
+typedef void(GLAD_API_PTR *PFNGLGETMATERIALXOESPROC)(GLenum face, GLenum pname, GLfixed param);
+typedef void(GLAD_API_PTR *PFNGLGETMEMORYOBJECTDETACHEDRESOURCESUIVNVPROC)(
+ GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC)(GLuint memoryObject,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETMINMAXEXTPROC)(GLenum target, GLboolean reset, GLenum format,
+ GLenum type, void *values);
+typedef void(GLAD_API_PTR *PFNGLGETMINMAXPARAMETERFVEXTPROC)(GLenum target, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETMINMAXPARAMETERIVEXTPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETMULTITEXENVFVEXTPROC)(GLenum texunit, GLenum target,
+ GLenum pname, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETMULTITEXENVIVEXTPROC)(GLenum texunit, GLenum target,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETMULTITEXGENDVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname,
+ GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETMULTITEXGENFVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETMULTITEXGENIVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETMULTITEXIMAGEEXTPROC)(GLenum texunit, GLenum target, GLint level,
+ GLenum format, GLenum type, void *pixels);
+typedef void(GLAD_API_PTR *PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC)(GLenum texunit, GLenum target,
+ GLint level, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC)(GLenum texunit, GLenum target,
+ GLint level, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETMULTITEXPARAMETERIIVEXTPROC)(GLenum texunit, GLenum target,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETMULTITEXPARAMETERIUIVEXTPROC)(GLenum texunit, GLenum target,
+ GLenum pname, GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETMULTITEXPARAMETERFVEXTPROC)(GLenum texunit, GLenum target,
+ GLenum pname, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETMULTITEXPARAMETERIVEXTPROC)(GLenum texunit, GLenum target,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETMULTISAMPLEFVPROC)(GLenum pname, GLuint index, GLfloat *val);
+typedef void(GLAD_API_PTR *PFNGLGETMULTISAMPLEFVNVPROC)(GLenum pname, GLuint index, GLfloat *val);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDBUFFERPARAMETERI64VPROC)(GLuint buffer, GLenum pname,
+ GLint64 *params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDBUFFERPARAMETERIVPROC)(GLuint buffer, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC)(GLuint buffer, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC)(GLuint buffer, GLenum pname,
+ GLuint64EXT *params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDBUFFERPOINTERVPROC)(GLuint buffer, GLenum pname,
+ void **params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDBUFFERPOINTERVEXTPROC)(GLuint buffer, GLenum pname,
+ void **params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLintptr offset,
+ GLsizeiptr size, void *data);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDBUFFERSUBDATAEXTPROC)(GLuint buffer, GLintptr offset,
+ GLsizeiptr size, void *data);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLuint framebuffer,
+ GLenum attachment,
+ GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)(GLuint framebuffer,
+ GLenum attachment,
+ GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDFRAMEBUFFERPARAMETERFVAMDPROC)(
+ GLuint framebuffer, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size,
+ GLfloat *values);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC)(GLuint framebuffer,
+ GLenum pname, GLint *param);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC)(GLuint framebuffer,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC)(GLuint program,
+ GLenum target,
+ GLuint index,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC)(GLuint program,
+ GLenum target,
+ GLuint index,
+ GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC)(GLuint program,
+ GLenum target, GLuint index,
+ GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC)(GLuint program,
+ GLenum target, GLuint index,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDPROGRAMSTRINGEXTPROC)(GLuint program, GLenum target,
+ GLenum pname, void *string);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDPROGRAMIVEXTPROC)(GLuint program, GLenum target,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC)(GLuint renderbuffer,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC)(GLuint renderbuffer,
+ GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDSTRINGARBPROC)(GLint namelen, const GLchar *name,
+ GLsizei bufSize, GLint *stringlen,
+ GLchar *string);
+typedef void(GLAD_API_PTR *PFNGLGETNAMEDSTRINGIVARBPROC)(GLint namelen, const GLchar *name,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETNEXTPERFQUERYIDINTELPROC)(GLuint queryId, GLuint *nextQueryId);
+typedef void(GLAD_API_PTR *PFNGLGETOBJECTBUFFERFVATIPROC)(GLuint buffer, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETOBJECTBUFFERIVATIPROC)(GLuint buffer, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETOBJECTLABELPROC)(GLenum identifier, GLuint name, GLsizei bufSize,
+ GLsizei *length, GLchar *label);
+typedef void(GLAD_API_PTR *PFNGLGETOBJECTLABELEXTPROC)(GLenum type, GLuint object, GLsizei bufSize,
+ GLsizei *length, GLchar *label);
+typedef void(GLAD_API_PTR *PFNGLGETOBJECTPARAMETERFVARBPROC)(GLhandleARB obj, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETOBJECTPARAMETERIVAPPLEPROC)(GLenum objectType, GLuint name,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETOBJECTPARAMETERIVARBPROC)(GLhandleARB obj, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETOBJECTPTRLABELPROC)(const void *ptr, GLsizei bufSize,
+ GLsizei *length, GLchar *label);
+typedef void(GLAD_API_PTR *PFNGLGETOCCLUSIONQUERYIVNVPROC)(GLuint id, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETOCCLUSIONQUERYUIVNVPROC)(GLuint id, GLenum pname,
+ GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETPATHCOMMANDSNVPROC)(GLuint path, GLubyte *commands);
+typedef void(GLAD_API_PTR *PFNGLGETPATHCOORDSNVPROC)(GLuint path, GLfloat *coords);
+typedef void(GLAD_API_PTR *PFNGLGETPATHDASHARRAYNVPROC)(GLuint path, GLfloat *dashArray);
+typedef GLfloat(GLAD_API_PTR *PFNGLGETPATHLENGTHNVPROC)(GLuint path, GLsizei startSegment,
+ GLsizei numSegments);
+typedef void(GLAD_API_PTR *PFNGLGETPATHMETRICRANGENVPROC)(GLbitfield metricQueryMask,
+ GLuint firstPathName, GLsizei numPaths,
+ GLsizei stride, GLfloat *metrics);
+typedef void(GLAD_API_PTR *PFNGLGETPATHMETRICSNVPROC)(GLbitfield metricQueryMask, GLsizei numPaths,
+ GLenum pathNameType, const void *paths,
+ GLuint pathBase, GLsizei stride,
+ GLfloat *metrics);
+typedef void(GLAD_API_PTR *PFNGLGETPATHPARAMETERFVNVPROC)(GLuint path, GLenum pname,
+ GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLGETPATHPARAMETERIVNVPROC)(GLuint path, GLenum pname, GLint *value);
+typedef void(GLAD_API_PTR *PFNGLGETPATHSPACINGNVPROC)(GLenum pathListMode, GLsizei numPaths,
+ GLenum pathNameType, const void *paths,
+ GLuint pathBase, GLfloat advanceScale,
+ GLfloat kerningScale, GLenum transformType,
+ GLfloat *returnedSpacing);
+typedef void(GLAD_API_PTR *PFNGLGETPERFCOUNTERINFOINTELPROC)(
+ GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName,
+ GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset,
+ GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum,
+ GLuint64 *rawCounterMaxValue);
+typedef void(GLAD_API_PTR *PFNGLGETPERFMONITORCOUNTERDATAAMDPROC)(GLuint monitor, GLenum pname,
+ GLsizei dataSize, GLuint *data,
+ GLint *bytesWritten);
+typedef void(GLAD_API_PTR *PFNGLGETPERFMONITORCOUNTERINFOAMDPROC)(GLuint group, GLuint counter,
+ GLenum pname, void *data);
+typedef void(GLAD_API_PTR *PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC)(GLuint group, GLuint counter,
+ GLsizei bufSize,
+ GLsizei *length,
+ GLchar *counterString);
+typedef void(GLAD_API_PTR *PFNGLGETPERFMONITORCOUNTERSAMDPROC)(GLuint group, GLint *numCounters,
+ GLint *maxActiveCounters,
+ GLsizei counterSize,
+ GLuint *counters);
+typedef void(GLAD_API_PTR *PFNGLGETPERFMONITORGROUPSTRINGAMDPROC)(GLuint group, GLsizei bufSize,
+ GLsizei *length,
+ GLchar *groupString);
+typedef void(GLAD_API_PTR *PFNGLGETPERFMONITORGROUPSAMDPROC)(GLint *numGroups, GLsizei groupsSize,
+ GLuint *groups);
+typedef void(GLAD_API_PTR *PFNGLGETPERFQUERYDATAINTELPROC)(GLuint queryHandle, GLuint flags,
+ GLsizei dataSize, void *data,
+ GLuint *bytesWritten);
+typedef void(GLAD_API_PTR *PFNGLGETPERFQUERYIDBYNAMEINTELPROC)(GLchar *queryName, GLuint *queryId);
+typedef void(GLAD_API_PTR *PFNGLGETPERFQUERYINFOINTELPROC)(GLuint queryId, GLuint queryNameLength,
+ GLchar *queryName, GLuint *dataSize,
+ GLuint *noCounters, GLuint *noInstances,
+ GLuint *capsMask);
+typedef void(GLAD_API_PTR *PFNGLGETPIXELMAPXVPROC)(GLenum map, GLint size, GLfixed *values);
+typedef void(GLAD_API_PTR *PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC)(GLenum pname, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC)(GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC)(GLenum target, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETPOINTERINDEXEDVEXTPROC)(GLenum target, GLuint index,
+ void **data);
+typedef void(GLAD_API_PTR *PFNGLGETPOINTERI_VEXTPROC)(GLenum pname, GLuint index, void **params);
+typedef void(GLAD_API_PTR *PFNGLGETPOINTERVPROC)(GLenum pname, void **params);
+typedef void(GLAD_API_PTR *PFNGLGETPOINTERVEXTPROC)(GLenum pname, void **params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMBINARYPROC)(GLuint program, GLsizei bufSize,
+ GLsizei *length, GLenum *binaryFormat,
+ void *binary);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMENVPARAMETERIIVNVPROC)(GLenum target, GLuint index,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC)(GLenum target, GLuint index,
+ GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMENVPARAMETERDVARBPROC)(GLenum target, GLuint index,
+ GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMENVPARAMETERFVARBPROC)(GLenum target, GLuint index,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMINFOLOGPROC)(GLuint program, GLsizei bufSize,
+ GLsizei *length, GLchar *infoLog);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMINTERFACEIVPROC)(GLuint program, GLenum programInterface,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC)(GLenum target, GLuint index,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC)(GLenum target, GLuint index,
+ GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC)(GLenum target, GLuint index,
+ GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC)(GLenum target, GLuint index,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC)(GLuint id, GLsizei len,
+ const GLubyte *name,
+ GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC)(GLuint id, GLsizei len,
+ const GLubyte *name,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMPARAMETERDVNVPROC)(GLenum target, GLuint index,
+ GLenum pname, GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMPARAMETERFVNVPROC)(GLenum target, GLuint index,
+ GLenum pname, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMPIPELINEINFOLOGPROC)(GLuint pipeline, GLsizei bufSize,
+ GLsizei *length, GLchar *infoLog);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMPIPELINEIVPROC)(GLuint pipeline, GLenum pname,
+ GLint *params);
+typedef GLuint(GLAD_API_PTR *PFNGLGETPROGRAMRESOURCEINDEXPROC)(GLuint program,
+ GLenum programInterface,
+ const GLchar *name);
+typedef GLint(GLAD_API_PTR *PFNGLGETPROGRAMRESOURCELOCATIONPROC)(GLuint program,
+ GLenum programInterface,
+ const GLchar *name);
+typedef GLint(GLAD_API_PTR *PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC)(GLuint program,
+ GLenum programInterface,
+ const GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMRESOURCENAMEPROC)(GLuint program, GLenum programInterface,
+ GLuint index, GLsizei bufSize,
+ GLsizei *length, GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMRESOURCEFVNVPROC)(GLuint program, GLenum programInterface,
+ GLuint index, GLsizei propCount,
+ const GLenum *props, GLsizei count,
+ GLsizei *length, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMRESOURCEIVPROC)(GLuint program, GLenum programInterface,
+ GLuint index, GLsizei propCount,
+ const GLenum *props, GLsizei count,
+ GLsizei *length, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMSTAGEIVPROC)(GLuint program, GLenum shadertype,
+ GLenum pname, GLint *values);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMSTRINGARBPROC)(GLenum target, GLenum pname, void *string);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMSTRINGNVPROC)(GLuint id, GLenum pname, GLubyte *program);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMSUBROUTINEPARAMETERUIVNVPROC)(GLenum target, GLuint index,
+ GLuint *param);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMIVPROC)(GLuint program, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMIVARBPROC)(GLenum target, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETPROGRAMIVNVPROC)(GLuint id, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYBUFFEROBJECTI64VPROC)(GLuint id, GLuint buffer,
+ GLenum pname, GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYBUFFEROBJECTIVPROC)(GLuint id, GLuint buffer, GLenum pname,
+ GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYBUFFEROBJECTUI64VPROC)(GLuint id, GLuint buffer,
+ GLenum pname, GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYBUFFEROBJECTUIVPROC)(GLuint id, GLuint buffer, GLenum pname,
+ GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYINDEXEDIVPROC)(GLenum target, GLuint index, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYOBJECTI64VPROC)(GLuint id, GLenum pname, GLint64 *params);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYOBJECTI64VEXTPROC)(GLuint id, GLenum pname,
+ GLint64 *params);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYOBJECTIVPROC)(GLuint id, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYOBJECTIVARBPROC)(GLuint id, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYOBJECTUI64VPROC)(GLuint id, GLenum pname, GLuint64 *params);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYOBJECTUI64VEXTPROC)(GLuint id, GLenum pname,
+ GLuint64 *params);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYOBJECTUIVPROC)(GLuint id, GLenum pname, GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYOBJECTUIVARBPROC)(GLuint id, GLenum pname, GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYIVPROC)(GLenum target, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETQUERYIVARBPROC)(GLenum target, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETRENDERBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname,
+ GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETSEMAPHOREPARAMETERIVNVPROC)(GLuint semaphore, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC)(GLuint semaphore, GLenum pname,
+ GLuint64 *params);
+typedef void(GLAD_API_PTR *PFNGLGETSEPARABLEFILTEREXTPROC)(GLenum target, GLenum format,
+ GLenum type, void *row, void *column,
+ void *span);
+typedef void(GLAD_API_PTR *PFNGLGETSHADERINFOLOGPROC)(GLuint shader, GLsizei bufSize,
+ GLsizei *length, GLchar *infoLog);
+typedef void(GLAD_API_PTR *PFNGLGETSHADERPRECISIONFORMATPROC)(GLenum shadertype,
+ GLenum precisiontype, GLint *range,
+ GLint *precision);
+typedef void(GLAD_API_PTR *PFNGLGETSHADERSOURCEPROC)(GLuint shader, GLsizei bufSize,
+ GLsizei *length, GLchar *source);
+typedef void(GLAD_API_PTR *PFNGLGETSHADERSOURCEARBPROC)(GLhandleARB obj, GLsizei maxLength,
+ GLsizei *length, GLcharARB *source);
+typedef void(GLAD_API_PTR *PFNGLGETSHADERIVPROC)(GLuint shader, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETSHADINGRATEIMAGEPALETTENVPROC)(GLuint viewport, GLuint entry,
+ GLenum *rate);
+typedef void(GLAD_API_PTR *PFNGLGETSHADINGRATESAMPLELOCATIONIVNVPROC)(GLenum rate, GLuint samples,
+ GLuint index,
+ GLint *location);
+typedef void(GLAD_API_PTR *PFNGLGETSHARPENTEXFUNCSGISPROC)(GLenum target, GLfloat *points);
+typedef GLushort(GLAD_API_PTR *PFNGLGETSTAGEINDEXNVPROC)(GLenum shadertype);
+typedef const GLubyte *(GLAD_API_PTR *PFNGLGETSTRINGPROC)(GLenum name);
+typedef const GLubyte *(GLAD_API_PTR *PFNGLGETSTRINGIPROC)(GLenum name, GLuint index);
+typedef GLuint(GLAD_API_PTR *PFNGLGETSUBROUTINEINDEXPROC)(GLuint program, GLenum shadertype,
+ const GLchar *name);
+typedef GLint(GLAD_API_PTR *PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC)(GLuint program,
+ GLenum shadertype,
+ const GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLGETSYNCIVPROC)(GLsync sync, GLenum pname, GLsizei count,
+ GLsizei *length, GLint *values);
+typedef void(GLAD_API_PTR *PFNGLGETTEXBUMPPARAMETERFVATIPROC)(GLenum pname, GLfloat *param);
+typedef void(GLAD_API_PTR *PFNGLGETTEXBUMPPARAMETERIVATIPROC)(GLenum pname, GLint *param);
+typedef void(GLAD_API_PTR *PFNGLGETTEXENVXVOESPROC)(GLenum target, GLenum pname, GLfixed *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXFILTERFUNCSGISPROC)(GLenum target, GLenum filter,
+ GLfloat *weights);
+typedef void(GLAD_API_PTR *PFNGLGETTEXGENXVOESPROC)(GLenum coord, GLenum pname, GLfixed *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXIMAGEPROC)(GLenum target, GLint level, GLenum format,
+ GLenum type, void *pixels);
+typedef void(GLAD_API_PTR *PFNGLGETTEXLEVELPARAMETERFVPROC)(GLenum target, GLint level,
+ GLenum pname, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXLEVELPARAMETERIVPROC)(GLenum target, GLint level,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXLEVELPARAMETERXVOESPROC)(GLenum target, GLint level,
+ GLenum pname, GLfixed *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXPARAMETERIIVPROC)(GLenum target, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXPARAMETERIIVEXTPROC)(GLenum target, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname,
+ GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXPARAMETERIUIVEXTPROC)(GLenum target, GLenum pname,
+ GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC)(GLenum target, GLenum pname,
+ void **params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXPARAMETERFVPROC)(GLenum target, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXPARAMETERXVOESPROC)(GLenum target, GLenum pname,
+ GLfixed *params);
+typedef GLuint64(GLAD_API_PTR *PFNGLGETTEXTUREHANDLEARBPROC)(GLuint texture);
+typedef GLuint64(GLAD_API_PTR *PFNGLGETTEXTUREHANDLENVPROC)(GLuint texture);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTUREIMAGEPROC)(GLuint texture, GLint level, GLenum format,
+ GLenum type, GLsizei bufSize, void *pixels);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTUREIMAGEEXTPROC)(GLuint texture, GLenum target, GLint level,
+ GLenum format, GLenum type, void *pixels);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTURELEVELPARAMETERFVPROC)(GLuint texture, GLint level,
+ GLenum pname, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC)(GLuint texture, GLenum target,
+ GLint level, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTURELEVELPARAMETERIVPROC)(GLuint texture, GLint level,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC)(GLuint texture, GLenum target,
+ GLint level, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTUREPARAMETERIIVPROC)(GLuint texture, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTUREPARAMETERIIVEXTPROC)(GLuint texture, GLenum target,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTUREPARAMETERIUIVPROC)(GLuint texture, GLenum pname,
+ GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTUREPARAMETERIUIVEXTPROC)(GLuint texture, GLenum target,
+ GLenum pname, GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTUREPARAMETERFVPROC)(GLuint texture, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTUREPARAMETERFVEXTPROC)(GLuint texture, GLenum target,
+ GLenum pname, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTUREPARAMETERIVPROC)(GLuint texture, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTUREPARAMETERIVEXTPROC)(GLuint texture, GLenum target,
+ GLenum pname, GLint *params);
+typedef GLuint64(GLAD_API_PTR *PFNGLGETTEXTURESAMPLERHANDLEARBPROC)(GLuint texture, GLuint sampler);
+typedef GLuint64(GLAD_API_PTR *PFNGLGETTEXTURESAMPLERHANDLENVPROC)(GLuint texture, GLuint sampler);
+typedef void(GLAD_API_PTR *PFNGLGETTEXTURESUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset,
+ GLint yoffset, GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth,
+ GLenum format, GLenum type, GLsizei bufSize,
+ void *pixels);
+typedef void(GLAD_API_PTR *PFNGLGETTRACKMATRIXIVNVPROC)(GLenum target, GLuint address, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)(GLuint program, GLuint index,
+ GLsizei bufSize, GLsizei *length,
+ GLsizei *size, GLenum *type,
+ GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC)(GLuint program, GLuint index,
+ GLsizei bufSize,
+ GLsizei *length, GLsizei *size,
+ GLenum *type, GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC)(GLuint program, GLuint index,
+ GLint *location);
+typedef void(GLAD_API_PTR *PFNGLGETTRANSFORMFEEDBACKI64_VPROC)(GLuint xfb, GLenum pname,
+ GLuint index, GLint64 *param);
+typedef void(GLAD_API_PTR *PFNGLGETTRANSFORMFEEDBACKI_VPROC)(GLuint xfb, GLenum pname, GLuint index,
+ GLint *param);
+typedef void(GLAD_API_PTR *PFNGLGETTRANSFORMFEEDBACKIVPROC)(GLuint xfb, GLenum pname, GLint *param);
+typedef GLuint(GLAD_API_PTR *PFNGLGETUNIFORMBLOCKINDEXPROC)(GLuint program,
+ const GLchar *uniformBlockName);
+typedef GLint(GLAD_API_PTR *PFNGLGETUNIFORMBUFFERSIZEEXTPROC)(GLuint program, GLint location);
+typedef void(GLAD_API_PTR *PFNGLGETUNIFORMINDICESPROC)(GLuint program, GLsizei uniformCount,
+ const GLchar *const *uniformNames,
+ GLuint *uniformIndices);
+typedef GLint(GLAD_API_PTR *PFNGLGETUNIFORMLOCATIONPROC)(GLuint program, const GLchar *name);
+typedef GLint(GLAD_API_PTR *PFNGLGETUNIFORMLOCATIONARBPROC)(GLhandleARB programObj,
+ const GLcharARB *name);
+typedef GLintptr(GLAD_API_PTR *PFNGLGETUNIFORMOFFSETEXTPROC)(GLuint program, GLint location);
+typedef void(GLAD_API_PTR *PFNGLGETUNIFORMSUBROUTINEUIVPROC)(GLenum shadertype, GLint location,
+ GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETUNIFORMDVPROC)(GLuint program, GLint location, GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETUNIFORMFVPROC)(GLuint program, GLint location, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETUNIFORMFVARBPROC)(GLhandleARB programObj, GLint location,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETUNIFORMI64VARBPROC)(GLuint program, GLint location,
+ GLint64 *params);
+typedef void(GLAD_API_PTR *PFNGLGETUNIFORMI64VNVPROC)(GLuint program, GLint location,
+ GLint64EXT *params);
+typedef void(GLAD_API_PTR *PFNGLGETUNIFORMIVPROC)(GLuint program, GLint location, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETUNIFORMIVARBPROC)(GLhandleARB programObj, GLint location,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETUNIFORMUI64VARBPROC)(GLuint program, GLint location,
+ GLuint64 *params);
+typedef void(GLAD_API_PTR *PFNGLGETUNIFORMUI64VNVPROC)(GLuint program, GLint location,
+ GLuint64EXT *params);
+typedef void(GLAD_API_PTR *PFNGLGETUNIFORMUIVPROC)(GLuint program, GLint location, GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETUNIFORMUIVEXTPROC)(GLuint program, GLint location,
+ GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETUNSIGNEDBYTEI_VEXTPROC)(GLenum target, GLuint index,
+ GLubyte *data);
+typedef void(GLAD_API_PTR *PFNGLGETUNSIGNEDBYTEVEXTPROC)(GLenum pname, GLubyte *data);
+typedef void(GLAD_API_PTR *PFNGLGETVARIANTARRAYOBJECTFVATIPROC)(GLuint id, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETVARIANTARRAYOBJECTIVATIPROC)(GLuint id, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETVARIANTBOOLEANVEXTPROC)(GLuint id, GLenum value,
+ GLboolean *data);
+typedef void(GLAD_API_PTR *PFNGLGETVARIANTFLOATVEXTPROC)(GLuint id, GLenum value, GLfloat *data);
+typedef void(GLAD_API_PTR *PFNGLGETVARIANTINTEGERVEXTPROC)(GLuint id, GLenum value, GLint *data);
+typedef void(GLAD_API_PTR *PFNGLGETVARIANTPOINTERVEXTPROC)(GLuint id, GLenum value, void **data);
+typedef GLint(GLAD_API_PTR *PFNGLGETVARYINGLOCATIONNVPROC)(GLuint program, const GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXARRAYINDEXED64IVPROC)(GLuint vaobj, GLuint index,
+ GLenum pname, GLint64 *param);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXARRAYINDEXEDIVPROC)(GLuint vaobj, GLuint index,
+ GLenum pname, GLint *param);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC)(GLuint vaobj, GLuint index,
+ GLenum pname, GLint *param);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXARRAYINTEGERVEXTPROC)(GLuint vaobj, GLenum pname,
+ GLint *param);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC)(GLuint vaobj, GLuint index,
+ GLenum pname, void **param);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXARRAYPOINTERVEXTPROC)(GLuint vaobj, GLenum pname,
+ void **param);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXARRAYIVPROC)(GLuint vaobj, GLenum pname, GLint *param);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC)(GLuint index, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC)(GLuint index, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBIIVPROC)(GLuint index, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBIIVEXTPROC)(GLuint index, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBIUIVPROC)(GLuint index, GLenum pname,
+ GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBIUIVEXTPROC)(GLuint index, GLenum pname,
+ GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBLDVPROC)(GLuint index, GLenum pname,
+ GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBLDVEXTPROC)(GLuint index, GLenum pname,
+ GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBLI64VNVPROC)(GLuint index, GLenum pname,
+ GLint64EXT *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBLUI64VARBPROC)(GLuint index, GLenum pname,
+ GLuint64EXT *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBLUI64VNVPROC)(GLuint index, GLenum pname,
+ GLuint64EXT *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBPOINTERVPROC)(GLuint index, GLenum pname,
+ void **pointer);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBPOINTERVARBPROC)(GLuint index, GLenum pname,
+ void **pointer);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBPOINTERVNVPROC)(GLuint index, GLenum pname,
+ void **pointer);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBDVPROC)(GLuint index, GLenum pname,
+ GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBDVARBPROC)(GLuint index, GLenum pname,
+ GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBDVNVPROC)(GLuint index, GLenum pname,
+ GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBFVPROC)(GLuint index, GLenum pname, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBFVARBPROC)(GLuint index, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBFVNVPROC)(GLuint index, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBIVPROC)(GLuint index, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBIVARBPROC)(GLuint index, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBIVNVPROC)(GLuint index, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETVIDEOCAPTURESTREAMDVNVPROC)(GLuint video_capture_slot,
+ GLuint stream, GLenum pname,
+ GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETVIDEOCAPTURESTREAMFVNVPROC)(GLuint video_capture_slot,
+ GLuint stream, GLenum pname,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETVIDEOCAPTURESTREAMIVNVPROC)(GLuint video_capture_slot,
+ GLuint stream, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETVIDEOCAPTUREIVNVPROC)(GLuint video_capture_slot, GLenum pname,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETVIDEOI64VNVPROC)(GLuint video_slot, GLenum pname,
+ GLint64EXT *params);
+typedef void(GLAD_API_PTR *PFNGLGETVIDEOIVNVPROC)(GLuint video_slot, GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETVIDEOUI64VNVPROC)(GLuint video_slot, GLenum pname,
+ GLuint64EXT *params);
+typedef void(GLAD_API_PTR *PFNGLGETVIDEOUIVNVPROC)(GLuint video_slot, GLenum pname, GLuint *params);
+typedef GLVULKANPROCNV(GLAD_API_PTR *PFNGLGETVKPROCADDRNVPROC)(const GLchar *name);
+typedef void(GLAD_API_PTR *PFNGLGETNCOMPRESSEDTEXIMAGEPROC)(GLenum target, GLint lod,
+ GLsizei bufSize, void *pixels);
+typedef void(GLAD_API_PTR *PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC)(GLenum target, GLint lod,
+ GLsizei bufSize, void *img);
+typedef void(GLAD_API_PTR *PFNGLGETNTEXIMAGEPROC)(GLenum target, GLint level, GLenum format,
+ GLenum type, GLsizei bufSize, void *pixels);
+typedef void(GLAD_API_PTR *PFNGLGETNTEXIMAGEARBPROC)(GLenum target, GLint level, GLenum format,
+ GLenum type, GLsizei bufSize, void *img);
+typedef void(GLAD_API_PTR *PFNGLGETNUNIFORMDVPROC)(GLuint program, GLint location, GLsizei bufSize,
+ GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETNUNIFORMDVARBPROC)(GLuint program, GLint location,
+ GLsizei bufSize, GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLGETNUNIFORMFVPROC)(GLuint program, GLint location, GLsizei bufSize,
+ GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETNUNIFORMFVARBPROC)(GLuint program, GLint location,
+ GLsizei bufSize, GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLGETNUNIFORMI64VARBPROC)(GLuint program, GLint location,
+ GLsizei bufSize, GLint64 *params);
+typedef void(GLAD_API_PTR *PFNGLGETNUNIFORMIVPROC)(GLuint program, GLint location, GLsizei bufSize,
+ GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETNUNIFORMIVARBPROC)(GLuint program, GLint location,
+ GLsizei bufSize, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLGETNUNIFORMUI64VARBPROC)(GLuint program, GLint location,
+ GLsizei bufSize, GLuint64 *params);
+typedef void(GLAD_API_PTR *PFNGLGETNUNIFORMUIVPROC)(GLuint program, GLint location, GLsizei bufSize,
+ GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGETNUNIFORMUIVARBPROC)(GLuint program, GLint location,
+ GLsizei bufSize, GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLGLOBALALPHAFACTORBSUNPROC)(GLbyte factor);
+typedef void(GLAD_API_PTR *PFNGLGLOBALALPHAFACTORDSUNPROC)(GLdouble factor);
+typedef void(GLAD_API_PTR *PFNGLGLOBALALPHAFACTORFSUNPROC)(GLfloat factor);
+typedef void(GLAD_API_PTR *PFNGLGLOBALALPHAFACTORISUNPROC)(GLint factor);
+typedef void(GLAD_API_PTR *PFNGLGLOBALALPHAFACTORSSUNPROC)(GLshort factor);
+typedef void(GLAD_API_PTR *PFNGLGLOBALALPHAFACTORUBSUNPROC)(GLubyte factor);
+typedef void(GLAD_API_PTR *PFNGLGLOBALALPHAFACTORUISUNPROC)(GLuint factor);
+typedef void(GLAD_API_PTR *PFNGLGLOBALALPHAFACTORUSSUNPROC)(GLushort factor);
+typedef void(GLAD_API_PTR *PFNGLHINTPROC)(GLenum target, GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLHINTPGIPROC)(GLenum target, GLint mode);
+typedef void(GLAD_API_PTR *PFNGLHISTOGRAMEXTPROC)(GLenum target, GLsizei width,
+ GLenum internalformat, GLboolean sink);
+typedef void(GLAD_API_PTR *PFNGLIGLOOINTERFACESGIXPROC)(GLenum pname, const void *params);
+typedef void(GLAD_API_PTR *PFNGLIMAGETRANSFORMPARAMETERFHPPROC)(GLenum target, GLenum pname,
+ GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLIMAGETRANSFORMPARAMETERFVHPPROC)(GLenum target, GLenum pname,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLIMAGETRANSFORMPARAMETERIHPPROC)(GLenum target, GLenum pname,
+ GLint param);
+typedef void(GLAD_API_PTR *PFNGLIMAGETRANSFORMPARAMETERIVHPPROC)(GLenum target, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLIMPORTMEMORYFDEXTPROC)(GLuint memory, GLuint64 size,
+ GLenum handleType, GLint fd);
+typedef void(GLAD_API_PTR *PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC)(GLuint memory, GLuint64 size,
+ GLenum handleType, void *handle);
+typedef void(GLAD_API_PTR *PFNGLIMPORTMEMORYWIN32NAMEEXTPROC)(GLuint memory, GLuint64 size,
+ GLenum handleType, const void *name);
+typedef void(GLAD_API_PTR *PFNGLIMPORTSEMAPHOREFDEXTPROC)(GLuint semaphore, GLenum handleType,
+ GLint fd);
+typedef void(GLAD_API_PTR *PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC)(GLuint semaphore,
+ GLenum handleType, void *handle);
+typedef void(GLAD_API_PTR *PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC)(GLuint semaphore,
+ GLenum handleType,
+ const void *name);
+typedef GLsync(GLAD_API_PTR *PFNGLIMPORTSYNCEXTPROC)(GLenum external_sync_type,
+ GLintptr external_sync, GLbitfield flags);
+typedef void(GLAD_API_PTR *PFNGLINDEXFORMATNVPROC)(GLenum type, GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLINDEXFUNCEXTPROC)(GLenum func, GLclampf ref);
+typedef void(GLAD_API_PTR *PFNGLINDEXMATERIALEXTPROC)(GLenum face, GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLINDEXPOINTEREXTPROC)(GLenum type, GLsizei stride, GLsizei count,
+ const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLINDEXPOINTERLISTIBMPROC)(GLenum type, GLint stride,
+ const void **pointer, GLint ptrstride);
+typedef void(GLAD_API_PTR *PFNGLINDEXXOESPROC)(GLfixed component);
+typedef void(GLAD_API_PTR *PFNGLINDEXXVOESPROC)(const GLfixed *component);
+typedef void(GLAD_API_PTR *PFNGLINSERTCOMPONENTEXTPROC)(GLuint res, GLuint src, GLuint num);
+typedef void(GLAD_API_PTR *PFNGLINSERTEVENTMARKEREXTPROC)(GLsizei length, const GLchar *marker);
+typedef void(GLAD_API_PTR *PFNGLINSTRUMENTSBUFFERSGIXPROC)(GLsizei size, GLint *buffer);
+typedef void(GLAD_API_PTR *PFNGLINTERPOLATEPATHSNVPROC)(GLuint resultPath, GLuint pathA,
+ GLuint pathB, GLfloat weight);
+typedef void(GLAD_API_PTR *PFNGLINVALIDATEBUFFERDATAPROC)(GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLINVALIDATEBUFFERSUBDATAPROC)(GLuint buffer, GLintptr offset,
+ GLsizeiptr length);
+typedef void(GLAD_API_PTR *PFNGLINVALIDATEFRAMEBUFFERPROC)(GLenum target, GLsizei numAttachments,
+ const GLenum *attachments);
+typedef void(GLAD_API_PTR *PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC)(GLuint framebuffer,
+ GLsizei numAttachments,
+ const GLenum *attachments);
+typedef void(GLAD_API_PTR *PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC)(
+ GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLINVALIDATESUBFRAMEBUFFERPROC)(GLenum target, GLsizei numAttachments,
+ const GLenum *attachments, GLint x,
+ GLint y, GLsizei width,
+ GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLINVALIDATETEXIMAGEPROC)(GLuint texture, GLint level);
+typedef void(GLAD_API_PTR *PFNGLINVALIDATETEXSUBIMAGEPROC)(GLuint texture, GLint level,
+ GLint xoffset, GLint yoffset,
+ GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth);
+typedef GLboolean(GLAD_API_PTR *PFNGLISASYNCMARKERSGIXPROC)(GLuint marker);
+typedef GLboolean(GLAD_API_PTR *PFNGLISBUFFERPROC)(GLuint buffer);
+typedef GLboolean(GLAD_API_PTR *PFNGLISBUFFERARBPROC)(GLuint buffer);
+typedef GLboolean(GLAD_API_PTR *PFNGLISBUFFERRESIDENTNVPROC)(GLenum target);
+typedef GLboolean(GLAD_API_PTR *PFNGLISCOMMANDLISTNVPROC)(GLuint list);
+typedef GLboolean(GLAD_API_PTR *PFNGLISENABLEDPROC)(GLenum cap);
+typedef GLboolean(GLAD_API_PTR *PFNGLISENABLEDINDEXEDEXTPROC)(GLenum target, GLuint index);
+typedef GLboolean(GLAD_API_PTR *PFNGLISENABLEDIPROC)(GLenum target, GLuint index);
+typedef GLboolean(GLAD_API_PTR *PFNGLISFENCEAPPLEPROC)(GLuint fence);
+typedef GLboolean(GLAD_API_PTR *PFNGLISFENCENVPROC)(GLuint fence);
+typedef GLboolean(GLAD_API_PTR *PFNGLISFRAMEBUFFERPROC)(GLuint framebuffer);
+typedef GLboolean(GLAD_API_PTR *PFNGLISFRAMEBUFFEREXTPROC)(GLuint framebuffer);
+typedef GLboolean(GLAD_API_PTR *PFNGLISIMAGEHANDLERESIDENTARBPROC)(GLuint64 handle);
+typedef GLboolean(GLAD_API_PTR *PFNGLISIMAGEHANDLERESIDENTNVPROC)(GLuint64 handle);
+typedef GLboolean(GLAD_API_PTR *PFNGLISMEMORYOBJECTEXTPROC)(GLuint memoryObject);
+typedef GLboolean(GLAD_API_PTR *PFNGLISNAMEAMDPROC)(GLenum identifier, GLuint name);
+typedef GLboolean(GLAD_API_PTR *PFNGLISNAMEDBUFFERRESIDENTNVPROC)(GLuint buffer);
+typedef GLboolean(GLAD_API_PTR *PFNGLISNAMEDSTRINGARBPROC)(GLint namelen, const GLchar *name);
+typedef GLboolean(GLAD_API_PTR *PFNGLISOBJECTBUFFERATIPROC)(GLuint buffer);
+typedef GLboolean(GLAD_API_PTR *PFNGLISOCCLUSIONQUERYNVPROC)(GLuint id);
+typedef GLboolean(GLAD_API_PTR *PFNGLISPATHNVPROC)(GLuint path);
+typedef GLboolean(GLAD_API_PTR *PFNGLISPOINTINFILLPATHNVPROC)(GLuint path, GLuint mask, GLfloat x,
+ GLfloat y);
+typedef GLboolean(GLAD_API_PTR *PFNGLISPOINTINSTROKEPATHNVPROC)(GLuint path, GLfloat x, GLfloat y);
+typedef GLboolean(GLAD_API_PTR *PFNGLISPROGRAMPROC)(GLuint program);
+typedef GLboolean(GLAD_API_PTR *PFNGLISPROGRAMARBPROC)(GLuint program);
+typedef GLboolean(GLAD_API_PTR *PFNGLISPROGRAMNVPROC)(GLuint id);
+typedef GLboolean(GLAD_API_PTR *PFNGLISPROGRAMPIPELINEPROC)(GLuint pipeline);
+typedef GLboolean(GLAD_API_PTR *PFNGLISQUERYPROC)(GLuint id);
+typedef GLboolean(GLAD_API_PTR *PFNGLISQUERYARBPROC)(GLuint id);
+typedef GLboolean(GLAD_API_PTR *PFNGLISRENDERBUFFERPROC)(GLuint renderbuffer);
+typedef GLboolean(GLAD_API_PTR *PFNGLISRENDERBUFFEREXTPROC)(GLuint renderbuffer);
+typedef GLboolean(GLAD_API_PTR *PFNGLISSAMPLERPROC)(GLuint sampler);
+typedef GLboolean(GLAD_API_PTR *PFNGLISSEMAPHOREEXTPROC)(GLuint semaphore);
+typedef GLboolean(GLAD_API_PTR *PFNGLISSHADERPROC)(GLuint shader);
+typedef GLboolean(GLAD_API_PTR *PFNGLISSTATENVPROC)(GLuint state);
+typedef GLboolean(GLAD_API_PTR *PFNGLISSYNCPROC)(GLsync sync);
+typedef GLboolean(GLAD_API_PTR *PFNGLISTEXTUREPROC)(GLuint texture);
+typedef GLboolean(GLAD_API_PTR *PFNGLISTEXTUREEXTPROC)(GLuint texture);
+typedef GLboolean(GLAD_API_PTR *PFNGLISTEXTUREHANDLERESIDENTARBPROC)(GLuint64 handle);
+typedef GLboolean(GLAD_API_PTR *PFNGLISTEXTUREHANDLERESIDENTNVPROC)(GLuint64 handle);
+typedef GLboolean(GLAD_API_PTR *PFNGLISTRANSFORMFEEDBACKPROC)(GLuint id);
+typedef GLboolean(GLAD_API_PTR *PFNGLISTRANSFORMFEEDBACKNVPROC)(GLuint id);
+typedef GLboolean(GLAD_API_PTR *PFNGLISVARIANTENABLEDEXTPROC)(GLuint id, GLenum cap);
+typedef GLboolean(GLAD_API_PTR *PFNGLISVERTEXARRAYPROC)(GLuint array);
+typedef GLboolean(GLAD_API_PTR *PFNGLISVERTEXARRAYAPPLEPROC)(GLuint array);
+typedef GLboolean(GLAD_API_PTR *PFNGLISVERTEXATTRIBENABLEDAPPLEPROC)(GLuint index, GLenum pname);
+typedef void(GLAD_API_PTR *PFNGLLGPUCOPYIMAGESUBDATANVXPROC)(
+ GLuint sourceGpu, GLbitfield destinationGpuMask, GLuint srcName, GLenum srcTarget,
+ GLint srcLevel, GLint srcX, GLint srxY, GLint srcZ, GLuint dstName, GLenum dstTarget,
+ GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height,
+ GLsizei depth);
+typedef void(GLAD_API_PTR *PFNGLLGPUINTERLOCKNVXPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLLGPUNAMEDBUFFERSUBDATANVXPROC)(GLbitfield gpuMask, GLuint buffer,
+ GLintptr offset, GLsizeiptr size,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLLABELOBJECTEXTPROC)(GLenum type, GLuint object, GLsizei length,
+ const GLchar *label);
+typedef void(GLAD_API_PTR *PFNGLLIGHTENVISGIXPROC)(GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLLIGHTMODELXOESPROC)(GLenum pname, GLfixed param);
+typedef void(GLAD_API_PTR *PFNGLLIGHTMODELXVOESPROC)(GLenum pname, const GLfixed *param);
+typedef void(GLAD_API_PTR *PFNGLLIGHTXOESPROC)(GLenum light, GLenum pname, GLfixed param);
+typedef void(GLAD_API_PTR *PFNGLLIGHTXVOESPROC)(GLenum light, GLenum pname, const GLfixed *params);
+typedef void(GLAD_API_PTR *PFNGLLINEWIDTHPROC)(GLfloat width);
+typedef void(GLAD_API_PTR *PFNGLLINEWIDTHXOESPROC)(GLfixed width);
+typedef void(GLAD_API_PTR *PFNGLLINKPROGRAMPROC)(GLuint program);
+typedef void(GLAD_API_PTR *PFNGLLINKPROGRAMARBPROC)(GLhandleARB programObj);
+typedef void(GLAD_API_PTR *PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC)(
+ GLuint list, GLuint segment, const void **indirects, const GLsizei *sizes,
+ const GLuint *states, const GLuint *fbos, GLuint count);
+typedef void(GLAD_API_PTR *PFNGLLISTPARAMETERFSGIXPROC)(GLuint list, GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLLISTPARAMETERFVSGIXPROC)(GLuint list, GLenum pname,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLLISTPARAMETERISGIXPROC)(GLuint list, GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLLISTPARAMETERIVSGIXPROC)(GLuint list, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC)(GLbitfield mask);
+typedef void(GLAD_API_PTR *PFNGLLOADMATRIXXOESPROC)(const GLfixed *m);
+typedef void(GLAD_API_PTR *PFNGLLOADPROGRAMNVPROC)(GLenum target, GLuint id, GLsizei len,
+ const GLubyte *program);
+typedef void(GLAD_API_PTR *PFNGLLOADTRANSPOSEMATRIXDARBPROC)(const GLdouble *m);
+typedef void(GLAD_API_PTR *PFNGLLOADTRANSPOSEMATRIXFARBPROC)(const GLfloat *m);
+typedef void(GLAD_API_PTR *PFNGLLOADTRANSPOSEMATRIXXOESPROC)(const GLfixed *m);
+typedef void(GLAD_API_PTR *PFNGLLOCKARRAYSEXTPROC)(GLint first, GLsizei count);
+typedef void(GLAD_API_PTR *PFNGLLOGICOPPROC)(GLenum opcode);
+typedef void(GLAD_API_PTR *PFNGLMAKEBUFFERNONRESIDENTNVPROC)(GLenum target);
+typedef void(GLAD_API_PTR *PFNGLMAKEBUFFERRESIDENTNVPROC)(GLenum target, GLenum access);
+typedef void(GLAD_API_PTR *PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC)(GLuint64 handle);
+typedef void(GLAD_API_PTR *PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC)(GLuint64 handle);
+typedef void(GLAD_API_PTR *PFNGLMAKEIMAGEHANDLERESIDENTARBPROC)(GLuint64 handle, GLenum access);
+typedef void(GLAD_API_PTR *PFNGLMAKEIMAGEHANDLERESIDENTNVPROC)(GLuint64 handle, GLenum access);
+typedef void(GLAD_API_PTR *PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC)(GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLMAKENAMEDBUFFERRESIDENTNVPROC)(GLuint buffer, GLenum access);
+typedef void(GLAD_API_PTR *PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC)(GLuint64 handle);
+typedef void(GLAD_API_PTR *PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC)(GLuint64 handle);
+typedef void(GLAD_API_PTR *PFNGLMAKETEXTUREHANDLERESIDENTARBPROC)(GLuint64 handle);
+typedef void(GLAD_API_PTR *PFNGLMAKETEXTUREHANDLERESIDENTNVPROC)(GLuint64 handle);
+typedef void(GLAD_API_PTR *PFNGLMAP1XOESPROC)(GLenum target, GLfixed u1, GLfixed u2, GLint stride,
+ GLint order, GLfixed points);
+typedef void(GLAD_API_PTR *PFNGLMAP2XOESPROC)(GLenum target, GLfixed u1, GLfixed u2, GLint ustride,
+ GLint uorder, GLfixed v1, GLfixed v2, GLint vstride,
+ GLint vorder, GLfixed points);
+typedef void *(GLAD_API_PTR *PFNGLMAPBUFFERPROC)(GLenum target, GLenum access);
+typedef void *(GLAD_API_PTR *PFNGLMAPBUFFERARBPROC)(GLenum target, GLenum access);
+typedef void *(GLAD_API_PTR *PFNGLMAPBUFFERRANGEPROC)(GLenum target, GLintptr offset,
+ GLsizeiptr length, GLbitfield access);
+typedef void(GLAD_API_PTR *PFNGLMAPCONTROLPOINTSNVPROC)(GLenum target, GLuint index, GLenum type,
+ GLsizei ustride, GLsizei vstride,
+ GLint uorder, GLint vorder,
+ GLboolean packed, const void *points);
+typedef void(GLAD_API_PTR *PFNGLMAPGRID1XOESPROC)(GLint n, GLfixed u1, GLfixed u2);
+typedef void(GLAD_API_PTR *PFNGLMAPGRID2XOESPROC)(GLint n, GLfixed u1, GLfixed u2, GLfixed v1,
+ GLfixed v2);
+typedef void *(GLAD_API_PTR *PFNGLMAPNAMEDBUFFERPROC)(GLuint buffer, GLenum access);
+typedef void *(GLAD_API_PTR *PFNGLMAPNAMEDBUFFEREXTPROC)(GLuint buffer, GLenum access);
+typedef void *(GLAD_API_PTR *PFNGLMAPNAMEDBUFFERRANGEPROC)(GLuint buffer, GLintptr offset,
+ GLsizeiptr length, GLbitfield access);
+typedef void *(GLAD_API_PTR *PFNGLMAPNAMEDBUFFERRANGEEXTPROC)(GLuint buffer, GLintptr offset,
+ GLsizeiptr length, GLbitfield access);
+typedef void *(GLAD_API_PTR *PFNGLMAPOBJECTBUFFERATIPROC)(GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLMAPPARAMETERFVNVPROC)(GLenum target, GLenum pname,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLMAPPARAMETERIVNVPROC)(GLenum target, GLenum pname,
+ const GLint *params);
+typedef void *(GLAD_API_PTR *PFNGLMAPTEXTURE2DINTELPROC)(GLuint texture, GLint level,
+ GLbitfield access, GLint *stride,
+ GLenum *layout);
+typedef void(GLAD_API_PTR *PFNGLMAPVERTEXATTRIB1DAPPLEPROC)(GLuint index, GLuint size, GLdouble u1,
+ GLdouble u2, GLint stride, GLint order,
+ const GLdouble *points);
+typedef void(GLAD_API_PTR *PFNGLMAPVERTEXATTRIB1FAPPLEPROC)(GLuint index, GLuint size, GLfloat u1,
+ GLfloat u2, GLint stride, GLint order,
+ const GLfloat *points);
+typedef void(GLAD_API_PTR *PFNGLMAPVERTEXATTRIB2DAPPLEPROC)(GLuint index, GLuint size, GLdouble u1,
+ GLdouble u2, GLint ustride,
+ GLint uorder, GLdouble v1, GLdouble v2,
+ GLint vstride, GLint vorder,
+ const GLdouble *points);
+typedef void(GLAD_API_PTR *PFNGLMAPVERTEXATTRIB2FAPPLEPROC)(GLuint index, GLuint size, GLfloat u1,
+ GLfloat u2, GLint ustride, GLint uorder,
+ GLfloat v1, GLfloat v2, GLint vstride,
+ GLint vorder, const GLfloat *points);
+typedef void(GLAD_API_PTR *PFNGLMATERIALXOESPROC)(GLenum face, GLenum pname, GLfixed param);
+typedef void(GLAD_API_PTR *PFNGLMATERIALXVOESPROC)(GLenum face, GLenum pname, const GLfixed *param);
+typedef void(GLAD_API_PTR *PFNGLMATRIXFRUSTUMEXTPROC)(GLenum mode, GLdouble left, GLdouble right,
+ GLdouble bottom, GLdouble top, GLdouble zNear,
+ GLdouble zFar);
+typedef void(GLAD_API_PTR *PFNGLMATRIXINDEXPOINTERARBPROC)(GLint size, GLenum type, GLsizei stride,
+ const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLMATRIXINDEXUBVARBPROC)(GLint size, const GLubyte *indices);
+typedef void(GLAD_API_PTR *PFNGLMATRIXINDEXUIVARBPROC)(GLint size, const GLuint *indices);
+typedef void(GLAD_API_PTR *PFNGLMATRIXINDEXUSVARBPROC)(GLint size, const GLushort *indices);
+typedef void(GLAD_API_PTR *PFNGLMATRIXLOAD3X2FNVPROC)(GLenum matrixMode, const GLfloat *m);
+typedef void(GLAD_API_PTR *PFNGLMATRIXLOAD3X3FNVPROC)(GLenum matrixMode, const GLfloat *m);
+typedef void(GLAD_API_PTR *PFNGLMATRIXLOADIDENTITYEXTPROC)(GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC)(GLenum matrixMode, const GLfloat *m);
+typedef void(GLAD_API_PTR *PFNGLMATRIXLOADTRANSPOSEDEXTPROC)(GLenum mode, const GLdouble *m);
+typedef void(GLAD_API_PTR *PFNGLMATRIXLOADTRANSPOSEFEXTPROC)(GLenum mode, const GLfloat *m);
+typedef void(GLAD_API_PTR *PFNGLMATRIXLOADDEXTPROC)(GLenum mode, const GLdouble *m);
+typedef void(GLAD_API_PTR *PFNGLMATRIXLOADFEXTPROC)(GLenum mode, const GLfloat *m);
+typedef void(GLAD_API_PTR *PFNGLMATRIXMULT3X2FNVPROC)(GLenum matrixMode, const GLfloat *m);
+typedef void(GLAD_API_PTR *PFNGLMATRIXMULT3X3FNVPROC)(GLenum matrixMode, const GLfloat *m);
+typedef void(GLAD_API_PTR *PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC)(GLenum matrixMode, const GLfloat *m);
+typedef void(GLAD_API_PTR *PFNGLMATRIXMULTTRANSPOSEDEXTPROC)(GLenum mode, const GLdouble *m);
+typedef void(GLAD_API_PTR *PFNGLMATRIXMULTTRANSPOSEFEXTPROC)(GLenum mode, const GLfloat *m);
+typedef void(GLAD_API_PTR *PFNGLMATRIXMULTDEXTPROC)(GLenum mode, const GLdouble *m);
+typedef void(GLAD_API_PTR *PFNGLMATRIXMULTFEXTPROC)(GLenum mode, const GLfloat *m);
+typedef void(GLAD_API_PTR *PFNGLMATRIXORTHOEXTPROC)(GLenum mode, GLdouble left, GLdouble right,
+ GLdouble bottom, GLdouble top, GLdouble zNear,
+ GLdouble zFar);
+typedef void(GLAD_API_PTR *PFNGLMATRIXPOPEXTPROC)(GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLMATRIXPUSHEXTPROC)(GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLMATRIXROTATEDEXTPROC)(GLenum mode, GLdouble angle, GLdouble x,
+ GLdouble y, GLdouble z);
+typedef void(GLAD_API_PTR *PFNGLMATRIXROTATEFEXTPROC)(GLenum mode, GLfloat angle, GLfloat x,
+ GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLMATRIXSCALEDEXTPROC)(GLenum mode, GLdouble x, GLdouble y,
+ GLdouble z);
+typedef void(GLAD_API_PTR *PFNGLMATRIXSCALEFEXTPROC)(GLenum mode, GLfloat x, GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLMATRIXTRANSLATEDEXTPROC)(GLenum mode, GLdouble x, GLdouble y,
+ GLdouble z);
+typedef void(GLAD_API_PTR *PFNGLMATRIXTRANSLATEFEXTPROC)(GLenum mode, GLfloat x, GLfloat y,
+ GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLMAXSHADERCOMPILERTHREADSARBPROC)(GLuint count);
+typedef void(GLAD_API_PTR *PFNGLMAXSHADERCOMPILERTHREADSKHRPROC)(GLuint count);
+typedef void(GLAD_API_PTR *PFNGLMEMORYBARRIERPROC)(GLbitfield barriers);
+typedef void(GLAD_API_PTR *PFNGLMEMORYBARRIERBYREGIONPROC)(GLbitfield barriers);
+typedef void(GLAD_API_PTR *PFNGLMEMORYBARRIEREXTPROC)(GLbitfield barriers);
+typedef void(GLAD_API_PTR *PFNGLMEMORYOBJECTPARAMETERIVEXTPROC)(GLuint memoryObject, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLMINSAMPLESHADINGPROC)(GLfloat value);
+typedef void(GLAD_API_PTR *PFNGLMINSAMPLESHADINGARBPROC)(GLfloat value);
+typedef void(GLAD_API_PTR *PFNGLMINMAXEXTPROC)(GLenum target, GLenum internalformat,
+ GLboolean sink);
+typedef void(GLAD_API_PTR *PFNGLMULTMATRIXXOESPROC)(const GLfixed *m);
+typedef void(GLAD_API_PTR *PFNGLMULTTRANSPOSEMATRIXDARBPROC)(const GLdouble *m);
+typedef void(GLAD_API_PTR *PFNGLMULTTRANSPOSEMATRIXFARBPROC)(const GLfloat *m);
+typedef void(GLAD_API_PTR *PFNGLMULTTRANSPOSEMATRIXXOESPROC)(const GLfixed *m);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWARRAYSPROC)(GLenum mode, const GLint *first,
+ const GLsizei *count, GLsizei drawcount);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWARRAYSEXTPROC)(GLenum mode, const GLint *first,
+ const GLsizei *count, GLsizei primcount);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWARRAYSINDIRECTPROC)(GLenum mode, const void *indirect,
+ GLsizei drawcount, GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC)(GLenum mode, const void *indirect,
+ GLsizei primcount, GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC)(
+ GLenum mode, const void *indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride,
+ GLint vertexBufferCount);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC)(GLenum mode,
+ const void *indirect,
+ GLsizei drawCount,
+ GLsizei stride,
+ GLint vertexBufferCount);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC)(GLenum mode, const void *indirect,
+ GLintptr drawcount,
+ GLsizei maxdrawcount,
+ GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC)(GLenum mode,
+ const void *indirect,
+ GLintptr drawcount,
+ GLsizei maxdrawcount,
+ GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC)(GLenum mode, const GLint *first,
+ const GLsizei *count,
+ GLsizei primcount);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSPROC)(GLenum mode, const GLsizei *count,
+ GLenum type, const void *const *indices,
+ GLsizei drawcount);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, const GLsizei *count,
+ GLenum type,
+ const void *const *indices,
+ GLsizei drawcount,
+ const GLint *basevertex);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSEXTPROC)(GLenum mode, const GLsizei *count,
+ GLenum type, const void *const *indices,
+ GLsizei primcount);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSINDIRECTPROC)(GLenum mode, GLenum type,
+ const void *indirect,
+ GLsizei drawcount, GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC)(GLenum mode, GLenum type,
+ const void *indirect,
+ GLsizei primcount,
+ GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC)(
+ GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei maxDrawCount,
+ GLsizei stride, GLint vertexBufferCount);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC)(GLenum mode, GLenum type,
+ const void *indirect,
+ GLsizei drawCount,
+ GLsizei stride,
+ GLint vertexBufferCount);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC)(GLenum mode, GLenum type,
+ const void *indirect,
+ GLintptr drawcount,
+ GLsizei maxdrawcount,
+ GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC)(GLenum mode, GLenum type,
+ const void *indirect,
+ GLintptr drawcount,
+ GLsizei maxdrawcount,
+ GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWMESHTASKSINDIRECTCOUNTNVPROC)(GLintptr indirect,
+ GLintptr drawcount,
+ GLsizei maxdrawcount,
+ GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWMESHTASKSINDIRECTNVPROC)(GLintptr indirect,
+ GLsizei drawcount,
+ GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC)(GLenum mode, GLuint start,
+ GLuint end, const GLint *first,
+ const GLsizei *count,
+ GLsizei primcount);
+typedef void(GLAD_API_PTR *PFNGLMULTIMODEDRAWARRAYSIBMPROC)(const GLenum *mode, const GLint *first,
+ const GLsizei *count, GLsizei primcount,
+ GLint modestride);
+typedef void(GLAD_API_PTR *PFNGLMULTIMODEDRAWELEMENTSIBMPROC)(const GLenum *mode,
+ const GLsizei *count, GLenum type,
+ const void *const *indices,
+ GLsizei primcount, GLint modestride);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXBUFFEREXTPROC)(GLenum texunit, GLenum target,
+ GLenum internalformat, GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1BOESPROC)(GLenum texture, GLbyte s);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1BVOESPROC)(GLenum texture, const GLbyte *coords);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1DARBPROC)(GLenum target, GLdouble s);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1DVARBPROC)(GLenum target, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1FARBPROC)(GLenum target, GLfloat s);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1FVARBPROC)(GLenum target, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1HNVPROC)(GLenum target, GLhalfNV s);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1HVNVPROC)(GLenum target, const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1IARBPROC)(GLenum target, GLint s);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1IVARBPROC)(GLenum target, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1SARBPROC)(GLenum target, GLshort s);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1SVARBPROC)(GLenum target, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1XOESPROC)(GLenum texture, GLfixed s);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1XVOESPROC)(GLenum texture, const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2BOESPROC)(GLenum texture, GLbyte s, GLbyte t);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2BVOESPROC)(GLenum texture, const GLbyte *coords);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2DARBPROC)(GLenum target, GLdouble s, GLdouble t);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2DVARBPROC)(GLenum target, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2FARBPROC)(GLenum target, GLfloat s, GLfloat t);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2FVARBPROC)(GLenum target, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2HNVPROC)(GLenum target, GLhalfNV s, GLhalfNV t);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2HVNVPROC)(GLenum target, const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2IARBPROC)(GLenum target, GLint s, GLint t);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2IVARBPROC)(GLenum target, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2SARBPROC)(GLenum target, GLshort s, GLshort t);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2SVARBPROC)(GLenum target, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2XOESPROC)(GLenum texture, GLfixed s, GLfixed t);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2XVOESPROC)(GLenum texture, const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3BOESPROC)(GLenum texture, GLbyte s, GLbyte t,
+ GLbyte r);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3BVOESPROC)(GLenum texture, const GLbyte *coords);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3DARBPROC)(GLenum target, GLdouble s, GLdouble t,
+ GLdouble r);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3DVARBPROC)(GLenum target, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3FARBPROC)(GLenum target, GLfloat s, GLfloat t,
+ GLfloat r);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3FVARBPROC)(GLenum target, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3HNVPROC)(GLenum target, GLhalfNV s, GLhalfNV t,
+ GLhalfNV r);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3HVNVPROC)(GLenum target, const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3IARBPROC)(GLenum target, GLint s, GLint t, GLint r);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3IVARBPROC)(GLenum target, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3SARBPROC)(GLenum target, GLshort s, GLshort t,
+ GLshort r);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3SVARBPROC)(GLenum target, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3XOESPROC)(GLenum texture, GLfixed s, GLfixed t,
+ GLfixed r);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3XVOESPROC)(GLenum texture, const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4BOESPROC)(GLenum texture, GLbyte s, GLbyte t,
+ GLbyte r, GLbyte q);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4BVOESPROC)(GLenum texture, const GLbyte *coords);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4DARBPROC)(GLenum target, GLdouble s, GLdouble t,
+ GLdouble r, GLdouble q);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4DVARBPROC)(GLenum target, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4FARBPROC)(GLenum target, GLfloat s, GLfloat t,
+ GLfloat r, GLfloat q);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4FVARBPROC)(GLenum target, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4HNVPROC)(GLenum target, GLhalfNV s, GLhalfNV t,
+ GLhalfNV r, GLhalfNV q);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4HVNVPROC)(GLenum target, const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4IARBPROC)(GLenum target, GLint s, GLint t, GLint r,
+ GLint q);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4IVARBPROC)(GLenum target, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4SARBPROC)(GLenum target, GLshort s, GLshort t,
+ GLshort r, GLshort q);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4SVARBPROC)(GLenum target, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4XOESPROC)(GLenum texture, GLfixed s, GLfixed t,
+ GLfixed r, GLfixed q);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4XVOESPROC)(GLenum texture, const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORDPOINTEREXTPROC)(GLenum texunit, GLint size,
+ GLenum type, GLsizei stride,
+ const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXENVFEXTPROC)(GLenum texunit, GLenum target, GLenum pname,
+ GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXENVFVEXTPROC)(GLenum texunit, GLenum target, GLenum pname,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXENVIEXTPROC)(GLenum texunit, GLenum target, GLenum pname,
+ GLint param);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXENVIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXGENDEXTPROC)(GLenum texunit, GLenum coord, GLenum pname,
+ GLdouble param);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXGENDVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname,
+ const GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXGENFEXTPROC)(GLenum texunit, GLenum coord, GLenum pname,
+ GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXGENFVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXGENIEXTPROC)(GLenum texunit, GLenum coord, GLenum pname,
+ GLint param);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXGENIVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXIMAGE1DEXTPROC)(GLenum texunit, GLenum target, GLint level,
+ GLint internalformat, GLsizei width,
+ GLint border, GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXIMAGE2DEXTPROC)(GLenum texunit, GLenum target, GLint level,
+ GLint internalformat, GLsizei width,
+ GLsizei height, GLint border, GLenum format,
+ GLenum type, const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXIMAGE3DEXTPROC)(GLenum texunit, GLenum target, GLint level,
+ GLint internalformat, GLsizei width,
+ GLsizei height, GLsizei depth, GLint border,
+ GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXPARAMETERIIVEXTPROC)(GLenum texunit, GLenum target,
+ GLenum pname, const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXPARAMETERIUIVEXTPROC)(GLenum texunit, GLenum target,
+ GLenum pname, const GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXPARAMETERFEXTPROC)(GLenum texunit, GLenum target,
+ GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXPARAMETERFVEXTPROC)(GLenum texunit, GLenum target,
+ GLenum pname, const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXPARAMETERIEXTPROC)(GLenum texunit, GLenum target,
+ GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXPARAMETERIVEXTPROC)(GLenum texunit, GLenum target,
+ GLenum pname, const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXRENDERBUFFEREXTPROC)(GLenum texunit, GLenum target,
+ GLuint renderbuffer);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXSUBIMAGE1DEXTPROC)(GLenum texunit, GLenum target,
+ GLint level, GLint xoffset,
+ GLsizei width, GLenum format,
+ GLenum type, const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXSUBIMAGE2DEXTPROC)(GLenum texunit, GLenum target,
+ GLint level, GLint xoffset,
+ GLint yoffset, GLsizei width,
+ GLsizei height, GLenum format,
+ GLenum type, const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLMULTITEXSUBIMAGE3DEXTPROC)(GLenum texunit, GLenum target,
+ GLint level, GLint xoffset,
+ GLint yoffset, GLint zoffset,
+ GLsizei width, GLsizei height,
+ GLsizei depth, GLenum format,
+ GLenum type, const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLMULTICASTBARRIERNVPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLMULTICASTBLITFRAMEBUFFERNVPROC)(
+ GLuint srcGpu, GLuint dstGpu, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
+ GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+typedef void(GLAD_API_PTR *PFNGLMULTICASTBUFFERSUBDATANVPROC)(GLbitfield gpuMask, GLuint buffer,
+ GLintptr offset, GLsizeiptr size,
+ const void *data);
+typedef void(GLAD_API_PTR *PFNGLMULTICASTCOPYBUFFERSUBDATANVPROC)(
+ GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer,
+ GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+typedef void(GLAD_API_PTR *PFNGLMULTICASTCOPYIMAGESUBDATANVPROC)(
+ GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel,
+ GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel,
+ GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
+typedef void(GLAD_API_PTR *PFNGLMULTICASTFRAMEBUFFERSAMPLELOCATIONSFVNVPROC)(
+ GLuint gpu, GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLMULTICASTGETQUERYOBJECTI64VNVPROC)(GLuint gpu, GLuint id,
+ GLenum pname, GLint64 *params);
+typedef void(GLAD_API_PTR *PFNGLMULTICASTGETQUERYOBJECTIVNVPROC)(GLuint gpu, GLuint id,
+ GLenum pname, GLint *params);
+typedef void(GLAD_API_PTR *PFNGLMULTICASTGETQUERYOBJECTUI64VNVPROC)(GLuint gpu, GLuint id,
+ GLenum pname, GLuint64 *params);
+typedef void(GLAD_API_PTR *PFNGLMULTICASTGETQUERYOBJECTUIVNVPROC)(GLuint gpu, GLuint id,
+ GLenum pname, GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLMULTICASTSCISSORARRAYVNVXPROC)(GLuint gpu, GLuint first,
+ GLsizei count, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLMULTICASTVIEWPORTARRAYVNVXPROC)(GLuint gpu, GLuint first,
+ GLsizei count, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLMULTICASTVIEWPORTPOSITIONWSCALENVXPROC)(GLuint gpu, GLuint index,
+ GLfloat xcoeff,
+ GLfloat ycoeff);
+typedef void(GLAD_API_PTR *PFNGLMULTICASTWAITSYNCNVPROC)(GLuint signalGpu, GLbitfield waitGpuMask);
+typedef void(GLAD_API_PTR *PFNGLNAMEDBUFFERATTACHMEMORYNVPROC)(GLuint buffer, GLuint memory,
+ GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLNAMEDBUFFERDATAPROC)(GLuint buffer, GLsizeiptr size,
+ const void *data, GLenum usage);
+typedef void(GLAD_API_PTR *PFNGLNAMEDBUFFERDATAEXTPROC)(GLuint buffer, GLsizeiptr size,
+ const void *data, GLenum usage);
+typedef void(GLAD_API_PTR *PFNGLNAMEDBUFFERPAGECOMMITMENTARBPROC)(GLuint buffer, GLintptr offset,
+ GLsizeiptr size,
+ GLboolean commit);
+typedef void(GLAD_API_PTR *PFNGLNAMEDBUFFERPAGECOMMITMENTEXTPROC)(GLuint buffer, GLintptr offset,
+ GLsizeiptr size,
+ GLboolean commit);
+typedef void(GLAD_API_PTR *PFNGLNAMEDBUFFERPAGECOMMITMENTMEMNVPROC)(GLuint buffer, GLintptr offset,
+ GLsizeiptr size, GLuint memory,
+ GLuint64 memOffset,
+ GLboolean commit);
+typedef void(GLAD_API_PTR *PFNGLNAMEDBUFFERSTORAGEPROC)(GLuint buffer, GLsizeiptr size,
+ const void *data, GLbitfield flags);
+typedef void(GLAD_API_PTR *PFNGLNAMEDBUFFERSTORAGEEXTPROC)(GLuint buffer, GLsizeiptr size,
+ const void *data, GLbitfield flags);
+typedef void(GLAD_API_PTR *PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC)(
+ GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer,
+ GLbitfield flags);
+typedef void(GLAD_API_PTR *PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC)(GLuint buffer, GLsizeiptr size,
+ GLuint memory, GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLintptr offset,
+ GLsizeiptr size, const void *data);
+typedef void(GLAD_API_PTR *PFNGLNAMEDBUFFERSUBDATAEXTPROC)(GLuint buffer, GLintptr offset,
+ GLsizeiptr size, const void *data);
+typedef void(GLAD_API_PTR *PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC)(GLuint readBuffer,
+ GLuint writeBuffer,
+ GLintptr readOffset,
+ GLintptr writeOffset,
+ GLsizeiptr size);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC)(GLuint framebuffer, GLenum buf);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC)(GLuint framebuffer, GLsizei n,
+ const GLenum *bufs);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC)(GLuint framebuffer, GLenum pname,
+ GLint param);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC)(GLuint framebuffer, GLenum pname,
+ GLint param);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC)(GLuint framebuffer, GLenum src);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC)(GLuint framebuffer,
+ GLenum attachment,
+ GLenum renderbuffertarget,
+ GLuint renderbuffer);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC)(GLuint framebuffer,
+ GLenum attachment,
+ GLenum renderbuffertarget,
+ GLuint renderbuffer);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC)(GLuint framebuffer,
+ GLuint start,
+ GLsizei count,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC)(GLuint framebuffer,
+ GLuint start,
+ GLsizei count,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC)(GLuint framebuffer,
+ GLuint numsamples,
+ GLuint pixelindex,
+ const GLfloat *values);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERTEXTUREPROC)(GLuint framebuffer, GLenum attachment,
+ GLuint texture, GLint level);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC)(GLuint framebuffer,
+ GLenum attachment,
+ GLenum textarget, GLuint texture,
+ GLint level);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC)(GLuint framebuffer,
+ GLenum attachment,
+ GLenum textarget, GLuint texture,
+ GLint level);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC)(GLuint framebuffer,
+ GLenum attachment,
+ GLenum textarget, GLuint texture,
+ GLint level, GLint zoffset);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC)(GLuint framebuffer,
+ GLenum attachment, GLuint texture,
+ GLint level);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC)(GLuint framebuffer,
+ GLenum attachment,
+ GLuint texture, GLint level,
+ GLenum face);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC)(GLuint framebuffer,
+ GLenum attachment, GLuint texture,
+ GLint level, GLint layer);
+typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC)(GLuint framebuffer,
+ GLenum attachment,
+ GLuint texture, GLint level,
+ GLint layer);
+typedef void(GLAD_API_PTR *PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC)(GLuint program, GLenum target,
+ GLuint index, GLdouble x,
+ GLdouble y, GLdouble z,
+ GLdouble w);
+typedef void(GLAD_API_PTR *PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC)(GLuint program, GLenum target,
+ GLuint index,
+ const GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC)(GLuint program, GLenum target,
+ GLuint index, GLfloat x,
+ GLfloat y, GLfloat z,
+ GLfloat w);
+typedef void(GLAD_API_PTR *PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC)(GLuint program, GLenum target,
+ GLuint index,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC)(GLuint program, GLenum target,
+ GLuint index, GLint x,
+ GLint y, GLint z, GLint w);
+typedef void(GLAD_API_PTR *PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC)(GLuint program,
+ GLenum target, GLuint index,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC)(GLuint program,
+ GLenum target, GLuint index,
+ GLuint x, GLuint y, GLuint z,
+ GLuint w);
+typedef void(GLAD_API_PTR *PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC)(GLuint program,
+ GLenum target, GLuint index,
+ const GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC)(GLuint program,
+ GLenum target, GLuint index,
+ GLsizei count,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC)(GLuint program,
+ GLenum target, GLuint index,
+ GLsizei count,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC)(
+ GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLNAMEDPROGRAMSTRINGEXTPROC)(GLuint program, GLenum target,
+ GLenum format, GLsizei len,
+ const void *string);
+typedef void(GLAD_API_PTR *PFNGLNAMEDRENDERBUFFERSTORAGEPROC)(GLuint renderbuffer,
+ GLenum internalformat, GLsizei width,
+ GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC)(GLuint renderbuffer,
+ GLenum internalformat,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC)(
+ GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC)(
+ GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC)(
+ GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)(
+ GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLNAMEDSTRINGARBPROC)(GLenum type, GLint namelen, const GLchar *name,
+ GLint stringlen, const GLchar *string);
+typedef GLuint(GLAD_API_PTR *PFNGLNEWOBJECTBUFFERATIPROC)(GLsizei size, const void *pointer,
+ GLenum usage);
+typedef void(GLAD_API_PTR *PFNGLNORMAL3FVERTEX3FSUNPROC)(GLfloat nx, GLfloat ny, GLfloat nz,
+ GLfloat x, GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLNORMAL3FVERTEX3FVSUNPROC)(const GLfloat *n, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLNORMAL3HNVPROC)(GLhalfNV nx, GLhalfNV ny, GLhalfNV nz);
+typedef void(GLAD_API_PTR *PFNGLNORMAL3HVNVPROC)(const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLNORMAL3XOESPROC)(GLfixed nx, GLfixed ny, GLfixed nz);
+typedef void(GLAD_API_PTR *PFNGLNORMAL3XVOESPROC)(const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLNORMALFORMATNVPROC)(GLenum type, GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLNORMALPOINTEREXTPROC)(GLenum type, GLsizei stride, GLsizei count,
+ const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLNORMALPOINTERLISTIBMPROC)(GLenum type, GLint stride,
+ const void **pointer, GLint ptrstride);
+typedef void(GLAD_API_PTR *PFNGLNORMALPOINTERVINTELPROC)(GLenum type, const void **pointer);
+typedef void(GLAD_API_PTR *PFNGLNORMALSTREAM3BATIPROC)(GLenum stream, GLbyte nx, GLbyte ny,
+ GLbyte nz);
+typedef void(GLAD_API_PTR *PFNGLNORMALSTREAM3BVATIPROC)(GLenum stream, const GLbyte *coords);
+typedef void(GLAD_API_PTR *PFNGLNORMALSTREAM3DATIPROC)(GLenum stream, GLdouble nx, GLdouble ny,
+ GLdouble nz);
+typedef void(GLAD_API_PTR *PFNGLNORMALSTREAM3DVATIPROC)(GLenum stream, const GLdouble *coords);
+typedef void(GLAD_API_PTR *PFNGLNORMALSTREAM3FATIPROC)(GLenum stream, GLfloat nx, GLfloat ny,
+ GLfloat nz);
+typedef void(GLAD_API_PTR *PFNGLNORMALSTREAM3FVATIPROC)(GLenum stream, const GLfloat *coords);
+typedef void(GLAD_API_PTR *PFNGLNORMALSTREAM3IATIPROC)(GLenum stream, GLint nx, GLint ny, GLint nz);
+typedef void(GLAD_API_PTR *PFNGLNORMALSTREAM3IVATIPROC)(GLenum stream, const GLint *coords);
+typedef void(GLAD_API_PTR *PFNGLNORMALSTREAM3SATIPROC)(GLenum stream, GLshort nx, GLshort ny,
+ GLshort nz);
+typedef void(GLAD_API_PTR *PFNGLNORMALSTREAM3SVATIPROC)(GLenum stream, const GLshort *coords);
+typedef void(GLAD_API_PTR *PFNGLOBJECTLABELPROC)(GLenum identifier, GLuint name, GLsizei length,
+ const GLchar *label);
+typedef void(GLAD_API_PTR *PFNGLOBJECTPTRLABELPROC)(const void *ptr, GLsizei length,
+ const GLchar *label);
+typedef GLenum(GLAD_API_PTR *PFNGLOBJECTPURGEABLEAPPLEPROC)(GLenum objectType, GLuint name,
+ GLenum option);
+typedef GLenum(GLAD_API_PTR *PFNGLOBJECTUNPURGEABLEAPPLEPROC)(GLenum objectType, GLuint name,
+ GLenum option);
+typedef void(GLAD_API_PTR *PFNGLORTHOFOESPROC)(GLfloat l, GLfloat r, GLfloat b, GLfloat t,
+ GLfloat n, GLfloat f);
+typedef void(GLAD_API_PTR *PFNGLORTHOXOESPROC)(GLfixed l, GLfixed r, GLfixed b, GLfixed t,
+ GLfixed n, GLfixed f);
+typedef void(GLAD_API_PTR *PFNGLPNTRIANGLESFATIPROC)(GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLPNTRIANGLESIATIPROC)(GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLPASSTEXCOORDATIPROC)(GLuint dst, GLuint coord, GLenum swizzle);
+typedef void(GLAD_API_PTR *PFNGLPASSTHROUGHXOESPROC)(GLfixed token);
+typedef void(GLAD_API_PTR *PFNGLPATCHPARAMETERFVPROC)(GLenum pname, const GLfloat *values);
+typedef void(GLAD_API_PTR *PFNGLPATCHPARAMETERIPROC)(GLenum pname, GLint value);
+typedef void(GLAD_API_PTR *PFNGLPATHCOMMANDSNVPROC)(GLuint path, GLsizei numCommands,
+ const GLubyte *commands, GLsizei numCoords,
+ GLenum coordType, const void *coords);
+typedef void(GLAD_API_PTR *PFNGLPATHCOORDSNVPROC)(GLuint path, GLsizei numCoords, GLenum coordType,
+ const void *coords);
+typedef void(GLAD_API_PTR *PFNGLPATHCOVERDEPTHFUNCNVPROC)(GLenum func);
+typedef void(GLAD_API_PTR *PFNGLPATHDASHARRAYNVPROC)(GLuint path, GLsizei dashCount,
+ const GLfloat *dashArray);
+typedef GLenum(GLAD_API_PTR *PFNGLPATHGLYPHINDEXARRAYNVPROC)(
+ GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle,
+ GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
+typedef GLenum(GLAD_API_PTR *PFNGLPATHGLYPHINDEXRANGENVPROC)(GLenum fontTarget,
+ const void *fontName,
+ GLbitfield fontStyle,
+ GLuint pathParameterTemplate,
+ GLfloat emScale, GLuint *baseAndCount);
+typedef void(GLAD_API_PTR *PFNGLPATHGLYPHRANGENVPROC)(GLuint firstPathName, GLenum fontTarget,
+ const void *fontName, GLbitfield fontStyle,
+ GLuint firstGlyph, GLsizei numGlyphs,
+ GLenum handleMissingGlyphs,
+ GLuint pathParameterTemplate,
+ GLfloat emScale);
+typedef void(GLAD_API_PTR *PFNGLPATHGLYPHSNVPROC)(GLuint firstPathName, GLenum fontTarget,
+ const void *fontName, GLbitfield fontStyle,
+ GLsizei numGlyphs, GLenum type,
+ const void *charcodes, GLenum handleMissingGlyphs,
+ GLuint pathParameterTemplate, GLfloat emScale);
+typedef GLenum(GLAD_API_PTR *PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC)(
+ GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData,
+ GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate,
+ GLfloat emScale);
+typedef void(GLAD_API_PTR *PFNGLPATHPARAMETERFNVPROC)(GLuint path, GLenum pname, GLfloat value);
+typedef void(GLAD_API_PTR *PFNGLPATHPARAMETERFVNVPROC)(GLuint path, GLenum pname,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPATHPARAMETERINVPROC)(GLuint path, GLenum pname, GLint value);
+typedef void(GLAD_API_PTR *PFNGLPATHPARAMETERIVNVPROC)(GLuint path, GLenum pname,
+ const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLPATHSTENCILDEPTHOFFSETNVPROC)(GLfloat factor, GLfloat units);
+typedef void(GLAD_API_PTR *PFNGLPATHSTENCILFUNCNVPROC)(GLenum func, GLint ref, GLuint mask);
+typedef void(GLAD_API_PTR *PFNGLPATHSTRINGNVPROC)(GLuint path, GLenum format, GLsizei length,
+ const void *pathString);
+typedef void(GLAD_API_PTR *PFNGLPATHSUBCOMMANDSNVPROC)(GLuint path, GLsizei commandStart,
+ GLsizei commandsToDelete,
+ GLsizei numCommands, const GLubyte *commands,
+ GLsizei numCoords, GLenum coordType,
+ const void *coords);
+typedef void(GLAD_API_PTR *PFNGLPATHSUBCOORDSNVPROC)(GLuint path, GLsizei coordStart,
+ GLsizei numCoords, GLenum coordType,
+ const void *coords);
+typedef void(GLAD_API_PTR *PFNGLPAUSETRANSFORMFEEDBACKPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLPAUSETRANSFORMFEEDBACKNVPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLPIXELDATARANGENVPROC)(GLenum target, GLsizei length,
+ const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLPIXELMAPXPROC)(GLenum map, GLint size, const GLfixed *values);
+typedef void(GLAD_API_PTR *PFNGLPIXELSTOREFPROC)(GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLPIXELSTOREIPROC)(GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLPIXELSTOREXPROC)(GLenum pname, GLfixed param);
+typedef void(GLAD_API_PTR *PFNGLPIXELTEXGENPARAMETERFSGISPROC)(GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLPIXELTEXGENPARAMETERFVSGISPROC)(GLenum pname,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLPIXELTEXGENPARAMETERISGISPROC)(GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLPIXELTEXGENPARAMETERIVSGISPROC)(GLenum pname, const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLPIXELTEXGENSGIXPROC)(GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLPIXELTRANSFERXOESPROC)(GLenum pname, GLfixed param);
+typedef void(GLAD_API_PTR *PFNGLPIXELTRANSFORMPARAMETERFEXTPROC)(GLenum target, GLenum pname,
+ GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC)(GLenum target, GLenum pname,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLPIXELTRANSFORMPARAMETERIEXTPROC)(GLenum target, GLenum pname,
+ GLint param);
+typedef void(GLAD_API_PTR *PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC)(GLenum target, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLPIXELZOOMXOESPROC)(GLfixed xfactor, GLfixed yfactor);
+typedef GLboolean(GLAD_API_PTR *PFNGLPOINTALONGPATHNVPROC)(GLuint path, GLsizei startSegment,
+ GLsizei numSegments, GLfloat distance,
+ GLfloat *x, GLfloat *y,
+ GLfloat *tangentX, GLfloat *tangentY);
+typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERFPROC)(GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERFARBPROC)(GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERFEXTPROC)(GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERFSGISPROC)(GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERFVPROC)(GLenum pname, const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERFVARBPROC)(GLenum pname, const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERFVEXTPROC)(GLenum pname, const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERFVSGISPROC)(GLenum pname, const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERIPROC)(GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERINVPROC)(GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERIVPROC)(GLenum pname, const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERIVNVPROC)(GLenum pname, const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERXVOESPROC)(GLenum pname, const GLfixed *params);
+typedef void(GLAD_API_PTR *PFNGLPOINTSIZEPROC)(GLfloat size);
+typedef void(GLAD_API_PTR *PFNGLPOINTSIZEXOESPROC)(GLfixed size);
+typedef GLint(GLAD_API_PTR *PFNGLPOLLASYNCSGIXPROC)(GLuint *markerp);
+typedef GLint(GLAD_API_PTR *PFNGLPOLLINSTRUMENTSSGIXPROC)(GLint *marker_p);
+typedef void(GLAD_API_PTR *PFNGLPOLYGONMODEPROC)(GLenum face, GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLPOLYGONOFFSETPROC)(GLfloat factor, GLfloat units);
+typedef void(GLAD_API_PTR *PFNGLPOLYGONOFFSETCLAMPPROC)(GLfloat factor, GLfloat units,
+ GLfloat clamp);
+typedef void(GLAD_API_PTR *PFNGLPOLYGONOFFSETCLAMPEXTPROC)(GLfloat factor, GLfloat units,
+ GLfloat clamp);
+typedef void(GLAD_API_PTR *PFNGLPOLYGONOFFSETEXTPROC)(GLfloat factor, GLfloat bias);
+typedef void(GLAD_API_PTR *PFNGLPOLYGONOFFSETXOESPROC)(GLfixed factor, GLfixed units);
+typedef void(GLAD_API_PTR *PFNGLPOPDEBUGGROUPPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLPOPGROUPMARKEREXTPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLPRESENTFRAMEDUALFILLNVPROC)(
+ GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId,
+ GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1,
+ GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3);
+typedef void(GLAD_API_PTR *PFNGLPRESENTFRAMEKEYEDNVPROC)(GLuint video_slot,
+ GLuint64EXT minPresentTime,
+ GLuint beginPresentTimeId,
+ GLuint presentDurationId, GLenum type,
+ GLenum target0, GLuint fill0, GLuint key0,
+ GLenum target1, GLuint fill1, GLuint key1);
+typedef void(GLAD_API_PTR *PFNGLPRIMITIVEBOUNDINGBOXARBPROC)(GLfloat minX, GLfloat minY,
+ GLfloat minZ, GLfloat minW,
+ GLfloat maxX, GLfloat maxY,
+ GLfloat maxZ, GLfloat maxW);
+typedef void(GLAD_API_PTR *PFNGLPRIMITIVERESTARTINDEXPROC)(GLuint index);
+typedef void(GLAD_API_PTR *PFNGLPRIMITIVERESTARTINDEXNVPROC)(GLuint index);
+typedef void(GLAD_API_PTR *PFNGLPRIMITIVERESTARTNVPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLPRIORITIZETEXTURESEXTPROC)(GLsizei n, const GLuint *textures,
+ const GLclampf *priorities);
+typedef void(GLAD_API_PTR *PFNGLPRIORITIZETEXTURESXOESPROC)(GLsizei n, const GLuint *textures,
+ const GLfixed *priorities);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMBINARYPROC)(GLuint program, GLenum binaryFormat,
+ const void *binary, GLsizei length);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC)(GLenum target,
+ GLuint bindingIndex,
+ GLuint wordIndex, GLsizei count,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC)(GLenum target,
+ GLuint bindingIndex,
+ GLuint wordIndex, GLsizei count,
+ const GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC)(GLenum target, GLuint bindingIndex,
+ GLuint wordIndex, GLsizei count,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMENVPARAMETER4DARBPROC)(GLenum target, GLuint index,
+ GLdouble x, GLdouble y, GLdouble z,
+ GLdouble w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMENVPARAMETER4DVARBPROC)(GLenum target, GLuint index,
+ const GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMENVPARAMETER4FARBPROC)(GLenum target, GLuint index,
+ GLfloat x, GLfloat y, GLfloat z,
+ GLfloat w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMENVPARAMETER4FVARBPROC)(GLenum target, GLuint index,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMENVPARAMETERI4INVPROC)(GLenum target, GLuint index, GLint x,
+ GLint y, GLint z, GLint w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMENVPARAMETERI4IVNVPROC)(GLenum target, GLuint index,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMENVPARAMETERI4UINVPROC)(GLenum target, GLuint index,
+ GLuint x, GLuint y, GLuint z,
+ GLuint w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMENVPARAMETERI4UIVNVPROC)(GLenum target, GLuint index,
+ const GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMENVPARAMETERS4FVEXTPROC)(GLenum target, GLuint index,
+ GLsizei count,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMENVPARAMETERSI4IVNVPROC)(GLenum target, GLuint index,
+ GLsizei count, const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC)(GLenum target, GLuint index,
+ GLsizei count,
+ const GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETER4DARBPROC)(GLenum target, GLuint index,
+ GLdouble x, GLdouble y, GLdouble z,
+ GLdouble w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETER4DVARBPROC)(GLenum target, GLuint index,
+ const GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETER4FARBPROC)(GLenum target, GLuint index,
+ GLfloat x, GLfloat y, GLfloat z,
+ GLfloat w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETER4FVARBPROC)(GLenum target, GLuint index,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETERI4INVPROC)(GLenum target, GLuint index,
+ GLint x, GLint y, GLint z, GLint w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC)(GLenum target, GLuint index,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETERI4UINVPROC)(GLenum target, GLuint index,
+ GLuint x, GLuint y, GLuint z,
+ GLuint w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC)(GLenum target, GLuint index,
+ const GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC)(GLenum target, GLuint index,
+ GLsizei count,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC)(GLenum target, GLuint index,
+ GLsizei count,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC)(GLenum target, GLuint index,
+ GLsizei count,
+ const GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMNAMEDPARAMETER4DNVPROC)(GLuint id, GLsizei len,
+ const GLubyte *name, GLdouble x,
+ GLdouble y, GLdouble z, GLdouble w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC)(GLuint id, GLsizei len,
+ const GLubyte *name,
+ const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMNAMEDPARAMETER4FNVPROC)(GLuint id, GLsizei len,
+ const GLubyte *name, GLfloat x,
+ GLfloat y, GLfloat z, GLfloat w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC)(GLuint id, GLsizei len,
+ const GLubyte *name,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMPARAMETER4DNVPROC)(GLenum target, GLuint index, GLdouble x,
+ GLdouble y, GLdouble z, GLdouble w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMPARAMETER4DVNVPROC)(GLenum target, GLuint index,
+ const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMPARAMETER4FNVPROC)(GLenum target, GLuint index, GLfloat x,
+ GLfloat y, GLfloat z, GLfloat w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMPARAMETER4FVNVPROC)(GLenum target, GLuint index,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMPARAMETERIPROC)(GLuint program, GLenum pname, GLint value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMPARAMETERIARBPROC)(GLuint program, GLenum pname,
+ GLint value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMPARAMETERIEXTPROC)(GLuint program, GLenum pname,
+ GLint value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMPARAMETERS4DVNVPROC)(GLenum target, GLuint index,
+ GLsizei count, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMPARAMETERS4FVNVPROC)(GLenum target, GLuint index,
+ GLsizei count, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC)(GLuint program, GLint location,
+ GLenum genMode, GLint components,
+ const GLfloat *coeffs);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMSTRINGARBPROC)(GLenum target, GLenum format, GLsizei len,
+ const void *string);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMSUBROUTINEPARAMETERSUIVNVPROC)(GLenum target, GLsizei count,
+ const GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1DPROC)(GLuint program, GLint location, GLdouble v0);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1DEXTPROC)(GLuint program, GLint location,
+ GLdouble x);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1DVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1DVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1FPROC)(GLuint program, GLint location, GLfloat v0);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1FEXTPROC)(GLuint program, GLint location,
+ GLfloat v0);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1FVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1FVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1IPROC)(GLuint program, GLint location, GLint v0);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1I64ARBPROC)(GLuint program, GLint location,
+ GLint64 x);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1I64NVPROC)(GLuint program, GLint location,
+ GLint64EXT x);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1I64VARBPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint64 *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1I64VNVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1IEXTPROC)(GLuint program, GLint location, GLint v0);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1IVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1IVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1UIPROC)(GLuint program, GLint location, GLuint v0);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1UI64ARBPROC)(GLuint program, GLint location,
+ GLuint64 x);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1UI64NVPROC)(GLuint program, GLint location,
+ GLuint64EXT x);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1UI64VARBPROC)(GLuint program, GLint location,
+ GLsizei count, const GLuint64 *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1UI64VNVPROC)(GLuint program, GLint location,
+ GLsizei count,
+ const GLuint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1UIEXTPROC)(GLuint program, GLint location,
+ GLuint v0);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1UIVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1UIVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2DPROC)(GLuint program, GLint location, GLdouble v0,
+ GLdouble v1);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2DEXTPROC)(GLuint program, GLint location, GLdouble x,
+ GLdouble y);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2DVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2DVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2FPROC)(GLuint program, GLint location, GLfloat v0,
+ GLfloat v1);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2FEXTPROC)(GLuint program, GLint location, GLfloat v0,
+ GLfloat v1);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2FVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2FVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2IPROC)(GLuint program, GLint location, GLint v0,
+ GLint v1);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2I64ARBPROC)(GLuint program, GLint location,
+ GLint64 x, GLint64 y);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2I64NVPROC)(GLuint program, GLint location,
+ GLint64EXT x, GLint64EXT y);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2I64VARBPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint64 *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2I64VNVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2IEXTPROC)(GLuint program, GLint location, GLint v0,
+ GLint v1);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2IVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2IVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2UIPROC)(GLuint program, GLint location, GLuint v0,
+ GLuint v1);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2UI64ARBPROC)(GLuint program, GLint location,
+ GLuint64 x, GLuint64 y);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2UI64NVPROC)(GLuint program, GLint location,
+ GLuint64EXT x, GLuint64EXT y);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2UI64VARBPROC)(GLuint program, GLint location,
+ GLsizei count, const GLuint64 *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2UI64VNVPROC)(GLuint program, GLint location,
+ GLsizei count,
+ const GLuint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2UIEXTPROC)(GLuint program, GLint location, GLuint v0,
+ GLuint v1);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2UIVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2UIVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3DPROC)(GLuint program, GLint location, GLdouble v0,
+ GLdouble v1, GLdouble v2);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3DEXTPROC)(GLuint program, GLint location, GLdouble x,
+ GLdouble y, GLdouble z);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3DVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3DVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3FPROC)(GLuint program, GLint location, GLfloat v0,
+ GLfloat v1, GLfloat v2);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3FEXTPROC)(GLuint program, GLint location, GLfloat v0,
+ GLfloat v1, GLfloat v2);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3FVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3FVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3IPROC)(GLuint program, GLint location, GLint v0,
+ GLint v1, GLint v2);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3I64ARBPROC)(GLuint program, GLint location,
+ GLint64 x, GLint64 y, GLint64 z);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3I64NVPROC)(GLuint program, GLint location,
+ GLint64EXT x, GLint64EXT y, GLint64EXT z);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3I64VARBPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint64 *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3I64VNVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3IEXTPROC)(GLuint program, GLint location, GLint v0,
+ GLint v1, GLint v2);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3IVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3IVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3UIPROC)(GLuint program, GLint location, GLuint v0,
+ GLuint v1, GLuint v2);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3UI64ARBPROC)(GLuint program, GLint location,
+ GLuint64 x, GLuint64 y, GLuint64 z);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3UI64NVPROC)(GLuint program, GLint location,
+ GLuint64EXT x, GLuint64EXT y,
+ GLuint64EXT z);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3UI64VARBPROC)(GLuint program, GLint location,
+ GLsizei count, const GLuint64 *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3UI64VNVPROC)(GLuint program, GLint location,
+ GLsizei count,
+ const GLuint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3UIEXTPROC)(GLuint program, GLint location, GLuint v0,
+ GLuint v1, GLuint v2);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3UIVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3UIVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4DPROC)(GLuint program, GLint location, GLdouble v0,
+ GLdouble v1, GLdouble v2, GLdouble v3);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4DEXTPROC)(GLuint program, GLint location, GLdouble x,
+ GLdouble y, GLdouble z, GLdouble w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4DVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4DVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4FPROC)(GLuint program, GLint location, GLfloat v0,
+ GLfloat v1, GLfloat v2, GLfloat v3);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4FEXTPROC)(GLuint program, GLint location, GLfloat v0,
+ GLfloat v1, GLfloat v2, GLfloat v3);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4FVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4FVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4IPROC)(GLuint program, GLint location, GLint v0,
+ GLint v1, GLint v2, GLint v3);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4I64ARBPROC)(GLuint program, GLint location,
+ GLint64 x, GLint64 y, GLint64 z,
+ GLint64 w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4I64NVPROC)(GLuint program, GLint location,
+ GLint64EXT x, GLint64EXT y, GLint64EXT z,
+ GLint64EXT w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4I64VARBPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint64 *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4I64VNVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4IEXTPROC)(GLuint program, GLint location, GLint v0,
+ GLint v1, GLint v2, GLint v3);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4IVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4IVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4UIPROC)(GLuint program, GLint location, GLuint v0,
+ GLuint v1, GLuint v2, GLuint v3);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4UI64ARBPROC)(GLuint program, GLint location,
+ GLuint64 x, GLuint64 y, GLuint64 z,
+ GLuint64 w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4UI64NVPROC)(GLuint program, GLint location,
+ GLuint64EXT x, GLuint64EXT y,
+ GLuint64EXT z, GLuint64EXT w);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4UI64VARBPROC)(GLuint program, GLint location,
+ GLsizei count, const GLuint64 *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4UI64VNVPROC)(GLuint program, GLint location,
+ GLsizei count,
+ const GLuint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4UIEXTPROC)(GLuint program, GLint location, GLuint v0,
+ GLuint v1, GLuint v2, GLuint v3);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4UIVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4UIVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC)(GLuint program, GLint location,
+ GLuint64 value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC)(GLuint program, GLint location,
+ GLuint64 value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC)(GLuint program, GLint location,
+ GLsizei count,
+ const GLuint64 *values);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC)(GLuint program, GLint location,
+ GLsizei count,
+ const GLuint64 *values);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2DVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2FVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC)(GLuint program, GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC)(GLuint program, GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC)(GLuint program, GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC)(GLuint program, GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3DVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3FVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC)(GLuint program, GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC)(GLuint program, GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC)(GLuint program, GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC)(GLuint program, GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4DVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4FVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC)(GLuint program, GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC)(GLuint program, GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC)(GLuint program, GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC)(GLuint program, GLint location,
+ GLsizei count, GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC)(GLuint program, GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMUI64NVPROC)(GLuint program, GLint location,
+ GLuint64EXT value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMUI64VNVPROC)(GLuint program, GLint location,
+ GLsizei count, const GLuint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLPROGRAMVERTEXLIMITNVPROC)(GLenum target, GLint limit);
+typedef void(GLAD_API_PTR *PFNGLPROVOKINGVERTEXPROC)(GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLPROVOKINGVERTEXEXTPROC)(GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC)(GLbitfield mask);
+typedef void(GLAD_API_PTR *PFNGLPUSHDEBUGGROUPPROC)(GLenum source, GLuint id, GLsizei length,
+ const GLchar *message);
+typedef void(GLAD_API_PTR *PFNGLPUSHGROUPMARKEREXTPROC)(GLsizei length, const GLchar *marker);
+typedef void(GLAD_API_PTR *PFNGLQUERYCOUNTERPROC)(GLuint id, GLenum target);
+typedef GLbitfield(GLAD_API_PTR *PFNGLQUERYMATRIXXOESPROC)(GLfixed *mantissa, GLint *exponent);
+typedef void(GLAD_API_PTR *PFNGLQUERYOBJECTPARAMETERUIAMDPROC)(GLenum target, GLuint id,
+ GLenum pname, GLuint param);
+typedef GLint(GLAD_API_PTR *PFNGLQUERYRESOURCENVPROC)(GLenum queryType, GLint tagId, GLuint count,
+ GLint *buffer);
+typedef void(GLAD_API_PTR *PFNGLQUERYRESOURCETAGNVPROC)(GLint tagId, const GLchar *tagString);
+typedef void(GLAD_API_PTR *PFNGLRASTERPOS2XOESPROC)(GLfixed x, GLfixed y);
+typedef void(GLAD_API_PTR *PFNGLRASTERPOS2XVOESPROC)(const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLRASTERPOS3XOESPROC)(GLfixed x, GLfixed y, GLfixed z);
+typedef void(GLAD_API_PTR *PFNGLRASTERPOS3XVOESPROC)(const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLRASTERPOS4XOESPROC)(GLfixed x, GLfixed y, GLfixed z, GLfixed w);
+typedef void(GLAD_API_PTR *PFNGLRASTERPOS4XVOESPROC)(const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLRASTERSAMPLESEXTPROC)(GLuint samples,
+ GLboolean fixedsamplelocations);
+typedef void(GLAD_API_PTR *PFNGLREADBUFFERPROC)(GLenum src);
+typedef void(GLAD_API_PTR *PFNGLREADINSTRUMENTSSGIXPROC)(GLint marker);
+typedef void(GLAD_API_PTR *PFNGLREADPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height,
+ GLenum format, GLenum type, void *pixels);
+typedef void(GLAD_API_PTR *PFNGLREADNPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height,
+ GLenum format, GLenum type, GLsizei bufSize,
+ void *data);
+typedef void(GLAD_API_PTR *PFNGLREADNPIXELSARBPROC)(GLint x, GLint y, GLsizei width, GLsizei height,
+ GLenum format, GLenum type, GLsizei bufSize,
+ void *data);
+typedef void(GLAD_API_PTR *PFNGLRECTXOESPROC)(GLfixed x1, GLfixed y1, GLfixed x2, GLfixed y2);
+typedef void(GLAD_API_PTR *PFNGLRECTXVOESPROC)(const GLfixed *v1, const GLfixed *v2);
+typedef void(GLAD_API_PTR *PFNGLREFERENCEPLANESGIXPROC)(const GLdouble *equation);
+typedef GLboolean(GLAD_API_PTR *PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC)(GLuint memory, GLuint64 key);
+typedef void(GLAD_API_PTR *PFNGLRELEASESHADERCOMPILERPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLRENDERGPUMASKNVPROC)(GLbitfield mask);
+typedef void(GLAD_API_PTR *PFNGLRENDERBUFFERSTORAGEPROC)(GLenum target, GLenum internalformat,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLRENDERBUFFERSTORAGEEXTPROC)(GLenum target, GLenum internalformat,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)(GLenum target, GLsizei samples,
+ GLenum internalformat,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC)(
+ GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC)(
+ GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)(
+ GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEPOINTERSUNPROC)(GLenum type, GLsizei stride,
+ const void **pointer);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUBSUNPROC)(GLubyte code);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUBVSUNPROC)(const GLubyte *code);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC)(GLuint rc, GLfloat r,
+ GLfloat g, GLfloat b,
+ GLfloat x, GLfloat y,
+ GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC)(const GLuint *rc,
+ const GLfloat *c,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC)(
+ GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz,
+ GLfloat x, GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC)(const GLuint *rc,
+ const GLfloat *c,
+ const GLfloat *n,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC)(GLuint rc, GLubyte r,
+ GLubyte g, GLubyte b,
+ GLubyte a, GLfloat x,
+ GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC)(const GLuint *rc,
+ const GLubyte *c,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC)(GLuint rc, GLfloat nx,
+ GLfloat ny, GLfloat nz,
+ GLfloat x, GLfloat y,
+ GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC)(const GLuint *rc,
+ const GLfloat *n,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUISUNPROC)(GLuint code);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC)(
+ GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx,
+ GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC)(
+ const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC)(
+ GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y,
+ GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC)(
+ const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC)(GLuint rc, GLfloat s,
+ GLfloat t, GLfloat x,
+ GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC)(const GLuint *rc,
+ const GLfloat *tc,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC)(GLuint rc, GLfloat x, GLfloat y,
+ GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC)(const GLuint *rc,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUIVSUNPROC)(const GLuint *code);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUSSUNPROC)(GLushort code);
+typedef void(GLAD_API_PTR *PFNGLREPLACEMENTCODEUSVSUNPROC)(const GLushort *code);
+typedef void(GLAD_API_PTR *PFNGLREQUESTRESIDENTPROGRAMSNVPROC)(GLsizei n, const GLuint *programs);
+typedef void(GLAD_API_PTR *PFNGLRESETHISTOGRAMEXTPROC)(GLenum target);
+typedef void(GLAD_API_PTR *PFNGLRESETMEMORYOBJECTPARAMETERNVPROC)(GLuint memory, GLenum pname);
+typedef void(GLAD_API_PTR *PFNGLRESETMINMAXEXTPROC)(GLenum target);
+typedef void(GLAD_API_PTR *PFNGLRESIZEBUFFERSMESAPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLRESOLVEDEPTHVALUESNVPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLRESUMETRANSFORMFEEDBACKPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLRESUMETRANSFORMFEEDBACKNVPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLROTATEXOESPROC)(GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
+typedef void(GLAD_API_PTR *PFNGLSAMPLECOVERAGEPROC)(GLfloat value, GLboolean invert);
+typedef void(GLAD_API_PTR *PFNGLSAMPLECOVERAGEARBPROC)(GLfloat value, GLboolean invert);
+typedef void(GLAD_API_PTR *PFNGLSAMPLEMAPATIPROC)(GLuint dst, GLuint interp, GLenum swizzle);
+typedef void(GLAD_API_PTR *PFNGLSAMPLEMASKEXTPROC)(GLclampf value, GLboolean invert);
+typedef void(GLAD_API_PTR *PFNGLSAMPLEMASKINDEXEDNVPROC)(GLuint index, GLbitfield mask);
+typedef void(GLAD_API_PTR *PFNGLSAMPLEMASKSGISPROC)(GLclampf value, GLboolean invert);
+typedef void(GLAD_API_PTR *PFNGLSAMPLEMASKIPROC)(GLuint maskNumber, GLbitfield mask);
+typedef void(GLAD_API_PTR *PFNGLSAMPLEPATTERNEXTPROC)(GLenum pattern);
+typedef void(GLAD_API_PTR *PFNGLSAMPLEPATTERNSGISPROC)(GLenum pattern);
+typedef void(GLAD_API_PTR *PFNGLSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname,
+ const GLint *param);
+typedef void(GLAD_API_PTR *PFNGLSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname,
+ const GLuint *param);
+typedef void(GLAD_API_PTR *PFNGLSAMPLERPARAMETERFPROC)(GLuint sampler, GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname,
+ const GLfloat *param);
+typedef void(GLAD_API_PTR *PFNGLSAMPLERPARAMETERIPROC)(GLuint sampler, GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname,
+ const GLint *param);
+typedef void(GLAD_API_PTR *PFNGLSCALEXOESPROC)(GLfixed x, GLfixed y, GLfixed z);
+typedef void(GLAD_API_PTR *PFNGLSCISSORPROC)(GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLSCISSORARRAYVPROC)(GLuint first, GLsizei count, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLSCISSOREXCLUSIVEARRAYVNVPROC)(GLuint first, GLsizei count,
+ const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLSCISSOREXCLUSIVENVPROC)(GLint x, GLint y, GLsizei width,
+ GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLSCISSORINDEXEDPROC)(GLuint index, GLint left, GLint bottom,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLSCISSORINDEXEDVPROC)(GLuint index, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3BEXTPROC)(GLbyte red, GLbyte green, GLbyte blue);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3BVEXTPROC)(const GLbyte *v);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3DEXTPROC)(GLdouble red, GLdouble green,
+ GLdouble blue);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3DVEXTPROC)(const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3FEXTPROC)(GLfloat red, GLfloat green, GLfloat blue);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3FVEXTPROC)(const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3HNVPROC)(GLhalfNV red, GLhalfNV green,
+ GLhalfNV blue);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3HVNVPROC)(const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3IEXTPROC)(GLint red, GLint green, GLint blue);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3IVEXTPROC)(const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3SEXTPROC)(GLshort red, GLshort green, GLshort blue);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3SVEXTPROC)(const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3UBEXTPROC)(GLubyte red, GLubyte green, GLubyte blue);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3UBVEXTPROC)(const GLubyte *v);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3UIEXTPROC)(GLuint red, GLuint green, GLuint blue);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3UIVEXTPROC)(const GLuint *v);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3USEXTPROC)(GLushort red, GLushort green,
+ GLushort blue);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3USVEXTPROC)(const GLushort *v);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLORFORMATNVPROC)(GLint size, GLenum type,
+ GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLORPOINTEREXTPROC)(GLint size, GLenum type,
+ GLsizei stride, const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLORPOINTERLISTIBMPROC)(GLint size, GLenum type,
+ GLint stride,
+ const void **pointer,
+ GLint ptrstride);
+typedef void(GLAD_API_PTR *PFNGLSELECTPERFMONITORCOUNTERSAMDPROC)(GLuint monitor, GLboolean enable,
+ GLuint group, GLint numCounters,
+ GLuint *counterList);
+typedef void(GLAD_API_PTR *PFNGLSEMAPHOREPARAMETERIVNVPROC)(GLuint semaphore, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLSEMAPHOREPARAMETERUI64VEXTPROC)(GLuint semaphore, GLenum pname,
+ const GLuint64 *params);
+typedef void(GLAD_API_PTR *PFNGLSEPARABLEFILTER2DEXTPROC)(GLenum target, GLenum internalformat,
+ GLsizei width, GLsizei height,
+ GLenum format, GLenum type,
+ const void *row, const void *column);
+typedef void(GLAD_API_PTR *PFNGLSETFENCEAPPLEPROC)(GLuint fence);
+typedef void(GLAD_API_PTR *PFNGLSETFENCENVPROC)(GLuint fence, GLenum condition);
+typedef void(GLAD_API_PTR *PFNGLSETFRAGMENTSHADERCONSTANTATIPROC)(GLuint dst, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLSETINVARIANTEXTPROC)(GLuint id, GLenum type, const void *addr);
+typedef void(GLAD_API_PTR *PFNGLSETLOCALCONSTANTEXTPROC)(GLuint id, GLenum type, const void *addr);
+typedef void(GLAD_API_PTR *PFNGLSETMULTISAMPLEFVAMDPROC)(GLenum pname, GLuint index,
+ const GLfloat *val);
+typedef void(GLAD_API_PTR *PFNGLSHADERBINARYPROC)(GLsizei count, const GLuint *shaders,
+ GLenum binaryFormat, const void *binary,
+ GLsizei length);
+typedef void(GLAD_API_PTR *PFNGLSHADEROP1EXTPROC)(GLenum op, GLuint res, GLuint arg1);
+typedef void(GLAD_API_PTR *PFNGLSHADEROP2EXTPROC)(GLenum op, GLuint res, GLuint arg1, GLuint arg2);
+typedef void(GLAD_API_PTR *PFNGLSHADEROP3EXTPROC)(GLenum op, GLuint res, GLuint arg1, GLuint arg2,
+ GLuint arg3);
+typedef void(GLAD_API_PTR *PFNGLSHADERSOURCEPROC)(GLuint shader, GLsizei count,
+ const GLchar *const *string, const GLint *length);
+typedef void(GLAD_API_PTR *PFNGLSHADERSOURCEARBPROC)(GLhandleARB shaderObj, GLsizei count,
+ const GLcharARB **string, const GLint *length);
+typedef void(GLAD_API_PTR *PFNGLSHADERSTORAGEBLOCKBINDINGPROC)(GLuint program,
+ GLuint storageBlockIndex,
+ GLuint storageBlockBinding);
+typedef void(GLAD_API_PTR *PFNGLSHADINGRATEIMAGEBARRIERNVPROC)(GLboolean synchronize);
+typedef void(GLAD_API_PTR *PFNGLSHADINGRATEIMAGEPALETTENVPROC)(GLuint viewport, GLuint first,
+ GLsizei count, const GLenum *rates);
+typedef void(GLAD_API_PTR *PFNGLSHADINGRATESAMPLEORDERCUSTOMNVPROC)(GLenum rate, GLuint samples,
+ const GLint *locations);
+typedef void(GLAD_API_PTR *PFNGLSHADINGRATESAMPLEORDERNVPROC)(GLenum order);
+typedef void(GLAD_API_PTR *PFNGLSHARPENTEXFUNCSGISPROC)(GLenum target, GLsizei n,
+ const GLfloat *points);
+typedef void(GLAD_API_PTR *PFNGLSIGNALSEMAPHOREEXTPROC)(GLuint semaphore, GLuint numBufferBarriers,
+ const GLuint *buffers,
+ GLuint numTextureBarriers,
+ const GLuint *textures,
+ const GLenum *dstLayouts);
+typedef void(GLAD_API_PTR *PFNGLSIGNALSEMAPHOREUI64NVXPROC)(GLuint signalGpu,
+ GLsizei fenceObjectCount,
+ const GLuint *semaphoreArray,
+ const GLuint64 *fenceValueArray);
+typedef void(GLAD_API_PTR *PFNGLSIGNALVKFENCENVPROC)(GLuint64 vkFence);
+typedef void(GLAD_API_PTR *PFNGLSIGNALVKSEMAPHORENVPROC)(GLuint64 vkSemaphore);
+typedef void(GLAD_API_PTR *PFNGLSPECIALIZESHADERPROC)(GLuint shader, const GLchar *pEntryPoint,
+ GLuint numSpecializationConstants,
+ const GLuint *pConstantIndex,
+ const GLuint *pConstantValue);
+typedef void(GLAD_API_PTR *PFNGLSPECIALIZESHADERARBPROC)(GLuint shader, const GLchar *pEntryPoint,
+ GLuint numSpecializationConstants,
+ const GLuint *pConstantIndex,
+ const GLuint *pConstantValue);
+typedef void(GLAD_API_PTR *PFNGLSPRITEPARAMETERFSGIXPROC)(GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLSPRITEPARAMETERFVSGIXPROC)(GLenum pname, const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLSPRITEPARAMETERISGIXPROC)(GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLSPRITEPARAMETERIVSGIXPROC)(GLenum pname, const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLSTARTINSTRUMENTSSGIXPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLSTATECAPTURENVPROC)(GLuint state, GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLSTENCILCLEARTAGEXTPROC)(GLsizei stencilTagBits,
+ GLuint stencilClearTag);
+typedef void(GLAD_API_PTR *PFNGLSTENCILFILLPATHINSTANCEDNVPROC)(
+ GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode,
+ GLuint mask, GLenum transformType, const GLfloat *transformValues);
+typedef void(GLAD_API_PTR *PFNGLSTENCILFILLPATHNVPROC)(GLuint path, GLenum fillMode, GLuint mask);
+typedef void(GLAD_API_PTR *PFNGLSTENCILFUNCPROC)(GLenum func, GLint ref, GLuint mask);
+typedef void(GLAD_API_PTR *PFNGLSTENCILFUNCSEPARATEPROC)(GLenum face, GLenum func, GLint ref,
+ GLuint mask);
+typedef void(GLAD_API_PTR *PFNGLSTENCILFUNCSEPARATEATIPROC)(GLenum frontfunc, GLenum backfunc,
+ GLint ref, GLuint mask);
+typedef void(GLAD_API_PTR *PFNGLSTENCILMASKPROC)(GLuint mask);
+typedef void(GLAD_API_PTR *PFNGLSTENCILMASKSEPARATEPROC)(GLenum face, GLuint mask);
+typedef void(GLAD_API_PTR *PFNGLSTENCILOPPROC)(GLenum fail, GLenum zfail, GLenum zpass);
+typedef void(GLAD_API_PTR *PFNGLSTENCILOPSEPARATEPROC)(GLenum face, GLenum sfail, GLenum dpfail,
+ GLenum dppass);
+typedef void(GLAD_API_PTR *PFNGLSTENCILOPSEPARATEATIPROC)(GLenum face, GLenum sfail, GLenum dpfail,
+ GLenum dppass);
+typedef void(GLAD_API_PTR *PFNGLSTENCILOPVALUEAMDPROC)(GLenum face, GLuint value);
+typedef void(GLAD_API_PTR *PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC)(
+ GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference,
+ GLuint mask, GLenum transformType, const GLfloat *transformValues);
+typedef void(GLAD_API_PTR *PFNGLSTENCILSTROKEPATHNVPROC)(GLuint path, GLint reference, GLuint mask);
+typedef void(GLAD_API_PTR *PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC)(
+ GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode,
+ GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
+typedef void(GLAD_API_PTR *PFNGLSTENCILTHENCOVERFILLPATHNVPROC)(GLuint path, GLenum fillMode,
+ GLuint mask, GLenum coverMode);
+typedef void(GLAD_API_PTR *PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC)(
+ GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference,
+ GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
+typedef void(GLAD_API_PTR *PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC)(GLuint path, GLint reference,
+ GLuint mask, GLenum coverMode);
+typedef void(GLAD_API_PTR *PFNGLSTOPINSTRUMENTSSGIXPROC)(GLint marker);
+typedef void(GLAD_API_PTR *PFNGLSTRINGMARKERGREMEDYPROC)(GLsizei len, const void *string);
+typedef void(GLAD_API_PTR *PFNGLSUBPIXELPRECISIONBIASNVPROC)(GLuint xbits, GLuint ybits);
+typedef void(GLAD_API_PTR *PFNGLSWIZZLEEXTPROC)(GLuint res, GLuint in, GLenum outX, GLenum outY,
+ GLenum outZ, GLenum outW);
+typedef void(GLAD_API_PTR *PFNGLSYNCTEXTUREINTELPROC)(GLuint texture);
+typedef void(GLAD_API_PTR *PFNGLTAGSAMPLEBUFFERSGIXPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLTANGENT3BEXTPROC)(GLbyte tx, GLbyte ty, GLbyte tz);
+typedef void(GLAD_API_PTR *PFNGLTANGENT3BVEXTPROC)(const GLbyte *v);
+typedef void(GLAD_API_PTR *PFNGLTANGENT3DEXTPROC)(GLdouble tx, GLdouble ty, GLdouble tz);
+typedef void(GLAD_API_PTR *PFNGLTANGENT3DVEXTPROC)(const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLTANGENT3FEXTPROC)(GLfloat tx, GLfloat ty, GLfloat tz);
+typedef void(GLAD_API_PTR *PFNGLTANGENT3FVEXTPROC)(const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLTANGENT3IEXTPROC)(GLint tx, GLint ty, GLint tz);
+typedef void(GLAD_API_PTR *PFNGLTANGENT3IVEXTPROC)(const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLTANGENT3SEXTPROC)(GLshort tx, GLshort ty, GLshort tz);
+typedef void(GLAD_API_PTR *PFNGLTANGENT3SVEXTPROC)(const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLTANGENTPOINTEREXTPROC)(GLenum type, GLsizei stride,
+ const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLTBUFFERMASK3DFXPROC)(GLuint mask);
+typedef void(GLAD_API_PTR *PFNGLTESSELLATIONFACTORAMDPROC)(GLfloat factor);
+typedef void(GLAD_API_PTR *PFNGLTESSELLATIONMODEAMDPROC)(GLenum mode);
+typedef GLboolean(GLAD_API_PTR *PFNGLTESTFENCEAPPLEPROC)(GLuint fence);
+typedef GLboolean(GLAD_API_PTR *PFNGLTESTFENCENVPROC)(GLuint fence);
+typedef GLboolean(GLAD_API_PTR *PFNGLTESTOBJECTAPPLEPROC)(GLenum object, GLuint name);
+typedef void(GLAD_API_PTR *PFNGLTEXATTACHMEMORYNVPROC)(GLenum target, GLuint memory,
+ GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLTEXBUFFERPROC)(GLenum target, GLenum internalformat, GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLTEXBUFFERARBPROC)(GLenum target, GLenum internalformat,
+ GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLTEXBUFFEREXTPROC)(GLenum target, GLenum internalformat,
+ GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLTEXBUFFERRANGEPROC)(GLenum target, GLenum internalformat,
+ GLuint buffer, GLintptr offset,
+ GLsizeiptr size);
+typedef void(GLAD_API_PTR *PFNGLTEXBUMPPARAMETERFVATIPROC)(GLenum pname, const GLfloat *param);
+typedef void(GLAD_API_PTR *PFNGLTEXBUMPPARAMETERIVATIPROC)(GLenum pname, const GLint *param);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD1BOESPROC)(GLbyte s);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD1BVOESPROC)(const GLbyte *coords);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD1HNVPROC)(GLhalfNV s);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD1HVNVPROC)(const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD1XOESPROC)(GLfixed s);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD1XVOESPROC)(const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2BOESPROC)(GLbyte s, GLbyte t);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2BVOESPROC)(const GLbyte *coords);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC)(GLfloat s, GLfloat t, GLfloat r,
+ GLfloat g, GLfloat b, GLfloat x,
+ GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC)(const GLfloat *tc,
+ const GLfloat *c,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC)(
+ GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny,
+ GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC)(const GLfloat *tc,
+ const GLfloat *c,
+ const GLfloat *n,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC)(GLfloat s, GLfloat t, GLubyte r,
+ GLubyte g, GLubyte b, GLubyte a,
+ GLfloat x, GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC)(const GLfloat *tc,
+ const GLubyte *c,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC)(GLfloat s, GLfloat t, GLfloat nx,
+ GLfloat ny, GLfloat nz,
+ GLfloat x, GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC)(const GLfloat *tc,
+ const GLfloat *n,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2FVERTEX3FSUNPROC)(GLfloat s, GLfloat t, GLfloat x,
+ GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2FVERTEX3FVSUNPROC)(const GLfloat *tc, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2HNVPROC)(GLhalfNV s, GLhalfNV t);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2HVNVPROC)(const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2XOESPROC)(GLfixed s, GLfixed t);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD2XVOESPROC)(const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD3BOESPROC)(GLbyte s, GLbyte t, GLbyte r);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD3BVOESPROC)(const GLbyte *coords);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD3HNVPROC)(GLhalfNV s, GLhalfNV t, GLhalfNV r);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD3HVNVPROC)(const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD3XOESPROC)(GLfixed s, GLfixed t, GLfixed r);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD3XVOESPROC)(const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD4BOESPROC)(GLbyte s, GLbyte t, GLbyte r, GLbyte q);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD4BVOESPROC)(const GLbyte *coords);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC)(
+ GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a,
+ GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC)(const GLfloat *tc,
+ const GLfloat *c,
+ const GLfloat *n,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD4FVERTEX4FSUNPROC)(GLfloat s, GLfloat t, GLfloat p,
+ GLfloat q, GLfloat x, GLfloat y,
+ GLfloat z, GLfloat w);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD4FVERTEX4FVSUNPROC)(const GLfloat *tc, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD4HNVPROC)(GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD4HVNVPROC)(const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD4XOESPROC)(GLfixed s, GLfixed t, GLfixed r, GLfixed q);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORD4XVOESPROC)(const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORDFORMATNVPROC)(GLint size, GLenum type, GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORDPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride,
+ GLsizei count, const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORDPOINTERLISTIBMPROC)(GLint size, GLenum type, GLint stride,
+ const void **pointer, GLint ptrstride);
+typedef void(GLAD_API_PTR *PFNGLTEXCOORDPOINTERVINTELPROC)(GLint size, GLenum type,
+ const void **pointer);
+typedef void(GLAD_API_PTR *PFNGLTEXENVXOESPROC)(GLenum target, GLenum pname, GLfixed param);
+typedef void(GLAD_API_PTR *PFNGLTEXENVXVOESPROC)(GLenum target, GLenum pname,
+ const GLfixed *params);
+typedef void(GLAD_API_PTR *PFNGLTEXFILTERFUNCSGISPROC)(GLenum target, GLenum filter, GLsizei n,
+ const GLfloat *weights);
+typedef void(GLAD_API_PTR *PFNGLTEXGENXOESPROC)(GLenum coord, GLenum pname, GLfixed param);
+typedef void(GLAD_API_PTR *PFNGLTEXGENXVOESPROC)(GLenum coord, GLenum pname, const GLfixed *params);
+typedef void(GLAD_API_PTR *PFNGLTEXIMAGE1DPROC)(GLenum target, GLint level, GLint internalformat,
+ GLsizei width, GLint border, GLenum format,
+ GLenum type, const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXIMAGE2DPROC)(GLenum target, GLint level, GLint internalformat,
+ GLsizei width, GLsizei height, GLint border,
+ GLenum format, GLenum type, const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXIMAGE2DMULTISAMPLEPROC)(GLenum target, GLsizei samples,
+ GLenum internalformat, GLsizei width,
+ GLsizei height,
+ GLboolean fixedsamplelocations);
+typedef void(GLAD_API_PTR *PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC)(
+ GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat,
+ GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
+typedef void(GLAD_API_PTR *PFNGLTEXIMAGE3DPROC)(GLenum target, GLint level, GLint internalformat,
+ GLsizei width, GLsizei height, GLsizei depth,
+ GLint border, GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXIMAGE3DEXTPROC)(GLenum target, GLint level,
+ GLenum internalformat, GLsizei width,
+ GLsizei height, GLsizei depth, GLint border,
+ GLenum format, GLenum type, const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXIMAGE3DMULTISAMPLEPROC)(GLenum target, GLsizei samples,
+ GLenum internalformat, GLsizei width,
+ GLsizei height, GLsizei depth,
+ GLboolean fixedsamplelocations);
+typedef void(GLAD_API_PTR *PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC)(
+ GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat,
+ GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
+typedef void(GLAD_API_PTR *PFNGLTEXIMAGE4DSGISPROC)(GLenum target, GLint level,
+ GLenum internalformat, GLsizei width,
+ GLsizei height, GLsizei depth, GLsizei size4d,
+ GLint border, GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXPAGECOMMITMENTARBPROC)(GLenum target, GLint level, GLint xoffset,
+ GLint yoffset, GLint zoffset,
+ GLsizei width, GLsizei height,
+ GLsizei depth, GLboolean commit);
+typedef void(GLAD_API_PTR *PFNGLTEXPAGECOMMITMENTMEMNVPROC)(GLenum target, GLint layer, GLint level,
+ GLint xoffset, GLint yoffset,
+ GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth,
+ GLuint memory, GLuint64 offset,
+ GLboolean commit);
+typedef void(GLAD_API_PTR *PFNGLTEXPARAMETERIIVPROC)(GLenum target, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLTEXPARAMETERIIVEXTPROC)(GLenum target, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname,
+ const GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLTEXPARAMETERIUIVEXTPROC)(GLenum target, GLenum pname,
+ const GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLTEXPARAMETERFPROC)(GLenum target, GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLTEXPARAMETERFVPROC)(GLenum target, GLenum pname,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLTEXPARAMETERIPROC)(GLenum target, GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLTEXPARAMETERIVPROC)(GLenum target, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLTEXPARAMETERXOESPROC)(GLenum target, GLenum pname, GLfixed param);
+typedef void(GLAD_API_PTR *PFNGLTEXPARAMETERXVOESPROC)(GLenum target, GLenum pname,
+ const GLfixed *params);
+typedef void(GLAD_API_PTR *PFNGLTEXRENDERBUFFERNVPROC)(GLenum target, GLuint renderbuffer);
+typedef void(GLAD_API_PTR *PFNGLTEXSTORAGE1DPROC)(GLenum target, GLsizei levels,
+ GLenum internalformat, GLsizei width);
+typedef void(GLAD_API_PTR *PFNGLTEXSTORAGE1DEXTPROC)(GLenum target, GLsizei levels,
+ GLenum internalformat, GLsizei width);
+typedef void(GLAD_API_PTR *PFNGLTEXSTORAGE2DPROC)(GLenum target, GLsizei levels,
+ GLenum internalformat, GLsizei width,
+ GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLTEXSTORAGE2DEXTPROC)(GLenum target, GLsizei levels,
+ GLenum internalformat, GLsizei width,
+ GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLTEXSTORAGE2DMULTISAMPLEPROC)(GLenum target, GLsizei samples,
+ GLenum internalformat, GLsizei width,
+ GLsizei height,
+ GLboolean fixedsamplelocations);
+typedef void(GLAD_API_PTR *PFNGLTEXSTORAGE3DPROC)(GLenum target, GLsizei levels,
+ GLenum internalformat, GLsizei width,
+ GLsizei height, GLsizei depth);
+typedef void(GLAD_API_PTR *PFNGLTEXSTORAGE3DEXTPROC)(GLenum target, GLsizei levels,
+ GLenum internalformat, GLsizei width,
+ GLsizei height, GLsizei depth);
+typedef void(GLAD_API_PTR *PFNGLTEXSTORAGE3DMULTISAMPLEPROC)(GLenum target, GLsizei samples,
+ GLenum internalformat, GLsizei width,
+ GLsizei height, GLsizei depth,
+ GLboolean fixedsamplelocations);
+typedef void(GLAD_API_PTR *PFNGLTEXSTORAGEMEM1DEXTPROC)(GLenum target, GLsizei levels,
+ GLenum internalFormat, GLsizei width,
+ GLuint memory, GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLTEXSTORAGEMEM2DEXTPROC)(GLenum target, GLsizei levels,
+ GLenum internalFormat, GLsizei width,
+ GLsizei height, GLuint memory,
+ GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC)(GLenum target, GLsizei samples,
+ GLenum internalFormat,
+ GLsizei width, GLsizei height,
+ GLboolean fixedSampleLocations,
+ GLuint memory, GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLTEXSTORAGEMEM3DEXTPROC)(GLenum target, GLsizei levels,
+ GLenum internalFormat, GLsizei width,
+ GLsizei height, GLsizei depth,
+ GLuint memory, GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC)(
+ GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height,
+ GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLTEXSTORAGESPARSEAMDPROC)(GLenum target, GLenum internalFormat,
+ GLsizei width, GLsizei height,
+ GLsizei depth, GLsizei layers,
+ GLbitfield flags);
+typedef void(GLAD_API_PTR *PFNGLTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset,
+ GLsizei width, GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXSUBIMAGE1DEXTPROC)(GLenum target, GLint level, GLint xoffset,
+ GLsizei width, GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset,
+ GLint yoffset, GLsizei width, GLsizei height,
+ GLenum format, GLenum type, const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXSUBIMAGE2DEXTPROC)(GLenum target, GLint level, GLint xoffset,
+ GLint yoffset, GLsizei width, GLsizei height,
+ GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset,
+ GLint yoffset, GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth, GLenum format,
+ GLenum type, const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXSUBIMAGE3DEXTPROC)(GLenum target, GLint level, GLint xoffset,
+ GLint yoffset, GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth, GLenum format,
+ GLenum type, const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXSUBIMAGE4DSGISPROC)(GLenum target, GLint level, GLint xoffset,
+ GLint yoffset, GLint zoffset, GLint woffset,
+ GLsizei width, GLsizei height, GLsizei depth,
+ GLsizei size4d, GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREATTACHMEMORYNVPROC)(GLuint texture, GLuint memory,
+ GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREBARRIERPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREBARRIERNVPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREBUFFERPROC)(GLuint texture, GLenum internalformat,
+ GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREBUFFEREXTPROC)(GLuint texture, GLenum target,
+ GLenum internalformat, GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREBUFFERRANGEPROC)(GLuint texture, GLenum internalformat,
+ GLuint buffer, GLintptr offset,
+ GLsizeiptr size);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREBUFFERRANGEEXTPROC)(GLuint texture, GLenum target,
+ GLenum internalformat, GLuint buffer,
+ GLintptr offset, GLsizeiptr size);
+typedef void(GLAD_API_PTR *PFNGLTEXTURECOLORMASKSGISPROC)(GLboolean red, GLboolean green,
+ GLboolean blue, GLboolean alpha);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREIMAGE1DEXTPROC)(GLuint texture, GLenum target, GLint level,
+ GLint internalformat, GLsizei width,
+ GLint border, GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREIMAGE2DEXTPROC)(GLuint texture, GLenum target, GLint level,
+ GLint internalformat, GLsizei width,
+ GLsizei height, GLint border, GLenum format,
+ GLenum type, const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC)(
+ GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples,
+ GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC)(GLuint texture, GLenum target,
+ GLsizei samples,
+ GLint internalFormat,
+ GLsizei width, GLsizei height,
+ GLboolean fixedSampleLocations);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREIMAGE3DEXTPROC)(GLuint texture, GLenum target, GLint level,
+ GLint internalformat, GLsizei width,
+ GLsizei height, GLsizei depth, GLint border,
+ GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC)(
+ GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples,
+ GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth,
+ GLboolean fixedSampleLocations);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC)(
+ GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width,
+ GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
+typedef void(GLAD_API_PTR *PFNGLTEXTURELIGHTEXTPROC)(GLenum pname);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREMATERIALEXTPROC)(GLenum face, GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLTEXTURENORMALEXTPROC)(GLenum mode);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREPAGECOMMITMENTEXTPROC)(GLuint texture, GLint level,
+ GLint xoffset, GLint yoffset,
+ GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth,
+ GLboolean commit);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREPAGECOMMITMENTMEMNVPROC)(GLuint texture, GLint layer,
+ GLint level, GLint xoffset,
+ GLint yoffset, GLint zoffset,
+ GLsizei width, GLsizei height,
+ GLsizei depth, GLuint memory,
+ GLuint64 offset, GLboolean commit);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERIIVPROC)(GLuint texture, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERIIVEXTPROC)(GLuint texture, GLenum target,
+ GLenum pname, const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERIUIVPROC)(GLuint texture, GLenum pname,
+ const GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERIUIVEXTPROC)(GLuint texture, GLenum target,
+ GLenum pname, const GLuint *params);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERFPROC)(GLuint texture, GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERFEXTPROC)(GLuint texture, GLenum target,
+ GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERFVPROC)(GLuint texture, GLenum pname,
+ const GLfloat *param);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERFVEXTPROC)(GLuint texture, GLenum target,
+ GLenum pname, const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERIPROC)(GLuint texture, GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERIEXTPROC)(GLuint texture, GLenum target,
+ GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERIVPROC)(GLuint texture, GLenum pname,
+ const GLint *param);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERIVEXTPROC)(GLuint texture, GLenum target,
+ GLenum pname, const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLTEXTURERANGEAPPLEPROC)(GLenum target, GLsizei length,
+ const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLTEXTURERENDERBUFFEREXTPROC)(GLuint texture, GLenum target,
+ GLuint renderbuffer);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGE1DPROC)(GLuint texture, GLsizei levels,
+ GLenum internalformat, GLsizei width);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGE1DEXTPROC)(GLuint texture, GLenum target,
+ GLsizei levels, GLenum internalformat,
+ GLsizei width);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGE2DPROC)(GLuint texture, GLsizei levels,
+ GLenum internalformat, GLsizei width,
+ GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGE2DEXTPROC)(GLuint texture, GLenum target,
+ GLsizei levels, GLenum internalformat,
+ GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC)(GLuint texture, GLsizei samples,
+ GLenum internalformat,
+ GLsizei width, GLsizei height,
+ GLboolean fixedsamplelocations);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC)(GLuint texture, GLenum target,
+ GLsizei samples,
+ GLenum internalformat,
+ GLsizei width, GLsizei height,
+ GLboolean fixedsamplelocations);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGE3DPROC)(GLuint texture, GLsizei levels,
+ GLenum internalformat, GLsizei width,
+ GLsizei height, GLsizei depth);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGE3DEXTPROC)(GLuint texture, GLenum target,
+ GLsizei levels, GLenum internalformat,
+ GLsizei width, GLsizei height,
+ GLsizei depth);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC)(GLuint texture, GLsizei samples,
+ GLenum internalformat,
+ GLsizei width, GLsizei height,
+ GLsizei depth,
+ GLboolean fixedsamplelocations);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC)(
+ GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width,
+ GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGEMEM1DEXTPROC)(GLuint texture, GLsizei levels,
+ GLenum internalFormat, GLsizei width,
+ GLuint memory, GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGEMEM2DEXTPROC)(GLuint texture, GLsizei levels,
+ GLenum internalFormat, GLsizei width,
+ GLsizei height, GLuint memory,
+ GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC)(
+ GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height,
+ GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGEMEM3DEXTPROC)(GLuint texture, GLsizei levels,
+ GLenum internalFormat, GLsizei width,
+ GLsizei height, GLsizei depth,
+ GLuint memory, GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC)(
+ GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height,
+ GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGESPARSEAMDPROC)(GLuint texture, GLenum target,
+ GLenum internalFormat, GLsizei width,
+ GLsizei height, GLsizei depth,
+ GLsizei layers, GLbitfield flags);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level, GLint xoffset,
+ GLsizei width, GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESUBIMAGE1DEXTPROC)(GLuint texture, GLenum target,
+ GLint level, GLint xoffset, GLsizei width,
+ GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level, GLint xoffset,
+ GLint yoffset, GLsizei width, GLsizei height,
+ GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESUBIMAGE2DEXTPROC)(GLuint texture, GLenum target,
+ GLint level, GLint xoffset, GLint yoffset,
+ GLsizei width, GLsizei height,
+ GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESUBIMAGE3DPROC)(GLuint texture, GLint level, GLint xoffset,
+ GLint yoffset, GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth, GLenum format,
+ GLenum type, const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXTURESUBIMAGE3DEXTPROC)(GLuint texture, GLenum target,
+ GLint level, GLint xoffset, GLint yoffset,
+ GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth,
+ GLenum format, GLenum type,
+ const void *pixels);
+typedef void(GLAD_API_PTR *PFNGLTEXTUREVIEWPROC)(GLuint texture, GLenum target, GLuint origtexture,
+ GLenum internalformat, GLuint minlevel,
+ GLuint numlevels, GLuint minlayer,
+ GLuint numlayers);
+typedef void(GLAD_API_PTR *PFNGLTRACKMATRIXNVPROC)(GLenum target, GLuint address, GLenum matrix,
+ GLenum transform);
+typedef void(GLAD_API_PTR *PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC)(GLsizei count, const GLint *attribs,
+ GLenum bufferMode);
+typedef void(GLAD_API_PTR *PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC)(GLuint xfb, GLuint index,
+ GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC)(GLuint xfb, GLuint index,
+ GLuint buffer, GLintptr offset,
+ GLsizeiptr size);
+typedef void(GLAD_API_PTR *PFNGLTRANSFORMFEEDBACKSTREAMATTRIBSNVPROC)(GLsizei count,
+ const GLint *attribs,
+ GLsizei nbuffers,
+ const GLint *bufstreams,
+ GLenum bufferMode);
+typedef void(GLAD_API_PTR *PFNGLTRANSFORMFEEDBACKVARYINGSPROC)(GLuint program, GLsizei count,
+ const GLchar *const *varyings,
+ GLenum bufferMode);
+typedef void(GLAD_API_PTR *PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC)(GLuint program, GLsizei count,
+ const GLchar *const *varyings,
+ GLenum bufferMode);
+typedef void(GLAD_API_PTR *PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC)(GLuint program, GLsizei count,
+ const GLint *locations,
+ GLenum bufferMode);
+typedef void(GLAD_API_PTR *PFNGLTRANSFORMPATHNVPROC)(GLuint resultPath, GLuint srcPath,
+ GLenum transformType,
+ const GLfloat *transformValues);
+typedef void(GLAD_API_PTR *PFNGLTRANSLATEXOESPROC)(GLfixed x, GLfixed y, GLfixed z);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1DPROC)(GLint location, GLdouble x);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1DVPROC)(GLint location, GLsizei count,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1FPROC)(GLint location, GLfloat v0);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1FARBPROC)(GLint location, GLfloat v0);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1FVPROC)(GLint location, GLsizei count,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1FVARBPROC)(GLint location, GLsizei count,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1IPROC)(GLint location, GLint v0);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1I64ARBPROC)(GLint location, GLint64 x);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1I64NVPROC)(GLint location, GLint64EXT x);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1I64VARBPROC)(GLint location, GLsizei count,
+ const GLint64 *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1I64VNVPROC)(GLint location, GLsizei count,
+ const GLint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1IARBPROC)(GLint location, GLint v0);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1IVPROC)(GLint location, GLsizei count, const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1IVARBPROC)(GLint location, GLsizei count,
+ const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1UIPROC)(GLint location, GLuint v0);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1UI64ARBPROC)(GLint location, GLuint64 x);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1UI64NVPROC)(GLint location, GLuint64EXT x);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1UI64VARBPROC)(GLint location, GLsizei count,
+ const GLuint64 *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1UI64VNVPROC)(GLint location, GLsizei count,
+ const GLuint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1UIEXTPROC)(GLint location, GLuint v0);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1UIVPROC)(GLint location, GLsizei count,
+ const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM1UIVEXTPROC)(GLint location, GLsizei count,
+ const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2DPROC)(GLint location, GLdouble x, GLdouble y);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2DVPROC)(GLint location, GLsizei count,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2FPROC)(GLint location, GLfloat v0, GLfloat v1);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2FARBPROC)(GLint location, GLfloat v0, GLfloat v1);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2FVPROC)(GLint location, GLsizei count,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2FVARBPROC)(GLint location, GLsizei count,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2IPROC)(GLint location, GLint v0, GLint v1);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2I64ARBPROC)(GLint location, GLint64 x, GLint64 y);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2I64NVPROC)(GLint location, GLint64EXT x, GLint64EXT y);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2I64VARBPROC)(GLint location, GLsizei count,
+ const GLint64 *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2I64VNVPROC)(GLint location, GLsizei count,
+ const GLint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2IARBPROC)(GLint location, GLint v0, GLint v1);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2IVPROC)(GLint location, GLsizei count, const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2IVARBPROC)(GLint location, GLsizei count,
+ const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2UIPROC)(GLint location, GLuint v0, GLuint v1);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2UI64ARBPROC)(GLint location, GLuint64 x, GLuint64 y);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2UI64NVPROC)(GLint location, GLuint64EXT x, GLuint64EXT y);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2UI64VARBPROC)(GLint location, GLsizei count,
+ const GLuint64 *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2UI64VNVPROC)(GLint location, GLsizei count,
+ const GLuint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2UIEXTPROC)(GLint location, GLuint v0, GLuint v1);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2UIVPROC)(GLint location, GLsizei count,
+ const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM2UIVEXTPROC)(GLint location, GLsizei count,
+ const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3DPROC)(GLint location, GLdouble x, GLdouble y, GLdouble z);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3DVPROC)(GLint location, GLsizei count,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3FARBPROC)(GLint location, GLfloat v0, GLfloat v1,
+ GLfloat v2);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3FVPROC)(GLint location, GLsizei count,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3FVARBPROC)(GLint location, GLsizei count,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3IPROC)(GLint location, GLint v0, GLint v1, GLint v2);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3I64ARBPROC)(GLint location, GLint64 x, GLint64 y,
+ GLint64 z);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3I64NVPROC)(GLint location, GLint64EXT x, GLint64EXT y,
+ GLint64EXT z);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3I64VARBPROC)(GLint location, GLsizei count,
+ const GLint64 *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3I64VNVPROC)(GLint location, GLsizei count,
+ const GLint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3IARBPROC)(GLint location, GLint v0, GLint v1, GLint v2);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3IVPROC)(GLint location, GLsizei count, const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3IVARBPROC)(GLint location, GLsizei count,
+ const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3UI64ARBPROC)(GLint location, GLuint64 x, GLuint64 y,
+ GLuint64 z);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3UI64NVPROC)(GLint location, GLuint64EXT x, GLuint64EXT y,
+ GLuint64EXT z);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3UI64VARBPROC)(GLint location, GLsizei count,
+ const GLuint64 *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3UI64VNVPROC)(GLint location, GLsizei count,
+ const GLuint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3UIEXTPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3UIVPROC)(GLint location, GLsizei count,
+ const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM3UIVEXTPROC)(GLint location, GLsizei count,
+ const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4DPROC)(GLint location, GLdouble x, GLdouble y, GLdouble z,
+ GLdouble w);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4DVPROC)(GLint location, GLsizei count,
+ const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2,
+ GLfloat v3);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4FARBPROC)(GLint location, GLfloat v0, GLfloat v1,
+ GLfloat v2, GLfloat v3);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4FVPROC)(GLint location, GLsizei count,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4FVARBPROC)(GLint location, GLsizei count,
+ const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4IPROC)(GLint location, GLint v0, GLint v1, GLint v2,
+ GLint v3);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4I64ARBPROC)(GLint location, GLint64 x, GLint64 y, GLint64 z,
+ GLint64 w);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4I64NVPROC)(GLint location, GLint64EXT x, GLint64EXT y,
+ GLint64EXT z, GLint64EXT w);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4I64VARBPROC)(GLint location, GLsizei count,
+ const GLint64 *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4I64VNVPROC)(GLint location, GLsizei count,
+ const GLint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4IARBPROC)(GLint location, GLint v0, GLint v1, GLint v2,
+ GLint v3);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4IVPROC)(GLint location, GLsizei count, const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4IVARBPROC)(GLint location, GLsizei count,
+ const GLint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2,
+ GLuint v3);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4UI64ARBPROC)(GLint location, GLuint64 x, GLuint64 y,
+ GLuint64 z, GLuint64 w);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4UI64NVPROC)(GLint location, GLuint64EXT x, GLuint64EXT y,
+ GLuint64EXT z, GLuint64EXT w);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4UI64VARBPROC)(GLint location, GLsizei count,
+ const GLuint64 *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4UI64VNVPROC)(GLint location, GLsizei count,
+ const GLuint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4UIEXTPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2,
+ GLuint v3);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4UIVPROC)(GLint location, GLsizei count,
+ const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORM4UIVEXTPROC)(GLint location, GLsizei count,
+ const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMBLOCKBINDINGPROC)(GLuint program, GLuint uniformBlockIndex,
+ GLuint uniformBlockBinding);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMBUFFEREXTPROC)(GLuint program, GLint location,
+ GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMHANDLEUI64ARBPROC)(GLint location, GLuint64 value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMHANDLEUI64NVPROC)(GLint location, GLuint64 value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMHANDLEUI64VARBPROC)(GLint location, GLsizei count,
+ const GLuint64 *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMHANDLEUI64VNVPROC)(GLint location, GLsizei count,
+ const GLuint64 *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX2DVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX2FVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX2FVARBPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX2X3DVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX2X3FVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX2X4DVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX2X4FVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX3DVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX3FVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX3FVARBPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX3X2DVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX3X2FVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX3X4DVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX3X4FVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX4DVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX4FVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX4FVARBPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX4X2DVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX4X2FVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX4X3DVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLdouble *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX4X3FVPROC)(GLint location, GLsizei count,
+ GLboolean transpose, const GLfloat *value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMSUBROUTINESUIVPROC)(GLenum shadertype, GLsizei count,
+ const GLuint *indices);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMUI64NVPROC)(GLint location, GLuint64EXT value);
+typedef void(GLAD_API_PTR *PFNGLUNIFORMUI64VNVPROC)(GLint location, GLsizei count,
+ const GLuint64EXT *value);
+typedef void(GLAD_API_PTR *PFNGLUNLOCKARRAYSEXTPROC)(void);
+typedef GLboolean(GLAD_API_PTR *PFNGLUNMAPBUFFERPROC)(GLenum target);
+typedef GLboolean(GLAD_API_PTR *PFNGLUNMAPBUFFERARBPROC)(GLenum target);
+typedef GLboolean(GLAD_API_PTR *PFNGLUNMAPNAMEDBUFFERPROC)(GLuint buffer);
+typedef GLboolean(GLAD_API_PTR *PFNGLUNMAPNAMEDBUFFEREXTPROC)(GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLUNMAPOBJECTBUFFERATIPROC)(GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLUNMAPTEXTURE2DINTELPROC)(GLuint texture, GLint level);
+typedef void(GLAD_API_PTR *PFNGLUPDATEOBJECTBUFFERATIPROC)(GLuint buffer, GLuint offset,
+ GLsizei size, const void *pointer,
+ GLenum preserve);
+typedef void(GLAD_API_PTR *PFNGLUPLOADGPUMASKNVXPROC)(GLbitfield mask);
+typedef void(GLAD_API_PTR *PFNGLUSEPROGRAMPROC)(GLuint program);
+typedef void(GLAD_API_PTR *PFNGLUSEPROGRAMOBJECTARBPROC)(GLhandleARB programObj);
+typedef void(GLAD_API_PTR *PFNGLUSEPROGRAMSTAGESPROC)(GLuint pipeline, GLbitfield stages,
+ GLuint program);
+typedef void(GLAD_API_PTR *PFNGLUSESHADERPROGRAMEXTPROC)(GLenum type, GLuint program);
+typedef void(GLAD_API_PTR *PFNGLVDPAUFININVPROC)(void);
+typedef void(GLAD_API_PTR *PFNGLVDPAUGETSURFACEIVNVPROC)(GLvdpauSurfaceNV surface, GLenum pname,
+ GLsizei count, GLsizei *length,
+ GLint *values);
+typedef void(GLAD_API_PTR *PFNGLVDPAUINITNVPROC)(const void *vdpDevice, const void *getProcAddress);
+typedef GLboolean(GLAD_API_PTR *PFNGLVDPAUISSURFACENVPROC)(GLvdpauSurfaceNV surface);
+typedef void(GLAD_API_PTR *PFNGLVDPAUMAPSURFACESNVPROC)(GLsizei numSurfaces,
+ const GLvdpauSurfaceNV *surfaces);
+typedef GLvdpauSurfaceNV(GLAD_API_PTR *PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC)(
+ const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
+typedef GLvdpauSurfaceNV(GLAD_API_PTR *PFNGLVDPAUREGISTERVIDEOSURFACENVPROC)(
+ const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
+typedef GLvdpauSurfaceNV(GLAD_API_PTR *PFNGLVDPAUREGISTERVIDEOSURFACEWITHPICTURESTRUCTURENVPROC)(
+ const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames,
+ GLboolean isFrameStructure);
+typedef void(GLAD_API_PTR *PFNGLVDPAUSURFACEACCESSNVPROC)(GLvdpauSurfaceNV surface, GLenum access);
+typedef void(GLAD_API_PTR *PFNGLVDPAUUNMAPSURFACESNVPROC)(GLsizei numSurface,
+ const GLvdpauSurfaceNV *surfaces);
+typedef void(GLAD_API_PTR *PFNGLVDPAUUNREGISTERSURFACENVPROC)(GLvdpauSurfaceNV surface);
+typedef void(GLAD_API_PTR *PFNGLVALIDATEPROGRAMPROC)(GLuint program);
+typedef void(GLAD_API_PTR *PFNGLVALIDATEPROGRAMARBPROC)(GLhandleARB programObj);
+typedef void(GLAD_API_PTR *PFNGLVALIDATEPROGRAMPIPELINEPROC)(GLuint pipeline);
+typedef void(GLAD_API_PTR *PFNGLVARIANTARRAYOBJECTATIPROC)(GLuint id, GLenum type, GLsizei stride,
+ GLuint buffer, GLuint offset);
+typedef void(GLAD_API_PTR *PFNGLVARIANTPOINTEREXTPROC)(GLuint id, GLenum type, GLuint stride,
+ const void *addr);
+typedef void(GLAD_API_PTR *PFNGLVARIANTBVEXTPROC)(GLuint id, const GLbyte *addr);
+typedef void(GLAD_API_PTR *PFNGLVARIANTDVEXTPROC)(GLuint id, const GLdouble *addr);
+typedef void(GLAD_API_PTR *PFNGLVARIANTFVEXTPROC)(GLuint id, const GLfloat *addr);
+typedef void(GLAD_API_PTR *PFNGLVARIANTIVEXTPROC)(GLuint id, const GLint *addr);
+typedef void(GLAD_API_PTR *PFNGLVARIANTSVEXTPROC)(GLuint id, const GLshort *addr);
+typedef void(GLAD_API_PTR *PFNGLVARIANTUBVEXTPROC)(GLuint id, const GLubyte *addr);
+typedef void(GLAD_API_PTR *PFNGLVARIANTUIVEXTPROC)(GLuint id, const GLuint *addr);
+typedef void(GLAD_API_PTR *PFNGLVARIANTUSVEXTPROC)(GLuint id, const GLushort *addr);
+typedef void(GLAD_API_PTR *PFNGLVERTEX2BOESPROC)(GLbyte x, GLbyte y);
+typedef void(GLAD_API_PTR *PFNGLVERTEX2BVOESPROC)(const GLbyte *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEX2HNVPROC)(GLhalfNV x, GLhalfNV y);
+typedef void(GLAD_API_PTR *PFNGLVERTEX2HVNVPROC)(const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEX2XOESPROC)(GLfixed x);
+typedef void(GLAD_API_PTR *PFNGLVERTEX2XVOESPROC)(const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEX3BOESPROC)(GLbyte x, GLbyte y, GLbyte z);
+typedef void(GLAD_API_PTR *PFNGLVERTEX3BVOESPROC)(const GLbyte *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEX3HNVPROC)(GLhalfNV x, GLhalfNV y, GLhalfNV z);
+typedef void(GLAD_API_PTR *PFNGLVERTEX3HVNVPROC)(const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEX3XOESPROC)(GLfixed x, GLfixed y);
+typedef void(GLAD_API_PTR *PFNGLVERTEX3XVOESPROC)(const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEX4BOESPROC)(GLbyte x, GLbyte y, GLbyte z, GLbyte w);
+typedef void(GLAD_API_PTR *PFNGLVERTEX4BVOESPROC)(const GLbyte *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEX4HNVPROC)(GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
+typedef void(GLAD_API_PTR *PFNGLVERTEX4HVNVPROC)(const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEX4XOESPROC)(GLfixed x, GLfixed y, GLfixed z);
+typedef void(GLAD_API_PTR *PFNGLVERTEX4XVOESPROC)(const GLfixed *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYATTRIBBINDINGPROC)(GLuint vaobj, GLuint attribindex,
+ GLuint bindingindex);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYATTRIBFORMATPROC)(GLuint vaobj, GLuint attribindex,
+ GLint size, GLenum type,
+ GLboolean normalized,
+ GLuint relativeoffset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYATTRIBIFORMATPROC)(GLuint vaobj, GLuint attribindex,
+ GLint size, GLenum type,
+ GLuint relativeoffset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYATTRIBLFORMATPROC)(GLuint vaobj, GLuint attribindex,
+ GLint size, GLenum type,
+ GLuint relativeoffset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC)(GLuint vaobj,
+ GLuint bindingindex,
+ GLuint buffer, GLintptr offset,
+ GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYBINDINGDIVISORPROC)(GLuint vaobj, GLuint bindingindex,
+ GLuint divisor);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYCOLOROFFSETEXTPROC)(GLuint vaobj, GLuint buffer,
+ GLint size, GLenum type,
+ GLsizei stride, GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC)(GLuint vaobj, GLuint buffer,
+ GLsizei stride, GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYELEMENTBUFFERPROC)(GLuint vaobj, GLuint buffer);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC)(GLuint vaobj, GLuint buffer,
+ GLenum type, GLsizei stride,
+ GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYINDEXOFFSETEXTPROC)(GLuint vaobj, GLuint buffer,
+ GLenum type, GLsizei stride,
+ GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC)(GLuint vaobj, GLuint buffer,
+ GLenum texunit, GLint size,
+ GLenum type, GLsizei stride,
+ GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYNORMALOFFSETEXTPROC)(GLuint vaobj, GLuint buffer,
+ GLenum type, GLsizei stride,
+ GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYPARAMETERIAPPLEPROC)(GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYRANGEAPPLEPROC)(GLsizei length, void *pointer);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYRANGENVPROC)(GLsizei length, const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC)(GLuint vaobj, GLuint buffer,
+ GLint size, GLenum type,
+ GLsizei stride,
+ GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC)(GLuint vaobj, GLuint buffer,
+ GLint size, GLenum type,
+ GLsizei stride, GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC)(GLuint vaobj,
+ GLuint attribindex,
+ GLuint bindingindex);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC)(GLuint vaobj, GLuint index,
+ GLuint divisor);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC)(GLuint vaobj,
+ GLuint attribindex,
+ GLint size, GLenum type,
+ GLboolean normalized,
+ GLuint relativeoffset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC)(GLuint vaobj,
+ GLuint attribindex,
+ GLint size, GLenum type,
+ GLuint relativeoffset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC)(GLuint vaobj, GLuint buffer,
+ GLuint index, GLint size,
+ GLenum type, GLsizei stride,
+ GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC)(GLuint vaobj,
+ GLuint attribindex,
+ GLint size, GLenum type,
+ GLuint relativeoffset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC)(GLuint vaobj, GLuint buffer,
+ GLuint index, GLint size,
+ GLenum type, GLsizei stride,
+ GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC)(
+ GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized,
+ GLsizei stride, GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC)(GLuint vaobj,
+ GLuint bindingindex,
+ GLuint divisor);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXBUFFERPROC)(GLuint vaobj, GLuint bindingindex,
+ GLuint buffer, GLintptr offset,
+ GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXBUFFERSPROC)(GLuint vaobj, GLuint first,
+ GLsizei count, const GLuint *buffers,
+ const GLintptr *offsets,
+ const GLsizei *strides);
+typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC)(GLuint vaobj, GLuint buffer,
+ GLint size, GLenum type,
+ GLsizei stride, GLintptr offset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1DPROC)(GLuint index, GLdouble x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1DARBPROC)(GLuint index, GLdouble x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1DNVPROC)(GLuint index, GLdouble x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1DVPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1DVARBPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1DVNVPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1FPROC)(GLuint index, GLfloat x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1FARBPROC)(GLuint index, GLfloat x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1FNVPROC)(GLuint index, GLfloat x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1FVPROC)(GLuint index, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1FVARBPROC)(GLuint index, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1FVNVPROC)(GLuint index, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1HNVPROC)(GLuint index, GLhalfNV x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1HVNVPROC)(GLuint index, const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1SPROC)(GLuint index, GLshort x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1SARBPROC)(GLuint index, GLshort x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1SNVPROC)(GLuint index, GLshort x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1SVPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1SVARBPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1SVNVPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2DPROC)(GLuint index, GLdouble x, GLdouble y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2DARBPROC)(GLuint index, GLdouble x, GLdouble y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2DNVPROC)(GLuint index, GLdouble x, GLdouble y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2DVPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2DVARBPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2DVNVPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2FPROC)(GLuint index, GLfloat x, GLfloat y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2FARBPROC)(GLuint index, GLfloat x, GLfloat y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2FNVPROC)(GLuint index, GLfloat x, GLfloat y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2FVPROC)(GLuint index, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2FVARBPROC)(GLuint index, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2FVNVPROC)(GLuint index, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2HNVPROC)(GLuint index, GLhalfNV x, GLhalfNV y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2HVNVPROC)(GLuint index, const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2SPROC)(GLuint index, GLshort x, GLshort y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2SARBPROC)(GLuint index, GLshort x, GLshort y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2SNVPROC)(GLuint index, GLshort x, GLshort y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2SVPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2SVARBPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2SVNVPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3DPROC)(GLuint index, GLdouble x, GLdouble y,
+ GLdouble z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3DARBPROC)(GLuint index, GLdouble x, GLdouble y,
+ GLdouble z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3DNVPROC)(GLuint index, GLdouble x, GLdouble y,
+ GLdouble z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3DVPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3DVARBPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3DVNVPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3FARBPROC)(GLuint index, GLfloat x, GLfloat y,
+ GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3FNVPROC)(GLuint index, GLfloat x, GLfloat y,
+ GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3FVPROC)(GLuint index, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3FVARBPROC)(GLuint index, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3FVNVPROC)(GLuint index, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3HNVPROC)(GLuint index, GLhalfNV x, GLhalfNV y,
+ GLhalfNV z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3HVNVPROC)(GLuint index, const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3SPROC)(GLuint index, GLshort x, GLshort y, GLshort z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3SARBPROC)(GLuint index, GLshort x, GLshort y,
+ GLshort z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3SNVPROC)(GLuint index, GLshort x, GLshort y,
+ GLshort z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3SVPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3SVARBPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3SVNVPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NBVPROC)(GLuint index, const GLbyte *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NBVARBPROC)(GLuint index, const GLbyte *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NIVPROC)(GLuint index, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NIVARBPROC)(GLuint index, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NSVPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NSVARBPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NUBPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z,
+ GLubyte w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NUBARBPROC)(GLuint index, GLubyte x, GLubyte y,
+ GLubyte z, GLubyte w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NUBVPROC)(GLuint index, const GLubyte *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NUBVARBPROC)(GLuint index, const GLubyte *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NUIVPROC)(GLuint index, const GLuint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NUIVARBPROC)(GLuint index, const GLuint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NUSVPROC)(GLuint index, const GLushort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NUSVARBPROC)(GLuint index, const GLushort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4BVPROC)(GLuint index, const GLbyte *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4BVARBPROC)(GLuint index, const GLbyte *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4DPROC)(GLuint index, GLdouble x, GLdouble y,
+ GLdouble z, GLdouble w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4DARBPROC)(GLuint index, GLdouble x, GLdouble y,
+ GLdouble z, GLdouble w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4DNVPROC)(GLuint index, GLdouble x, GLdouble y,
+ GLdouble z, GLdouble w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4DVPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4DVARBPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4DVNVPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z,
+ GLfloat w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4FARBPROC)(GLuint index, GLfloat x, GLfloat y,
+ GLfloat z, GLfloat w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4FNVPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z,
+ GLfloat w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4FVPROC)(GLuint index, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4FVARBPROC)(GLuint index, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4FVNVPROC)(GLuint index, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4HNVPROC)(GLuint index, GLhalfNV x, GLhalfNV y,
+ GLhalfNV z, GLhalfNV w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4HVNVPROC)(GLuint index, const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4IVPROC)(GLuint index, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4IVARBPROC)(GLuint index, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4SPROC)(GLuint index, GLshort x, GLshort y, GLshort z,
+ GLshort w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4SARBPROC)(GLuint index, GLshort x, GLshort y,
+ GLshort z, GLshort w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4SNVPROC)(GLuint index, GLshort x, GLshort y, GLshort z,
+ GLshort w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4SVPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4SVARBPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4SVNVPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4UBNVPROC)(GLuint index, GLubyte x, GLubyte y,
+ GLubyte z, GLubyte w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4UBVPROC)(GLuint index, const GLubyte *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4UBVARBPROC)(GLuint index, const GLubyte *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4UBVNVPROC)(GLuint index, const GLubyte *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4UIVPROC)(GLuint index, const GLuint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4UIVARBPROC)(GLuint index, const GLuint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4USVPROC)(GLuint index, const GLushort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4USVARBPROC)(GLuint index, const GLushort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBARRAYOBJECTATIPROC)(GLuint index, GLint size,
+ GLenum type, GLboolean normalized,
+ GLsizei stride, GLuint buffer,
+ GLuint offset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBBINDINGPROC)(GLuint attribindex, GLuint bindingindex);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBDIVISORPROC)(GLuint index, GLuint divisor);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBDIVISORARBPROC)(GLuint index, GLuint divisor);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBFORMATPROC)(GLuint attribindex, GLint size, GLenum type,
+ GLboolean normalized,
+ GLuint relativeoffset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBFORMATNVPROC)(GLuint index, GLint size, GLenum type,
+ GLboolean normalized, GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI1IPROC)(GLuint index, GLint x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI1IEXTPROC)(GLuint index, GLint x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI1IVPROC)(GLuint index, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI1IVEXTPROC)(GLuint index, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI1UIPROC)(GLuint index, GLuint x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI1UIEXTPROC)(GLuint index, GLuint x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI1UIVPROC)(GLuint index, const GLuint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI1UIVEXTPROC)(GLuint index, const GLuint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI2IPROC)(GLuint index, GLint x, GLint y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI2IEXTPROC)(GLuint index, GLint x, GLint y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI2IVPROC)(GLuint index, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI2IVEXTPROC)(GLuint index, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI2UIPROC)(GLuint index, GLuint x, GLuint y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI2UIEXTPROC)(GLuint index, GLuint x, GLuint y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI2UIVPROC)(GLuint index, const GLuint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI2UIVEXTPROC)(GLuint index, const GLuint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI3IPROC)(GLuint index, GLint x, GLint y, GLint z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI3IEXTPROC)(GLuint index, GLint x, GLint y, GLint z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI3IVPROC)(GLuint index, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI3IVEXTPROC)(GLuint index, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI3UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI3UIEXTPROC)(GLuint index, GLuint x, GLuint y,
+ GLuint z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI3UIVPROC)(GLuint index, const GLuint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI3UIVEXTPROC)(GLuint index, const GLuint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4BVPROC)(GLuint index, const GLbyte *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4BVEXTPROC)(GLuint index, const GLbyte *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4IPROC)(GLuint index, GLint x, GLint y, GLint z,
+ GLint w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4IEXTPROC)(GLuint index, GLint x, GLint y, GLint z,
+ GLint w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4IVPROC)(GLuint index, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4IVEXTPROC)(GLuint index, const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4SVPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4SVEXTPROC)(GLuint index, const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4UBVPROC)(GLuint index, const GLubyte *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4UBVEXTPROC)(GLuint index, const GLubyte *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z,
+ GLuint w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4UIEXTPROC)(GLuint index, GLuint x, GLuint y, GLuint z,
+ GLuint w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4UIVPROC)(GLuint index, const GLuint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4UIVEXTPROC)(GLuint index, const GLuint *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4USVPROC)(GLuint index, const GLushort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4USVEXTPROC)(GLuint index, const GLushort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBIFORMATPROC)(GLuint attribindex, GLint size,
+ GLenum type, GLuint relativeoffset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBIFORMATNVPROC)(GLuint index, GLint size, GLenum type,
+ GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBIPOINTERPROC)(GLuint index, GLint size, GLenum type,
+ GLsizei stride, const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBIPOINTEREXTPROC)(GLuint index, GLint size, GLenum type,
+ GLsizei stride, const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL1DPROC)(GLuint index, GLdouble x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL1DEXTPROC)(GLuint index, GLdouble x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL1DVPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL1DVEXTPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL1I64NVPROC)(GLuint index, GLint64EXT x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL1I64VNVPROC)(GLuint index, const GLint64EXT *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL1UI64ARBPROC)(GLuint index, GLuint64EXT x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL1UI64NVPROC)(GLuint index, GLuint64EXT x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL1UI64VARBPROC)(GLuint index, const GLuint64EXT *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL1UI64VNVPROC)(GLuint index, const GLuint64EXT *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL2DPROC)(GLuint index, GLdouble x, GLdouble y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL2DEXTPROC)(GLuint index, GLdouble x, GLdouble y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL2DVPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL2DVEXTPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL2I64NVPROC)(GLuint index, GLint64EXT x, GLint64EXT y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL2I64VNVPROC)(GLuint index, const GLint64EXT *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL2UI64NVPROC)(GLuint index, GLuint64EXT x,
+ GLuint64EXT y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL2UI64VNVPROC)(GLuint index, const GLuint64EXT *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL3DPROC)(GLuint index, GLdouble x, GLdouble y,
+ GLdouble z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL3DEXTPROC)(GLuint index, GLdouble x, GLdouble y,
+ GLdouble z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL3DVPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL3DVEXTPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL3I64NVPROC)(GLuint index, GLint64EXT x, GLint64EXT y,
+ GLint64EXT z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL3I64VNVPROC)(GLuint index, const GLint64EXT *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL3UI64NVPROC)(GLuint index, GLuint64EXT x,
+ GLuint64EXT y, GLuint64EXT z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL3UI64VNVPROC)(GLuint index, const GLuint64EXT *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL4DPROC)(GLuint index, GLdouble x, GLdouble y,
+ GLdouble z, GLdouble w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL4DEXTPROC)(GLuint index, GLdouble x, GLdouble y,
+ GLdouble z, GLdouble w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL4DVPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL4DVEXTPROC)(GLuint index, const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL4I64NVPROC)(GLuint index, GLint64EXT x, GLint64EXT y,
+ GLint64EXT z, GLint64EXT w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL4I64VNVPROC)(GLuint index, const GLint64EXT *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL4UI64NVPROC)(GLuint index, GLuint64EXT x,
+ GLuint64EXT y, GLuint64EXT z,
+ GLuint64EXT w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL4UI64VNVPROC)(GLuint index, const GLuint64EXT *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBLFORMATPROC)(GLuint attribindex, GLint size,
+ GLenum type, GLuint relativeoffset);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBLFORMATNVPROC)(GLuint index, GLint size, GLenum type,
+ GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBLPOINTERPROC)(GLuint index, GLint size, GLenum type,
+ GLsizei stride, const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBLPOINTEREXTPROC)(GLuint index, GLint size, GLenum type,
+ GLsizei stride, const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBP1UIPROC)(GLuint index, GLenum type,
+ GLboolean normalized, GLuint value);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBP1UIVPROC)(GLuint index, GLenum type,
+ GLboolean normalized, const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBP2UIPROC)(GLuint index, GLenum type,
+ GLboolean normalized, GLuint value);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBP2UIVPROC)(GLuint index, GLenum type,
+ GLboolean normalized, const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBP3UIPROC)(GLuint index, GLenum type,
+ GLboolean normalized, GLuint value);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBP3UIVPROC)(GLuint index, GLenum type,
+ GLboolean normalized, const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBP4UIPROC)(GLuint index, GLenum type,
+ GLboolean normalized, GLuint value);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBP4UIVPROC)(GLuint index, GLenum type,
+ GLboolean normalized, const GLuint *value);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBPARAMETERIAMDPROC)(GLuint index, GLenum pname,
+ GLint param);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBPOINTERPROC)(GLuint index, GLint size, GLenum type,
+ GLboolean normalized, GLsizei stride,
+ const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBPOINTERARBPROC)(GLuint index, GLint size, GLenum type,
+ GLboolean normalized, GLsizei stride,
+ const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBPOINTERNVPROC)(GLuint index, GLint fsize, GLenum type,
+ GLsizei stride, const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS1DVNVPROC)(GLuint index, GLsizei count,
+ const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS1FVNVPROC)(GLuint index, GLsizei count,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS1HVNVPROC)(GLuint index, GLsizei n, const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS1SVNVPROC)(GLuint index, GLsizei count,
+ const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS2DVNVPROC)(GLuint index, GLsizei count,
+ const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS2FVNVPROC)(GLuint index, GLsizei count,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS2HVNVPROC)(GLuint index, GLsizei n, const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS2SVNVPROC)(GLuint index, GLsizei count,
+ const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS3DVNVPROC)(GLuint index, GLsizei count,
+ const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS3FVNVPROC)(GLuint index, GLsizei count,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS3HVNVPROC)(GLuint index, GLsizei n, const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS3SVNVPROC)(GLuint index, GLsizei count,
+ const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS4DVNVPROC)(GLuint index, GLsizei count,
+ const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS4FVNVPROC)(GLuint index, GLsizei count,
+ const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS4HVNVPROC)(GLuint index, GLsizei n, const GLhalfNV *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS4SVNVPROC)(GLuint index, GLsizei count,
+ const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBS4UBVNVPROC)(GLuint index, GLsizei count,
+ const GLubyte *v);
+typedef void(GLAD_API_PTR *PFNGLVERTEXBINDINGDIVISORPROC)(GLuint bindingindex, GLuint divisor);
+typedef void(GLAD_API_PTR *PFNGLVERTEXBLENDARBPROC)(GLint count);
+typedef void(GLAD_API_PTR *PFNGLVERTEXBLENDENVFATIPROC)(GLenum pname, GLfloat param);
+typedef void(GLAD_API_PTR *PFNGLVERTEXBLENDENVIATIPROC)(GLenum pname, GLint param);
+typedef void(GLAD_API_PTR *PFNGLVERTEXFORMATNVPROC)(GLint size, GLenum type, GLsizei stride);
+typedef void(GLAD_API_PTR *PFNGLVERTEXPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride,
+ GLsizei count, const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLVERTEXPOINTERLISTIBMPROC)(GLint size, GLenum type, GLint stride,
+ const void **pointer, GLint ptrstride);
+typedef void(GLAD_API_PTR *PFNGLVERTEXPOINTERVINTELPROC)(GLint size, GLenum type,
+ const void **pointer);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM1DATIPROC)(GLenum stream, GLdouble x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM1DVATIPROC)(GLenum stream, const GLdouble *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM1FATIPROC)(GLenum stream, GLfloat x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM1FVATIPROC)(GLenum stream, const GLfloat *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM1IATIPROC)(GLenum stream, GLint x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM1IVATIPROC)(GLenum stream, const GLint *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM1SATIPROC)(GLenum stream, GLshort x);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM1SVATIPROC)(GLenum stream, const GLshort *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM2DATIPROC)(GLenum stream, GLdouble x, GLdouble y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM2DVATIPROC)(GLenum stream, const GLdouble *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM2FATIPROC)(GLenum stream, GLfloat x, GLfloat y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM2FVATIPROC)(GLenum stream, const GLfloat *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM2IATIPROC)(GLenum stream, GLint x, GLint y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM2IVATIPROC)(GLenum stream, const GLint *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM2SATIPROC)(GLenum stream, GLshort x, GLshort y);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM2SVATIPROC)(GLenum stream, const GLshort *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM3DATIPROC)(GLenum stream, GLdouble x, GLdouble y,
+ GLdouble z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM3DVATIPROC)(GLenum stream, const GLdouble *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM3FATIPROC)(GLenum stream, GLfloat x, GLfloat y,
+ GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM3FVATIPROC)(GLenum stream, const GLfloat *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM3IATIPROC)(GLenum stream, GLint x, GLint y, GLint z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM3IVATIPROC)(GLenum stream, const GLint *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM3SATIPROC)(GLenum stream, GLshort x, GLshort y,
+ GLshort z);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM3SVATIPROC)(GLenum stream, const GLshort *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM4DATIPROC)(GLenum stream, GLdouble x, GLdouble y,
+ GLdouble z, GLdouble w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM4DVATIPROC)(GLenum stream, const GLdouble *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM4FATIPROC)(GLenum stream, GLfloat x, GLfloat y,
+ GLfloat z, GLfloat w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM4FVATIPROC)(GLenum stream, const GLfloat *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM4IATIPROC)(GLenum stream, GLint x, GLint y, GLint z,
+ GLint w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM4IVATIPROC)(GLenum stream, const GLint *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM4SATIPROC)(GLenum stream, GLshort x, GLshort y,
+ GLshort z, GLshort w);
+typedef void(GLAD_API_PTR *PFNGLVERTEXSTREAM4SVATIPROC)(GLenum stream, const GLshort *coords);
+typedef void(GLAD_API_PTR *PFNGLVERTEXWEIGHTPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride,
+ const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLVERTEXWEIGHTFEXTPROC)(GLfloat weight);
+typedef void(GLAD_API_PTR *PFNGLVERTEXWEIGHTFVEXTPROC)(const GLfloat *weight);
+typedef void(GLAD_API_PTR *PFNGLVERTEXWEIGHTHNVPROC)(GLhalfNV weight);
+typedef void(GLAD_API_PTR *PFNGLVERTEXWEIGHTHVNVPROC)(const GLhalfNV *weight);
+typedef GLenum(GLAD_API_PTR *PFNGLVIDEOCAPTURENVPROC)(GLuint video_capture_slot,
+ GLuint *sequence_num,
+ GLuint64EXT *capture_time);
+typedef void(GLAD_API_PTR *PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC)(GLuint video_capture_slot,
+ GLuint stream, GLenum pname,
+ const GLdouble *params);
+typedef void(GLAD_API_PTR *PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC)(GLuint video_capture_slot,
+ GLuint stream, GLenum pname,
+ const GLfloat *params);
+typedef void(GLAD_API_PTR *PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC)(GLuint video_capture_slot,
+ GLuint stream, GLenum pname,
+ const GLint *params);
+typedef void(GLAD_API_PTR *PFNGLVIEWPORTPROC)(GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void(GLAD_API_PTR *PFNGLVIEWPORTARRAYVPROC)(GLuint first, GLsizei count, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVIEWPORTINDEXEDFPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat w,
+ GLfloat h);
+typedef void(GLAD_API_PTR *PFNGLVIEWPORTINDEXEDFVPROC)(GLuint index, const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLVIEWPORTPOSITIONWSCALENVPROC)(GLuint index, GLfloat xcoeff,
+ GLfloat ycoeff);
+typedef void(GLAD_API_PTR *PFNGLVIEWPORTSWIZZLENVPROC)(GLuint index, GLenum swizzlex,
+ GLenum swizzley, GLenum swizzlez,
+ GLenum swizzlew);
+typedef void(GLAD_API_PTR *PFNGLWAITSEMAPHOREEXTPROC)(GLuint semaphore, GLuint numBufferBarriers,
+ const GLuint *buffers,
+ GLuint numTextureBarriers,
+ const GLuint *textures,
+ const GLenum *srcLayouts);
+typedef void(GLAD_API_PTR *PFNGLWAITSEMAPHOREUI64NVXPROC)(GLuint waitGpu, GLsizei fenceObjectCount,
+ const GLuint *semaphoreArray,
+ const GLuint64 *fenceValueArray);
+typedef void(GLAD_API_PTR *PFNGLWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout);
+typedef void(GLAD_API_PTR *PFNGLWAITVKSEMAPHORENVPROC)(GLuint64 vkSemaphore);
+typedef void(GLAD_API_PTR *PFNGLWEIGHTPATHSNVPROC)(GLuint resultPath, GLsizei numPaths,
+ const GLuint *paths, const GLfloat *weights);
+typedef void(GLAD_API_PTR *PFNGLWEIGHTPOINTERARBPROC)(GLint size, GLenum type, GLsizei stride,
+ const void *pointer);
+typedef void(GLAD_API_PTR *PFNGLWEIGHTBVARBPROC)(GLint size, const GLbyte *weights);
+typedef void(GLAD_API_PTR *PFNGLWEIGHTDVARBPROC)(GLint size, const GLdouble *weights);
+typedef void(GLAD_API_PTR *PFNGLWEIGHTFVARBPROC)(GLint size, const GLfloat *weights);
+typedef void(GLAD_API_PTR *PFNGLWEIGHTIVARBPROC)(GLint size, const GLint *weights);
+typedef void(GLAD_API_PTR *PFNGLWEIGHTSVARBPROC)(GLint size, const GLshort *weights);
+typedef void(GLAD_API_PTR *PFNGLWEIGHTUBVARBPROC)(GLint size, const GLubyte *weights);
+typedef void(GLAD_API_PTR *PFNGLWEIGHTUIVARBPROC)(GLint size, const GLuint *weights);
+typedef void(GLAD_API_PTR *PFNGLWEIGHTUSVARBPROC)(GLint size, const GLushort *weights);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2DARBPROC)(GLdouble x, GLdouble y);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2DMESAPROC)(GLdouble x, GLdouble y);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2DVARBPROC)(const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2DVMESAPROC)(const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2FARBPROC)(GLfloat x, GLfloat y);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2FMESAPROC)(GLfloat x, GLfloat y);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2FVARBPROC)(const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2FVMESAPROC)(const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2IARBPROC)(GLint x, GLint y);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2IMESAPROC)(GLint x, GLint y);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2IVARBPROC)(const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2IVMESAPROC)(const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2SARBPROC)(GLshort x, GLshort y);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2SMESAPROC)(GLshort x, GLshort y);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2SVARBPROC)(const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2SVMESAPROC)(const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3DARBPROC)(GLdouble x, GLdouble y, GLdouble z);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3DMESAPROC)(GLdouble x, GLdouble y, GLdouble z);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3DVARBPROC)(const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3DVMESAPROC)(const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3FARBPROC)(GLfloat x, GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3FMESAPROC)(GLfloat x, GLfloat y, GLfloat z);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3FVARBPROC)(const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3FVMESAPROC)(const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3IARBPROC)(GLint x, GLint y, GLint z);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3IMESAPROC)(GLint x, GLint y, GLint z);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3IVARBPROC)(const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3IVMESAPROC)(const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3SARBPROC)(GLshort x, GLshort y, GLshort z);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3SMESAPROC)(GLshort x, GLshort y, GLshort z);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3SVARBPROC)(const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3SVMESAPROC)(const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS4DMESAPROC)(GLdouble x, GLdouble y, GLdouble z,
+ GLdouble w);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS4DVMESAPROC)(const GLdouble *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS4FMESAPROC)(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS4FVMESAPROC)(const GLfloat *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS4IMESAPROC)(GLint x, GLint y, GLint z, GLint w);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS4IVMESAPROC)(const GLint *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS4SMESAPROC)(GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void(GLAD_API_PTR *PFNGLWINDOWPOS4SVMESAPROC)(const GLshort *v);
+typedef void(GLAD_API_PTR *PFNGLWINDOWRECTANGLESEXTPROC)(GLenum mode, GLsizei count,
+ const GLint *box);
+typedef void(GLAD_API_PTR *PFNGLWRITEMASKEXTPROC)(GLuint res, GLuint in, GLenum outX, GLenum outY,
+ GLenum outZ, GLenum outW);
+
+typedef struct GladGLContext {
+ PFNGLACCUMXOESPROC AccumxOES;
+ PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC AcquireKeyedMutexWin32EXT;
+ PFNGLACTIVEPROGRAMEXTPROC ActiveProgramEXT;
+ PFNGLACTIVESHADERPROGRAMPROC ActiveShaderProgram;
+ PFNGLACTIVESTENCILFACEEXTPROC ActiveStencilFaceEXT;
+ PFNGLACTIVETEXTUREPROC ActiveTexture;
+ PFNGLACTIVETEXTUREARBPROC ActiveTextureARB;
+ PFNGLACTIVEVARYINGNVPROC ActiveVaryingNV;
+ PFNGLALPHAFRAGMENTOP1ATIPROC AlphaFragmentOp1ATI;
+ PFNGLALPHAFRAGMENTOP2ATIPROC AlphaFragmentOp2ATI;
+ PFNGLALPHAFRAGMENTOP3ATIPROC AlphaFragmentOp3ATI;
+ PFNGLALPHAFUNCXOESPROC AlphaFuncxOES;
+ PFNGLALPHATOCOVERAGEDITHERCONTROLNVPROC AlphaToCoverageDitherControlNV;
+ PFNGLAPPLYFRAMEBUFFERATTACHMENTCMAAINTELPROC ApplyFramebufferAttachmentCMAAINTEL;
+ PFNGLAPPLYTEXTUREEXTPROC ApplyTextureEXT;
+ PFNGLAREPROGRAMSRESIDENTNVPROC AreProgramsResidentNV;
+ PFNGLARETEXTURESRESIDENTEXTPROC AreTexturesResidentEXT;
+ PFNGLARRAYELEMENTEXTPROC ArrayElementEXT;
+ PFNGLARRAYOBJECTATIPROC ArrayObjectATI;
+ PFNGLASYNCCOPYBUFFERSUBDATANVXPROC AsyncCopyBufferSubDataNVX;
+ PFNGLASYNCCOPYIMAGESUBDATANVXPROC AsyncCopyImageSubDataNVX;
+ PFNGLASYNCMARKERSGIXPROC AsyncMarkerSGIX;
+ PFNGLATTACHOBJECTARBPROC AttachObjectARB;
+ PFNGLATTACHSHADERPROC AttachShader;
+ PFNGLBEGINCONDITIONALRENDERPROC BeginConditionalRender;
+ PFNGLBEGINCONDITIONALRENDERNVPROC BeginConditionalRenderNV;
+ PFNGLBEGINCONDITIONALRENDERNVXPROC BeginConditionalRenderNVX;
+ PFNGLBEGINFRAGMENTSHADERATIPROC BeginFragmentShaderATI;
+ PFNGLBEGINOCCLUSIONQUERYNVPROC BeginOcclusionQueryNV;
+ PFNGLBEGINPERFMONITORAMDPROC BeginPerfMonitorAMD;
+ PFNGLBEGINPERFQUERYINTELPROC BeginPerfQueryINTEL;
+ PFNGLBEGINQUERYPROC BeginQuery;
+ PFNGLBEGINQUERYARBPROC BeginQueryARB;
+ PFNGLBEGINQUERYINDEXEDPROC BeginQueryIndexed;
+ PFNGLBEGINTRANSFORMFEEDBACKPROC BeginTransformFeedback;
+ PFNGLBEGINTRANSFORMFEEDBACKEXTPROC BeginTransformFeedbackEXT;
+ PFNGLBEGINTRANSFORMFEEDBACKNVPROC BeginTransformFeedbackNV;
+ PFNGLBEGINVERTEXSHADEREXTPROC BeginVertexShaderEXT;
+ PFNGLBEGINVIDEOCAPTURENVPROC BeginVideoCaptureNV;
+ PFNGLBINDATTRIBLOCATIONPROC BindAttribLocation;
+ PFNGLBINDATTRIBLOCATIONARBPROC BindAttribLocationARB;
+ PFNGLBINDBUFFERPROC BindBuffer;
+ PFNGLBINDBUFFERARBPROC BindBufferARB;
+ PFNGLBINDBUFFERBASEPROC BindBufferBase;
+ PFNGLBINDBUFFERBASEEXTPROC BindBufferBaseEXT;
+ PFNGLBINDBUFFERBASENVPROC BindBufferBaseNV;
+ PFNGLBINDBUFFEROFFSETEXTPROC BindBufferOffsetEXT;
+ PFNGLBINDBUFFEROFFSETNVPROC BindBufferOffsetNV;
+ PFNGLBINDBUFFERRANGEPROC BindBufferRange;
+ PFNGLBINDBUFFERRANGEEXTPROC BindBufferRangeEXT;
+ PFNGLBINDBUFFERRANGENVPROC BindBufferRangeNV;
+ PFNGLBINDBUFFERSBASEPROC BindBuffersBase;
+ PFNGLBINDBUFFERSRANGEPROC BindBuffersRange;
+ PFNGLBINDFRAGDATALOCATIONPROC BindFragDataLocation;
+ PFNGLBINDFRAGDATALOCATIONEXTPROC BindFragDataLocationEXT;
+ PFNGLBINDFRAGDATALOCATIONINDEXEDPROC BindFragDataLocationIndexed;
+ PFNGLBINDFRAGMENTSHADERATIPROC BindFragmentShaderATI;
+ PFNGLBINDFRAMEBUFFERPROC BindFramebuffer;
+ PFNGLBINDFRAMEBUFFEREXTPROC BindFramebufferEXT;
+ PFNGLBINDIMAGETEXTUREPROC BindImageTexture;
+ PFNGLBINDIMAGETEXTUREEXTPROC BindImageTextureEXT;
+ PFNGLBINDIMAGETEXTURESPROC BindImageTextures;
+ PFNGLBINDLIGHTPARAMETEREXTPROC BindLightParameterEXT;
+ PFNGLBINDMATERIALPARAMETEREXTPROC BindMaterialParameterEXT;
+ PFNGLBINDMULTITEXTUREEXTPROC BindMultiTextureEXT;
+ PFNGLBINDPARAMETEREXTPROC BindParameterEXT;
+ PFNGLBINDPROGRAMARBPROC BindProgramARB;
+ PFNGLBINDPROGRAMNVPROC BindProgramNV;
+ PFNGLBINDPROGRAMPIPELINEPROC BindProgramPipeline;
+ PFNGLBINDRENDERBUFFERPROC BindRenderbuffer;
+ PFNGLBINDRENDERBUFFEREXTPROC BindRenderbufferEXT;
+ PFNGLBINDSAMPLERPROC BindSampler;
+ PFNGLBINDSAMPLERSPROC BindSamplers;
+ PFNGLBINDSHADINGRATEIMAGENVPROC BindShadingRateImageNV;
+ PFNGLBINDTEXGENPARAMETEREXTPROC BindTexGenParameterEXT;
+ PFNGLBINDTEXTUREPROC BindTexture;
+ PFNGLBINDTEXTUREEXTPROC BindTextureEXT;
+ PFNGLBINDTEXTUREUNITPROC BindTextureUnit;
+ PFNGLBINDTEXTUREUNITPARAMETEREXTPROC BindTextureUnitParameterEXT;
+ PFNGLBINDTEXTURESPROC BindTextures;
+ PFNGLBINDTRANSFORMFEEDBACKPROC BindTransformFeedback;
+ PFNGLBINDTRANSFORMFEEDBACKNVPROC BindTransformFeedbackNV;
+ PFNGLBINDVERTEXARRAYPROC BindVertexArray;
+ PFNGLBINDVERTEXARRAYAPPLEPROC BindVertexArrayAPPLE;
+ PFNGLBINDVERTEXBUFFERPROC BindVertexBuffer;
+ PFNGLBINDVERTEXBUFFERSPROC BindVertexBuffers;
+ PFNGLBINDVERTEXSHADEREXTPROC BindVertexShaderEXT;
+ PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC BindVideoCaptureStreamBufferNV;
+ PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC BindVideoCaptureStreamTextureNV;
+ PFNGLBINORMAL3BEXTPROC Binormal3bEXT;
+ PFNGLBINORMAL3BVEXTPROC Binormal3bvEXT;
+ PFNGLBINORMAL3DEXTPROC Binormal3dEXT;
+ PFNGLBINORMAL3DVEXTPROC Binormal3dvEXT;
+ PFNGLBINORMAL3FEXTPROC Binormal3fEXT;
+ PFNGLBINORMAL3FVEXTPROC Binormal3fvEXT;
+ PFNGLBINORMAL3IEXTPROC Binormal3iEXT;
+ PFNGLBINORMAL3IVEXTPROC Binormal3ivEXT;
+ PFNGLBINORMAL3SEXTPROC Binormal3sEXT;
+ PFNGLBINORMAL3SVEXTPROC Binormal3svEXT;
+ PFNGLBINORMALPOINTEREXTPROC BinormalPointerEXT;
+ PFNGLBITMAPXOESPROC BitmapxOES;
+ PFNGLBLENDBARRIERKHRPROC BlendBarrierKHR;
+ PFNGLBLENDBARRIERNVPROC BlendBarrierNV;
+ PFNGLBLENDCOLORPROC BlendColor;
+ PFNGLBLENDCOLOREXTPROC BlendColorEXT;
+ PFNGLBLENDCOLORXOESPROC BlendColorxOES;
+ PFNGLBLENDEQUATIONPROC BlendEquation;
+ PFNGLBLENDEQUATIONEXTPROC BlendEquationEXT;
+ PFNGLBLENDEQUATIONINDEXEDAMDPROC BlendEquationIndexedAMD;
+ PFNGLBLENDEQUATIONSEPARATEPROC BlendEquationSeparate;
+ PFNGLBLENDEQUATIONSEPARATEEXTPROC BlendEquationSeparateEXT;
+ PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC BlendEquationSeparateIndexedAMD;
+ PFNGLBLENDEQUATIONSEPARATEIPROC BlendEquationSeparatei;
+ PFNGLBLENDEQUATIONSEPARATEIARBPROC BlendEquationSeparateiARB;
+ PFNGLBLENDEQUATIONIPROC BlendEquationi;
+ PFNGLBLENDEQUATIONIARBPROC BlendEquationiARB;
+ PFNGLBLENDFUNCPROC BlendFunc;
+ PFNGLBLENDFUNCINDEXEDAMDPROC BlendFuncIndexedAMD;
+ PFNGLBLENDFUNCSEPARATEPROC BlendFuncSeparate;
+ PFNGLBLENDFUNCSEPARATEEXTPROC BlendFuncSeparateEXT;
+ PFNGLBLENDFUNCSEPARATEINGRPROC BlendFuncSeparateINGR;
+ PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC BlendFuncSeparateIndexedAMD;
+ PFNGLBLENDFUNCSEPARATEIPROC BlendFuncSeparatei;
+ PFNGLBLENDFUNCSEPARATEIARBPROC BlendFuncSeparateiARB;
+ PFNGLBLENDFUNCIPROC BlendFunci;
+ PFNGLBLENDFUNCIARBPROC BlendFunciARB;
+ PFNGLBLENDPARAMETERINVPROC BlendParameteriNV;
+ PFNGLBLITFRAMEBUFFERPROC BlitFramebuffer;
+ PFNGLBLITFRAMEBUFFEREXTPROC BlitFramebufferEXT;
+ PFNGLBLITFRAMEBUFFERLAYEREXTPROC BlitFramebufferLayerEXT;
+ PFNGLBLITFRAMEBUFFERLAYERSEXTPROC BlitFramebufferLayersEXT;
+ PFNGLBLITNAMEDFRAMEBUFFERPROC BlitNamedFramebuffer;
+ PFNGLBUFFERADDRESSRANGENVPROC BufferAddressRangeNV;
+ PFNGLBUFFERATTACHMEMORYNVPROC BufferAttachMemoryNV;
+ PFNGLBUFFERDATAPROC BufferData;
+ PFNGLBUFFERDATAARBPROC BufferDataARB;
+ PFNGLBUFFERPAGECOMMITMENTARBPROC BufferPageCommitmentARB;
+ PFNGLBUFFERPAGECOMMITMENTMEMNVPROC BufferPageCommitmentMemNV;
+ PFNGLBUFFERPARAMETERIAPPLEPROC BufferParameteriAPPLE;
+ PFNGLBUFFERSTORAGEPROC BufferStorage;
+ PFNGLBUFFERSTORAGEEXTERNALEXTPROC BufferStorageExternalEXT;
+ PFNGLBUFFERSTORAGEMEMEXTPROC BufferStorageMemEXT;
+ PFNGLBUFFERSUBDATAPROC BufferSubData;
+ PFNGLBUFFERSUBDATAARBPROC BufferSubDataARB;
+ PFNGLCALLCOMMANDLISTNVPROC CallCommandListNV;
+ PFNGLCHECKFRAMEBUFFERSTATUSPROC CheckFramebufferStatus;
+ PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC CheckFramebufferStatusEXT;
+ PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC CheckNamedFramebufferStatus;
+ PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC CheckNamedFramebufferStatusEXT;
+ PFNGLCLAMPCOLORPROC ClampColor;
+ PFNGLCLAMPCOLORARBPROC ClampColorARB;
+ PFNGLCLEARPROC Clear;
+ PFNGLCLEARACCUMXOESPROC ClearAccumxOES;
+ PFNGLCLEARBUFFERDATAPROC ClearBufferData;
+ PFNGLCLEARBUFFERSUBDATAPROC ClearBufferSubData;
+ PFNGLCLEARBUFFERFIPROC ClearBufferfi;
+ PFNGLCLEARBUFFERFVPROC ClearBufferfv;
+ PFNGLCLEARBUFFERIVPROC ClearBufferiv;
+ PFNGLCLEARBUFFERUIVPROC ClearBufferuiv;
+ PFNGLCLEARCOLORPROC ClearColor;
+ PFNGLCLEARCOLORIIEXTPROC ClearColorIiEXT;
+ PFNGLCLEARCOLORIUIEXTPROC ClearColorIuiEXT;
+ PFNGLCLEARCOLORXOESPROC ClearColorxOES;
+ PFNGLCLEARDEPTHPROC ClearDepth;
+ PFNGLCLEARDEPTHDNVPROC ClearDepthdNV;
+ PFNGLCLEARDEPTHFPROC ClearDepthf;
+ PFNGLCLEARDEPTHFOESPROC ClearDepthfOES;
+ PFNGLCLEARDEPTHXOESPROC ClearDepthxOES;
+ PFNGLCLEARNAMEDBUFFERDATAPROC ClearNamedBufferData;
+ PFNGLCLEARNAMEDBUFFERDATAEXTPROC ClearNamedBufferDataEXT;
+ PFNGLCLEARNAMEDBUFFERSUBDATAPROC ClearNamedBufferSubData;
+ PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC ClearNamedBufferSubDataEXT;
+ PFNGLCLEARNAMEDFRAMEBUFFERFIPROC ClearNamedFramebufferfi;
+ PFNGLCLEARNAMEDFRAMEBUFFERFVPROC ClearNamedFramebufferfv;
+ PFNGLCLEARNAMEDFRAMEBUFFERIVPROC ClearNamedFramebufferiv;
+ PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC ClearNamedFramebufferuiv;
+ PFNGLCLEARSTENCILPROC ClearStencil;
+ PFNGLCLEARTEXIMAGEPROC ClearTexImage;
+ PFNGLCLEARTEXSUBIMAGEPROC ClearTexSubImage;
+ PFNGLCLIENTACTIVETEXTUREARBPROC ClientActiveTextureARB;
+ PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC ClientActiveVertexStreamATI;
+ PFNGLCLIENTATTRIBDEFAULTEXTPROC ClientAttribDefaultEXT;
+ PFNGLCLIENTWAITSEMAPHOREUI64NVXPROC ClientWaitSemaphoreui64NVX;
+ PFNGLCLIENTWAITSYNCPROC ClientWaitSync;
+ PFNGLCLIPCONTROLPROC ClipControl;
+ PFNGLCLIPPLANEFOESPROC ClipPlanefOES;
+ PFNGLCLIPPLANEXOESPROC ClipPlanexOES;
+ PFNGLCOLOR3FVERTEX3FSUNPROC Color3fVertex3fSUN;
+ PFNGLCOLOR3FVERTEX3FVSUNPROC Color3fVertex3fvSUN;
+ PFNGLCOLOR3HNVPROC Color3hNV;
+ PFNGLCOLOR3HVNVPROC Color3hvNV;
+ PFNGLCOLOR3XOESPROC Color3xOES;
+ PFNGLCOLOR3XVOESPROC Color3xvOES;
+ PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC Color4fNormal3fVertex3fSUN;
+ PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC Color4fNormal3fVertex3fvSUN;
+ PFNGLCOLOR4HNVPROC Color4hNV;
+ PFNGLCOLOR4HVNVPROC Color4hvNV;
+ PFNGLCOLOR4UBVERTEX2FSUNPROC Color4ubVertex2fSUN;
+ PFNGLCOLOR4UBVERTEX2FVSUNPROC Color4ubVertex2fvSUN;
+ PFNGLCOLOR4UBVERTEX3FSUNPROC Color4ubVertex3fSUN;
+ PFNGLCOLOR4UBVERTEX3FVSUNPROC Color4ubVertex3fvSUN;
+ PFNGLCOLOR4XOESPROC Color4xOES;
+ PFNGLCOLOR4XVOESPROC Color4xvOES;
+ PFNGLCOLORFORMATNVPROC ColorFormatNV;
+ PFNGLCOLORFRAGMENTOP1ATIPROC ColorFragmentOp1ATI;
+ PFNGLCOLORFRAGMENTOP2ATIPROC ColorFragmentOp2ATI;
+ PFNGLCOLORFRAGMENTOP3ATIPROC ColorFragmentOp3ATI;
+ PFNGLCOLORMASKPROC ColorMask;
+ PFNGLCOLORMASKINDEXEDEXTPROC ColorMaskIndexedEXT;
+ PFNGLCOLORMASKIPROC ColorMaski;
+ PFNGLCOLORPOINTEREXTPROC ColorPointerEXT;
+ PFNGLCOLORPOINTERLISTIBMPROC ColorPointerListIBM;
+ PFNGLCOLORPOINTERVINTELPROC ColorPointervINTEL;
+ PFNGLCOLORSUBTABLEEXTPROC ColorSubTableEXT;
+ PFNGLCOLORTABLEEXTPROC ColorTableEXT;
+ PFNGLCOLORTABLEPARAMETERFVSGIPROC ColorTableParameterfvSGI;
+ PFNGLCOLORTABLEPARAMETERIVSGIPROC ColorTableParameterivSGI;
+ PFNGLCOLORTABLESGIPROC ColorTableSGI;
+ PFNGLCOMBINERINPUTNVPROC CombinerInputNV;
+ PFNGLCOMBINEROUTPUTNVPROC CombinerOutputNV;
+ PFNGLCOMBINERPARAMETERFNVPROC CombinerParameterfNV;
+ PFNGLCOMBINERPARAMETERFVNVPROC CombinerParameterfvNV;
+ PFNGLCOMBINERPARAMETERINVPROC CombinerParameteriNV;
+ PFNGLCOMBINERPARAMETERIVNVPROC CombinerParameterivNV;
+ PFNGLCOMBINERSTAGEPARAMETERFVNVPROC CombinerStageParameterfvNV;
+ PFNGLCOMMANDLISTSEGMENTSNVPROC CommandListSegmentsNV;
+ PFNGLCOMPILECOMMANDLISTNVPROC CompileCommandListNV;
+ PFNGLCOMPILESHADERPROC CompileShader;
+ PFNGLCOMPILESHADERARBPROC CompileShaderARB;
+ PFNGLCOMPILESHADERINCLUDEARBPROC CompileShaderIncludeARB;
+ PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC CompressedMultiTexImage1DEXT;
+ PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC CompressedMultiTexImage2DEXT;
+ PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC CompressedMultiTexImage3DEXT;
+ PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC CompressedMultiTexSubImage1DEXT;
+ PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC CompressedMultiTexSubImage2DEXT;
+ PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC CompressedMultiTexSubImage3DEXT;
+ PFNGLCOMPRESSEDTEXIMAGE1DPROC CompressedTexImage1D;
+ PFNGLCOMPRESSEDTEXIMAGE1DARBPROC CompressedTexImage1DARB;
+ PFNGLCOMPRESSEDTEXIMAGE2DPROC CompressedTexImage2D;
+ PFNGLCOMPRESSEDTEXIMAGE2DARBPROC CompressedTexImage2DARB;
+ PFNGLCOMPRESSEDTEXIMAGE3DPROC CompressedTexImage3D;
+ PFNGLCOMPRESSEDTEXIMAGE3DARBPROC CompressedTexImage3DARB;
+ PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC CompressedTexSubImage1D;
+ PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC CompressedTexSubImage1DARB;
+ PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC CompressedTexSubImage2D;
+ PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC CompressedTexSubImage2DARB;
+ PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC CompressedTexSubImage3D;
+ PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC CompressedTexSubImage3DARB;
+ PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC CompressedTextureImage1DEXT;
+ PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC CompressedTextureImage2DEXT;
+ PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC CompressedTextureImage3DEXT;
+ PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC CompressedTextureSubImage1D;
+ PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC CompressedTextureSubImage1DEXT;
+ PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC CompressedTextureSubImage2D;
+ PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC CompressedTextureSubImage2DEXT;
+ PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC CompressedTextureSubImage3D;
+ PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC CompressedTextureSubImage3DEXT;
+ PFNGLCONSERVATIVERASTERPARAMETERFNVPROC ConservativeRasterParameterfNV;
+ PFNGLCONSERVATIVERASTERPARAMETERINVPROC ConservativeRasterParameteriNV;
+ PFNGLCONVOLUTIONFILTER1DEXTPROC ConvolutionFilter1DEXT;
+ PFNGLCONVOLUTIONFILTER2DEXTPROC ConvolutionFilter2DEXT;
+ PFNGLCONVOLUTIONPARAMETERFEXTPROC ConvolutionParameterfEXT;
+ PFNGLCONVOLUTIONPARAMETERFVEXTPROC ConvolutionParameterfvEXT;
+ PFNGLCONVOLUTIONPARAMETERIEXTPROC ConvolutionParameteriEXT;
+ PFNGLCONVOLUTIONPARAMETERIVEXTPROC ConvolutionParameterivEXT;
+ PFNGLCONVOLUTIONPARAMETERXOESPROC ConvolutionParameterxOES;
+ PFNGLCONVOLUTIONPARAMETERXVOESPROC ConvolutionParameterxvOES;
+ PFNGLCOPYBUFFERSUBDATAPROC CopyBufferSubData;
+ PFNGLCOPYCOLORSUBTABLEEXTPROC CopyColorSubTableEXT;
+ PFNGLCOPYCOLORTABLESGIPROC CopyColorTableSGI;
+ PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC CopyConvolutionFilter1DEXT;
+ PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC CopyConvolutionFilter2DEXT;
+ PFNGLCOPYIMAGESUBDATAPROC CopyImageSubData;
+ PFNGLCOPYIMAGESUBDATANVPROC CopyImageSubDataNV;
+ PFNGLCOPYMULTITEXIMAGE1DEXTPROC CopyMultiTexImage1DEXT;
+ PFNGLCOPYMULTITEXIMAGE2DEXTPROC CopyMultiTexImage2DEXT;
+ PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC CopyMultiTexSubImage1DEXT;
+ PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC CopyMultiTexSubImage2DEXT;
+ PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC CopyMultiTexSubImage3DEXT;
+ PFNGLCOPYNAMEDBUFFERSUBDATAPROC CopyNamedBufferSubData;
+ PFNGLCOPYPATHNVPROC CopyPathNV;
+ PFNGLCOPYTEXIMAGE1DPROC CopyTexImage1D;
+ PFNGLCOPYTEXIMAGE1DEXTPROC CopyTexImage1DEXT;
+ PFNGLCOPYTEXIMAGE2DPROC CopyTexImage2D;
+ PFNGLCOPYTEXIMAGE2DEXTPROC CopyTexImage2DEXT;
+ PFNGLCOPYTEXSUBIMAGE1DPROC CopyTexSubImage1D;
+ PFNGLCOPYTEXSUBIMAGE1DEXTPROC CopyTexSubImage1DEXT;
+ PFNGLCOPYTEXSUBIMAGE2DPROC CopyTexSubImage2D;
+ PFNGLCOPYTEXSUBIMAGE2DEXTPROC CopyTexSubImage2DEXT;
+ PFNGLCOPYTEXSUBIMAGE3DPROC CopyTexSubImage3D;
+ PFNGLCOPYTEXSUBIMAGE3DEXTPROC CopyTexSubImage3DEXT;
+ PFNGLCOPYTEXTUREIMAGE1DEXTPROC CopyTextureImage1DEXT;
+ PFNGLCOPYTEXTUREIMAGE2DEXTPROC CopyTextureImage2DEXT;
+ PFNGLCOPYTEXTURESUBIMAGE1DPROC CopyTextureSubImage1D;
+ PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC CopyTextureSubImage1DEXT;
+ PFNGLCOPYTEXTURESUBIMAGE2DPROC CopyTextureSubImage2D;
+ PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC CopyTextureSubImage2DEXT;
+ PFNGLCOPYTEXTURESUBIMAGE3DPROC CopyTextureSubImage3D;
+ PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC CopyTextureSubImage3DEXT;
+ PFNGLCOVERFILLPATHINSTANCEDNVPROC CoverFillPathInstancedNV;
+ PFNGLCOVERFILLPATHNVPROC CoverFillPathNV;
+ PFNGLCOVERSTROKEPATHINSTANCEDNVPROC CoverStrokePathInstancedNV;
+ PFNGLCOVERSTROKEPATHNVPROC CoverStrokePathNV;
+ PFNGLCOVERAGEMODULATIONNVPROC CoverageModulationNV;
+ PFNGLCOVERAGEMODULATIONTABLENVPROC CoverageModulationTableNV;
+ PFNGLCREATEBUFFERSPROC CreateBuffers;
+ PFNGLCREATECOMMANDLISTSNVPROC CreateCommandListsNV;
+ PFNGLCREATEFRAMEBUFFERSPROC CreateFramebuffers;
+ PFNGLCREATEMEMORYOBJECTSEXTPROC CreateMemoryObjectsEXT;
+ PFNGLCREATEPERFQUERYINTELPROC CreatePerfQueryINTEL;
+ PFNGLCREATEPROGRAMPROC CreateProgram;
+ PFNGLCREATEPROGRAMOBJECTARBPROC CreateProgramObjectARB;
+ PFNGLCREATEPROGRAMPIPELINESPROC CreateProgramPipelines;
+ PFNGLCREATEPROGRESSFENCENVXPROC CreateProgressFenceNVX;
+ PFNGLCREATEQUERIESPROC CreateQueries;
+ PFNGLCREATERENDERBUFFERSPROC CreateRenderbuffers;
+ PFNGLCREATESAMPLERSPROC CreateSamplers;
+ PFNGLCREATESEMAPHORESNVPROC CreateSemaphoresNV;
+ PFNGLCREATESHADERPROC CreateShader;
+ PFNGLCREATESHADEROBJECTARBPROC CreateShaderObjectARB;
+ PFNGLCREATESHADERPROGRAMEXTPROC CreateShaderProgramEXT;
+ PFNGLCREATESHADERPROGRAMVPROC CreateShaderProgramv;
+ PFNGLCREATESTATESNVPROC CreateStatesNV;
+ PFNGLCREATESYNCFROMCLEVENTARBPROC CreateSyncFromCLeventARB;
+ PFNGLCREATETEXTURESPROC CreateTextures;
+ PFNGLCREATETRANSFORMFEEDBACKSPROC CreateTransformFeedbacks;
+ PFNGLCREATEVERTEXARRAYSPROC CreateVertexArrays;
+ PFNGLCULLFACEPROC CullFace;
+ PFNGLCULLPARAMETERDVEXTPROC CullParameterdvEXT;
+ PFNGLCULLPARAMETERFVEXTPROC CullParameterfvEXT;
+ PFNGLCURRENTPALETTEMATRIXARBPROC CurrentPaletteMatrixARB;
+ PFNGLDEBUGMESSAGECALLBACKPROC DebugMessageCallback;
+ PFNGLDEBUGMESSAGECALLBACKAMDPROC DebugMessageCallbackAMD;
+ PFNGLDEBUGMESSAGECALLBACKARBPROC DebugMessageCallbackARB;
+ PFNGLDEBUGMESSAGECONTROLPROC DebugMessageControl;
+ PFNGLDEBUGMESSAGECONTROLARBPROC DebugMessageControlARB;
+ PFNGLDEBUGMESSAGEENABLEAMDPROC DebugMessageEnableAMD;
+ PFNGLDEBUGMESSAGEINSERTPROC DebugMessageInsert;
+ PFNGLDEBUGMESSAGEINSERTAMDPROC DebugMessageInsertAMD;
+ PFNGLDEBUGMESSAGEINSERTARBPROC DebugMessageInsertARB;
+ PFNGLDEFORMSGIXPROC DeformSGIX;
+ PFNGLDEFORMATIONMAP3DSGIXPROC DeformationMap3dSGIX;
+ PFNGLDEFORMATIONMAP3FSGIXPROC DeformationMap3fSGIX;
+ PFNGLDELETEASYNCMARKERSSGIXPROC DeleteAsyncMarkersSGIX;
+ PFNGLDELETEBUFFERSPROC DeleteBuffers;
+ PFNGLDELETEBUFFERSARBPROC DeleteBuffersARB;
+ PFNGLDELETECOMMANDLISTSNVPROC DeleteCommandListsNV;
+ PFNGLDELETEFENCESAPPLEPROC DeleteFencesAPPLE;
+ PFNGLDELETEFENCESNVPROC DeleteFencesNV;
+ PFNGLDELETEFRAGMENTSHADERATIPROC DeleteFragmentShaderATI;
+ PFNGLDELETEFRAMEBUFFERSPROC DeleteFramebuffers;
+ PFNGLDELETEFRAMEBUFFERSEXTPROC DeleteFramebuffersEXT;
+ PFNGLDELETEMEMORYOBJECTSEXTPROC DeleteMemoryObjectsEXT;
+ PFNGLDELETENAMEDSTRINGARBPROC DeleteNamedStringARB;
+ PFNGLDELETENAMESAMDPROC DeleteNamesAMD;
+ PFNGLDELETEOBJECTARBPROC DeleteObjectARB;
+ PFNGLDELETEOCCLUSIONQUERIESNVPROC DeleteOcclusionQueriesNV;
+ PFNGLDELETEPATHSNVPROC DeletePathsNV;
+ PFNGLDELETEPERFMONITORSAMDPROC DeletePerfMonitorsAMD;
+ PFNGLDELETEPERFQUERYINTELPROC DeletePerfQueryINTEL;
+ PFNGLDELETEPROGRAMPROC DeleteProgram;
+ PFNGLDELETEPROGRAMPIPELINESPROC DeleteProgramPipelines;
+ PFNGLDELETEPROGRAMSARBPROC DeleteProgramsARB;
+ PFNGLDELETEPROGRAMSNVPROC DeleteProgramsNV;
+ PFNGLDELETEQUERIESPROC DeleteQueries;
+ PFNGLDELETEQUERIESARBPROC DeleteQueriesARB;
+ PFNGLDELETEQUERYRESOURCETAGNVPROC DeleteQueryResourceTagNV;
+ PFNGLDELETERENDERBUFFERSPROC DeleteRenderbuffers;
+ PFNGLDELETERENDERBUFFERSEXTPROC DeleteRenderbuffersEXT;
+ PFNGLDELETESAMPLERSPROC DeleteSamplers;
+ PFNGLDELETESEMAPHORESEXTPROC DeleteSemaphoresEXT;
+ PFNGLDELETESHADERPROC DeleteShader;
+ PFNGLDELETESTATESNVPROC DeleteStatesNV;
+ PFNGLDELETESYNCPROC DeleteSync;
+ PFNGLDELETETEXTURESPROC DeleteTextures;
+ PFNGLDELETETEXTURESEXTPROC DeleteTexturesEXT;
+ PFNGLDELETETRANSFORMFEEDBACKSPROC DeleteTransformFeedbacks;
+ PFNGLDELETETRANSFORMFEEDBACKSNVPROC DeleteTransformFeedbacksNV;
+ PFNGLDELETEVERTEXARRAYSPROC DeleteVertexArrays;
+ PFNGLDELETEVERTEXARRAYSAPPLEPROC DeleteVertexArraysAPPLE;
+ PFNGLDELETEVERTEXSHADEREXTPROC DeleteVertexShaderEXT;
+ PFNGLDEPTHBOUNDSEXTPROC DepthBoundsEXT;
+ PFNGLDEPTHBOUNDSDNVPROC DepthBoundsdNV;
+ PFNGLDEPTHFUNCPROC DepthFunc;
+ PFNGLDEPTHMASKPROC DepthMask;
+ PFNGLDEPTHRANGEPROC DepthRange;
+ PFNGLDEPTHRANGEARRAYDVNVPROC DepthRangeArraydvNV;
+ PFNGLDEPTHRANGEARRAYVPROC DepthRangeArrayv;
+ PFNGLDEPTHRANGEINDEXEDPROC DepthRangeIndexed;
+ PFNGLDEPTHRANGEINDEXEDDNVPROC DepthRangeIndexeddNV;
+ PFNGLDEPTHRANGEDNVPROC DepthRangedNV;
+ PFNGLDEPTHRANGEFPROC DepthRangef;
+ PFNGLDEPTHRANGEFOESPROC DepthRangefOES;
+ PFNGLDEPTHRANGEXOESPROC DepthRangexOES;
+ PFNGLDETACHOBJECTARBPROC DetachObjectARB;
+ PFNGLDETACHSHADERPROC DetachShader;
+ PFNGLDETAILTEXFUNCSGISPROC DetailTexFuncSGIS;
+ PFNGLDISABLEPROC Disable;
+ PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC DisableClientStateIndexedEXT;
+ PFNGLDISABLECLIENTSTATEIEXTPROC DisableClientStateiEXT;
+ PFNGLDISABLEINDEXEDEXTPROC DisableIndexedEXT;
+ PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC DisableVariantClientStateEXT;
+ PFNGLDISABLEVERTEXARRAYATTRIBPROC DisableVertexArrayAttrib;
+ PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC DisableVertexArrayAttribEXT;
+ PFNGLDISABLEVERTEXARRAYEXTPROC DisableVertexArrayEXT;
+ PFNGLDISABLEVERTEXATTRIBAPPLEPROC DisableVertexAttribAPPLE;
+ PFNGLDISABLEVERTEXATTRIBARRAYPROC DisableVertexAttribArray;
+ PFNGLDISABLEVERTEXATTRIBARRAYARBPROC DisableVertexAttribArrayARB;
+ PFNGLDISABLEIPROC Disablei;
+ PFNGLDISPATCHCOMPUTEPROC DispatchCompute;
+ PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC DispatchComputeGroupSizeARB;
+ PFNGLDISPATCHCOMPUTEINDIRECTPROC DispatchComputeIndirect;
+ PFNGLDRAWARRAYSPROC DrawArrays;
+ PFNGLDRAWARRAYSEXTPROC DrawArraysEXT;
+ PFNGLDRAWARRAYSINDIRECTPROC DrawArraysIndirect;
+ PFNGLDRAWARRAYSINSTANCEDPROC DrawArraysInstanced;
+ PFNGLDRAWARRAYSINSTANCEDARBPROC DrawArraysInstancedARB;
+ PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC DrawArraysInstancedBaseInstance;
+ PFNGLDRAWARRAYSINSTANCEDEXTPROC DrawArraysInstancedEXT;
+ PFNGLDRAWBUFFERPROC DrawBuffer;
+ PFNGLDRAWBUFFERSPROC DrawBuffers;
+ PFNGLDRAWBUFFERSARBPROC DrawBuffersARB;
+ PFNGLDRAWBUFFERSATIPROC DrawBuffersATI;
+ PFNGLDRAWCOMMANDSADDRESSNVPROC DrawCommandsAddressNV;
+ PFNGLDRAWCOMMANDSNVPROC DrawCommandsNV;
+ PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC DrawCommandsStatesAddressNV;
+ PFNGLDRAWCOMMANDSSTATESNVPROC DrawCommandsStatesNV;
+ PFNGLDRAWELEMENTARRAYAPPLEPROC DrawElementArrayAPPLE;
+ PFNGLDRAWELEMENTARRAYATIPROC DrawElementArrayATI;
+ PFNGLDRAWELEMENTSPROC DrawElements;
+ PFNGLDRAWELEMENTSBASEVERTEXPROC DrawElementsBaseVertex;
+ PFNGLDRAWELEMENTSINDIRECTPROC DrawElementsIndirect;
+ PFNGLDRAWELEMENTSINSTANCEDPROC DrawElementsInstanced;
+ PFNGLDRAWELEMENTSINSTANCEDARBPROC DrawElementsInstancedARB;
+ PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC DrawElementsInstancedBaseInstance;
+ PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC DrawElementsInstancedBaseVertex;
+ PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC
+ DrawElementsInstancedBaseVertexBaseInstance;
+ PFNGLDRAWELEMENTSINSTANCEDEXTPROC DrawElementsInstancedEXT;
+ PFNGLDRAWMESHARRAYSSUNPROC DrawMeshArraysSUN;
+ PFNGLDRAWMESHTASKSINDIRECTNVPROC DrawMeshTasksIndirectNV;
+ PFNGLDRAWMESHTASKSNVPROC DrawMeshTasksNV;
+ PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC DrawRangeElementArrayAPPLE;
+ PFNGLDRAWRANGEELEMENTARRAYATIPROC DrawRangeElementArrayATI;
+ PFNGLDRAWRANGEELEMENTSPROC DrawRangeElements;
+ PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC DrawRangeElementsBaseVertex;
+ PFNGLDRAWRANGEELEMENTSEXTPROC DrawRangeElementsEXT;
+ PFNGLDRAWTEXTURENVPROC DrawTextureNV;
+ PFNGLDRAWTRANSFORMFEEDBACKPROC DrawTransformFeedback;
+ PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC DrawTransformFeedbackInstanced;
+ PFNGLDRAWTRANSFORMFEEDBACKNVPROC DrawTransformFeedbackNV;
+ PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC DrawTransformFeedbackStream;
+ PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC DrawTransformFeedbackStreamInstanced;
+ PFNGLDRAWVKIMAGENVPROC DrawVkImageNV;
+ PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC EGLImageTargetTexStorageEXT;
+ PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC EGLImageTargetTextureStorageEXT;
+ PFNGLEDGEFLAGFORMATNVPROC EdgeFlagFormatNV;
+ PFNGLEDGEFLAGPOINTEREXTPROC EdgeFlagPointerEXT;
+ PFNGLEDGEFLAGPOINTERLISTIBMPROC EdgeFlagPointerListIBM;
+ PFNGLELEMENTPOINTERAPPLEPROC ElementPointerAPPLE;
+ PFNGLELEMENTPOINTERATIPROC ElementPointerATI;
+ PFNGLENABLEPROC Enable;
+ PFNGLENABLECLIENTSTATEINDEXEDEXTPROC EnableClientStateIndexedEXT;
+ PFNGLENABLECLIENTSTATEIEXTPROC EnableClientStateiEXT;
+ PFNGLENABLEINDEXEDEXTPROC EnableIndexedEXT;
+ PFNGLENABLEVARIANTCLIENTSTATEEXTPROC EnableVariantClientStateEXT;
+ PFNGLENABLEVERTEXARRAYATTRIBPROC EnableVertexArrayAttrib;
+ PFNGLENABLEVERTEXARRAYATTRIBEXTPROC EnableVertexArrayAttribEXT;
+ PFNGLENABLEVERTEXARRAYEXTPROC EnableVertexArrayEXT;
+ PFNGLENABLEVERTEXATTRIBAPPLEPROC EnableVertexAttribAPPLE;
+ PFNGLENABLEVERTEXATTRIBARRAYPROC EnableVertexAttribArray;
+ PFNGLENABLEVERTEXATTRIBARRAYARBPROC EnableVertexAttribArrayARB;
+ PFNGLENABLEIPROC Enablei;
+ PFNGLENDCONDITIONALRENDERPROC EndConditionalRender;
+ PFNGLENDCONDITIONALRENDERNVPROC EndConditionalRenderNV;
+ PFNGLENDCONDITIONALRENDERNVXPROC EndConditionalRenderNVX;
+ PFNGLENDFRAGMENTSHADERATIPROC EndFragmentShaderATI;
+ PFNGLENDOCCLUSIONQUERYNVPROC EndOcclusionQueryNV;
+ PFNGLENDPERFMONITORAMDPROC EndPerfMonitorAMD;
+ PFNGLENDPERFQUERYINTELPROC EndPerfQueryINTEL;
+ PFNGLENDQUERYPROC EndQuery;
+ PFNGLENDQUERYARBPROC EndQueryARB;
+ PFNGLENDQUERYINDEXEDPROC EndQueryIndexed;
+ PFNGLENDTRANSFORMFEEDBACKPROC EndTransformFeedback;
+ PFNGLENDTRANSFORMFEEDBACKEXTPROC EndTransformFeedbackEXT;
+ PFNGLENDTRANSFORMFEEDBACKNVPROC EndTransformFeedbackNV;
+ PFNGLENDVERTEXSHADEREXTPROC EndVertexShaderEXT;
+ PFNGLENDVIDEOCAPTURENVPROC EndVideoCaptureNV;
+ PFNGLEVALCOORD1XOESPROC EvalCoord1xOES;
+ PFNGLEVALCOORD1XVOESPROC EvalCoord1xvOES;
+ PFNGLEVALCOORD2XOESPROC EvalCoord2xOES;
+ PFNGLEVALCOORD2XVOESPROC EvalCoord2xvOES;
+ PFNGLEVALMAPSNVPROC EvalMapsNV;
+ PFNGLEVALUATEDEPTHVALUESARBPROC EvaluateDepthValuesARB;
+ PFNGLEXECUTEPROGRAMNVPROC ExecuteProgramNV;
+ PFNGLEXTRACTCOMPONENTEXTPROC ExtractComponentEXT;
+ PFNGLFEEDBACKBUFFERXOESPROC FeedbackBufferxOES;
+ PFNGLFENCESYNCPROC FenceSync;
+ PFNGLFINALCOMBINERINPUTNVPROC FinalCombinerInputNV;
+ PFNGLFINISHPROC Finish;
+ PFNGLFINISHASYNCSGIXPROC FinishAsyncSGIX;
+ PFNGLFINISHFENCEAPPLEPROC FinishFenceAPPLE;
+ PFNGLFINISHFENCENVPROC FinishFenceNV;
+ PFNGLFINISHOBJECTAPPLEPROC FinishObjectAPPLE;
+ PFNGLFINISHTEXTURESUNXPROC FinishTextureSUNX;
+ PFNGLFLUSHPROC Flush;
+ PFNGLFLUSHMAPPEDBUFFERRANGEPROC FlushMappedBufferRange;
+ PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC FlushMappedBufferRangeAPPLE;
+ PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC FlushMappedNamedBufferRange;
+ PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC FlushMappedNamedBufferRangeEXT;
+ PFNGLFLUSHPIXELDATARANGENVPROC FlushPixelDataRangeNV;
+ PFNGLFLUSHRASTERSGIXPROC FlushRasterSGIX;
+ PFNGLFLUSHSTATICDATAIBMPROC FlushStaticDataIBM;
+ PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC FlushVertexArrayRangeAPPLE;
+ PFNGLFLUSHVERTEXARRAYRANGENVPROC FlushVertexArrayRangeNV;
+ PFNGLFOGCOORDFORMATNVPROC FogCoordFormatNV;
+ PFNGLFOGCOORDPOINTEREXTPROC FogCoordPointerEXT;
+ PFNGLFOGCOORDPOINTERLISTIBMPROC FogCoordPointerListIBM;
+ PFNGLFOGCOORDDEXTPROC FogCoorddEXT;
+ PFNGLFOGCOORDDVEXTPROC FogCoorddvEXT;
+ PFNGLFOGCOORDFEXTPROC FogCoordfEXT;
+ PFNGLFOGCOORDFVEXTPROC FogCoordfvEXT;
+ PFNGLFOGCOORDHNVPROC FogCoordhNV;
+ PFNGLFOGCOORDHVNVPROC FogCoordhvNV;
+ PFNGLFOGFUNCSGISPROC FogFuncSGIS;
+ PFNGLFOGXOESPROC FogxOES;
+ PFNGLFOGXVOESPROC FogxvOES;
+ PFNGLFRAGMENTCOLORMATERIALSGIXPROC FragmentColorMaterialSGIX;
+ PFNGLFRAGMENTCOVERAGECOLORNVPROC FragmentCoverageColorNV;
+ PFNGLFRAGMENTLIGHTMODELFSGIXPROC FragmentLightModelfSGIX;
+ PFNGLFRAGMENTLIGHTMODELFVSGIXPROC FragmentLightModelfvSGIX;
+ PFNGLFRAGMENTLIGHTMODELISGIXPROC FragmentLightModeliSGIX;
+ PFNGLFRAGMENTLIGHTMODELIVSGIXPROC FragmentLightModelivSGIX;
+ PFNGLFRAGMENTLIGHTFSGIXPROC FragmentLightfSGIX;
+ PFNGLFRAGMENTLIGHTFVSGIXPROC FragmentLightfvSGIX;
+ PFNGLFRAGMENTLIGHTISGIXPROC FragmentLightiSGIX;
+ PFNGLFRAGMENTLIGHTIVSGIXPROC FragmentLightivSGIX;
+ PFNGLFRAGMENTMATERIALFSGIXPROC FragmentMaterialfSGIX;
+ PFNGLFRAGMENTMATERIALFVSGIXPROC FragmentMaterialfvSGIX;
+ PFNGLFRAGMENTMATERIALISGIXPROC FragmentMaterialiSGIX;
+ PFNGLFRAGMENTMATERIALIVSGIXPROC FragmentMaterialivSGIX;
+ PFNGLFRAMETERMINATORGREMEDYPROC FrameTerminatorGREMEDY;
+ PFNGLFRAMEZOOMSGIXPROC FrameZoomSGIX;
+ PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC FramebufferDrawBufferEXT;
+ PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC FramebufferDrawBuffersEXT;
+ PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC FramebufferFetchBarrierEXT;
+ PFNGLFRAMEBUFFERPARAMETERIPROC FramebufferParameteri;
+ PFNGLFRAMEBUFFERPARAMETERIMESAPROC FramebufferParameteriMESA;
+ PFNGLFRAMEBUFFERREADBUFFEREXTPROC FramebufferReadBufferEXT;
+ PFNGLFRAMEBUFFERRENDERBUFFERPROC FramebufferRenderbuffer;
+ PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC FramebufferRenderbufferEXT;
+ PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC FramebufferSampleLocationsfvARB;
+ PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC FramebufferSampleLocationsfvNV;
+ PFNGLFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC FramebufferSamplePositionsfvAMD;
+ PFNGLFRAMEBUFFERTEXTUREPROC FramebufferTexture;
+ PFNGLFRAMEBUFFERTEXTURE1DPROC FramebufferTexture1D;
+ PFNGLFRAMEBUFFERTEXTURE1DEXTPROC FramebufferTexture1DEXT;
+ PFNGLFRAMEBUFFERTEXTURE2DPROC FramebufferTexture2D;
+ PFNGLFRAMEBUFFERTEXTURE2DEXTPROC FramebufferTexture2DEXT;
+ PFNGLFRAMEBUFFERTEXTURE3DPROC FramebufferTexture3D;
+ PFNGLFRAMEBUFFERTEXTURE3DEXTPROC FramebufferTexture3DEXT;
+ PFNGLFRAMEBUFFERTEXTUREARBPROC FramebufferTextureARB;
+ PFNGLFRAMEBUFFERTEXTUREEXTPROC FramebufferTextureEXT;
+ PFNGLFRAMEBUFFERTEXTUREFACEARBPROC FramebufferTextureFaceARB;
+ PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC FramebufferTextureFaceEXT;
+ PFNGLFRAMEBUFFERTEXTURELAYERPROC FramebufferTextureLayer;
+ PFNGLFRAMEBUFFERTEXTURELAYERARBPROC FramebufferTextureLayerARB;
+ PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC FramebufferTextureLayerEXT;
+ PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC FramebufferTextureMultiviewOVR;
+ PFNGLFREEOBJECTBUFFERATIPROC FreeObjectBufferATI;
+ PFNGLFRONTFACEPROC FrontFace;
+ PFNGLFRUSTUMFOESPROC FrustumfOES;
+ PFNGLFRUSTUMXOESPROC FrustumxOES;
+ PFNGLGENASYNCMARKERSSGIXPROC GenAsyncMarkersSGIX;
+ PFNGLGENBUFFERSPROC GenBuffers;
+ PFNGLGENBUFFERSARBPROC GenBuffersARB;
+ PFNGLGENFENCESAPPLEPROC GenFencesAPPLE;
+ PFNGLGENFENCESNVPROC GenFencesNV;
+ PFNGLGENFRAGMENTSHADERSATIPROC GenFragmentShadersATI;
+ PFNGLGENFRAMEBUFFERSPROC GenFramebuffers;
+ PFNGLGENFRAMEBUFFERSEXTPROC GenFramebuffersEXT;
+ PFNGLGENNAMESAMDPROC GenNamesAMD;
+ PFNGLGENOCCLUSIONQUERIESNVPROC GenOcclusionQueriesNV;
+ PFNGLGENPATHSNVPROC GenPathsNV;
+ PFNGLGENPERFMONITORSAMDPROC GenPerfMonitorsAMD;
+ PFNGLGENPROGRAMPIPELINESPROC GenProgramPipelines;
+ PFNGLGENPROGRAMSARBPROC GenProgramsARB;
+ PFNGLGENPROGRAMSNVPROC GenProgramsNV;
+ PFNGLGENQUERIESPROC GenQueries;
+ PFNGLGENQUERIESARBPROC GenQueriesARB;
+ PFNGLGENQUERYRESOURCETAGNVPROC GenQueryResourceTagNV;
+ PFNGLGENRENDERBUFFERSPROC GenRenderbuffers;
+ PFNGLGENRENDERBUFFERSEXTPROC GenRenderbuffersEXT;
+ PFNGLGENSAMPLERSPROC GenSamplers;
+ PFNGLGENSEMAPHORESEXTPROC GenSemaphoresEXT;
+ PFNGLGENSYMBOLSEXTPROC GenSymbolsEXT;
+ PFNGLGENTEXTURESPROC GenTextures;
+ PFNGLGENTEXTURESEXTPROC GenTexturesEXT;
+ PFNGLGENTRANSFORMFEEDBACKSPROC GenTransformFeedbacks;
+ PFNGLGENTRANSFORMFEEDBACKSNVPROC GenTransformFeedbacksNV;
+ PFNGLGENVERTEXARRAYSPROC GenVertexArrays;
+ PFNGLGENVERTEXARRAYSAPPLEPROC GenVertexArraysAPPLE;
+ PFNGLGENVERTEXSHADERSEXTPROC GenVertexShadersEXT;
+ PFNGLGENERATEMIPMAPPROC GenerateMipmap;
+ PFNGLGENERATEMIPMAPEXTPROC GenerateMipmapEXT;
+ PFNGLGENERATEMULTITEXMIPMAPEXTPROC GenerateMultiTexMipmapEXT;
+ PFNGLGENERATETEXTUREMIPMAPPROC GenerateTextureMipmap;
+ PFNGLGENERATETEXTUREMIPMAPEXTPROC GenerateTextureMipmapEXT;
+ PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC GetActiveAtomicCounterBufferiv;
+ PFNGLGETACTIVEATTRIBPROC GetActiveAttrib;
+ PFNGLGETACTIVEATTRIBARBPROC GetActiveAttribARB;
+ PFNGLGETACTIVESUBROUTINENAMEPROC GetActiveSubroutineName;
+ PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC GetActiveSubroutineUniformName;
+ PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC GetActiveSubroutineUniformiv;
+ PFNGLGETACTIVEUNIFORMPROC GetActiveUniform;
+ PFNGLGETACTIVEUNIFORMARBPROC GetActiveUniformARB;
+ PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC GetActiveUniformBlockName;
+ PFNGLGETACTIVEUNIFORMBLOCKIVPROC GetActiveUniformBlockiv;
+ PFNGLGETACTIVEUNIFORMNAMEPROC GetActiveUniformName;
+ PFNGLGETACTIVEUNIFORMSIVPROC GetActiveUniformsiv;
+ PFNGLGETACTIVEVARYINGNVPROC GetActiveVaryingNV;
+ PFNGLGETARRAYOBJECTFVATIPROC GetArrayObjectfvATI;
+ PFNGLGETARRAYOBJECTIVATIPROC GetArrayObjectivATI;
+ PFNGLGETATTACHEDOBJECTSARBPROC GetAttachedObjectsARB;
+ PFNGLGETATTACHEDSHADERSPROC GetAttachedShaders;
+ PFNGLGETATTRIBLOCATIONPROC GetAttribLocation;
+ PFNGLGETATTRIBLOCATIONARBPROC GetAttribLocationARB;
+ PFNGLGETBOOLEANINDEXEDVEXTPROC GetBooleanIndexedvEXT;
+ PFNGLGETBOOLEANI_VPROC GetBooleani_v;
+ PFNGLGETBOOLEANVPROC GetBooleanv;
+ PFNGLGETBUFFERPARAMETERI64VPROC GetBufferParameteri64v;
+ PFNGLGETBUFFERPARAMETERIVPROC GetBufferParameteriv;
+ PFNGLGETBUFFERPARAMETERIVARBPROC GetBufferParameterivARB;
+ PFNGLGETBUFFERPARAMETERUI64VNVPROC GetBufferParameterui64vNV;
+ PFNGLGETBUFFERPOINTERVPROC GetBufferPointerv;
+ PFNGLGETBUFFERPOINTERVARBPROC GetBufferPointervARB;
+ PFNGLGETBUFFERSUBDATAPROC GetBufferSubData;
+ PFNGLGETBUFFERSUBDATAARBPROC GetBufferSubDataARB;
+ PFNGLGETCLIPPLANEFOESPROC GetClipPlanefOES;
+ PFNGLGETCLIPPLANEXOESPROC GetClipPlanexOES;
+ PFNGLGETCOLORTABLEEXTPROC GetColorTableEXT;
+ PFNGLGETCOLORTABLEPARAMETERFVEXTPROC GetColorTableParameterfvEXT;
+ PFNGLGETCOLORTABLEPARAMETERFVSGIPROC GetColorTableParameterfvSGI;
+ PFNGLGETCOLORTABLEPARAMETERIVEXTPROC GetColorTableParameterivEXT;
+ PFNGLGETCOLORTABLEPARAMETERIVSGIPROC GetColorTableParameterivSGI;
+ PFNGLGETCOLORTABLESGIPROC GetColorTableSGI;
+ PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC GetCombinerInputParameterfvNV;
+ PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC GetCombinerInputParameterivNV;
+ PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC GetCombinerOutputParameterfvNV;
+ PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC GetCombinerOutputParameterivNV;
+ PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC GetCombinerStageParameterfvNV;
+ PFNGLGETCOMMANDHEADERNVPROC GetCommandHeaderNV;
+ PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC GetCompressedMultiTexImageEXT;
+ PFNGLGETCOMPRESSEDTEXIMAGEPROC GetCompressedTexImage;
+ PFNGLGETCOMPRESSEDTEXIMAGEARBPROC GetCompressedTexImageARB;
+ PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC GetCompressedTextureImage;
+ PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC GetCompressedTextureImageEXT;
+ PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC GetCompressedTextureSubImage;
+ PFNGLGETCONVOLUTIONFILTEREXTPROC GetConvolutionFilterEXT;
+ PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC GetConvolutionParameterfvEXT;
+ PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC GetConvolutionParameterivEXT;
+ PFNGLGETCONVOLUTIONPARAMETERXVOESPROC GetConvolutionParameterxvOES;
+ PFNGLGETCOVERAGEMODULATIONTABLENVPROC GetCoverageModulationTableNV;
+ PFNGLGETDEBUGMESSAGELOGPROC GetDebugMessageLog;
+ PFNGLGETDEBUGMESSAGELOGAMDPROC GetDebugMessageLogAMD;
+ PFNGLGETDEBUGMESSAGELOGARBPROC GetDebugMessageLogARB;
+ PFNGLGETDETAILTEXFUNCSGISPROC GetDetailTexFuncSGIS;
+ PFNGLGETDOUBLEINDEXEDVEXTPROC GetDoubleIndexedvEXT;
+ PFNGLGETDOUBLEI_VPROC GetDoublei_v;
+ PFNGLGETDOUBLEI_VEXTPROC GetDoublei_vEXT;
+ PFNGLGETDOUBLEVPROC GetDoublev;
+ PFNGLGETERRORPROC GetError;
+ PFNGLGETFENCEIVNVPROC GetFenceivNV;
+ PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC GetFinalCombinerInputParameterfvNV;
+ PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC GetFinalCombinerInputParameterivNV;
+ PFNGLGETFIRSTPERFQUERYIDINTELPROC GetFirstPerfQueryIdINTEL;
+ PFNGLGETFIXEDVOESPROC GetFixedvOES;
+ PFNGLGETFLOATINDEXEDVEXTPROC GetFloatIndexedvEXT;
+ PFNGLGETFLOATI_VPROC GetFloati_v;
+ PFNGLGETFLOATI_VEXTPROC GetFloati_vEXT;
+ PFNGLGETFLOATVPROC GetFloatv;
+ PFNGLGETFOGFUNCSGISPROC GetFogFuncSGIS;
+ PFNGLGETFRAGDATAINDEXPROC GetFragDataIndex;
+ PFNGLGETFRAGDATALOCATIONPROC GetFragDataLocation;
+ PFNGLGETFRAGDATALOCATIONEXTPROC GetFragDataLocationEXT;
+ PFNGLGETFRAGMENTLIGHTFVSGIXPROC GetFragmentLightfvSGIX;
+ PFNGLGETFRAGMENTLIGHTIVSGIXPROC GetFragmentLightivSGIX;
+ PFNGLGETFRAGMENTMATERIALFVSGIXPROC GetFragmentMaterialfvSGIX;
+ PFNGLGETFRAGMENTMATERIALIVSGIXPROC GetFragmentMaterialivSGIX;
+ PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC GetFramebufferAttachmentParameteriv;
+ PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC GetFramebufferAttachmentParameterivEXT;
+ PFNGLGETFRAMEBUFFERPARAMETERFVAMDPROC GetFramebufferParameterfvAMD;
+ PFNGLGETFRAMEBUFFERPARAMETERIVPROC GetFramebufferParameteriv;
+ PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC GetFramebufferParameterivEXT;
+ PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC GetFramebufferParameterivMESA;
+ PFNGLGETGRAPHICSRESETSTATUSPROC GetGraphicsResetStatus;
+ PFNGLGETGRAPHICSRESETSTATUSARBPROC GetGraphicsResetStatusARB;
+ PFNGLGETHANDLEARBPROC GetHandleARB;
+ PFNGLGETHISTOGRAMEXTPROC GetHistogramEXT;
+ PFNGLGETHISTOGRAMPARAMETERFVEXTPROC GetHistogramParameterfvEXT;
+ PFNGLGETHISTOGRAMPARAMETERIVEXTPROC GetHistogramParameterivEXT;
+ PFNGLGETHISTOGRAMPARAMETERXVOESPROC GetHistogramParameterxvOES;
+ PFNGLGETIMAGEHANDLEARBPROC GetImageHandleARB;
+ PFNGLGETIMAGEHANDLENVPROC GetImageHandleNV;
+ PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC GetImageTransformParameterfvHP;
+ PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC GetImageTransformParameterivHP;
+ PFNGLGETINFOLOGARBPROC GetInfoLogARB;
+ PFNGLGETINSTRUMENTSSGIXPROC GetInstrumentsSGIX;
+ PFNGLGETINTEGER64I_VPROC GetInteger64i_v;
+ PFNGLGETINTEGER64VPROC GetInteger64v;
+ PFNGLGETINTEGERINDEXEDVEXTPROC GetIntegerIndexedvEXT;
+ PFNGLGETINTEGERI_VPROC GetIntegeri_v;
+ PFNGLGETINTEGERUI64I_VNVPROC GetIntegerui64i_vNV;
+ PFNGLGETINTEGERUI64VNVPROC GetIntegerui64vNV;
+ PFNGLGETINTEGERVPROC GetIntegerv;
+ PFNGLGETINTERNALFORMATSAMPLEIVNVPROC GetInternalformatSampleivNV;
+ PFNGLGETINTERNALFORMATI64VPROC GetInternalformati64v;
+ PFNGLGETINTERNALFORMATIVPROC GetInternalformativ;
+ PFNGLGETINVARIANTBOOLEANVEXTPROC GetInvariantBooleanvEXT;
+ PFNGLGETINVARIANTFLOATVEXTPROC GetInvariantFloatvEXT;
+ PFNGLGETINVARIANTINTEGERVEXTPROC GetInvariantIntegervEXT;
+ PFNGLGETLIGHTXOESPROC GetLightxOES;
+ PFNGLGETLISTPARAMETERFVSGIXPROC GetListParameterfvSGIX;
+ PFNGLGETLISTPARAMETERIVSGIXPROC GetListParameterivSGIX;
+ PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC GetLocalConstantBooleanvEXT;
+ PFNGLGETLOCALCONSTANTFLOATVEXTPROC GetLocalConstantFloatvEXT;
+ PFNGLGETLOCALCONSTANTINTEGERVEXTPROC GetLocalConstantIntegervEXT;
+ PFNGLGETMAPATTRIBPARAMETERFVNVPROC GetMapAttribParameterfvNV;
+ PFNGLGETMAPATTRIBPARAMETERIVNVPROC GetMapAttribParameterivNV;
+ PFNGLGETMAPCONTROLPOINTSNVPROC GetMapControlPointsNV;
+ PFNGLGETMAPPARAMETERFVNVPROC GetMapParameterfvNV;
+ PFNGLGETMAPPARAMETERIVNVPROC GetMapParameterivNV;
+ PFNGLGETMAPXVOESPROC GetMapxvOES;
+ PFNGLGETMATERIALXOESPROC GetMaterialxOES;
+ PFNGLGETMEMORYOBJECTDETACHEDRESOURCESUIVNVPROC GetMemoryObjectDetachedResourcesuivNV;
+ PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC GetMemoryObjectParameterivEXT;
+ PFNGLGETMINMAXEXTPROC GetMinmaxEXT;
+ PFNGLGETMINMAXPARAMETERFVEXTPROC GetMinmaxParameterfvEXT;
+ PFNGLGETMINMAXPARAMETERIVEXTPROC GetMinmaxParameterivEXT;
+ PFNGLGETMULTITEXENVFVEXTPROC GetMultiTexEnvfvEXT;
+ PFNGLGETMULTITEXENVIVEXTPROC GetMultiTexEnvivEXT;
+ PFNGLGETMULTITEXGENDVEXTPROC GetMultiTexGendvEXT;
+ PFNGLGETMULTITEXGENFVEXTPROC GetMultiTexGenfvEXT;
+ PFNGLGETMULTITEXGENIVEXTPROC GetMultiTexGenivEXT;
+ PFNGLGETMULTITEXIMAGEEXTPROC GetMultiTexImageEXT;
+ PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC GetMultiTexLevelParameterfvEXT;
+ PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC GetMultiTexLevelParameterivEXT;
+ PFNGLGETMULTITEXPARAMETERIIVEXTPROC GetMultiTexParameterIivEXT;
+ PFNGLGETMULTITEXPARAMETERIUIVEXTPROC GetMultiTexParameterIuivEXT;
+ PFNGLGETMULTITEXPARAMETERFVEXTPROC GetMultiTexParameterfvEXT;
+ PFNGLGETMULTITEXPARAMETERIVEXTPROC GetMultiTexParameterivEXT;
+ PFNGLGETMULTISAMPLEFVPROC GetMultisamplefv;
+ PFNGLGETMULTISAMPLEFVNVPROC GetMultisamplefvNV;
+ PFNGLGETNAMEDBUFFERPARAMETERI64VPROC GetNamedBufferParameteri64v;
+ PFNGLGETNAMEDBUFFERPARAMETERIVPROC GetNamedBufferParameteriv;
+ PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC GetNamedBufferParameterivEXT;
+ PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC GetNamedBufferParameterui64vNV;
+ PFNGLGETNAMEDBUFFERPOINTERVPROC GetNamedBufferPointerv;
+ PFNGLGETNAMEDBUFFERPOINTERVEXTPROC GetNamedBufferPointervEXT;
+ PFNGLGETNAMEDBUFFERSUBDATAPROC GetNamedBufferSubData;
+ PFNGLGETNAMEDBUFFERSUBDATAEXTPROC GetNamedBufferSubDataEXT;
+ PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC GetNamedFramebufferAttachmentParameteriv;
+ PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC
+ GetNamedFramebufferAttachmentParameterivEXT;
+ PFNGLGETNAMEDFRAMEBUFFERPARAMETERFVAMDPROC GetNamedFramebufferParameterfvAMD;
+ PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC GetNamedFramebufferParameteriv;
+ PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC GetNamedFramebufferParameterivEXT;
+ PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC GetNamedProgramLocalParameterIivEXT;
+ PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC GetNamedProgramLocalParameterIuivEXT;
+ PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC GetNamedProgramLocalParameterdvEXT;
+ PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC GetNamedProgramLocalParameterfvEXT;
+ PFNGLGETNAMEDPROGRAMSTRINGEXTPROC GetNamedProgramStringEXT;
+ PFNGLGETNAMEDPROGRAMIVEXTPROC GetNamedProgramivEXT;
+ PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC GetNamedRenderbufferParameteriv;
+ PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC GetNamedRenderbufferParameterivEXT;
+ PFNGLGETNAMEDSTRINGARBPROC GetNamedStringARB;
+ PFNGLGETNAMEDSTRINGIVARBPROC GetNamedStringivARB;
+ PFNGLGETNEXTPERFQUERYIDINTELPROC GetNextPerfQueryIdINTEL;
+ PFNGLGETOBJECTBUFFERFVATIPROC GetObjectBufferfvATI;
+ PFNGLGETOBJECTBUFFERIVATIPROC GetObjectBufferivATI;
+ PFNGLGETOBJECTLABELPROC GetObjectLabel;
+ PFNGLGETOBJECTLABELEXTPROC GetObjectLabelEXT;
+ PFNGLGETOBJECTPARAMETERFVARBPROC GetObjectParameterfvARB;
+ PFNGLGETOBJECTPARAMETERIVAPPLEPROC GetObjectParameterivAPPLE;
+ PFNGLGETOBJECTPARAMETERIVARBPROC GetObjectParameterivARB;
+ PFNGLGETOBJECTPTRLABELPROC GetObjectPtrLabel;
+ PFNGLGETOCCLUSIONQUERYIVNVPROC GetOcclusionQueryivNV;
+ PFNGLGETOCCLUSIONQUERYUIVNVPROC GetOcclusionQueryuivNV;
+ PFNGLGETPATHCOMMANDSNVPROC GetPathCommandsNV;
+ PFNGLGETPATHCOORDSNVPROC GetPathCoordsNV;
+ PFNGLGETPATHDASHARRAYNVPROC GetPathDashArrayNV;
+ PFNGLGETPATHLENGTHNVPROC GetPathLengthNV;
+ PFNGLGETPATHMETRICRANGENVPROC GetPathMetricRangeNV;
+ PFNGLGETPATHMETRICSNVPROC GetPathMetricsNV;
+ PFNGLGETPATHPARAMETERFVNVPROC GetPathParameterfvNV;
+ PFNGLGETPATHPARAMETERIVNVPROC GetPathParameterivNV;
+ PFNGLGETPATHSPACINGNVPROC GetPathSpacingNV;
+ PFNGLGETPERFCOUNTERINFOINTELPROC GetPerfCounterInfoINTEL;
+ PFNGLGETPERFMONITORCOUNTERDATAAMDPROC GetPerfMonitorCounterDataAMD;
+ PFNGLGETPERFMONITORCOUNTERINFOAMDPROC GetPerfMonitorCounterInfoAMD;
+ PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC GetPerfMonitorCounterStringAMD;
+ PFNGLGETPERFMONITORCOUNTERSAMDPROC GetPerfMonitorCountersAMD;
+ PFNGLGETPERFMONITORGROUPSTRINGAMDPROC GetPerfMonitorGroupStringAMD;
+ PFNGLGETPERFMONITORGROUPSAMDPROC GetPerfMonitorGroupsAMD;
+ PFNGLGETPERFQUERYDATAINTELPROC GetPerfQueryDataINTEL;
+ PFNGLGETPERFQUERYIDBYNAMEINTELPROC GetPerfQueryIdByNameINTEL;
+ PFNGLGETPERFQUERYINFOINTELPROC GetPerfQueryInfoINTEL;
+ PFNGLGETPIXELMAPXVPROC GetPixelMapxv;
+ PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC GetPixelTexGenParameterfvSGIS;
+ PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC GetPixelTexGenParameterivSGIS;
+ PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC GetPixelTransformParameterfvEXT;
+ PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC GetPixelTransformParameterivEXT;
+ PFNGLGETPOINTERINDEXEDVEXTPROC GetPointerIndexedvEXT;
+ PFNGLGETPOINTERI_VEXTPROC GetPointeri_vEXT;
+ PFNGLGETPOINTERVPROC GetPointerv;
+ PFNGLGETPOINTERVEXTPROC GetPointervEXT;
+ PFNGLGETPROGRAMBINARYPROC GetProgramBinary;
+ PFNGLGETPROGRAMENVPARAMETERIIVNVPROC GetProgramEnvParameterIivNV;
+ PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC GetProgramEnvParameterIuivNV;
+ PFNGLGETPROGRAMENVPARAMETERDVARBPROC GetProgramEnvParameterdvARB;
+ PFNGLGETPROGRAMENVPARAMETERFVARBPROC GetProgramEnvParameterfvARB;
+ PFNGLGETPROGRAMINFOLOGPROC GetProgramInfoLog;
+ PFNGLGETPROGRAMINTERFACEIVPROC GetProgramInterfaceiv;
+ PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC GetProgramLocalParameterIivNV;
+ PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC GetProgramLocalParameterIuivNV;
+ PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC GetProgramLocalParameterdvARB;
+ PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC GetProgramLocalParameterfvARB;
+ PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC GetProgramNamedParameterdvNV;
+ PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC GetProgramNamedParameterfvNV;
+ PFNGLGETPROGRAMPARAMETERDVNVPROC GetProgramParameterdvNV;
+ PFNGLGETPROGRAMPARAMETERFVNVPROC GetProgramParameterfvNV;
+ PFNGLGETPROGRAMPIPELINEINFOLOGPROC GetProgramPipelineInfoLog;
+ PFNGLGETPROGRAMPIPELINEIVPROC GetProgramPipelineiv;
+ PFNGLGETPROGRAMRESOURCEINDEXPROC GetProgramResourceIndex;
+ PFNGLGETPROGRAMRESOURCELOCATIONPROC GetProgramResourceLocation;
+ PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC GetProgramResourceLocationIndex;
+ PFNGLGETPROGRAMRESOURCENAMEPROC GetProgramResourceName;
+ PFNGLGETPROGRAMRESOURCEFVNVPROC GetProgramResourcefvNV;
+ PFNGLGETPROGRAMRESOURCEIVPROC GetProgramResourceiv;
+ PFNGLGETPROGRAMSTAGEIVPROC GetProgramStageiv;
+ PFNGLGETPROGRAMSTRINGARBPROC GetProgramStringARB;
+ PFNGLGETPROGRAMSTRINGNVPROC GetProgramStringNV;
+ PFNGLGETPROGRAMSUBROUTINEPARAMETERUIVNVPROC GetProgramSubroutineParameteruivNV;
+ PFNGLGETPROGRAMIVPROC GetProgramiv;
+ PFNGLGETPROGRAMIVARBPROC GetProgramivARB;
+ PFNGLGETPROGRAMIVNVPROC GetProgramivNV;
+ PFNGLGETQUERYBUFFEROBJECTI64VPROC GetQueryBufferObjecti64v;
+ PFNGLGETQUERYBUFFEROBJECTIVPROC GetQueryBufferObjectiv;
+ PFNGLGETQUERYBUFFEROBJECTUI64VPROC GetQueryBufferObjectui64v;
+ PFNGLGETQUERYBUFFEROBJECTUIVPROC GetQueryBufferObjectuiv;
+ PFNGLGETQUERYINDEXEDIVPROC GetQueryIndexediv;
+ PFNGLGETQUERYOBJECTI64VPROC GetQueryObjecti64v;
+ PFNGLGETQUERYOBJECTI64VEXTPROC GetQueryObjecti64vEXT;
+ PFNGLGETQUERYOBJECTIVPROC GetQueryObjectiv;
+ PFNGLGETQUERYOBJECTIVARBPROC GetQueryObjectivARB;
+ PFNGLGETQUERYOBJECTUI64VPROC GetQueryObjectui64v;
+ PFNGLGETQUERYOBJECTUI64VEXTPROC GetQueryObjectui64vEXT;
+ PFNGLGETQUERYOBJECTUIVPROC GetQueryObjectuiv;
+ PFNGLGETQUERYOBJECTUIVARBPROC GetQueryObjectuivARB;
+ PFNGLGETQUERYIVPROC GetQueryiv;
+ PFNGLGETQUERYIVARBPROC GetQueryivARB;
+ PFNGLGETRENDERBUFFERPARAMETERIVPROC GetRenderbufferParameteriv;
+ PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC GetRenderbufferParameterivEXT;
+ PFNGLGETSAMPLERPARAMETERIIVPROC GetSamplerParameterIiv;
+ PFNGLGETSAMPLERPARAMETERIUIVPROC GetSamplerParameterIuiv;
+ PFNGLGETSAMPLERPARAMETERFVPROC GetSamplerParameterfv;
+ PFNGLGETSAMPLERPARAMETERIVPROC GetSamplerParameteriv;
+ PFNGLGETSEMAPHOREPARAMETERIVNVPROC GetSemaphoreParameterivNV;
+ PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC GetSemaphoreParameterui64vEXT;
+ PFNGLGETSEPARABLEFILTEREXTPROC GetSeparableFilterEXT;
+ PFNGLGETSHADERINFOLOGPROC GetShaderInfoLog;
+ PFNGLGETSHADERPRECISIONFORMATPROC GetShaderPrecisionFormat;
+ PFNGLGETSHADERSOURCEPROC GetShaderSource;
+ PFNGLGETSHADERSOURCEARBPROC GetShaderSourceARB;
+ PFNGLGETSHADERIVPROC GetShaderiv;
+ PFNGLGETSHADINGRATEIMAGEPALETTENVPROC GetShadingRateImagePaletteNV;
+ PFNGLGETSHADINGRATESAMPLELOCATIONIVNVPROC GetShadingRateSampleLocationivNV;
+ PFNGLGETSHARPENTEXFUNCSGISPROC GetSharpenTexFuncSGIS;
+ PFNGLGETSTAGEINDEXNVPROC GetStageIndexNV;
+ PFNGLGETSTRINGPROC GetString;
+ PFNGLGETSTRINGIPROC GetStringi;
+ PFNGLGETSUBROUTINEINDEXPROC GetSubroutineIndex;
+ PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC GetSubroutineUniformLocation;
+ PFNGLGETSYNCIVPROC GetSynciv;
+ PFNGLGETTEXBUMPPARAMETERFVATIPROC GetTexBumpParameterfvATI;
+ PFNGLGETTEXBUMPPARAMETERIVATIPROC GetTexBumpParameterivATI;
+ PFNGLGETTEXENVXVOESPROC GetTexEnvxvOES;
+ PFNGLGETTEXFILTERFUNCSGISPROC GetTexFilterFuncSGIS;
+ PFNGLGETTEXGENXVOESPROC GetTexGenxvOES;
+ PFNGLGETTEXIMAGEPROC GetTexImage;
+ PFNGLGETTEXLEVELPARAMETERFVPROC GetTexLevelParameterfv;
+ PFNGLGETTEXLEVELPARAMETERIVPROC GetTexLevelParameteriv;
+ PFNGLGETTEXLEVELPARAMETERXVOESPROC GetTexLevelParameterxvOES;
+ PFNGLGETTEXPARAMETERIIVPROC GetTexParameterIiv;
+ PFNGLGETTEXPARAMETERIIVEXTPROC GetTexParameterIivEXT;
+ PFNGLGETTEXPARAMETERIUIVPROC GetTexParameterIuiv;
+ PFNGLGETTEXPARAMETERIUIVEXTPROC GetTexParameterIuivEXT;
+ PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC GetTexParameterPointervAPPLE;
+ PFNGLGETTEXPARAMETERFVPROC GetTexParameterfv;
+ PFNGLGETTEXPARAMETERIVPROC GetTexParameteriv;
+ PFNGLGETTEXPARAMETERXVOESPROC GetTexParameterxvOES;
+ PFNGLGETTEXTUREHANDLEARBPROC GetTextureHandleARB;
+ PFNGLGETTEXTUREHANDLENVPROC GetTextureHandleNV;
+ PFNGLGETTEXTUREIMAGEPROC GetTextureImage;
+ PFNGLGETTEXTUREIMAGEEXTPROC GetTextureImageEXT;
+ PFNGLGETTEXTURELEVELPARAMETERFVPROC GetTextureLevelParameterfv;
+ PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC GetTextureLevelParameterfvEXT;
+ PFNGLGETTEXTURELEVELPARAMETERIVPROC GetTextureLevelParameteriv;
+ PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC GetTextureLevelParameterivEXT;
+ PFNGLGETTEXTUREPARAMETERIIVPROC GetTextureParameterIiv;
+ PFNGLGETTEXTUREPARAMETERIIVEXTPROC GetTextureParameterIivEXT;
+ PFNGLGETTEXTUREPARAMETERIUIVPROC GetTextureParameterIuiv;
+ PFNGLGETTEXTUREPARAMETERIUIVEXTPROC GetTextureParameterIuivEXT;
+ PFNGLGETTEXTUREPARAMETERFVPROC GetTextureParameterfv;
+ PFNGLGETTEXTUREPARAMETERFVEXTPROC GetTextureParameterfvEXT;
+ PFNGLGETTEXTUREPARAMETERIVPROC GetTextureParameteriv;
+ PFNGLGETTEXTUREPARAMETERIVEXTPROC GetTextureParameterivEXT;
+ PFNGLGETTEXTURESAMPLERHANDLEARBPROC GetTextureSamplerHandleARB;
+ PFNGLGETTEXTURESAMPLERHANDLENVPROC GetTextureSamplerHandleNV;
+ PFNGLGETTEXTURESUBIMAGEPROC GetTextureSubImage;
+ PFNGLGETTRACKMATRIXIVNVPROC GetTrackMatrixivNV;
+ PFNGLGETTRANSFORMFEEDBACKVARYINGPROC GetTransformFeedbackVarying;
+ PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC GetTransformFeedbackVaryingEXT;
+ PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC GetTransformFeedbackVaryingNV;
+ PFNGLGETTRANSFORMFEEDBACKI64_VPROC GetTransformFeedbacki64_v;
+ PFNGLGETTRANSFORMFEEDBACKI_VPROC GetTransformFeedbacki_v;
+ PFNGLGETTRANSFORMFEEDBACKIVPROC GetTransformFeedbackiv;
+ PFNGLGETUNIFORMBLOCKINDEXPROC GetUniformBlockIndex;
+ PFNGLGETUNIFORMBUFFERSIZEEXTPROC GetUniformBufferSizeEXT;
+ PFNGLGETUNIFORMINDICESPROC GetUniformIndices;
+ PFNGLGETUNIFORMLOCATIONPROC GetUniformLocation;
+ PFNGLGETUNIFORMLOCATIONARBPROC GetUniformLocationARB;
+ PFNGLGETUNIFORMOFFSETEXTPROC GetUniformOffsetEXT;
+ PFNGLGETUNIFORMSUBROUTINEUIVPROC GetUniformSubroutineuiv;
+ PFNGLGETUNIFORMDVPROC GetUniformdv;
+ PFNGLGETUNIFORMFVPROC GetUniformfv;
+ PFNGLGETUNIFORMFVARBPROC GetUniformfvARB;
+ PFNGLGETUNIFORMI64VARBPROC GetUniformi64vARB;
+ PFNGLGETUNIFORMI64VNVPROC GetUniformi64vNV;
+ PFNGLGETUNIFORMIVPROC GetUniformiv;
+ PFNGLGETUNIFORMIVARBPROC GetUniformivARB;
+ PFNGLGETUNIFORMUI64VARBPROC GetUniformui64vARB;
+ PFNGLGETUNIFORMUI64VNVPROC GetUniformui64vNV;
+ PFNGLGETUNIFORMUIVPROC GetUniformuiv;
+ PFNGLGETUNIFORMUIVEXTPROC GetUniformuivEXT;
+ PFNGLGETUNSIGNEDBYTEI_VEXTPROC GetUnsignedBytei_vEXT;
+ PFNGLGETUNSIGNEDBYTEVEXTPROC GetUnsignedBytevEXT;
+ PFNGLGETVARIANTARRAYOBJECTFVATIPROC GetVariantArrayObjectfvATI;
+ PFNGLGETVARIANTARRAYOBJECTIVATIPROC GetVariantArrayObjectivATI;
+ PFNGLGETVARIANTBOOLEANVEXTPROC GetVariantBooleanvEXT;
+ PFNGLGETVARIANTFLOATVEXTPROC GetVariantFloatvEXT;
+ PFNGLGETVARIANTINTEGERVEXTPROC GetVariantIntegervEXT;
+ PFNGLGETVARIANTPOINTERVEXTPROC GetVariantPointervEXT;
+ PFNGLGETVARYINGLOCATIONNVPROC GetVaryingLocationNV;
+ PFNGLGETVERTEXARRAYINDEXED64IVPROC GetVertexArrayIndexed64iv;
+ PFNGLGETVERTEXARRAYINDEXEDIVPROC GetVertexArrayIndexediv;
+ PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC GetVertexArrayIntegeri_vEXT;
+ PFNGLGETVERTEXARRAYINTEGERVEXTPROC GetVertexArrayIntegervEXT;
+ PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC GetVertexArrayPointeri_vEXT;
+ PFNGLGETVERTEXARRAYPOINTERVEXTPROC GetVertexArrayPointervEXT;
+ PFNGLGETVERTEXARRAYIVPROC GetVertexArrayiv;
+ PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC GetVertexAttribArrayObjectfvATI;
+ PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC GetVertexAttribArrayObjectivATI;
+ PFNGLGETVERTEXATTRIBIIVPROC GetVertexAttribIiv;
+ PFNGLGETVERTEXATTRIBIIVEXTPROC GetVertexAttribIivEXT;
+ PFNGLGETVERTEXATTRIBIUIVPROC GetVertexAttribIuiv;
+ PFNGLGETVERTEXATTRIBIUIVEXTPROC GetVertexAttribIuivEXT;
+ PFNGLGETVERTEXATTRIBLDVPROC GetVertexAttribLdv;
+ PFNGLGETVERTEXATTRIBLDVEXTPROC GetVertexAttribLdvEXT;
+ PFNGLGETVERTEXATTRIBLI64VNVPROC GetVertexAttribLi64vNV;
+ PFNGLGETVERTEXATTRIBLUI64VARBPROC GetVertexAttribLui64vARB;
+ PFNGLGETVERTEXATTRIBLUI64VNVPROC GetVertexAttribLui64vNV;
+ PFNGLGETVERTEXATTRIBPOINTERVPROC GetVertexAttribPointerv;
+ PFNGLGETVERTEXATTRIBPOINTERVARBPROC GetVertexAttribPointervARB;
+ PFNGLGETVERTEXATTRIBPOINTERVNVPROC GetVertexAttribPointervNV;
+ PFNGLGETVERTEXATTRIBDVPROC GetVertexAttribdv;
+ PFNGLGETVERTEXATTRIBDVARBPROC GetVertexAttribdvARB;
+ PFNGLGETVERTEXATTRIBDVNVPROC GetVertexAttribdvNV;
+ PFNGLGETVERTEXATTRIBFVPROC GetVertexAttribfv;
+ PFNGLGETVERTEXATTRIBFVARBPROC GetVertexAttribfvARB;
+ PFNGLGETVERTEXATTRIBFVNVPROC GetVertexAttribfvNV;
+ PFNGLGETVERTEXATTRIBIVPROC GetVertexAttribiv;
+ PFNGLGETVERTEXATTRIBIVARBPROC GetVertexAttribivARB;
+ PFNGLGETVERTEXATTRIBIVNVPROC GetVertexAttribivNV;
+ PFNGLGETVIDEOCAPTURESTREAMDVNVPROC GetVideoCaptureStreamdvNV;
+ PFNGLGETVIDEOCAPTURESTREAMFVNVPROC GetVideoCaptureStreamfvNV;
+ PFNGLGETVIDEOCAPTURESTREAMIVNVPROC GetVideoCaptureStreamivNV;
+ PFNGLGETVIDEOCAPTUREIVNVPROC GetVideoCaptureivNV;
+ PFNGLGETVIDEOI64VNVPROC GetVideoi64vNV;
+ PFNGLGETVIDEOIVNVPROC GetVideoivNV;
+ PFNGLGETVIDEOUI64VNVPROC GetVideoui64vNV;
+ PFNGLGETVIDEOUIVNVPROC GetVideouivNV;
+ PFNGLGETVKPROCADDRNVPROC GetVkProcAddrNV;
+ PFNGLGETNCOMPRESSEDTEXIMAGEPROC GetnCompressedTexImage;
+ PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC GetnCompressedTexImageARB;
+ PFNGLGETNTEXIMAGEPROC GetnTexImage;
+ PFNGLGETNTEXIMAGEARBPROC GetnTexImageARB;
+ PFNGLGETNUNIFORMDVPROC GetnUniformdv;
+ PFNGLGETNUNIFORMDVARBPROC GetnUniformdvARB;
+ PFNGLGETNUNIFORMFVPROC GetnUniformfv;
+ PFNGLGETNUNIFORMFVARBPROC GetnUniformfvARB;
+ PFNGLGETNUNIFORMI64VARBPROC GetnUniformi64vARB;
+ PFNGLGETNUNIFORMIVPROC GetnUniformiv;
+ PFNGLGETNUNIFORMIVARBPROC GetnUniformivARB;
+ PFNGLGETNUNIFORMUI64VARBPROC GetnUniformui64vARB;
+ PFNGLGETNUNIFORMUIVPROC GetnUniformuiv;
+ PFNGLGETNUNIFORMUIVARBPROC GetnUniformuivARB;
+ PFNGLGLOBALALPHAFACTORBSUNPROC GlobalAlphaFactorbSUN;
+ PFNGLGLOBALALPHAFACTORDSUNPROC GlobalAlphaFactordSUN;
+ PFNGLGLOBALALPHAFACTORFSUNPROC GlobalAlphaFactorfSUN;
+ PFNGLGLOBALALPHAFACTORISUNPROC GlobalAlphaFactoriSUN;
+ PFNGLGLOBALALPHAFACTORSSUNPROC GlobalAlphaFactorsSUN;
+ PFNGLGLOBALALPHAFACTORUBSUNPROC GlobalAlphaFactorubSUN;
+ PFNGLGLOBALALPHAFACTORUISUNPROC GlobalAlphaFactoruiSUN;
+ PFNGLGLOBALALPHAFACTORUSSUNPROC GlobalAlphaFactorusSUN;
+ PFNGLHINTPROC Hint;
+ PFNGLHINTPGIPROC HintPGI;
+ PFNGLHISTOGRAMEXTPROC HistogramEXT;
+ PFNGLIGLOOINTERFACESGIXPROC IglooInterfaceSGIX;
+ PFNGLIMAGETRANSFORMPARAMETERFHPPROC ImageTransformParameterfHP;
+ PFNGLIMAGETRANSFORMPARAMETERFVHPPROC ImageTransformParameterfvHP;
+ PFNGLIMAGETRANSFORMPARAMETERIHPPROC ImageTransformParameteriHP;
+ PFNGLIMAGETRANSFORMPARAMETERIVHPPROC ImageTransformParameterivHP;
+ PFNGLIMPORTMEMORYFDEXTPROC ImportMemoryFdEXT;
+ PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC ImportMemoryWin32HandleEXT;
+ PFNGLIMPORTMEMORYWIN32NAMEEXTPROC ImportMemoryWin32NameEXT;
+ PFNGLIMPORTSEMAPHOREFDEXTPROC ImportSemaphoreFdEXT;
+ PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC ImportSemaphoreWin32HandleEXT;
+ PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC ImportSemaphoreWin32NameEXT;
+ PFNGLIMPORTSYNCEXTPROC ImportSyncEXT;
+ PFNGLINDEXFORMATNVPROC IndexFormatNV;
+ PFNGLINDEXFUNCEXTPROC IndexFuncEXT;
+ PFNGLINDEXMATERIALEXTPROC IndexMaterialEXT;
+ PFNGLINDEXPOINTEREXTPROC IndexPointerEXT;
+ PFNGLINDEXPOINTERLISTIBMPROC IndexPointerListIBM;
+ PFNGLINDEXXOESPROC IndexxOES;
+ PFNGLINDEXXVOESPROC IndexxvOES;
+ PFNGLINSERTCOMPONENTEXTPROC InsertComponentEXT;
+ PFNGLINSERTEVENTMARKEREXTPROC InsertEventMarkerEXT;
+ PFNGLINSTRUMENTSBUFFERSGIXPROC InstrumentsBufferSGIX;
+ PFNGLINTERPOLATEPATHSNVPROC InterpolatePathsNV;
+ PFNGLINVALIDATEBUFFERDATAPROC InvalidateBufferData;
+ PFNGLINVALIDATEBUFFERSUBDATAPROC InvalidateBufferSubData;
+ PFNGLINVALIDATEFRAMEBUFFERPROC InvalidateFramebuffer;
+ PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC InvalidateNamedFramebufferData;
+ PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC InvalidateNamedFramebufferSubData;
+ PFNGLINVALIDATESUBFRAMEBUFFERPROC InvalidateSubFramebuffer;
+ PFNGLINVALIDATETEXIMAGEPROC InvalidateTexImage;
+ PFNGLINVALIDATETEXSUBIMAGEPROC InvalidateTexSubImage;
+ PFNGLISASYNCMARKERSGIXPROC IsAsyncMarkerSGIX;
+ PFNGLISBUFFERPROC IsBuffer;
+ PFNGLISBUFFERARBPROC IsBufferARB;
+ PFNGLISBUFFERRESIDENTNVPROC IsBufferResidentNV;
+ PFNGLISCOMMANDLISTNVPROC IsCommandListNV;
+ PFNGLISENABLEDPROC IsEnabled;
+ PFNGLISENABLEDINDEXEDEXTPROC IsEnabledIndexedEXT;
+ PFNGLISENABLEDIPROC IsEnabledi;
+ PFNGLISFENCEAPPLEPROC IsFenceAPPLE;
+ PFNGLISFENCENVPROC IsFenceNV;
+ PFNGLISFRAMEBUFFERPROC IsFramebuffer;
+ PFNGLISFRAMEBUFFEREXTPROC IsFramebufferEXT;
+ PFNGLISIMAGEHANDLERESIDENTARBPROC IsImageHandleResidentARB;
+ PFNGLISIMAGEHANDLERESIDENTNVPROC IsImageHandleResidentNV;
+ PFNGLISMEMORYOBJECTEXTPROC IsMemoryObjectEXT;
+ PFNGLISNAMEAMDPROC IsNameAMD;
+ PFNGLISNAMEDBUFFERRESIDENTNVPROC IsNamedBufferResidentNV;
+ PFNGLISNAMEDSTRINGARBPROC IsNamedStringARB;
+ PFNGLISOBJECTBUFFERATIPROC IsObjectBufferATI;
+ PFNGLISOCCLUSIONQUERYNVPROC IsOcclusionQueryNV;
+ PFNGLISPATHNVPROC IsPathNV;
+ PFNGLISPOINTINFILLPATHNVPROC IsPointInFillPathNV;
+ PFNGLISPOINTINSTROKEPATHNVPROC IsPointInStrokePathNV;
+ PFNGLISPROGRAMPROC IsProgram;
+ PFNGLISPROGRAMARBPROC IsProgramARB;
+ PFNGLISPROGRAMNVPROC IsProgramNV;
+ PFNGLISPROGRAMPIPELINEPROC IsProgramPipeline;
+ PFNGLISQUERYPROC IsQuery;
+ PFNGLISQUERYARBPROC IsQueryARB;
+ PFNGLISRENDERBUFFERPROC IsRenderbuffer;
+ PFNGLISRENDERBUFFEREXTPROC IsRenderbufferEXT;
+ PFNGLISSAMPLERPROC IsSampler;
+ PFNGLISSEMAPHOREEXTPROC IsSemaphoreEXT;
+ PFNGLISSHADERPROC IsShader;
+ PFNGLISSTATENVPROC IsStateNV;
+ PFNGLISSYNCPROC IsSync;
+ PFNGLISTEXTUREPROC IsTexture;
+ PFNGLISTEXTUREEXTPROC IsTextureEXT;
+ PFNGLISTEXTUREHANDLERESIDENTARBPROC IsTextureHandleResidentARB;
+ PFNGLISTEXTUREHANDLERESIDENTNVPROC IsTextureHandleResidentNV;
+ PFNGLISTRANSFORMFEEDBACKPROC IsTransformFeedback;
+ PFNGLISTRANSFORMFEEDBACKNVPROC IsTransformFeedbackNV;
+ PFNGLISVARIANTENABLEDEXTPROC IsVariantEnabledEXT;
+ PFNGLISVERTEXARRAYPROC IsVertexArray;
+ PFNGLISVERTEXARRAYAPPLEPROC IsVertexArrayAPPLE;
+ PFNGLISVERTEXATTRIBENABLEDAPPLEPROC IsVertexAttribEnabledAPPLE;
+ PFNGLLGPUCOPYIMAGESUBDATANVXPROC LGPUCopyImageSubDataNVX;
+ PFNGLLGPUINTERLOCKNVXPROC LGPUInterlockNVX;
+ PFNGLLGPUNAMEDBUFFERSUBDATANVXPROC LGPUNamedBufferSubDataNVX;
+ PFNGLLABELOBJECTEXTPROC LabelObjectEXT;
+ PFNGLLIGHTENVISGIXPROC LightEnviSGIX;
+ PFNGLLIGHTMODELXOESPROC LightModelxOES;
+ PFNGLLIGHTMODELXVOESPROC LightModelxvOES;
+ PFNGLLIGHTXOESPROC LightxOES;
+ PFNGLLIGHTXVOESPROC LightxvOES;
+ PFNGLLINEWIDTHPROC LineWidth;
+ PFNGLLINEWIDTHXOESPROC LineWidthxOES;
+ PFNGLLINKPROGRAMPROC LinkProgram;
+ PFNGLLINKPROGRAMARBPROC LinkProgramARB;
+ PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC ListDrawCommandsStatesClientNV;
+ PFNGLLISTPARAMETERFSGIXPROC ListParameterfSGIX;
+ PFNGLLISTPARAMETERFVSGIXPROC ListParameterfvSGIX;
+ PFNGLLISTPARAMETERISGIXPROC ListParameteriSGIX;
+ PFNGLLISTPARAMETERIVSGIXPROC ListParameterivSGIX;
+ PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC LoadIdentityDeformationMapSGIX;
+ PFNGLLOADMATRIXXOESPROC LoadMatrixxOES;
+ PFNGLLOADPROGRAMNVPROC LoadProgramNV;
+ PFNGLLOADTRANSPOSEMATRIXDARBPROC LoadTransposeMatrixdARB;
+ PFNGLLOADTRANSPOSEMATRIXFARBPROC LoadTransposeMatrixfARB;
+ PFNGLLOADTRANSPOSEMATRIXXOESPROC LoadTransposeMatrixxOES;
+ PFNGLLOCKARRAYSEXTPROC LockArraysEXT;
+ PFNGLLOGICOPPROC LogicOp;
+ PFNGLMAKEBUFFERNONRESIDENTNVPROC MakeBufferNonResidentNV;
+ PFNGLMAKEBUFFERRESIDENTNVPROC MakeBufferResidentNV;
+ PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC MakeImageHandleNonResidentARB;
+ PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC MakeImageHandleNonResidentNV;
+ PFNGLMAKEIMAGEHANDLERESIDENTARBPROC MakeImageHandleResidentARB;
+ PFNGLMAKEIMAGEHANDLERESIDENTNVPROC MakeImageHandleResidentNV;
+ PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC MakeNamedBufferNonResidentNV;
+ PFNGLMAKENAMEDBUFFERRESIDENTNVPROC MakeNamedBufferResidentNV;
+ PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC MakeTextureHandleNonResidentARB;
+ PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC MakeTextureHandleNonResidentNV;
+ PFNGLMAKETEXTUREHANDLERESIDENTARBPROC MakeTextureHandleResidentARB;
+ PFNGLMAKETEXTUREHANDLERESIDENTNVPROC MakeTextureHandleResidentNV;
+ PFNGLMAP1XOESPROC Map1xOES;
+ PFNGLMAP2XOESPROC Map2xOES;
+ PFNGLMAPBUFFERPROC MapBuffer;
+ PFNGLMAPBUFFERARBPROC MapBufferARB;
+ PFNGLMAPBUFFERRANGEPROC MapBufferRange;
+ PFNGLMAPCONTROLPOINTSNVPROC MapControlPointsNV;
+ PFNGLMAPGRID1XOESPROC MapGrid1xOES;
+ PFNGLMAPGRID2XOESPROC MapGrid2xOES;
+ PFNGLMAPNAMEDBUFFERPROC MapNamedBuffer;
+ PFNGLMAPNAMEDBUFFEREXTPROC MapNamedBufferEXT;
+ PFNGLMAPNAMEDBUFFERRANGEPROC MapNamedBufferRange;
+ PFNGLMAPNAMEDBUFFERRANGEEXTPROC MapNamedBufferRangeEXT;
+ PFNGLMAPOBJECTBUFFERATIPROC MapObjectBufferATI;
+ PFNGLMAPPARAMETERFVNVPROC MapParameterfvNV;
+ PFNGLMAPPARAMETERIVNVPROC MapParameterivNV;
+ PFNGLMAPTEXTURE2DINTELPROC MapTexture2DINTEL;
+ PFNGLMAPVERTEXATTRIB1DAPPLEPROC MapVertexAttrib1dAPPLE;
+ PFNGLMAPVERTEXATTRIB1FAPPLEPROC MapVertexAttrib1fAPPLE;
+ PFNGLMAPVERTEXATTRIB2DAPPLEPROC MapVertexAttrib2dAPPLE;
+ PFNGLMAPVERTEXATTRIB2FAPPLEPROC MapVertexAttrib2fAPPLE;
+ PFNGLMATERIALXOESPROC MaterialxOES;
+ PFNGLMATERIALXVOESPROC MaterialxvOES;
+ PFNGLMATRIXFRUSTUMEXTPROC MatrixFrustumEXT;
+ PFNGLMATRIXINDEXPOINTERARBPROC MatrixIndexPointerARB;
+ PFNGLMATRIXINDEXUBVARBPROC MatrixIndexubvARB;
+ PFNGLMATRIXINDEXUIVARBPROC MatrixIndexuivARB;
+ PFNGLMATRIXINDEXUSVARBPROC MatrixIndexusvARB;
+ PFNGLMATRIXLOAD3X2FNVPROC MatrixLoad3x2fNV;
+ PFNGLMATRIXLOAD3X3FNVPROC MatrixLoad3x3fNV;
+ PFNGLMATRIXLOADIDENTITYEXTPROC MatrixLoadIdentityEXT;
+ PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC MatrixLoadTranspose3x3fNV;
+ PFNGLMATRIXLOADTRANSPOSEDEXTPROC MatrixLoadTransposedEXT;
+ PFNGLMATRIXLOADTRANSPOSEFEXTPROC MatrixLoadTransposefEXT;
+ PFNGLMATRIXLOADDEXTPROC MatrixLoaddEXT;
+ PFNGLMATRIXLOADFEXTPROC MatrixLoadfEXT;
+ PFNGLMATRIXMULT3X2FNVPROC MatrixMult3x2fNV;
+ PFNGLMATRIXMULT3X3FNVPROC MatrixMult3x3fNV;
+ PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC MatrixMultTranspose3x3fNV;
+ PFNGLMATRIXMULTTRANSPOSEDEXTPROC MatrixMultTransposedEXT;
+ PFNGLMATRIXMULTTRANSPOSEFEXTPROC MatrixMultTransposefEXT;
+ PFNGLMATRIXMULTDEXTPROC MatrixMultdEXT;
+ PFNGLMATRIXMULTFEXTPROC MatrixMultfEXT;
+ PFNGLMATRIXORTHOEXTPROC MatrixOrthoEXT;
+ PFNGLMATRIXPOPEXTPROC MatrixPopEXT;
+ PFNGLMATRIXPUSHEXTPROC MatrixPushEXT;
+ PFNGLMATRIXROTATEDEXTPROC MatrixRotatedEXT;
+ PFNGLMATRIXROTATEFEXTPROC MatrixRotatefEXT;
+ PFNGLMATRIXSCALEDEXTPROC MatrixScaledEXT;
+ PFNGLMATRIXSCALEFEXTPROC MatrixScalefEXT;
+ PFNGLMATRIXTRANSLATEDEXTPROC MatrixTranslatedEXT;
+ PFNGLMATRIXTRANSLATEFEXTPROC MatrixTranslatefEXT;
+ PFNGLMAXSHADERCOMPILERTHREADSARBPROC MaxShaderCompilerThreadsARB;
+ PFNGLMAXSHADERCOMPILERTHREADSKHRPROC MaxShaderCompilerThreadsKHR;
+ PFNGLMEMORYBARRIERPROC MemoryBarrier;
+ PFNGLMEMORYBARRIERBYREGIONPROC MemoryBarrierByRegion;
+ PFNGLMEMORYBARRIEREXTPROC MemoryBarrierEXT;
+ PFNGLMEMORYOBJECTPARAMETERIVEXTPROC MemoryObjectParameterivEXT;
+ PFNGLMINSAMPLESHADINGPROC MinSampleShading;
+ PFNGLMINSAMPLESHADINGARBPROC MinSampleShadingARB;
+ PFNGLMINMAXEXTPROC MinmaxEXT;
+ PFNGLMULTMATRIXXOESPROC MultMatrixxOES;
+ PFNGLMULTTRANSPOSEMATRIXDARBPROC MultTransposeMatrixdARB;
+ PFNGLMULTTRANSPOSEMATRIXFARBPROC MultTransposeMatrixfARB;
+ PFNGLMULTTRANSPOSEMATRIXXOESPROC MultTransposeMatrixxOES;
+ PFNGLMULTIDRAWARRAYSPROC MultiDrawArrays;
+ PFNGLMULTIDRAWARRAYSEXTPROC MultiDrawArraysEXT;
+ PFNGLMULTIDRAWARRAYSINDIRECTPROC MultiDrawArraysIndirect;
+ PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC MultiDrawArraysIndirectAMD;
+ PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC MultiDrawArraysIndirectBindlessCountNV;
+ PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC MultiDrawArraysIndirectBindlessNV;
+ PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC MultiDrawArraysIndirectCount;
+ PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC MultiDrawArraysIndirectCountARB;
+ PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC MultiDrawElementArrayAPPLE;
+ PFNGLMULTIDRAWELEMENTSPROC MultiDrawElements;
+ PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC MultiDrawElementsBaseVertex;
+ PFNGLMULTIDRAWELEMENTSEXTPROC MultiDrawElementsEXT;
+ PFNGLMULTIDRAWELEMENTSINDIRECTPROC MultiDrawElementsIndirect;
+ PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC MultiDrawElementsIndirectAMD;
+ PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC MultiDrawElementsIndirectBindlessCountNV;
+ PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC MultiDrawElementsIndirectBindlessNV;
+ PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC MultiDrawElementsIndirectCount;
+ PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC MultiDrawElementsIndirectCountARB;
+ PFNGLMULTIDRAWMESHTASKSINDIRECTCOUNTNVPROC MultiDrawMeshTasksIndirectCountNV;
+ PFNGLMULTIDRAWMESHTASKSINDIRECTNVPROC MultiDrawMeshTasksIndirectNV;
+ PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC MultiDrawRangeElementArrayAPPLE;
+ PFNGLMULTIMODEDRAWARRAYSIBMPROC MultiModeDrawArraysIBM;
+ PFNGLMULTIMODEDRAWELEMENTSIBMPROC MultiModeDrawElementsIBM;
+ PFNGLMULTITEXBUFFEREXTPROC MultiTexBufferEXT;
+ PFNGLMULTITEXCOORD1BOESPROC MultiTexCoord1bOES;
+ PFNGLMULTITEXCOORD1BVOESPROC MultiTexCoord1bvOES;
+ PFNGLMULTITEXCOORD1DARBPROC MultiTexCoord1dARB;
+ PFNGLMULTITEXCOORD1DVARBPROC MultiTexCoord1dvARB;
+ PFNGLMULTITEXCOORD1FARBPROC MultiTexCoord1fARB;
+ PFNGLMULTITEXCOORD1FVARBPROC MultiTexCoord1fvARB;
+ PFNGLMULTITEXCOORD1HNVPROC MultiTexCoord1hNV;
+ PFNGLMULTITEXCOORD1HVNVPROC MultiTexCoord1hvNV;
+ PFNGLMULTITEXCOORD1IARBPROC MultiTexCoord1iARB;
+ PFNGLMULTITEXCOORD1IVARBPROC MultiTexCoord1ivARB;
+ PFNGLMULTITEXCOORD1SARBPROC MultiTexCoord1sARB;
+ PFNGLMULTITEXCOORD1SVARBPROC MultiTexCoord1svARB;
+ PFNGLMULTITEXCOORD1XOESPROC MultiTexCoord1xOES;
+ PFNGLMULTITEXCOORD1XVOESPROC MultiTexCoord1xvOES;
+ PFNGLMULTITEXCOORD2BOESPROC MultiTexCoord2bOES;
+ PFNGLMULTITEXCOORD2BVOESPROC MultiTexCoord2bvOES;
+ PFNGLMULTITEXCOORD2DARBPROC MultiTexCoord2dARB;
+ PFNGLMULTITEXCOORD2DVARBPROC MultiTexCoord2dvARB;
+ PFNGLMULTITEXCOORD2FARBPROC MultiTexCoord2fARB;
+ PFNGLMULTITEXCOORD2FVARBPROC MultiTexCoord2fvARB;
+ PFNGLMULTITEXCOORD2HNVPROC MultiTexCoord2hNV;
+ PFNGLMULTITEXCOORD2HVNVPROC MultiTexCoord2hvNV;
+ PFNGLMULTITEXCOORD2IARBPROC MultiTexCoord2iARB;
+ PFNGLMULTITEXCOORD2IVARBPROC MultiTexCoord2ivARB;
+ PFNGLMULTITEXCOORD2SARBPROC MultiTexCoord2sARB;
+ PFNGLMULTITEXCOORD2SVARBPROC MultiTexCoord2svARB;
+ PFNGLMULTITEXCOORD2XOESPROC MultiTexCoord2xOES;
+ PFNGLMULTITEXCOORD2XVOESPROC MultiTexCoord2xvOES;
+ PFNGLMULTITEXCOORD3BOESPROC MultiTexCoord3bOES;
+ PFNGLMULTITEXCOORD3BVOESPROC MultiTexCoord3bvOES;
+ PFNGLMULTITEXCOORD3DARBPROC MultiTexCoord3dARB;
+ PFNGLMULTITEXCOORD3DVARBPROC MultiTexCoord3dvARB;
+ PFNGLMULTITEXCOORD3FARBPROC MultiTexCoord3fARB;
+ PFNGLMULTITEXCOORD3FVARBPROC MultiTexCoord3fvARB;
+ PFNGLMULTITEXCOORD3HNVPROC MultiTexCoord3hNV;
+ PFNGLMULTITEXCOORD3HVNVPROC MultiTexCoord3hvNV;
+ PFNGLMULTITEXCOORD3IARBPROC MultiTexCoord3iARB;
+ PFNGLMULTITEXCOORD3IVARBPROC MultiTexCoord3ivARB;
+ PFNGLMULTITEXCOORD3SARBPROC MultiTexCoord3sARB;
+ PFNGLMULTITEXCOORD3SVARBPROC MultiTexCoord3svARB;
+ PFNGLMULTITEXCOORD3XOESPROC MultiTexCoord3xOES;
+ PFNGLMULTITEXCOORD3XVOESPROC MultiTexCoord3xvOES;
+ PFNGLMULTITEXCOORD4BOESPROC MultiTexCoord4bOES;
+ PFNGLMULTITEXCOORD4BVOESPROC MultiTexCoord4bvOES;
+ PFNGLMULTITEXCOORD4DARBPROC MultiTexCoord4dARB;
+ PFNGLMULTITEXCOORD4DVARBPROC MultiTexCoord4dvARB;
+ PFNGLMULTITEXCOORD4FARBPROC MultiTexCoord4fARB;
+ PFNGLMULTITEXCOORD4FVARBPROC MultiTexCoord4fvARB;
+ PFNGLMULTITEXCOORD4HNVPROC MultiTexCoord4hNV;
+ PFNGLMULTITEXCOORD4HVNVPROC MultiTexCoord4hvNV;
+ PFNGLMULTITEXCOORD4IARBPROC MultiTexCoord4iARB;
+ PFNGLMULTITEXCOORD4IVARBPROC MultiTexCoord4ivARB;
+ PFNGLMULTITEXCOORD4SARBPROC MultiTexCoord4sARB;
+ PFNGLMULTITEXCOORD4SVARBPROC MultiTexCoord4svARB;
+ PFNGLMULTITEXCOORD4XOESPROC MultiTexCoord4xOES;
+ PFNGLMULTITEXCOORD4XVOESPROC MultiTexCoord4xvOES;
+ PFNGLMULTITEXCOORDPOINTEREXTPROC MultiTexCoordPointerEXT;
+ PFNGLMULTITEXENVFEXTPROC MultiTexEnvfEXT;
+ PFNGLMULTITEXENVFVEXTPROC MultiTexEnvfvEXT;
+ PFNGLMULTITEXENVIEXTPROC MultiTexEnviEXT;
+ PFNGLMULTITEXENVIVEXTPROC MultiTexEnvivEXT;
+ PFNGLMULTITEXGENDEXTPROC MultiTexGendEXT;
+ PFNGLMULTITEXGENDVEXTPROC MultiTexGendvEXT;
+ PFNGLMULTITEXGENFEXTPROC MultiTexGenfEXT;
+ PFNGLMULTITEXGENFVEXTPROC MultiTexGenfvEXT;
+ PFNGLMULTITEXGENIEXTPROC MultiTexGeniEXT;
+ PFNGLMULTITEXGENIVEXTPROC MultiTexGenivEXT;
+ PFNGLMULTITEXIMAGE1DEXTPROC MultiTexImage1DEXT;
+ PFNGLMULTITEXIMAGE2DEXTPROC MultiTexImage2DEXT;
+ PFNGLMULTITEXIMAGE3DEXTPROC MultiTexImage3DEXT;
+ PFNGLMULTITEXPARAMETERIIVEXTPROC MultiTexParameterIivEXT;
+ PFNGLMULTITEXPARAMETERIUIVEXTPROC MultiTexParameterIuivEXT;
+ PFNGLMULTITEXPARAMETERFEXTPROC MultiTexParameterfEXT;
+ PFNGLMULTITEXPARAMETERFVEXTPROC MultiTexParameterfvEXT;
+ PFNGLMULTITEXPARAMETERIEXTPROC MultiTexParameteriEXT;
+ PFNGLMULTITEXPARAMETERIVEXTPROC MultiTexParameterivEXT;
+ PFNGLMULTITEXRENDERBUFFEREXTPROC MultiTexRenderbufferEXT;
+ PFNGLMULTITEXSUBIMAGE1DEXTPROC MultiTexSubImage1DEXT;
+ PFNGLMULTITEXSUBIMAGE2DEXTPROC MultiTexSubImage2DEXT;
+ PFNGLMULTITEXSUBIMAGE3DEXTPROC MultiTexSubImage3DEXT;
+ PFNGLMULTICASTBARRIERNVPROC MulticastBarrierNV;
+ PFNGLMULTICASTBLITFRAMEBUFFERNVPROC MulticastBlitFramebufferNV;
+ PFNGLMULTICASTBUFFERSUBDATANVPROC MulticastBufferSubDataNV;
+ PFNGLMULTICASTCOPYBUFFERSUBDATANVPROC MulticastCopyBufferSubDataNV;
+ PFNGLMULTICASTCOPYIMAGESUBDATANVPROC MulticastCopyImageSubDataNV;
+ PFNGLMULTICASTFRAMEBUFFERSAMPLELOCATIONSFVNVPROC MulticastFramebufferSampleLocationsfvNV;
+ PFNGLMULTICASTGETQUERYOBJECTI64VNVPROC MulticastGetQueryObjecti64vNV;
+ PFNGLMULTICASTGETQUERYOBJECTIVNVPROC MulticastGetQueryObjectivNV;
+ PFNGLMULTICASTGETQUERYOBJECTUI64VNVPROC MulticastGetQueryObjectui64vNV;
+ PFNGLMULTICASTGETQUERYOBJECTUIVNVPROC MulticastGetQueryObjectuivNV;
+ PFNGLMULTICASTSCISSORARRAYVNVXPROC MulticastScissorArrayvNVX;
+ PFNGLMULTICASTVIEWPORTARRAYVNVXPROC MulticastViewportArrayvNVX;
+ PFNGLMULTICASTVIEWPORTPOSITIONWSCALENVXPROC MulticastViewportPositionWScaleNVX;
+ PFNGLMULTICASTWAITSYNCNVPROC MulticastWaitSyncNV;
+ PFNGLNAMEDBUFFERATTACHMEMORYNVPROC NamedBufferAttachMemoryNV;
+ PFNGLNAMEDBUFFERDATAPROC NamedBufferData;
+ PFNGLNAMEDBUFFERDATAEXTPROC NamedBufferDataEXT;
+ PFNGLNAMEDBUFFERPAGECOMMITMENTARBPROC NamedBufferPageCommitmentARB;
+ PFNGLNAMEDBUFFERPAGECOMMITMENTEXTPROC NamedBufferPageCommitmentEXT;
+ PFNGLNAMEDBUFFERPAGECOMMITMENTMEMNVPROC NamedBufferPageCommitmentMemNV;
+ PFNGLNAMEDBUFFERSTORAGEPROC NamedBufferStorage;
+ PFNGLNAMEDBUFFERSTORAGEEXTPROC NamedBufferStorageEXT;
+ PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC NamedBufferStorageExternalEXT;
+ PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC NamedBufferStorageMemEXT;
+ PFNGLNAMEDBUFFERSUBDATAPROC NamedBufferSubData;
+ PFNGLNAMEDBUFFERSUBDATAEXTPROC NamedBufferSubDataEXT;
+ PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC NamedCopyBufferSubDataEXT;
+ PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC NamedFramebufferDrawBuffer;
+ PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC NamedFramebufferDrawBuffers;
+ PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC NamedFramebufferParameteri;
+ PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC NamedFramebufferParameteriEXT;
+ PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC NamedFramebufferReadBuffer;
+ PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC NamedFramebufferRenderbuffer;
+ PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC NamedFramebufferRenderbufferEXT;
+ PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC NamedFramebufferSampleLocationsfvARB;
+ PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC NamedFramebufferSampleLocationsfvNV;
+ PFNGLNAMEDFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC NamedFramebufferSamplePositionsfvAMD;
+ PFNGLNAMEDFRAMEBUFFERTEXTUREPROC NamedFramebufferTexture;
+ PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC NamedFramebufferTexture1DEXT;
+ PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC NamedFramebufferTexture2DEXT;
+ PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC NamedFramebufferTexture3DEXT;
+ PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC NamedFramebufferTextureEXT;
+ PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC NamedFramebufferTextureFaceEXT;
+ PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC NamedFramebufferTextureLayer;
+ PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC NamedFramebufferTextureLayerEXT;
+ PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC NamedProgramLocalParameter4dEXT;
+ PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC NamedProgramLocalParameter4dvEXT;
+ PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC NamedProgramLocalParameter4fEXT;
+ PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC NamedProgramLocalParameter4fvEXT;
+ PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC NamedProgramLocalParameterI4iEXT;
+ PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC NamedProgramLocalParameterI4ivEXT;
+ PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC NamedProgramLocalParameterI4uiEXT;
+ PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC NamedProgramLocalParameterI4uivEXT;
+ PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC NamedProgramLocalParameters4fvEXT;
+ PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC NamedProgramLocalParametersI4ivEXT;
+ PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC NamedProgramLocalParametersI4uivEXT;
+ PFNGLNAMEDPROGRAMSTRINGEXTPROC NamedProgramStringEXT;
+ PFNGLNAMEDRENDERBUFFERSTORAGEPROC NamedRenderbufferStorage;
+ PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC NamedRenderbufferStorageEXT;
+ PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC NamedRenderbufferStorageMultisample;
+ PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC
+ NamedRenderbufferStorageMultisampleAdvancedAMD;
+ PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC
+ NamedRenderbufferStorageMultisampleCoverageEXT;
+ PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC NamedRenderbufferStorageMultisampleEXT;
+ PFNGLNAMEDSTRINGARBPROC NamedStringARB;
+ PFNGLNEWOBJECTBUFFERATIPROC NewObjectBufferATI;
+ PFNGLNORMAL3FVERTEX3FSUNPROC Normal3fVertex3fSUN;
+ PFNGLNORMAL3FVERTEX3FVSUNPROC Normal3fVertex3fvSUN;
+ PFNGLNORMAL3HNVPROC Normal3hNV;
+ PFNGLNORMAL3HVNVPROC Normal3hvNV;
+ PFNGLNORMAL3XOESPROC Normal3xOES;
+ PFNGLNORMAL3XVOESPROC Normal3xvOES;
+ PFNGLNORMALFORMATNVPROC NormalFormatNV;
+ PFNGLNORMALPOINTEREXTPROC NormalPointerEXT;
+ PFNGLNORMALPOINTERLISTIBMPROC NormalPointerListIBM;
+ PFNGLNORMALPOINTERVINTELPROC NormalPointervINTEL;
+ PFNGLNORMALSTREAM3BATIPROC NormalStream3bATI;
+ PFNGLNORMALSTREAM3BVATIPROC NormalStream3bvATI;
+ PFNGLNORMALSTREAM3DATIPROC NormalStream3dATI;
+ PFNGLNORMALSTREAM3DVATIPROC NormalStream3dvATI;
+ PFNGLNORMALSTREAM3FATIPROC NormalStream3fATI;
+ PFNGLNORMALSTREAM3FVATIPROC NormalStream3fvATI;
+ PFNGLNORMALSTREAM3IATIPROC NormalStream3iATI;
+ PFNGLNORMALSTREAM3IVATIPROC NormalStream3ivATI;
+ PFNGLNORMALSTREAM3SATIPROC NormalStream3sATI;
+ PFNGLNORMALSTREAM3SVATIPROC NormalStream3svATI;
+ PFNGLOBJECTLABELPROC ObjectLabel;
+ PFNGLOBJECTPTRLABELPROC ObjectPtrLabel;
+ PFNGLOBJECTPURGEABLEAPPLEPROC ObjectPurgeableAPPLE;
+ PFNGLOBJECTUNPURGEABLEAPPLEPROC ObjectUnpurgeableAPPLE;
+ PFNGLORTHOFOESPROC OrthofOES;
+ PFNGLORTHOXOESPROC OrthoxOES;
+ PFNGLPNTRIANGLESFATIPROC PNTrianglesfATI;
+ PFNGLPNTRIANGLESIATIPROC PNTrianglesiATI;
+ PFNGLPASSTEXCOORDATIPROC PassTexCoordATI;
+ PFNGLPASSTHROUGHXOESPROC PassThroughxOES;
+ PFNGLPATCHPARAMETERFVPROC PatchParameterfv;
+ PFNGLPATCHPARAMETERIPROC PatchParameteri;
+ PFNGLPATHCOMMANDSNVPROC PathCommandsNV;
+ PFNGLPATHCOORDSNVPROC PathCoordsNV;
+ PFNGLPATHCOVERDEPTHFUNCNVPROC PathCoverDepthFuncNV;
+ PFNGLPATHDASHARRAYNVPROC PathDashArrayNV;
+ PFNGLPATHGLYPHINDEXARRAYNVPROC PathGlyphIndexArrayNV;
+ PFNGLPATHGLYPHINDEXRANGENVPROC PathGlyphIndexRangeNV;
+ PFNGLPATHGLYPHRANGENVPROC PathGlyphRangeNV;
+ PFNGLPATHGLYPHSNVPROC PathGlyphsNV;
+ PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC PathMemoryGlyphIndexArrayNV;
+ PFNGLPATHPARAMETERFNVPROC PathParameterfNV;
+ PFNGLPATHPARAMETERFVNVPROC PathParameterfvNV;
+ PFNGLPATHPARAMETERINVPROC PathParameteriNV;
+ PFNGLPATHPARAMETERIVNVPROC PathParameterivNV;
+ PFNGLPATHSTENCILDEPTHOFFSETNVPROC PathStencilDepthOffsetNV;
+ PFNGLPATHSTENCILFUNCNVPROC PathStencilFuncNV;
+ PFNGLPATHSTRINGNVPROC PathStringNV;
+ PFNGLPATHSUBCOMMANDSNVPROC PathSubCommandsNV;
+ PFNGLPATHSUBCOORDSNVPROC PathSubCoordsNV;
+ PFNGLPAUSETRANSFORMFEEDBACKPROC PauseTransformFeedback;
+ PFNGLPAUSETRANSFORMFEEDBACKNVPROC PauseTransformFeedbackNV;
+ PFNGLPIXELDATARANGENVPROC PixelDataRangeNV;
+ PFNGLPIXELMAPXPROC PixelMapx;
+ PFNGLPIXELSTOREFPROC PixelStoref;
+ PFNGLPIXELSTOREIPROC PixelStorei;
+ PFNGLPIXELSTOREXPROC PixelStorex;
+ PFNGLPIXELTEXGENPARAMETERFSGISPROC PixelTexGenParameterfSGIS;
+ PFNGLPIXELTEXGENPARAMETERFVSGISPROC PixelTexGenParameterfvSGIS;
+ PFNGLPIXELTEXGENPARAMETERISGISPROC PixelTexGenParameteriSGIS;
+ PFNGLPIXELTEXGENPARAMETERIVSGISPROC PixelTexGenParameterivSGIS;
+ PFNGLPIXELTEXGENSGIXPROC PixelTexGenSGIX;
+ PFNGLPIXELTRANSFERXOESPROC PixelTransferxOES;
+ PFNGLPIXELTRANSFORMPARAMETERFEXTPROC PixelTransformParameterfEXT;
+ PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC PixelTransformParameterfvEXT;
+ PFNGLPIXELTRANSFORMPARAMETERIEXTPROC PixelTransformParameteriEXT;
+ PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC PixelTransformParameterivEXT;
+ PFNGLPIXELZOOMXOESPROC PixelZoomxOES;
+ PFNGLPOINTALONGPATHNVPROC PointAlongPathNV;
+ PFNGLPOINTPARAMETERFPROC PointParameterf;
+ PFNGLPOINTPARAMETERFARBPROC PointParameterfARB;
+ PFNGLPOINTPARAMETERFEXTPROC PointParameterfEXT;
+ PFNGLPOINTPARAMETERFSGISPROC PointParameterfSGIS;
+ PFNGLPOINTPARAMETERFVPROC PointParameterfv;
+ PFNGLPOINTPARAMETERFVARBPROC PointParameterfvARB;
+ PFNGLPOINTPARAMETERFVEXTPROC PointParameterfvEXT;
+ PFNGLPOINTPARAMETERFVSGISPROC PointParameterfvSGIS;
+ PFNGLPOINTPARAMETERIPROC PointParameteri;
+ PFNGLPOINTPARAMETERINVPROC PointParameteriNV;
+ PFNGLPOINTPARAMETERIVPROC PointParameteriv;
+ PFNGLPOINTPARAMETERIVNVPROC PointParameterivNV;
+ PFNGLPOINTPARAMETERXVOESPROC PointParameterxvOES;
+ PFNGLPOINTSIZEPROC PointSize;
+ PFNGLPOINTSIZEXOESPROC PointSizexOES;
+ PFNGLPOLLASYNCSGIXPROC PollAsyncSGIX;
+ PFNGLPOLLINSTRUMENTSSGIXPROC PollInstrumentsSGIX;
+ PFNGLPOLYGONMODEPROC PolygonMode;
+ PFNGLPOLYGONOFFSETPROC PolygonOffset;
+ PFNGLPOLYGONOFFSETCLAMPPROC PolygonOffsetClamp;
+ PFNGLPOLYGONOFFSETCLAMPEXTPROC PolygonOffsetClampEXT;
+ PFNGLPOLYGONOFFSETEXTPROC PolygonOffsetEXT;
+ PFNGLPOLYGONOFFSETXOESPROC PolygonOffsetxOES;
+ PFNGLPOPDEBUGGROUPPROC PopDebugGroup;
+ PFNGLPOPGROUPMARKEREXTPROC PopGroupMarkerEXT;
+ PFNGLPRESENTFRAMEDUALFILLNVPROC PresentFrameDualFillNV;
+ PFNGLPRESENTFRAMEKEYEDNVPROC PresentFrameKeyedNV;
+ PFNGLPRIMITIVEBOUNDINGBOXARBPROC PrimitiveBoundingBoxARB;
+ PFNGLPRIMITIVERESTARTINDEXPROC PrimitiveRestartIndex;
+ PFNGLPRIMITIVERESTARTINDEXNVPROC PrimitiveRestartIndexNV;
+ PFNGLPRIMITIVERESTARTNVPROC PrimitiveRestartNV;
+ PFNGLPRIORITIZETEXTURESEXTPROC PrioritizeTexturesEXT;
+ PFNGLPRIORITIZETEXTURESXOESPROC PrioritizeTexturesxOES;
+ PFNGLPROGRAMBINARYPROC ProgramBinary;
+ PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC ProgramBufferParametersIivNV;
+ PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC ProgramBufferParametersIuivNV;
+ PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC ProgramBufferParametersfvNV;
+ PFNGLPROGRAMENVPARAMETER4DARBPROC ProgramEnvParameter4dARB;
+ PFNGLPROGRAMENVPARAMETER4DVARBPROC ProgramEnvParameter4dvARB;
+ PFNGLPROGRAMENVPARAMETER4FARBPROC ProgramEnvParameter4fARB;
+ PFNGLPROGRAMENVPARAMETER4FVARBPROC ProgramEnvParameter4fvARB;
+ PFNGLPROGRAMENVPARAMETERI4INVPROC ProgramEnvParameterI4iNV;
+ PFNGLPROGRAMENVPARAMETERI4IVNVPROC ProgramEnvParameterI4ivNV;
+ PFNGLPROGRAMENVPARAMETERI4UINVPROC ProgramEnvParameterI4uiNV;
+ PFNGLPROGRAMENVPARAMETERI4UIVNVPROC ProgramEnvParameterI4uivNV;
+ PFNGLPROGRAMENVPARAMETERS4FVEXTPROC ProgramEnvParameters4fvEXT;
+ PFNGLPROGRAMENVPARAMETERSI4IVNVPROC ProgramEnvParametersI4ivNV;
+ PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC ProgramEnvParametersI4uivNV;
+ PFNGLPROGRAMLOCALPARAMETER4DARBPROC ProgramLocalParameter4dARB;
+ PFNGLPROGRAMLOCALPARAMETER4DVARBPROC ProgramLocalParameter4dvARB;
+ PFNGLPROGRAMLOCALPARAMETER4FARBPROC ProgramLocalParameter4fARB;
+ PFNGLPROGRAMLOCALPARAMETER4FVARBPROC ProgramLocalParameter4fvARB;
+ PFNGLPROGRAMLOCALPARAMETERI4INVPROC ProgramLocalParameterI4iNV;
+ PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC ProgramLocalParameterI4ivNV;
+ PFNGLPROGRAMLOCALPARAMETERI4UINVPROC ProgramLocalParameterI4uiNV;
+ PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC ProgramLocalParameterI4uivNV;
+ PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC ProgramLocalParameters4fvEXT;
+ PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC ProgramLocalParametersI4ivNV;
+ PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC ProgramLocalParametersI4uivNV;
+ PFNGLPROGRAMNAMEDPARAMETER4DNVPROC ProgramNamedParameter4dNV;
+ PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC ProgramNamedParameter4dvNV;
+ PFNGLPROGRAMNAMEDPARAMETER4FNVPROC ProgramNamedParameter4fNV;
+ PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC ProgramNamedParameter4fvNV;
+ PFNGLPROGRAMPARAMETER4DNVPROC ProgramParameter4dNV;
+ PFNGLPROGRAMPARAMETER4DVNVPROC ProgramParameter4dvNV;
+ PFNGLPROGRAMPARAMETER4FNVPROC ProgramParameter4fNV;
+ PFNGLPROGRAMPARAMETER4FVNVPROC ProgramParameter4fvNV;
+ PFNGLPROGRAMPARAMETERIPROC ProgramParameteri;
+ PFNGLPROGRAMPARAMETERIARBPROC ProgramParameteriARB;
+ PFNGLPROGRAMPARAMETERIEXTPROC ProgramParameteriEXT;
+ PFNGLPROGRAMPARAMETERS4DVNVPROC ProgramParameters4dvNV;
+ PFNGLPROGRAMPARAMETERS4FVNVPROC ProgramParameters4fvNV;
+ PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC ProgramPathFragmentInputGenNV;
+ PFNGLPROGRAMSTRINGARBPROC ProgramStringARB;
+ PFNGLPROGRAMSUBROUTINEPARAMETERSUIVNVPROC ProgramSubroutineParametersuivNV;
+ PFNGLPROGRAMUNIFORM1DPROC ProgramUniform1d;
+ PFNGLPROGRAMUNIFORM1DEXTPROC ProgramUniform1dEXT;
+ PFNGLPROGRAMUNIFORM1DVPROC ProgramUniform1dv;
+ PFNGLPROGRAMUNIFORM1DVEXTPROC ProgramUniform1dvEXT;
+ PFNGLPROGRAMUNIFORM1FPROC ProgramUniform1f;
+ PFNGLPROGRAMUNIFORM1FEXTPROC ProgramUniform1fEXT;
+ PFNGLPROGRAMUNIFORM1FVPROC ProgramUniform1fv;
+ PFNGLPROGRAMUNIFORM1FVEXTPROC ProgramUniform1fvEXT;
+ PFNGLPROGRAMUNIFORM1IPROC ProgramUniform1i;
+ PFNGLPROGRAMUNIFORM1I64ARBPROC ProgramUniform1i64ARB;
+ PFNGLPROGRAMUNIFORM1I64NVPROC ProgramUniform1i64NV;
+ PFNGLPROGRAMUNIFORM1I64VARBPROC ProgramUniform1i64vARB;
+ PFNGLPROGRAMUNIFORM1I64VNVPROC ProgramUniform1i64vNV;
+ PFNGLPROGRAMUNIFORM1IEXTPROC ProgramUniform1iEXT;
+ PFNGLPROGRAMUNIFORM1IVPROC ProgramUniform1iv;
+ PFNGLPROGRAMUNIFORM1IVEXTPROC ProgramUniform1ivEXT;
+ PFNGLPROGRAMUNIFORM1UIPROC ProgramUniform1ui;
+ PFNGLPROGRAMUNIFORM1UI64ARBPROC ProgramUniform1ui64ARB;
+ PFNGLPROGRAMUNIFORM1UI64NVPROC ProgramUniform1ui64NV;
+ PFNGLPROGRAMUNIFORM1UI64VARBPROC ProgramUniform1ui64vARB;
+ PFNGLPROGRAMUNIFORM1UI64VNVPROC ProgramUniform1ui64vNV;
+ PFNGLPROGRAMUNIFORM1UIEXTPROC ProgramUniform1uiEXT;
+ PFNGLPROGRAMUNIFORM1UIVPROC ProgramUniform1uiv;
+ PFNGLPROGRAMUNIFORM1UIVEXTPROC ProgramUniform1uivEXT;
+ PFNGLPROGRAMUNIFORM2DPROC ProgramUniform2d;
+ PFNGLPROGRAMUNIFORM2DEXTPROC ProgramUniform2dEXT;
+ PFNGLPROGRAMUNIFORM2DVPROC ProgramUniform2dv;
+ PFNGLPROGRAMUNIFORM2DVEXTPROC ProgramUniform2dvEXT;
+ PFNGLPROGRAMUNIFORM2FPROC ProgramUniform2f;
+ PFNGLPROGRAMUNIFORM2FEXTPROC ProgramUniform2fEXT;
+ PFNGLPROGRAMUNIFORM2FVPROC ProgramUniform2fv;
+ PFNGLPROGRAMUNIFORM2FVEXTPROC ProgramUniform2fvEXT;
+ PFNGLPROGRAMUNIFORM2IPROC ProgramUniform2i;
+ PFNGLPROGRAMUNIFORM2I64ARBPROC ProgramUniform2i64ARB;
+ PFNGLPROGRAMUNIFORM2I64NVPROC ProgramUniform2i64NV;
+ PFNGLPROGRAMUNIFORM2I64VARBPROC ProgramUniform2i64vARB;
+ PFNGLPROGRAMUNIFORM2I64VNVPROC ProgramUniform2i64vNV;
+ PFNGLPROGRAMUNIFORM2IEXTPROC ProgramUniform2iEXT;
+ PFNGLPROGRAMUNIFORM2IVPROC ProgramUniform2iv;
+ PFNGLPROGRAMUNIFORM2IVEXTPROC ProgramUniform2ivEXT;
+ PFNGLPROGRAMUNIFORM2UIPROC ProgramUniform2ui;
+ PFNGLPROGRAMUNIFORM2UI64ARBPROC ProgramUniform2ui64ARB;
+ PFNGLPROGRAMUNIFORM2UI64NVPROC ProgramUniform2ui64NV;
+ PFNGLPROGRAMUNIFORM2UI64VARBPROC ProgramUniform2ui64vARB;
+ PFNGLPROGRAMUNIFORM2UI64VNVPROC ProgramUniform2ui64vNV;
+ PFNGLPROGRAMUNIFORM2UIEXTPROC ProgramUniform2uiEXT;
+ PFNGLPROGRAMUNIFORM2UIVPROC ProgramUniform2uiv;
+ PFNGLPROGRAMUNIFORM2UIVEXTPROC ProgramUniform2uivEXT;
+ PFNGLPROGRAMUNIFORM3DPROC ProgramUniform3d;
+ PFNGLPROGRAMUNIFORM3DEXTPROC ProgramUniform3dEXT;
+ PFNGLPROGRAMUNIFORM3DVPROC ProgramUniform3dv;
+ PFNGLPROGRAMUNIFORM3DVEXTPROC ProgramUniform3dvEXT;
+ PFNGLPROGRAMUNIFORM3FPROC ProgramUniform3f;
+ PFNGLPROGRAMUNIFORM3FEXTPROC ProgramUniform3fEXT;
+ PFNGLPROGRAMUNIFORM3FVPROC ProgramUniform3fv;
+ PFNGLPROGRAMUNIFORM3FVEXTPROC ProgramUniform3fvEXT;
+ PFNGLPROGRAMUNIFORM3IPROC ProgramUniform3i;
+ PFNGLPROGRAMUNIFORM3I64ARBPROC ProgramUniform3i64ARB;
+ PFNGLPROGRAMUNIFORM3I64NVPROC ProgramUniform3i64NV;
+ PFNGLPROGRAMUNIFORM3I64VARBPROC ProgramUniform3i64vARB;
+ PFNGLPROGRAMUNIFORM3I64VNVPROC ProgramUniform3i64vNV;
+ PFNGLPROGRAMUNIFORM3IEXTPROC ProgramUniform3iEXT;
+ PFNGLPROGRAMUNIFORM3IVPROC ProgramUniform3iv;
+ PFNGLPROGRAMUNIFORM3IVEXTPROC ProgramUniform3ivEXT;
+ PFNGLPROGRAMUNIFORM3UIPROC ProgramUniform3ui;
+ PFNGLPROGRAMUNIFORM3UI64ARBPROC ProgramUniform3ui64ARB;
+ PFNGLPROGRAMUNIFORM3UI64NVPROC ProgramUniform3ui64NV;
+ PFNGLPROGRAMUNIFORM3UI64VARBPROC ProgramUniform3ui64vARB;
+ PFNGLPROGRAMUNIFORM3UI64VNVPROC ProgramUniform3ui64vNV;
+ PFNGLPROGRAMUNIFORM3UIEXTPROC ProgramUniform3uiEXT;
+ PFNGLPROGRAMUNIFORM3UIVPROC ProgramUniform3uiv;
+ PFNGLPROGRAMUNIFORM3UIVEXTPROC ProgramUniform3uivEXT;
+ PFNGLPROGRAMUNIFORM4DPROC ProgramUniform4d;
+ PFNGLPROGRAMUNIFORM4DEXTPROC ProgramUniform4dEXT;
+ PFNGLPROGRAMUNIFORM4DVPROC ProgramUniform4dv;
+ PFNGLPROGRAMUNIFORM4DVEXTPROC ProgramUniform4dvEXT;
+ PFNGLPROGRAMUNIFORM4FPROC ProgramUniform4f;
+ PFNGLPROGRAMUNIFORM4FEXTPROC ProgramUniform4fEXT;
+ PFNGLPROGRAMUNIFORM4FVPROC ProgramUniform4fv;
+ PFNGLPROGRAMUNIFORM4FVEXTPROC ProgramUniform4fvEXT;
+ PFNGLPROGRAMUNIFORM4IPROC ProgramUniform4i;
+ PFNGLPROGRAMUNIFORM4I64ARBPROC ProgramUniform4i64ARB;
+ PFNGLPROGRAMUNIFORM4I64NVPROC ProgramUniform4i64NV;
+ PFNGLPROGRAMUNIFORM4I64VARBPROC ProgramUniform4i64vARB;
+ PFNGLPROGRAMUNIFORM4I64VNVPROC ProgramUniform4i64vNV;
+ PFNGLPROGRAMUNIFORM4IEXTPROC ProgramUniform4iEXT;
+ PFNGLPROGRAMUNIFORM4IVPROC ProgramUniform4iv;
+ PFNGLPROGRAMUNIFORM4IVEXTPROC ProgramUniform4ivEXT;
+ PFNGLPROGRAMUNIFORM4UIPROC ProgramUniform4ui;
+ PFNGLPROGRAMUNIFORM4UI64ARBPROC ProgramUniform4ui64ARB;
+ PFNGLPROGRAMUNIFORM4UI64NVPROC ProgramUniform4ui64NV;
+ PFNGLPROGRAMUNIFORM4UI64VARBPROC ProgramUniform4ui64vARB;
+ PFNGLPROGRAMUNIFORM4UI64VNVPROC ProgramUniform4ui64vNV;
+ PFNGLPROGRAMUNIFORM4UIEXTPROC ProgramUniform4uiEXT;
+ PFNGLPROGRAMUNIFORM4UIVPROC ProgramUniform4uiv;
+ PFNGLPROGRAMUNIFORM4UIVEXTPROC ProgramUniform4uivEXT;
+ PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC ProgramUniformHandleui64ARB;
+ PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC ProgramUniformHandleui64NV;
+ PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC ProgramUniformHandleui64vARB;
+ PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC ProgramUniformHandleui64vNV;
+ PFNGLPROGRAMUNIFORMMATRIX2DVPROC ProgramUniformMatrix2dv;
+ PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC ProgramUniformMatrix2dvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX2FVPROC ProgramUniformMatrix2fv;
+ PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC ProgramUniformMatrix2fvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC ProgramUniformMatrix2x3dv;
+ PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC ProgramUniformMatrix2x3dvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC ProgramUniformMatrix2x3fv;
+ PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC ProgramUniformMatrix2x3fvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC ProgramUniformMatrix2x4dv;
+ PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC ProgramUniformMatrix2x4dvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC ProgramUniformMatrix2x4fv;
+ PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC ProgramUniformMatrix2x4fvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX3DVPROC ProgramUniformMatrix3dv;
+ PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC ProgramUniformMatrix3dvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX3FVPROC ProgramUniformMatrix3fv;
+ PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC ProgramUniformMatrix3fvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC ProgramUniformMatrix3x2dv;
+ PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC ProgramUniformMatrix3x2dvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC ProgramUniformMatrix3x2fv;
+ PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC ProgramUniformMatrix3x2fvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC ProgramUniformMatrix3x4dv;
+ PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC ProgramUniformMatrix3x4dvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC ProgramUniformMatrix3x4fv;
+ PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC ProgramUniformMatrix3x4fvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX4DVPROC ProgramUniformMatrix4dv;
+ PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC ProgramUniformMatrix4dvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX4FVPROC ProgramUniformMatrix4fv;
+ PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC ProgramUniformMatrix4fvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC ProgramUniformMatrix4x2dv;
+ PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC ProgramUniformMatrix4x2dvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC ProgramUniformMatrix4x2fv;
+ PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC ProgramUniformMatrix4x2fvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC ProgramUniformMatrix4x3dv;
+ PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC ProgramUniformMatrix4x3dvEXT;
+ PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC ProgramUniformMatrix4x3fv;
+ PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC ProgramUniformMatrix4x3fvEXT;
+ PFNGLPROGRAMUNIFORMUI64NVPROC ProgramUniformui64NV;
+ PFNGLPROGRAMUNIFORMUI64VNVPROC ProgramUniformui64vNV;
+ PFNGLPROGRAMVERTEXLIMITNVPROC ProgramVertexLimitNV;
+ PFNGLPROVOKINGVERTEXPROC ProvokingVertex;
+ PFNGLPROVOKINGVERTEXEXTPROC ProvokingVertexEXT;
+ PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC PushClientAttribDefaultEXT;
+ PFNGLPUSHDEBUGGROUPPROC PushDebugGroup;
+ PFNGLPUSHGROUPMARKEREXTPROC PushGroupMarkerEXT;
+ PFNGLQUERYCOUNTERPROC QueryCounter;
+ PFNGLQUERYMATRIXXOESPROC QueryMatrixxOES;
+ PFNGLQUERYOBJECTPARAMETERUIAMDPROC QueryObjectParameteruiAMD;
+ PFNGLQUERYRESOURCENVPROC QueryResourceNV;
+ PFNGLQUERYRESOURCETAGNVPROC QueryResourceTagNV;
+ PFNGLRASTERPOS2XOESPROC RasterPos2xOES;
+ PFNGLRASTERPOS2XVOESPROC RasterPos2xvOES;
+ PFNGLRASTERPOS3XOESPROC RasterPos3xOES;
+ PFNGLRASTERPOS3XVOESPROC RasterPos3xvOES;
+ PFNGLRASTERPOS4XOESPROC RasterPos4xOES;
+ PFNGLRASTERPOS4XVOESPROC RasterPos4xvOES;
+ PFNGLRASTERSAMPLESEXTPROC RasterSamplesEXT;
+ PFNGLREADBUFFERPROC ReadBuffer;
+ PFNGLREADINSTRUMENTSSGIXPROC ReadInstrumentsSGIX;
+ PFNGLREADPIXELSPROC ReadPixels;
+ PFNGLREADNPIXELSPROC ReadnPixels;
+ PFNGLREADNPIXELSARBPROC ReadnPixelsARB;
+ PFNGLRECTXOESPROC RectxOES;
+ PFNGLRECTXVOESPROC RectxvOES;
+ PFNGLREFERENCEPLANESGIXPROC ReferencePlaneSGIX;
+ PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC ReleaseKeyedMutexWin32EXT;
+ PFNGLRELEASESHADERCOMPILERPROC ReleaseShaderCompiler;
+ PFNGLRENDERGPUMASKNVPROC RenderGpuMaskNV;
+ PFNGLRENDERBUFFERSTORAGEPROC RenderbufferStorage;
+ PFNGLRENDERBUFFERSTORAGEEXTPROC RenderbufferStorageEXT;
+ PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC RenderbufferStorageMultisample;
+ PFNGLRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC RenderbufferStorageMultisampleAdvancedAMD;
+ PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC RenderbufferStorageMultisampleCoverageNV;
+ PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC RenderbufferStorageMultisampleEXT;
+ PFNGLREPLACEMENTCODEPOINTERSUNPROC ReplacementCodePointerSUN;
+ PFNGLREPLACEMENTCODEUBSUNPROC ReplacementCodeubSUN;
+ PFNGLREPLACEMENTCODEUBVSUNPROC ReplacementCodeubvSUN;
+ PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC ReplacementCodeuiColor3fVertex3fSUN;
+ PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC ReplacementCodeuiColor3fVertex3fvSUN;
+ PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC
+ ReplacementCodeuiColor4fNormal3fVertex3fSUN;
+ PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC
+ ReplacementCodeuiColor4fNormal3fVertex3fvSUN;
+ PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC ReplacementCodeuiColor4ubVertex3fSUN;
+ PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC ReplacementCodeuiColor4ubVertex3fvSUN;
+ PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC ReplacementCodeuiNormal3fVertex3fSUN;
+ PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC ReplacementCodeuiNormal3fVertex3fvSUN;
+ PFNGLREPLACEMENTCODEUISUNPROC ReplacementCodeuiSUN;
+ PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC
+ ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN;
+ PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC
+ ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN;
+ PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC
+ ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN;
+ PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC
+ ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN;
+ PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC ReplacementCodeuiTexCoord2fVertex3fSUN;
+ PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC ReplacementCodeuiTexCoord2fVertex3fvSUN;
+ PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC ReplacementCodeuiVertex3fSUN;
+ PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC ReplacementCodeuiVertex3fvSUN;
+ PFNGLREPLACEMENTCODEUIVSUNPROC ReplacementCodeuivSUN;
+ PFNGLREPLACEMENTCODEUSSUNPROC ReplacementCodeusSUN;
+ PFNGLREPLACEMENTCODEUSVSUNPROC ReplacementCodeusvSUN;
+ PFNGLREQUESTRESIDENTPROGRAMSNVPROC RequestResidentProgramsNV;
+ PFNGLRESETHISTOGRAMEXTPROC ResetHistogramEXT;
+ PFNGLRESETMEMORYOBJECTPARAMETERNVPROC ResetMemoryObjectParameterNV;
+ PFNGLRESETMINMAXEXTPROC ResetMinmaxEXT;
+ PFNGLRESIZEBUFFERSMESAPROC ResizeBuffersMESA;
+ PFNGLRESOLVEDEPTHVALUESNVPROC ResolveDepthValuesNV;
+ PFNGLRESUMETRANSFORMFEEDBACKPROC ResumeTransformFeedback;
+ PFNGLRESUMETRANSFORMFEEDBACKNVPROC ResumeTransformFeedbackNV;
+ PFNGLROTATEXOESPROC RotatexOES;
+ PFNGLSAMPLECOVERAGEPROC SampleCoverage;
+ PFNGLSAMPLECOVERAGEARBPROC SampleCoverageARB;
+ PFNGLSAMPLEMAPATIPROC SampleMapATI;
+ PFNGLSAMPLEMASKEXTPROC SampleMaskEXT;
+ PFNGLSAMPLEMASKINDEXEDNVPROC SampleMaskIndexedNV;
+ PFNGLSAMPLEMASKSGISPROC SampleMaskSGIS;
+ PFNGLSAMPLEMASKIPROC SampleMaski;
+ PFNGLSAMPLEPATTERNEXTPROC SamplePatternEXT;
+ PFNGLSAMPLEPATTERNSGISPROC SamplePatternSGIS;
+ PFNGLSAMPLERPARAMETERIIVPROC SamplerParameterIiv;
+ PFNGLSAMPLERPARAMETERIUIVPROC SamplerParameterIuiv;
+ PFNGLSAMPLERPARAMETERFPROC SamplerParameterf;
+ PFNGLSAMPLERPARAMETERFVPROC SamplerParameterfv;
+ PFNGLSAMPLERPARAMETERIPROC SamplerParameteri;
+ PFNGLSAMPLERPARAMETERIVPROC SamplerParameteriv;
+ PFNGLSCALEXOESPROC ScalexOES;
+ PFNGLSCISSORPROC Scissor;
+ PFNGLSCISSORARRAYVPROC ScissorArrayv;
+ PFNGLSCISSOREXCLUSIVEARRAYVNVPROC ScissorExclusiveArrayvNV;
+ PFNGLSCISSOREXCLUSIVENVPROC ScissorExclusiveNV;
+ PFNGLSCISSORINDEXEDPROC ScissorIndexed;
+ PFNGLSCISSORINDEXEDVPROC ScissorIndexedv;
+ PFNGLSECONDARYCOLOR3BEXTPROC SecondaryColor3bEXT;
+ PFNGLSECONDARYCOLOR3BVEXTPROC SecondaryColor3bvEXT;
+ PFNGLSECONDARYCOLOR3DEXTPROC SecondaryColor3dEXT;
+ PFNGLSECONDARYCOLOR3DVEXTPROC SecondaryColor3dvEXT;
+ PFNGLSECONDARYCOLOR3FEXTPROC SecondaryColor3fEXT;
+ PFNGLSECONDARYCOLOR3FVEXTPROC SecondaryColor3fvEXT;
+ PFNGLSECONDARYCOLOR3HNVPROC SecondaryColor3hNV;
+ PFNGLSECONDARYCOLOR3HVNVPROC SecondaryColor3hvNV;
+ PFNGLSECONDARYCOLOR3IEXTPROC SecondaryColor3iEXT;
+ PFNGLSECONDARYCOLOR3IVEXTPROC SecondaryColor3ivEXT;
+ PFNGLSECONDARYCOLOR3SEXTPROC SecondaryColor3sEXT;
+ PFNGLSECONDARYCOLOR3SVEXTPROC SecondaryColor3svEXT;
+ PFNGLSECONDARYCOLOR3UBEXTPROC SecondaryColor3ubEXT;
+ PFNGLSECONDARYCOLOR3UBVEXTPROC SecondaryColor3ubvEXT;
+ PFNGLSECONDARYCOLOR3UIEXTPROC SecondaryColor3uiEXT;
+ PFNGLSECONDARYCOLOR3UIVEXTPROC SecondaryColor3uivEXT;
+ PFNGLSECONDARYCOLOR3USEXTPROC SecondaryColor3usEXT;
+ PFNGLSECONDARYCOLOR3USVEXTPROC SecondaryColor3usvEXT;
+ PFNGLSECONDARYCOLORFORMATNVPROC SecondaryColorFormatNV;
+ PFNGLSECONDARYCOLORPOINTEREXTPROC SecondaryColorPointerEXT;
+ PFNGLSECONDARYCOLORPOINTERLISTIBMPROC SecondaryColorPointerListIBM;
+ PFNGLSELECTPERFMONITORCOUNTERSAMDPROC SelectPerfMonitorCountersAMD;
+ PFNGLSEMAPHOREPARAMETERIVNVPROC SemaphoreParameterivNV;
+ PFNGLSEMAPHOREPARAMETERUI64VEXTPROC SemaphoreParameterui64vEXT;
+ PFNGLSEPARABLEFILTER2DEXTPROC SeparableFilter2DEXT;
+ PFNGLSETFENCEAPPLEPROC SetFenceAPPLE;
+ PFNGLSETFENCENVPROC SetFenceNV;
+ PFNGLSETFRAGMENTSHADERCONSTANTATIPROC SetFragmentShaderConstantATI;
+ PFNGLSETINVARIANTEXTPROC SetInvariantEXT;
+ PFNGLSETLOCALCONSTANTEXTPROC SetLocalConstantEXT;
+ PFNGLSETMULTISAMPLEFVAMDPROC SetMultisamplefvAMD;
+ PFNGLSHADERBINARYPROC ShaderBinary;
+ PFNGLSHADEROP1EXTPROC ShaderOp1EXT;
+ PFNGLSHADEROP2EXTPROC ShaderOp2EXT;
+ PFNGLSHADEROP3EXTPROC ShaderOp3EXT;
+ PFNGLSHADERSOURCEPROC ShaderSource;
+ PFNGLSHADERSOURCEARBPROC ShaderSourceARB;
+ PFNGLSHADERSTORAGEBLOCKBINDINGPROC ShaderStorageBlockBinding;
+ PFNGLSHADINGRATEIMAGEBARRIERNVPROC ShadingRateImageBarrierNV;
+ PFNGLSHADINGRATEIMAGEPALETTENVPROC ShadingRateImagePaletteNV;
+ PFNGLSHADINGRATESAMPLEORDERCUSTOMNVPROC ShadingRateSampleOrderCustomNV;
+ PFNGLSHADINGRATESAMPLEORDERNVPROC ShadingRateSampleOrderNV;
+ PFNGLSHARPENTEXFUNCSGISPROC SharpenTexFuncSGIS;
+ PFNGLSIGNALSEMAPHOREEXTPROC SignalSemaphoreEXT;
+ PFNGLSIGNALSEMAPHOREUI64NVXPROC SignalSemaphoreui64NVX;
+ PFNGLSIGNALVKFENCENVPROC SignalVkFenceNV;
+ PFNGLSIGNALVKSEMAPHORENVPROC SignalVkSemaphoreNV;
+ PFNGLSPECIALIZESHADERPROC SpecializeShader;
+ PFNGLSPECIALIZESHADERARBPROC SpecializeShaderARB;
+ PFNGLSPRITEPARAMETERFSGIXPROC SpriteParameterfSGIX;
+ PFNGLSPRITEPARAMETERFVSGIXPROC SpriteParameterfvSGIX;
+ PFNGLSPRITEPARAMETERISGIXPROC SpriteParameteriSGIX;
+ PFNGLSPRITEPARAMETERIVSGIXPROC SpriteParameterivSGIX;
+ PFNGLSTARTINSTRUMENTSSGIXPROC StartInstrumentsSGIX;
+ PFNGLSTATECAPTURENVPROC StateCaptureNV;
+ PFNGLSTENCILCLEARTAGEXTPROC StencilClearTagEXT;
+ PFNGLSTENCILFILLPATHINSTANCEDNVPROC StencilFillPathInstancedNV;
+ PFNGLSTENCILFILLPATHNVPROC StencilFillPathNV;
+ PFNGLSTENCILFUNCPROC StencilFunc;
+ PFNGLSTENCILFUNCSEPARATEPROC StencilFuncSeparate;
+ PFNGLSTENCILFUNCSEPARATEATIPROC StencilFuncSeparateATI;
+ PFNGLSTENCILMASKPROC StencilMask;
+ PFNGLSTENCILMASKSEPARATEPROC StencilMaskSeparate;
+ PFNGLSTENCILOPPROC StencilOp;
+ PFNGLSTENCILOPSEPARATEPROC StencilOpSeparate;
+ PFNGLSTENCILOPSEPARATEATIPROC StencilOpSeparateATI;
+ PFNGLSTENCILOPVALUEAMDPROC StencilOpValueAMD;
+ PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC StencilStrokePathInstancedNV;
+ PFNGLSTENCILSTROKEPATHNVPROC StencilStrokePathNV;
+ PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC StencilThenCoverFillPathInstancedNV;
+ PFNGLSTENCILTHENCOVERFILLPATHNVPROC StencilThenCoverFillPathNV;
+ PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC StencilThenCoverStrokePathInstancedNV;
+ PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC StencilThenCoverStrokePathNV;
+ PFNGLSTOPINSTRUMENTSSGIXPROC StopInstrumentsSGIX;
+ PFNGLSTRINGMARKERGREMEDYPROC StringMarkerGREMEDY;
+ PFNGLSUBPIXELPRECISIONBIASNVPROC SubpixelPrecisionBiasNV;
+ PFNGLSWIZZLEEXTPROC SwizzleEXT;
+ PFNGLSYNCTEXTUREINTELPROC SyncTextureINTEL;
+ PFNGLTAGSAMPLEBUFFERSGIXPROC TagSampleBufferSGIX;
+ PFNGLTANGENT3BEXTPROC Tangent3bEXT;
+ PFNGLTANGENT3BVEXTPROC Tangent3bvEXT;
+ PFNGLTANGENT3DEXTPROC Tangent3dEXT;
+ PFNGLTANGENT3DVEXTPROC Tangent3dvEXT;
+ PFNGLTANGENT3FEXTPROC Tangent3fEXT;
+ PFNGLTANGENT3FVEXTPROC Tangent3fvEXT;
+ PFNGLTANGENT3IEXTPROC Tangent3iEXT;
+ PFNGLTANGENT3IVEXTPROC Tangent3ivEXT;
+ PFNGLTANGENT3SEXTPROC Tangent3sEXT;
+ PFNGLTANGENT3SVEXTPROC Tangent3svEXT;
+ PFNGLTANGENTPOINTEREXTPROC TangentPointerEXT;
+ PFNGLTBUFFERMASK3DFXPROC TbufferMask3DFX;
+ PFNGLTESSELLATIONFACTORAMDPROC TessellationFactorAMD;
+ PFNGLTESSELLATIONMODEAMDPROC TessellationModeAMD;
+ PFNGLTESTFENCEAPPLEPROC TestFenceAPPLE;
+ PFNGLTESTFENCENVPROC TestFenceNV;
+ PFNGLTESTOBJECTAPPLEPROC TestObjectAPPLE;
+ PFNGLTEXATTACHMEMORYNVPROC TexAttachMemoryNV;
+ PFNGLTEXBUFFERPROC TexBuffer;
+ PFNGLTEXBUFFERARBPROC TexBufferARB;
+ PFNGLTEXBUFFEREXTPROC TexBufferEXT;
+ PFNGLTEXBUFFERRANGEPROC TexBufferRange;
+ PFNGLTEXBUMPPARAMETERFVATIPROC TexBumpParameterfvATI;
+ PFNGLTEXBUMPPARAMETERIVATIPROC TexBumpParameterivATI;
+ PFNGLTEXCOORD1BOESPROC TexCoord1bOES;
+ PFNGLTEXCOORD1BVOESPROC TexCoord1bvOES;
+ PFNGLTEXCOORD1HNVPROC TexCoord1hNV;
+ PFNGLTEXCOORD1HVNVPROC TexCoord1hvNV;
+ PFNGLTEXCOORD1XOESPROC TexCoord1xOES;
+ PFNGLTEXCOORD1XVOESPROC TexCoord1xvOES;
+ PFNGLTEXCOORD2BOESPROC TexCoord2bOES;
+ PFNGLTEXCOORD2BVOESPROC TexCoord2bvOES;
+ PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC TexCoord2fColor3fVertex3fSUN;
+ PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC TexCoord2fColor3fVertex3fvSUN;
+ PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC TexCoord2fColor4fNormal3fVertex3fSUN;
+ PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC TexCoord2fColor4fNormal3fVertex3fvSUN;
+ PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC TexCoord2fColor4ubVertex3fSUN;
+ PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC TexCoord2fColor4ubVertex3fvSUN;
+ PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC TexCoord2fNormal3fVertex3fSUN;
+ PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC TexCoord2fNormal3fVertex3fvSUN;
+ PFNGLTEXCOORD2FVERTEX3FSUNPROC TexCoord2fVertex3fSUN;
+ PFNGLTEXCOORD2FVERTEX3FVSUNPROC TexCoord2fVertex3fvSUN;
+ PFNGLTEXCOORD2HNVPROC TexCoord2hNV;
+ PFNGLTEXCOORD2HVNVPROC TexCoord2hvNV;
+ PFNGLTEXCOORD2XOESPROC TexCoord2xOES;
+ PFNGLTEXCOORD2XVOESPROC TexCoord2xvOES;
+ PFNGLTEXCOORD3BOESPROC TexCoord3bOES;
+ PFNGLTEXCOORD3BVOESPROC TexCoord3bvOES;
+ PFNGLTEXCOORD3HNVPROC TexCoord3hNV;
+ PFNGLTEXCOORD3HVNVPROC TexCoord3hvNV;
+ PFNGLTEXCOORD3XOESPROC TexCoord3xOES;
+ PFNGLTEXCOORD3XVOESPROC TexCoord3xvOES;
+ PFNGLTEXCOORD4BOESPROC TexCoord4bOES;
+ PFNGLTEXCOORD4BVOESPROC TexCoord4bvOES;
+ PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC TexCoord4fColor4fNormal3fVertex4fSUN;
+ PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC TexCoord4fColor4fNormal3fVertex4fvSUN;
+ PFNGLTEXCOORD4FVERTEX4FSUNPROC TexCoord4fVertex4fSUN;
+ PFNGLTEXCOORD4FVERTEX4FVSUNPROC TexCoord4fVertex4fvSUN;
+ PFNGLTEXCOORD4HNVPROC TexCoord4hNV;
+ PFNGLTEXCOORD4HVNVPROC TexCoord4hvNV;
+ PFNGLTEXCOORD4XOESPROC TexCoord4xOES;
+ PFNGLTEXCOORD4XVOESPROC TexCoord4xvOES;
+ PFNGLTEXCOORDFORMATNVPROC TexCoordFormatNV;
+ PFNGLTEXCOORDPOINTEREXTPROC TexCoordPointerEXT;
+ PFNGLTEXCOORDPOINTERLISTIBMPROC TexCoordPointerListIBM;
+ PFNGLTEXCOORDPOINTERVINTELPROC TexCoordPointervINTEL;
+ PFNGLTEXENVXOESPROC TexEnvxOES;
+ PFNGLTEXENVXVOESPROC TexEnvxvOES;
+ PFNGLTEXFILTERFUNCSGISPROC TexFilterFuncSGIS;
+ PFNGLTEXGENXOESPROC TexGenxOES;
+ PFNGLTEXGENXVOESPROC TexGenxvOES;
+ PFNGLTEXIMAGE1DPROC TexImage1D;
+ PFNGLTEXIMAGE2DPROC TexImage2D;
+ PFNGLTEXIMAGE2DMULTISAMPLEPROC TexImage2DMultisample;
+ PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC TexImage2DMultisampleCoverageNV;
+ PFNGLTEXIMAGE3DPROC TexImage3D;
+ PFNGLTEXIMAGE3DEXTPROC TexImage3DEXT;
+ PFNGLTEXIMAGE3DMULTISAMPLEPROC TexImage3DMultisample;
+ PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC TexImage3DMultisampleCoverageNV;
+ PFNGLTEXIMAGE4DSGISPROC TexImage4DSGIS;
+ PFNGLTEXPAGECOMMITMENTARBPROC TexPageCommitmentARB;
+ PFNGLTEXPAGECOMMITMENTMEMNVPROC TexPageCommitmentMemNV;
+ PFNGLTEXPARAMETERIIVPROC TexParameterIiv;
+ PFNGLTEXPARAMETERIIVEXTPROC TexParameterIivEXT;
+ PFNGLTEXPARAMETERIUIVPROC TexParameterIuiv;
+ PFNGLTEXPARAMETERIUIVEXTPROC TexParameterIuivEXT;
+ PFNGLTEXPARAMETERFPROC TexParameterf;
+ PFNGLTEXPARAMETERFVPROC TexParameterfv;
+ PFNGLTEXPARAMETERIPROC TexParameteri;
+ PFNGLTEXPARAMETERIVPROC TexParameteriv;
+ PFNGLTEXPARAMETERXOESPROC TexParameterxOES;
+ PFNGLTEXPARAMETERXVOESPROC TexParameterxvOES;
+ PFNGLTEXRENDERBUFFERNVPROC TexRenderbufferNV;
+ PFNGLTEXSTORAGE1DPROC TexStorage1D;
+ PFNGLTEXSTORAGE1DEXTPROC TexStorage1DEXT;
+ PFNGLTEXSTORAGE2DPROC TexStorage2D;
+ PFNGLTEXSTORAGE2DEXTPROC TexStorage2DEXT;
+ PFNGLTEXSTORAGE2DMULTISAMPLEPROC TexStorage2DMultisample;
+ PFNGLTEXSTORAGE3DPROC TexStorage3D;
+ PFNGLTEXSTORAGE3DEXTPROC TexStorage3DEXT;
+ PFNGLTEXSTORAGE3DMULTISAMPLEPROC TexStorage3DMultisample;
+ PFNGLTEXSTORAGEMEM1DEXTPROC TexStorageMem1DEXT;
+ PFNGLTEXSTORAGEMEM2DEXTPROC TexStorageMem2DEXT;
+ PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC TexStorageMem2DMultisampleEXT;
+ PFNGLTEXSTORAGEMEM3DEXTPROC TexStorageMem3DEXT;
+ PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC TexStorageMem3DMultisampleEXT;
+ PFNGLTEXSTORAGESPARSEAMDPROC TexStorageSparseAMD;
+ PFNGLTEXSUBIMAGE1DPROC TexSubImage1D;
+ PFNGLTEXSUBIMAGE1DEXTPROC TexSubImage1DEXT;
+ PFNGLTEXSUBIMAGE2DPROC TexSubImage2D;
+ PFNGLTEXSUBIMAGE2DEXTPROC TexSubImage2DEXT;
+ PFNGLTEXSUBIMAGE3DPROC TexSubImage3D;
+ PFNGLTEXSUBIMAGE3DEXTPROC TexSubImage3DEXT;
+ PFNGLTEXSUBIMAGE4DSGISPROC TexSubImage4DSGIS;
+ PFNGLTEXTUREATTACHMEMORYNVPROC TextureAttachMemoryNV;
+ PFNGLTEXTUREBARRIERPROC TextureBarrier;
+ PFNGLTEXTUREBARRIERNVPROC TextureBarrierNV;
+ PFNGLTEXTUREBUFFERPROC TextureBuffer;
+ PFNGLTEXTUREBUFFEREXTPROC TextureBufferEXT;
+ PFNGLTEXTUREBUFFERRANGEPROC TextureBufferRange;
+ PFNGLTEXTUREBUFFERRANGEEXTPROC TextureBufferRangeEXT;
+ PFNGLTEXTURECOLORMASKSGISPROC TextureColorMaskSGIS;
+ PFNGLTEXTUREIMAGE1DEXTPROC TextureImage1DEXT;
+ PFNGLTEXTUREIMAGE2DEXTPROC TextureImage2DEXT;
+ PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC TextureImage2DMultisampleCoverageNV;
+ PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC TextureImage2DMultisampleNV;
+ PFNGLTEXTUREIMAGE3DEXTPROC TextureImage3DEXT;
+ PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC TextureImage3DMultisampleCoverageNV;
+ PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC TextureImage3DMultisampleNV;
+ PFNGLTEXTURELIGHTEXTPROC TextureLightEXT;
+ PFNGLTEXTUREMATERIALEXTPROC TextureMaterialEXT;
+ PFNGLTEXTURENORMALEXTPROC TextureNormalEXT;
+ PFNGLTEXTUREPAGECOMMITMENTEXTPROC TexturePageCommitmentEXT;
+ PFNGLTEXTUREPAGECOMMITMENTMEMNVPROC TexturePageCommitmentMemNV;
+ PFNGLTEXTUREPARAMETERIIVPROC TextureParameterIiv;
+ PFNGLTEXTUREPARAMETERIIVEXTPROC TextureParameterIivEXT;
+ PFNGLTEXTUREPARAMETERIUIVPROC TextureParameterIuiv;
+ PFNGLTEXTUREPARAMETERIUIVEXTPROC TextureParameterIuivEXT;
+ PFNGLTEXTUREPARAMETERFPROC TextureParameterf;
+ PFNGLTEXTUREPARAMETERFEXTPROC TextureParameterfEXT;
+ PFNGLTEXTUREPARAMETERFVPROC TextureParameterfv;
+ PFNGLTEXTUREPARAMETERFVEXTPROC TextureParameterfvEXT;
+ PFNGLTEXTUREPARAMETERIPROC TextureParameteri;
+ PFNGLTEXTUREPARAMETERIEXTPROC TextureParameteriEXT;
+ PFNGLTEXTUREPARAMETERIVPROC TextureParameteriv;
+ PFNGLTEXTUREPARAMETERIVEXTPROC TextureParameterivEXT;
+ PFNGLTEXTURERANGEAPPLEPROC TextureRangeAPPLE;
+ PFNGLTEXTURERENDERBUFFEREXTPROC TextureRenderbufferEXT;
+ PFNGLTEXTURESTORAGE1DPROC TextureStorage1D;
+ PFNGLTEXTURESTORAGE1DEXTPROC TextureStorage1DEXT;
+ PFNGLTEXTURESTORAGE2DPROC TextureStorage2D;
+ PFNGLTEXTURESTORAGE2DEXTPROC TextureStorage2DEXT;
+ PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC TextureStorage2DMultisample;
+ PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC TextureStorage2DMultisampleEXT;
+ PFNGLTEXTURESTORAGE3DPROC TextureStorage3D;
+ PFNGLTEXTURESTORAGE3DEXTPROC TextureStorage3DEXT;
+ PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC TextureStorage3DMultisample;
+ PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC TextureStorage3DMultisampleEXT;
+ PFNGLTEXTURESTORAGEMEM1DEXTPROC TextureStorageMem1DEXT;
+ PFNGLTEXTURESTORAGEMEM2DEXTPROC TextureStorageMem2DEXT;
+ PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC TextureStorageMem2DMultisampleEXT;
+ PFNGLTEXTURESTORAGEMEM3DEXTPROC TextureStorageMem3DEXT;
+ PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC TextureStorageMem3DMultisampleEXT;
+ PFNGLTEXTURESTORAGESPARSEAMDPROC TextureStorageSparseAMD;
+ PFNGLTEXTURESUBIMAGE1DPROC TextureSubImage1D;
+ PFNGLTEXTURESUBIMAGE1DEXTPROC TextureSubImage1DEXT;
+ PFNGLTEXTURESUBIMAGE2DPROC TextureSubImage2D;
+ PFNGLTEXTURESUBIMAGE2DEXTPROC TextureSubImage2DEXT;
+ PFNGLTEXTURESUBIMAGE3DPROC TextureSubImage3D;
+ PFNGLTEXTURESUBIMAGE3DEXTPROC TextureSubImage3DEXT;
+ PFNGLTEXTUREVIEWPROC TextureView;
+ PFNGLTRACKMATRIXNVPROC TrackMatrixNV;
+ PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC TransformFeedbackAttribsNV;
+ PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC TransformFeedbackBufferBase;
+ PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC TransformFeedbackBufferRange;
+ PFNGLTRANSFORMFEEDBACKSTREAMATTRIBSNVPROC TransformFeedbackStreamAttribsNV;
+ PFNGLTRANSFORMFEEDBACKVARYINGSPROC TransformFeedbackVaryings;
+ PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC TransformFeedbackVaryingsEXT;
+ PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC TransformFeedbackVaryingsNV;
+ PFNGLTRANSFORMPATHNVPROC TransformPathNV;
+ PFNGLTRANSLATEXOESPROC TranslatexOES;
+ PFNGLUNIFORM1DPROC Uniform1d;
+ PFNGLUNIFORM1DVPROC Uniform1dv;
+ PFNGLUNIFORM1FPROC Uniform1f;
+ PFNGLUNIFORM1FARBPROC Uniform1fARB;
+ PFNGLUNIFORM1FVPROC Uniform1fv;
+ PFNGLUNIFORM1FVARBPROC Uniform1fvARB;
+ PFNGLUNIFORM1IPROC Uniform1i;
+ PFNGLUNIFORM1I64ARBPROC Uniform1i64ARB;
+ PFNGLUNIFORM1I64NVPROC Uniform1i64NV;
+ PFNGLUNIFORM1I64VARBPROC Uniform1i64vARB;
+ PFNGLUNIFORM1I64VNVPROC Uniform1i64vNV;
+ PFNGLUNIFORM1IARBPROC Uniform1iARB;
+ PFNGLUNIFORM1IVPROC Uniform1iv;
+ PFNGLUNIFORM1IVARBPROC Uniform1ivARB;
+ PFNGLUNIFORM1UIPROC Uniform1ui;
+ PFNGLUNIFORM1UI64ARBPROC Uniform1ui64ARB;
+ PFNGLUNIFORM1UI64NVPROC Uniform1ui64NV;
+ PFNGLUNIFORM1UI64VARBPROC Uniform1ui64vARB;
+ PFNGLUNIFORM1UI64VNVPROC Uniform1ui64vNV;
+ PFNGLUNIFORM1UIEXTPROC Uniform1uiEXT;
+ PFNGLUNIFORM1UIVPROC Uniform1uiv;
+ PFNGLUNIFORM1UIVEXTPROC Uniform1uivEXT;
+ PFNGLUNIFORM2DPROC Uniform2d;
+ PFNGLUNIFORM2DVPROC Uniform2dv;
+ PFNGLUNIFORM2FPROC Uniform2f;
+ PFNGLUNIFORM2FARBPROC Uniform2fARB;
+ PFNGLUNIFORM2FVPROC Uniform2fv;
+ PFNGLUNIFORM2FVARBPROC Uniform2fvARB;
+ PFNGLUNIFORM2IPROC Uniform2i;
+ PFNGLUNIFORM2I64ARBPROC Uniform2i64ARB;
+ PFNGLUNIFORM2I64NVPROC Uniform2i64NV;
+ PFNGLUNIFORM2I64VARBPROC Uniform2i64vARB;
+ PFNGLUNIFORM2I64VNVPROC Uniform2i64vNV;
+ PFNGLUNIFORM2IARBPROC Uniform2iARB;
+ PFNGLUNIFORM2IVPROC Uniform2iv;
+ PFNGLUNIFORM2IVARBPROC Uniform2ivARB;
+ PFNGLUNIFORM2UIPROC Uniform2ui;
+ PFNGLUNIFORM2UI64ARBPROC Uniform2ui64ARB;
+ PFNGLUNIFORM2UI64NVPROC Uniform2ui64NV;
+ PFNGLUNIFORM2UI64VARBPROC Uniform2ui64vARB;
+ PFNGLUNIFORM2UI64VNVPROC Uniform2ui64vNV;
+ PFNGLUNIFORM2UIEXTPROC Uniform2uiEXT;
+ PFNGLUNIFORM2UIVPROC Uniform2uiv;
+ PFNGLUNIFORM2UIVEXTPROC Uniform2uivEXT;
+ PFNGLUNIFORM3DPROC Uniform3d;
+ PFNGLUNIFORM3DVPROC Uniform3dv;
+ PFNGLUNIFORM3FPROC Uniform3f;
+ PFNGLUNIFORM3FARBPROC Uniform3fARB;
+ PFNGLUNIFORM3FVPROC Uniform3fv;
+ PFNGLUNIFORM3FVARBPROC Uniform3fvARB;
+ PFNGLUNIFORM3IPROC Uniform3i;
+ PFNGLUNIFORM3I64ARBPROC Uniform3i64ARB;
+ PFNGLUNIFORM3I64NVPROC Uniform3i64NV;
+ PFNGLUNIFORM3I64VARBPROC Uniform3i64vARB;
+ PFNGLUNIFORM3I64VNVPROC Uniform3i64vNV;
+ PFNGLUNIFORM3IARBPROC Uniform3iARB;
+ PFNGLUNIFORM3IVPROC Uniform3iv;
+ PFNGLUNIFORM3IVARBPROC Uniform3ivARB;
+ PFNGLUNIFORM3UIPROC Uniform3ui;
+ PFNGLUNIFORM3UI64ARBPROC Uniform3ui64ARB;
+ PFNGLUNIFORM3UI64NVPROC Uniform3ui64NV;
+ PFNGLUNIFORM3UI64VARBPROC Uniform3ui64vARB;
+ PFNGLUNIFORM3UI64VNVPROC Uniform3ui64vNV;
+ PFNGLUNIFORM3UIEXTPROC Uniform3uiEXT;
+ PFNGLUNIFORM3UIVPROC Uniform3uiv;
+ PFNGLUNIFORM3UIVEXTPROC Uniform3uivEXT;
+ PFNGLUNIFORM4DPROC Uniform4d;
+ PFNGLUNIFORM4DVPROC Uniform4dv;
+ PFNGLUNIFORM4FPROC Uniform4f;
+ PFNGLUNIFORM4FARBPROC Uniform4fARB;
+ PFNGLUNIFORM4FVPROC Uniform4fv;
+ PFNGLUNIFORM4FVARBPROC Uniform4fvARB;
+ PFNGLUNIFORM4IPROC Uniform4i;
+ PFNGLUNIFORM4I64ARBPROC Uniform4i64ARB;
+ PFNGLUNIFORM4I64NVPROC Uniform4i64NV;
+ PFNGLUNIFORM4I64VARBPROC Uniform4i64vARB;
+ PFNGLUNIFORM4I64VNVPROC Uniform4i64vNV;
+ PFNGLUNIFORM4IARBPROC Uniform4iARB;
+ PFNGLUNIFORM4IVPROC Uniform4iv;
+ PFNGLUNIFORM4IVARBPROC Uniform4ivARB;
+ PFNGLUNIFORM4UIPROC Uniform4ui;
+ PFNGLUNIFORM4UI64ARBPROC Uniform4ui64ARB;
+ PFNGLUNIFORM4UI64NVPROC Uniform4ui64NV;
+ PFNGLUNIFORM4UI64VARBPROC Uniform4ui64vARB;
+ PFNGLUNIFORM4UI64VNVPROC Uniform4ui64vNV;
+ PFNGLUNIFORM4UIEXTPROC Uniform4uiEXT;
+ PFNGLUNIFORM4UIVPROC Uniform4uiv;
+ PFNGLUNIFORM4UIVEXTPROC Uniform4uivEXT;
+ PFNGLUNIFORMBLOCKBINDINGPROC UniformBlockBinding;
+ PFNGLUNIFORMBUFFEREXTPROC UniformBufferEXT;
+ PFNGLUNIFORMHANDLEUI64ARBPROC UniformHandleui64ARB;
+ PFNGLUNIFORMHANDLEUI64NVPROC UniformHandleui64NV;
+ PFNGLUNIFORMHANDLEUI64VARBPROC UniformHandleui64vARB;
+ PFNGLUNIFORMHANDLEUI64VNVPROC UniformHandleui64vNV;
+ PFNGLUNIFORMMATRIX2DVPROC UniformMatrix2dv;
+ PFNGLUNIFORMMATRIX2FVPROC UniformMatrix2fv;
+ PFNGLUNIFORMMATRIX2FVARBPROC UniformMatrix2fvARB;
+ PFNGLUNIFORMMATRIX2X3DVPROC UniformMatrix2x3dv;
+ PFNGLUNIFORMMATRIX2X3FVPROC UniformMatrix2x3fv;
+ PFNGLUNIFORMMATRIX2X4DVPROC UniformMatrix2x4dv;
+ PFNGLUNIFORMMATRIX2X4FVPROC UniformMatrix2x4fv;
+ PFNGLUNIFORMMATRIX3DVPROC UniformMatrix3dv;
+ PFNGLUNIFORMMATRIX3FVPROC UniformMatrix3fv;
+ PFNGLUNIFORMMATRIX3FVARBPROC UniformMatrix3fvARB;
+ PFNGLUNIFORMMATRIX3X2DVPROC UniformMatrix3x2dv;
+ PFNGLUNIFORMMATRIX3X2FVPROC UniformMatrix3x2fv;
+ PFNGLUNIFORMMATRIX3X4DVPROC UniformMatrix3x4dv;
+ PFNGLUNIFORMMATRIX3X4FVPROC UniformMatrix3x4fv;
+ PFNGLUNIFORMMATRIX4DVPROC UniformMatrix4dv;
+ PFNGLUNIFORMMATRIX4FVPROC UniformMatrix4fv;
+ PFNGLUNIFORMMATRIX4FVARBPROC UniformMatrix4fvARB;
+ PFNGLUNIFORMMATRIX4X2DVPROC UniformMatrix4x2dv;
+ PFNGLUNIFORMMATRIX4X2FVPROC UniformMatrix4x2fv;
+ PFNGLUNIFORMMATRIX4X3DVPROC UniformMatrix4x3dv;
+ PFNGLUNIFORMMATRIX4X3FVPROC UniformMatrix4x3fv;
+ PFNGLUNIFORMSUBROUTINESUIVPROC UniformSubroutinesuiv;
+ PFNGLUNIFORMUI64NVPROC Uniformui64NV;
+ PFNGLUNIFORMUI64VNVPROC Uniformui64vNV;
+ PFNGLUNLOCKARRAYSEXTPROC UnlockArraysEXT;
+ PFNGLUNMAPBUFFERPROC UnmapBuffer;
+ PFNGLUNMAPBUFFERARBPROC UnmapBufferARB;
+ PFNGLUNMAPNAMEDBUFFERPROC UnmapNamedBuffer;
+ PFNGLUNMAPNAMEDBUFFEREXTPROC UnmapNamedBufferEXT;
+ PFNGLUNMAPOBJECTBUFFERATIPROC UnmapObjectBufferATI;
+ PFNGLUNMAPTEXTURE2DINTELPROC UnmapTexture2DINTEL;
+ PFNGLUPDATEOBJECTBUFFERATIPROC UpdateObjectBufferATI;
+ PFNGLUPLOADGPUMASKNVXPROC UploadGpuMaskNVX;
+ PFNGLUSEPROGRAMPROC UseProgram;
+ PFNGLUSEPROGRAMOBJECTARBPROC UseProgramObjectARB;
+ PFNGLUSEPROGRAMSTAGESPROC UseProgramStages;
+ PFNGLUSESHADERPROGRAMEXTPROC UseShaderProgramEXT;
+ PFNGLVDPAUFININVPROC VDPAUFiniNV;
+ PFNGLVDPAUGETSURFACEIVNVPROC VDPAUGetSurfaceivNV;
+ PFNGLVDPAUINITNVPROC VDPAUInitNV;
+ PFNGLVDPAUISSURFACENVPROC VDPAUIsSurfaceNV;
+ PFNGLVDPAUMAPSURFACESNVPROC VDPAUMapSurfacesNV;
+ PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC VDPAURegisterOutputSurfaceNV;
+ PFNGLVDPAUREGISTERVIDEOSURFACENVPROC VDPAURegisterVideoSurfaceNV;
+ PFNGLVDPAUREGISTERVIDEOSURFACEWITHPICTURESTRUCTURENVPROC
+ VDPAURegisterVideoSurfaceWithPictureStructureNV;
+ PFNGLVDPAUSURFACEACCESSNVPROC VDPAUSurfaceAccessNV;
+ PFNGLVDPAUUNMAPSURFACESNVPROC VDPAUUnmapSurfacesNV;
+ PFNGLVDPAUUNREGISTERSURFACENVPROC VDPAUUnregisterSurfaceNV;
+ PFNGLVALIDATEPROGRAMPROC ValidateProgram;
+ PFNGLVALIDATEPROGRAMARBPROC ValidateProgramARB;
+ PFNGLVALIDATEPROGRAMPIPELINEPROC ValidateProgramPipeline;
+ PFNGLVARIANTARRAYOBJECTATIPROC VariantArrayObjectATI;
+ PFNGLVARIANTPOINTEREXTPROC VariantPointerEXT;
+ PFNGLVARIANTBVEXTPROC VariantbvEXT;
+ PFNGLVARIANTDVEXTPROC VariantdvEXT;
+ PFNGLVARIANTFVEXTPROC VariantfvEXT;
+ PFNGLVARIANTIVEXTPROC VariantivEXT;
+ PFNGLVARIANTSVEXTPROC VariantsvEXT;
+ PFNGLVARIANTUBVEXTPROC VariantubvEXT;
+ PFNGLVARIANTUIVEXTPROC VariantuivEXT;
+ PFNGLVARIANTUSVEXTPROC VariantusvEXT;
+ PFNGLVERTEX2BOESPROC Vertex2bOES;
+ PFNGLVERTEX2BVOESPROC Vertex2bvOES;
+ PFNGLVERTEX2HNVPROC Vertex2hNV;
+ PFNGLVERTEX2HVNVPROC Vertex2hvNV;
+ PFNGLVERTEX2XOESPROC Vertex2xOES;
+ PFNGLVERTEX2XVOESPROC Vertex2xvOES;
+ PFNGLVERTEX3BOESPROC Vertex3bOES;
+ PFNGLVERTEX3BVOESPROC Vertex3bvOES;
+ PFNGLVERTEX3HNVPROC Vertex3hNV;
+ PFNGLVERTEX3HVNVPROC Vertex3hvNV;
+ PFNGLVERTEX3XOESPROC Vertex3xOES;
+ PFNGLVERTEX3XVOESPROC Vertex3xvOES;
+ PFNGLVERTEX4BOESPROC Vertex4bOES;
+ PFNGLVERTEX4BVOESPROC Vertex4bvOES;
+ PFNGLVERTEX4HNVPROC Vertex4hNV;
+ PFNGLVERTEX4HVNVPROC Vertex4hvNV;
+ PFNGLVERTEX4XOESPROC Vertex4xOES;
+ PFNGLVERTEX4XVOESPROC Vertex4xvOES;
+ PFNGLVERTEXARRAYATTRIBBINDINGPROC VertexArrayAttribBinding;
+ PFNGLVERTEXARRAYATTRIBFORMATPROC VertexArrayAttribFormat;
+ PFNGLVERTEXARRAYATTRIBIFORMATPROC VertexArrayAttribIFormat;
+ PFNGLVERTEXARRAYATTRIBLFORMATPROC VertexArrayAttribLFormat;
+ PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC VertexArrayBindVertexBufferEXT;
+ PFNGLVERTEXARRAYBINDINGDIVISORPROC VertexArrayBindingDivisor;
+ PFNGLVERTEXARRAYCOLOROFFSETEXTPROC VertexArrayColorOffsetEXT;
+ PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC VertexArrayEdgeFlagOffsetEXT;
+ PFNGLVERTEXARRAYELEMENTBUFFERPROC VertexArrayElementBuffer;
+ PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC VertexArrayFogCoordOffsetEXT;
+ PFNGLVERTEXARRAYINDEXOFFSETEXTPROC VertexArrayIndexOffsetEXT;
+ PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC VertexArrayMultiTexCoordOffsetEXT;
+ PFNGLVERTEXARRAYNORMALOFFSETEXTPROC VertexArrayNormalOffsetEXT;
+ PFNGLVERTEXARRAYPARAMETERIAPPLEPROC VertexArrayParameteriAPPLE;
+ PFNGLVERTEXARRAYRANGEAPPLEPROC VertexArrayRangeAPPLE;
+ PFNGLVERTEXARRAYRANGENVPROC VertexArrayRangeNV;
+ PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC VertexArraySecondaryColorOffsetEXT;
+ PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC VertexArrayTexCoordOffsetEXT;
+ PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC VertexArrayVertexAttribBindingEXT;
+ PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC VertexArrayVertexAttribDivisorEXT;
+ PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC VertexArrayVertexAttribFormatEXT;
+ PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC VertexArrayVertexAttribIFormatEXT;
+ PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC VertexArrayVertexAttribIOffsetEXT;
+ PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC VertexArrayVertexAttribLFormatEXT;
+ PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC VertexArrayVertexAttribLOffsetEXT;
+ PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC VertexArrayVertexAttribOffsetEXT;
+ PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC VertexArrayVertexBindingDivisorEXT;
+ PFNGLVERTEXARRAYVERTEXBUFFERPROC VertexArrayVertexBuffer;
+ PFNGLVERTEXARRAYVERTEXBUFFERSPROC VertexArrayVertexBuffers;
+ PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC VertexArrayVertexOffsetEXT;
+ PFNGLVERTEXATTRIB1DPROC VertexAttrib1d;
+ PFNGLVERTEXATTRIB1DARBPROC VertexAttrib1dARB;
+ PFNGLVERTEXATTRIB1DNVPROC VertexAttrib1dNV;
+ PFNGLVERTEXATTRIB1DVPROC VertexAttrib1dv;
+ PFNGLVERTEXATTRIB1DVARBPROC VertexAttrib1dvARB;
+ PFNGLVERTEXATTRIB1DVNVPROC VertexAttrib1dvNV;
+ PFNGLVERTEXATTRIB1FPROC VertexAttrib1f;
+ PFNGLVERTEXATTRIB1FARBPROC VertexAttrib1fARB;
+ PFNGLVERTEXATTRIB1FNVPROC VertexAttrib1fNV;
+ PFNGLVERTEXATTRIB1FVPROC VertexAttrib1fv;
+ PFNGLVERTEXATTRIB1FVARBPROC VertexAttrib1fvARB;
+ PFNGLVERTEXATTRIB1FVNVPROC VertexAttrib1fvNV;
+ PFNGLVERTEXATTRIB1HNVPROC VertexAttrib1hNV;
+ PFNGLVERTEXATTRIB1HVNVPROC VertexAttrib1hvNV;
+ PFNGLVERTEXATTRIB1SPROC VertexAttrib1s;
+ PFNGLVERTEXATTRIB1SARBPROC VertexAttrib1sARB;
+ PFNGLVERTEXATTRIB1SNVPROC VertexAttrib1sNV;
+ PFNGLVERTEXATTRIB1SVPROC VertexAttrib1sv;
+ PFNGLVERTEXATTRIB1SVARBPROC VertexAttrib1svARB;
+ PFNGLVERTEXATTRIB1SVNVPROC VertexAttrib1svNV;
+ PFNGLVERTEXATTRIB2DPROC VertexAttrib2d;
+ PFNGLVERTEXATTRIB2DARBPROC VertexAttrib2dARB;
+ PFNGLVERTEXATTRIB2DNVPROC VertexAttrib2dNV;
+ PFNGLVERTEXATTRIB2DVPROC VertexAttrib2dv;
+ PFNGLVERTEXATTRIB2DVARBPROC VertexAttrib2dvARB;
+ PFNGLVERTEXATTRIB2DVNVPROC VertexAttrib2dvNV;
+ PFNGLVERTEXATTRIB2FPROC VertexAttrib2f;
+ PFNGLVERTEXATTRIB2FARBPROC VertexAttrib2fARB;
+ PFNGLVERTEXATTRIB2FNVPROC VertexAttrib2fNV;
+ PFNGLVERTEXATTRIB2FVPROC VertexAttrib2fv;
+ PFNGLVERTEXATTRIB2FVARBPROC VertexAttrib2fvARB;
+ PFNGLVERTEXATTRIB2FVNVPROC VertexAttrib2fvNV;
+ PFNGLVERTEXATTRIB2HNVPROC VertexAttrib2hNV;
+ PFNGLVERTEXATTRIB2HVNVPROC VertexAttrib2hvNV;
+ PFNGLVERTEXATTRIB2SPROC VertexAttrib2s;
+ PFNGLVERTEXATTRIB2SARBPROC VertexAttrib2sARB;
+ PFNGLVERTEXATTRIB2SNVPROC VertexAttrib2sNV;
+ PFNGLVERTEXATTRIB2SVPROC VertexAttrib2sv;
+ PFNGLVERTEXATTRIB2SVARBPROC VertexAttrib2svARB;
+ PFNGLVERTEXATTRIB2SVNVPROC VertexAttrib2svNV;
+ PFNGLVERTEXATTRIB3DPROC VertexAttrib3d;
+ PFNGLVERTEXATTRIB3DARBPROC VertexAttrib3dARB;
+ PFNGLVERTEXATTRIB3DNVPROC VertexAttrib3dNV;
+ PFNGLVERTEXATTRIB3DVPROC VertexAttrib3dv;
+ PFNGLVERTEXATTRIB3DVARBPROC VertexAttrib3dvARB;
+ PFNGLVERTEXATTRIB3DVNVPROC VertexAttrib3dvNV;
+ PFNGLVERTEXATTRIB3FPROC VertexAttrib3f;
+ PFNGLVERTEXATTRIB3FARBPROC VertexAttrib3fARB;
+ PFNGLVERTEXATTRIB3FNVPROC VertexAttrib3fNV;
+ PFNGLVERTEXATTRIB3FVPROC VertexAttrib3fv;
+ PFNGLVERTEXATTRIB3FVARBPROC VertexAttrib3fvARB;
+ PFNGLVERTEXATTRIB3FVNVPROC VertexAttrib3fvNV;
+ PFNGLVERTEXATTRIB3HNVPROC VertexAttrib3hNV;
+ PFNGLVERTEXATTRIB3HVNVPROC VertexAttrib3hvNV;
+ PFNGLVERTEXATTRIB3SPROC VertexAttrib3s;
+ PFNGLVERTEXATTRIB3SARBPROC VertexAttrib3sARB;
+ PFNGLVERTEXATTRIB3SNVPROC VertexAttrib3sNV;
+ PFNGLVERTEXATTRIB3SVPROC VertexAttrib3sv;
+ PFNGLVERTEXATTRIB3SVARBPROC VertexAttrib3svARB;
+ PFNGLVERTEXATTRIB3SVNVPROC VertexAttrib3svNV;
+ PFNGLVERTEXATTRIB4NBVPROC VertexAttrib4Nbv;
+ PFNGLVERTEXATTRIB4NBVARBPROC VertexAttrib4NbvARB;
+ PFNGLVERTEXATTRIB4NIVPROC VertexAttrib4Niv;
+ PFNGLVERTEXATTRIB4NIVARBPROC VertexAttrib4NivARB;
+ PFNGLVERTEXATTRIB4NSVPROC VertexAttrib4Nsv;
+ PFNGLVERTEXATTRIB4NSVARBPROC VertexAttrib4NsvARB;
+ PFNGLVERTEXATTRIB4NUBPROC VertexAttrib4Nub;
+ PFNGLVERTEXATTRIB4NUBARBPROC VertexAttrib4NubARB;
+ PFNGLVERTEXATTRIB4NUBVPROC VertexAttrib4Nubv;
+ PFNGLVERTEXATTRIB4NUBVARBPROC VertexAttrib4NubvARB;
+ PFNGLVERTEXATTRIB4NUIVPROC VertexAttrib4Nuiv;
+ PFNGLVERTEXATTRIB4NUIVARBPROC VertexAttrib4NuivARB;
+ PFNGLVERTEXATTRIB4NUSVPROC VertexAttrib4Nusv;
+ PFNGLVERTEXATTRIB4NUSVARBPROC VertexAttrib4NusvARB;
+ PFNGLVERTEXATTRIB4BVPROC VertexAttrib4bv;
+ PFNGLVERTEXATTRIB4BVARBPROC VertexAttrib4bvARB;
+ PFNGLVERTEXATTRIB4DPROC VertexAttrib4d;
+ PFNGLVERTEXATTRIB4DARBPROC VertexAttrib4dARB;
+ PFNGLVERTEXATTRIB4DNVPROC VertexAttrib4dNV;
+ PFNGLVERTEXATTRIB4DVPROC VertexAttrib4dv;
+ PFNGLVERTEXATTRIB4DVARBPROC VertexAttrib4dvARB;
+ PFNGLVERTEXATTRIB4DVNVPROC VertexAttrib4dvNV;
+ PFNGLVERTEXATTRIB4FPROC VertexAttrib4f;
+ PFNGLVERTEXATTRIB4FARBPROC VertexAttrib4fARB;
+ PFNGLVERTEXATTRIB4FNVPROC VertexAttrib4fNV;
+ PFNGLVERTEXATTRIB4FVPROC VertexAttrib4fv;
+ PFNGLVERTEXATTRIB4FVARBPROC VertexAttrib4fvARB;
+ PFNGLVERTEXATTRIB4FVNVPROC VertexAttrib4fvNV;
+ PFNGLVERTEXATTRIB4HNVPROC VertexAttrib4hNV;
+ PFNGLVERTEXATTRIB4HVNVPROC VertexAttrib4hvNV;
+ PFNGLVERTEXATTRIB4IVPROC VertexAttrib4iv;
+ PFNGLVERTEXATTRIB4IVARBPROC VertexAttrib4ivARB;
+ PFNGLVERTEXATTRIB4SPROC VertexAttrib4s;
+ PFNGLVERTEXATTRIB4SARBPROC VertexAttrib4sARB;
+ PFNGLVERTEXATTRIB4SNVPROC VertexAttrib4sNV;
+ PFNGLVERTEXATTRIB4SVPROC VertexAttrib4sv;
+ PFNGLVERTEXATTRIB4SVARBPROC VertexAttrib4svARB;
+ PFNGLVERTEXATTRIB4SVNVPROC VertexAttrib4svNV;
+ PFNGLVERTEXATTRIB4UBNVPROC VertexAttrib4ubNV;
+ PFNGLVERTEXATTRIB4UBVPROC VertexAttrib4ubv;
+ PFNGLVERTEXATTRIB4UBVARBPROC VertexAttrib4ubvARB;
+ PFNGLVERTEXATTRIB4UBVNVPROC VertexAttrib4ubvNV;
+ PFNGLVERTEXATTRIB4UIVPROC VertexAttrib4uiv;
+ PFNGLVERTEXATTRIB4UIVARBPROC VertexAttrib4uivARB;
+ PFNGLVERTEXATTRIB4USVPROC VertexAttrib4usv;
+ PFNGLVERTEXATTRIB4USVARBPROC VertexAttrib4usvARB;
+ PFNGLVERTEXATTRIBARRAYOBJECTATIPROC VertexAttribArrayObjectATI;
+ PFNGLVERTEXATTRIBBINDINGPROC VertexAttribBinding;
+ PFNGLVERTEXATTRIBDIVISORPROC VertexAttribDivisor;
+ PFNGLVERTEXATTRIBDIVISORARBPROC VertexAttribDivisorARB;
+ PFNGLVERTEXATTRIBFORMATPROC VertexAttribFormat;
+ PFNGLVERTEXATTRIBFORMATNVPROC VertexAttribFormatNV;
+ PFNGLVERTEXATTRIBI1IPROC VertexAttribI1i;
+ PFNGLVERTEXATTRIBI1IEXTPROC VertexAttribI1iEXT;
+ PFNGLVERTEXATTRIBI1IVPROC VertexAttribI1iv;
+ PFNGLVERTEXATTRIBI1IVEXTPROC VertexAttribI1ivEXT;
+ PFNGLVERTEXATTRIBI1UIPROC VertexAttribI1ui;
+ PFNGLVERTEXATTRIBI1UIEXTPROC VertexAttribI1uiEXT;
+ PFNGLVERTEXATTRIBI1UIVPROC VertexAttribI1uiv;
+ PFNGLVERTEXATTRIBI1UIVEXTPROC VertexAttribI1uivEXT;
+ PFNGLVERTEXATTRIBI2IPROC VertexAttribI2i;
+ PFNGLVERTEXATTRIBI2IEXTPROC VertexAttribI2iEXT;
+ PFNGLVERTEXATTRIBI2IVPROC VertexAttribI2iv;
+ PFNGLVERTEXATTRIBI2IVEXTPROC VertexAttribI2ivEXT;
+ PFNGLVERTEXATTRIBI2UIPROC VertexAttribI2ui;
+ PFNGLVERTEXATTRIBI2UIEXTPROC VertexAttribI2uiEXT;
+ PFNGLVERTEXATTRIBI2UIVPROC VertexAttribI2uiv;
+ PFNGLVERTEXATTRIBI2UIVEXTPROC VertexAttribI2uivEXT;
+ PFNGLVERTEXATTRIBI3IPROC VertexAttribI3i;
+ PFNGLVERTEXATTRIBI3IEXTPROC VertexAttribI3iEXT;
+ PFNGLVERTEXATTRIBI3IVPROC VertexAttribI3iv;
+ PFNGLVERTEXATTRIBI3IVEXTPROC VertexAttribI3ivEXT;
+ PFNGLVERTEXATTRIBI3UIPROC VertexAttribI3ui;
+ PFNGLVERTEXATTRIBI3UIEXTPROC VertexAttribI3uiEXT;
+ PFNGLVERTEXATTRIBI3UIVPROC VertexAttribI3uiv;
+ PFNGLVERTEXATTRIBI3UIVEXTPROC VertexAttribI3uivEXT;
+ PFNGLVERTEXATTRIBI4BVPROC VertexAttribI4bv;
+ PFNGLVERTEXATTRIBI4BVEXTPROC VertexAttribI4bvEXT;
+ PFNGLVERTEXATTRIBI4IPROC VertexAttribI4i;
+ PFNGLVERTEXATTRIBI4IEXTPROC VertexAttribI4iEXT;
+ PFNGLVERTEXATTRIBI4IVPROC VertexAttribI4iv;
+ PFNGLVERTEXATTRIBI4IVEXTPROC VertexAttribI4ivEXT;
+ PFNGLVERTEXATTRIBI4SVPROC VertexAttribI4sv;
+ PFNGLVERTEXATTRIBI4SVEXTPROC VertexAttribI4svEXT;
+ PFNGLVERTEXATTRIBI4UBVPROC VertexAttribI4ubv;
+ PFNGLVERTEXATTRIBI4UBVEXTPROC VertexAttribI4ubvEXT;
+ PFNGLVERTEXATTRIBI4UIPROC VertexAttribI4ui;
+ PFNGLVERTEXATTRIBI4UIEXTPROC VertexAttribI4uiEXT;
+ PFNGLVERTEXATTRIBI4UIVPROC VertexAttribI4uiv;
+ PFNGLVERTEXATTRIBI4UIVEXTPROC VertexAttribI4uivEXT;
+ PFNGLVERTEXATTRIBI4USVPROC VertexAttribI4usv;
+ PFNGLVERTEXATTRIBI4USVEXTPROC VertexAttribI4usvEXT;
+ PFNGLVERTEXATTRIBIFORMATPROC VertexAttribIFormat;
+ PFNGLVERTEXATTRIBIFORMATNVPROC VertexAttribIFormatNV;
+ PFNGLVERTEXATTRIBIPOINTERPROC VertexAttribIPointer;
+ PFNGLVERTEXATTRIBIPOINTEREXTPROC VertexAttribIPointerEXT;
+ PFNGLVERTEXATTRIBL1DPROC VertexAttribL1d;
+ PFNGLVERTEXATTRIBL1DEXTPROC VertexAttribL1dEXT;
+ PFNGLVERTEXATTRIBL1DVPROC VertexAttribL1dv;
+ PFNGLVERTEXATTRIBL1DVEXTPROC VertexAttribL1dvEXT;
+ PFNGLVERTEXATTRIBL1I64NVPROC VertexAttribL1i64NV;
+ PFNGLVERTEXATTRIBL1I64VNVPROC VertexAttribL1i64vNV;
+ PFNGLVERTEXATTRIBL1UI64ARBPROC VertexAttribL1ui64ARB;
+ PFNGLVERTEXATTRIBL1UI64NVPROC VertexAttribL1ui64NV;
+ PFNGLVERTEXATTRIBL1UI64VARBPROC VertexAttribL1ui64vARB;
+ PFNGLVERTEXATTRIBL1UI64VNVPROC VertexAttribL1ui64vNV;
+ PFNGLVERTEXATTRIBL2DPROC VertexAttribL2d;
+ PFNGLVERTEXATTRIBL2DEXTPROC VertexAttribL2dEXT;
+ PFNGLVERTEXATTRIBL2DVPROC VertexAttribL2dv;
+ PFNGLVERTEXATTRIBL2DVEXTPROC VertexAttribL2dvEXT;
+ PFNGLVERTEXATTRIBL2I64NVPROC VertexAttribL2i64NV;
+ PFNGLVERTEXATTRIBL2I64VNVPROC VertexAttribL2i64vNV;
+ PFNGLVERTEXATTRIBL2UI64NVPROC VertexAttribL2ui64NV;
+ PFNGLVERTEXATTRIBL2UI64VNVPROC VertexAttribL2ui64vNV;
+ PFNGLVERTEXATTRIBL3DPROC VertexAttribL3d;
+ PFNGLVERTEXATTRIBL3DEXTPROC VertexAttribL3dEXT;
+ PFNGLVERTEXATTRIBL3DVPROC VertexAttribL3dv;
+ PFNGLVERTEXATTRIBL3DVEXTPROC VertexAttribL3dvEXT;
+ PFNGLVERTEXATTRIBL3I64NVPROC VertexAttribL3i64NV;
+ PFNGLVERTEXATTRIBL3I64VNVPROC VertexAttribL3i64vNV;
+ PFNGLVERTEXATTRIBL3UI64NVPROC VertexAttribL3ui64NV;
+ PFNGLVERTEXATTRIBL3UI64VNVPROC VertexAttribL3ui64vNV;
+ PFNGLVERTEXATTRIBL4DPROC VertexAttribL4d;
+ PFNGLVERTEXATTRIBL4DEXTPROC VertexAttribL4dEXT;
+ PFNGLVERTEXATTRIBL4DVPROC VertexAttribL4dv;
+ PFNGLVERTEXATTRIBL4DVEXTPROC VertexAttribL4dvEXT;
+ PFNGLVERTEXATTRIBL4I64NVPROC VertexAttribL4i64NV;
+ PFNGLVERTEXATTRIBL4I64VNVPROC VertexAttribL4i64vNV;
+ PFNGLVERTEXATTRIBL4UI64NVPROC VertexAttribL4ui64NV;
+ PFNGLVERTEXATTRIBL4UI64VNVPROC VertexAttribL4ui64vNV;
+ PFNGLVERTEXATTRIBLFORMATPROC VertexAttribLFormat;
+ PFNGLVERTEXATTRIBLFORMATNVPROC VertexAttribLFormatNV;
+ PFNGLVERTEXATTRIBLPOINTERPROC VertexAttribLPointer;
+ PFNGLVERTEXATTRIBLPOINTEREXTPROC VertexAttribLPointerEXT;
+ PFNGLVERTEXATTRIBP1UIPROC VertexAttribP1ui;
+ PFNGLVERTEXATTRIBP1UIVPROC VertexAttribP1uiv;
+ PFNGLVERTEXATTRIBP2UIPROC VertexAttribP2ui;
+ PFNGLVERTEXATTRIBP2UIVPROC VertexAttribP2uiv;
+ PFNGLVERTEXATTRIBP3UIPROC VertexAttribP3ui;
+ PFNGLVERTEXATTRIBP3UIVPROC VertexAttribP3uiv;
+ PFNGLVERTEXATTRIBP4UIPROC VertexAttribP4ui;
+ PFNGLVERTEXATTRIBP4UIVPROC VertexAttribP4uiv;
+ PFNGLVERTEXATTRIBPARAMETERIAMDPROC VertexAttribParameteriAMD;
+ PFNGLVERTEXATTRIBPOINTERPROC VertexAttribPointer;
+ PFNGLVERTEXATTRIBPOINTERARBPROC VertexAttribPointerARB;
+ PFNGLVERTEXATTRIBPOINTERNVPROC VertexAttribPointerNV;
+ PFNGLVERTEXATTRIBS1DVNVPROC VertexAttribs1dvNV;
+ PFNGLVERTEXATTRIBS1FVNVPROC VertexAttribs1fvNV;
+ PFNGLVERTEXATTRIBS1HVNVPROC VertexAttribs1hvNV;
+ PFNGLVERTEXATTRIBS1SVNVPROC VertexAttribs1svNV;
+ PFNGLVERTEXATTRIBS2DVNVPROC VertexAttribs2dvNV;
+ PFNGLVERTEXATTRIBS2FVNVPROC VertexAttribs2fvNV;
+ PFNGLVERTEXATTRIBS2HVNVPROC VertexAttribs2hvNV;
+ PFNGLVERTEXATTRIBS2SVNVPROC VertexAttribs2svNV;
+ PFNGLVERTEXATTRIBS3DVNVPROC VertexAttribs3dvNV;
+ PFNGLVERTEXATTRIBS3FVNVPROC VertexAttribs3fvNV;
+ PFNGLVERTEXATTRIBS3HVNVPROC VertexAttribs3hvNV;
+ PFNGLVERTEXATTRIBS3SVNVPROC VertexAttribs3svNV;
+ PFNGLVERTEXATTRIBS4DVNVPROC VertexAttribs4dvNV;
+ PFNGLVERTEXATTRIBS4FVNVPROC VertexAttribs4fvNV;
+ PFNGLVERTEXATTRIBS4HVNVPROC VertexAttribs4hvNV;
+ PFNGLVERTEXATTRIBS4SVNVPROC VertexAttribs4svNV;
+ PFNGLVERTEXATTRIBS4UBVNVPROC VertexAttribs4ubvNV;
+ PFNGLVERTEXBINDINGDIVISORPROC VertexBindingDivisor;
+ PFNGLVERTEXBLENDARBPROC VertexBlendARB;
+ PFNGLVERTEXBLENDENVFATIPROC VertexBlendEnvfATI;
+ PFNGLVERTEXBLENDENVIATIPROC VertexBlendEnviATI;
+ PFNGLVERTEXFORMATNVPROC VertexFormatNV;
+ PFNGLVERTEXPOINTEREXTPROC VertexPointerEXT;
+ PFNGLVERTEXPOINTERLISTIBMPROC VertexPointerListIBM;
+ PFNGLVERTEXPOINTERVINTELPROC VertexPointervINTEL;
+ PFNGLVERTEXSTREAM1DATIPROC VertexStream1dATI;
+ PFNGLVERTEXSTREAM1DVATIPROC VertexStream1dvATI;
+ PFNGLVERTEXSTREAM1FATIPROC VertexStream1fATI;
+ PFNGLVERTEXSTREAM1FVATIPROC VertexStream1fvATI;
+ PFNGLVERTEXSTREAM1IATIPROC VertexStream1iATI;
+ PFNGLVERTEXSTREAM1IVATIPROC VertexStream1ivATI;
+ PFNGLVERTEXSTREAM1SATIPROC VertexStream1sATI;
+ PFNGLVERTEXSTREAM1SVATIPROC VertexStream1svATI;
+ PFNGLVERTEXSTREAM2DATIPROC VertexStream2dATI;
+ PFNGLVERTEXSTREAM2DVATIPROC VertexStream2dvATI;
+ PFNGLVERTEXSTREAM2FATIPROC VertexStream2fATI;
+ PFNGLVERTEXSTREAM2FVATIPROC VertexStream2fvATI;
+ PFNGLVERTEXSTREAM2IATIPROC VertexStream2iATI;
+ PFNGLVERTEXSTREAM2IVATIPROC VertexStream2ivATI;
+ PFNGLVERTEXSTREAM2SATIPROC VertexStream2sATI;
+ PFNGLVERTEXSTREAM2SVATIPROC VertexStream2svATI;
+ PFNGLVERTEXSTREAM3DATIPROC VertexStream3dATI;
+ PFNGLVERTEXSTREAM3DVATIPROC VertexStream3dvATI;
+ PFNGLVERTEXSTREAM3FATIPROC VertexStream3fATI;
+ PFNGLVERTEXSTREAM3FVATIPROC VertexStream3fvATI;
+ PFNGLVERTEXSTREAM3IATIPROC VertexStream3iATI;
+ PFNGLVERTEXSTREAM3IVATIPROC VertexStream3ivATI;
+ PFNGLVERTEXSTREAM3SATIPROC VertexStream3sATI;
+ PFNGLVERTEXSTREAM3SVATIPROC VertexStream3svATI;
+ PFNGLVERTEXSTREAM4DATIPROC VertexStream4dATI;
+ PFNGLVERTEXSTREAM4DVATIPROC VertexStream4dvATI;
+ PFNGLVERTEXSTREAM4FATIPROC VertexStream4fATI;
+ PFNGLVERTEXSTREAM4FVATIPROC VertexStream4fvATI;
+ PFNGLVERTEXSTREAM4IATIPROC VertexStream4iATI;
+ PFNGLVERTEXSTREAM4IVATIPROC VertexStream4ivATI;
+ PFNGLVERTEXSTREAM4SATIPROC VertexStream4sATI;
+ PFNGLVERTEXSTREAM4SVATIPROC VertexStream4svATI;
+ PFNGLVERTEXWEIGHTPOINTEREXTPROC VertexWeightPointerEXT;
+ PFNGLVERTEXWEIGHTFEXTPROC VertexWeightfEXT;
+ PFNGLVERTEXWEIGHTFVEXTPROC VertexWeightfvEXT;
+ PFNGLVERTEXWEIGHTHNVPROC VertexWeighthNV;
+ PFNGLVERTEXWEIGHTHVNVPROC VertexWeighthvNV;
+ PFNGLVIDEOCAPTURENVPROC VideoCaptureNV;
+ PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC VideoCaptureStreamParameterdvNV;
+ PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC VideoCaptureStreamParameterfvNV;
+ PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC VideoCaptureStreamParameterivNV;
+ PFNGLVIEWPORTPROC Viewport;
+ PFNGLVIEWPORTARRAYVPROC ViewportArrayv;
+ PFNGLVIEWPORTINDEXEDFPROC ViewportIndexedf;
+ PFNGLVIEWPORTINDEXEDFVPROC ViewportIndexedfv;
+ PFNGLVIEWPORTPOSITIONWSCALENVPROC ViewportPositionWScaleNV;
+ PFNGLVIEWPORTSWIZZLENVPROC ViewportSwizzleNV;
+ PFNGLWAITSEMAPHOREEXTPROC WaitSemaphoreEXT;
+ PFNGLWAITSEMAPHOREUI64NVXPROC WaitSemaphoreui64NVX;
+ PFNGLWAITSYNCPROC WaitSync;
+ PFNGLWAITVKSEMAPHORENVPROC WaitVkSemaphoreNV;
+ PFNGLWEIGHTPATHSNVPROC WeightPathsNV;
+ PFNGLWEIGHTPOINTERARBPROC WeightPointerARB;
+ PFNGLWEIGHTBVARBPROC WeightbvARB;
+ PFNGLWEIGHTDVARBPROC WeightdvARB;
+ PFNGLWEIGHTFVARBPROC WeightfvARB;
+ PFNGLWEIGHTIVARBPROC WeightivARB;
+ PFNGLWEIGHTSVARBPROC WeightsvARB;
+ PFNGLWEIGHTUBVARBPROC WeightubvARB;
+ PFNGLWEIGHTUIVARBPROC WeightuivARB;
+ PFNGLWEIGHTUSVARBPROC WeightusvARB;
+ PFNGLWINDOWPOS2DARBPROC WindowPos2dARB;
+ PFNGLWINDOWPOS2DMESAPROC WindowPos2dMESA;
+ PFNGLWINDOWPOS2DVARBPROC WindowPos2dvARB;
+ PFNGLWINDOWPOS2DVMESAPROC WindowPos2dvMESA;
+ PFNGLWINDOWPOS2FARBPROC WindowPos2fARB;
+ PFNGLWINDOWPOS2FMESAPROC WindowPos2fMESA;
+ PFNGLWINDOWPOS2FVARBPROC WindowPos2fvARB;
+ PFNGLWINDOWPOS2FVMESAPROC WindowPos2fvMESA;
+ PFNGLWINDOWPOS2IARBPROC WindowPos2iARB;
+ PFNGLWINDOWPOS2IMESAPROC WindowPos2iMESA;
+ PFNGLWINDOWPOS2IVARBPROC WindowPos2ivARB;
+ PFNGLWINDOWPOS2IVMESAPROC WindowPos2ivMESA;
+ PFNGLWINDOWPOS2SARBPROC WindowPos2sARB;
+ PFNGLWINDOWPOS2SMESAPROC WindowPos2sMESA;
+ PFNGLWINDOWPOS2SVARBPROC WindowPos2svARB;
+ PFNGLWINDOWPOS2SVMESAPROC WindowPos2svMESA;
+ PFNGLWINDOWPOS3DARBPROC WindowPos3dARB;
+ PFNGLWINDOWPOS3DMESAPROC WindowPos3dMESA;
+ PFNGLWINDOWPOS3DVARBPROC WindowPos3dvARB;
+ PFNGLWINDOWPOS3DVMESAPROC WindowPos3dvMESA;
+ PFNGLWINDOWPOS3FARBPROC WindowPos3fARB;
+ PFNGLWINDOWPOS3FMESAPROC WindowPos3fMESA;
+ PFNGLWINDOWPOS3FVARBPROC WindowPos3fvARB;
+ PFNGLWINDOWPOS3FVMESAPROC WindowPos3fvMESA;
+ PFNGLWINDOWPOS3IARBPROC WindowPos3iARB;
+ PFNGLWINDOWPOS3IMESAPROC WindowPos3iMESA;
+ PFNGLWINDOWPOS3IVARBPROC WindowPos3ivARB;
+ PFNGLWINDOWPOS3IVMESAPROC WindowPos3ivMESA;
+ PFNGLWINDOWPOS3SARBPROC WindowPos3sARB;
+ PFNGLWINDOWPOS3SMESAPROC WindowPos3sMESA;
+ PFNGLWINDOWPOS3SVARBPROC WindowPos3svARB;
+ PFNGLWINDOWPOS3SVMESAPROC WindowPos3svMESA;
+ PFNGLWINDOWPOS4DMESAPROC WindowPos4dMESA;
+ PFNGLWINDOWPOS4DVMESAPROC WindowPos4dvMESA;
+ PFNGLWINDOWPOS4FMESAPROC WindowPos4fMESA;
+ PFNGLWINDOWPOS4FVMESAPROC WindowPos4fvMESA;
+ PFNGLWINDOWPOS4IMESAPROC WindowPos4iMESA;
+ PFNGLWINDOWPOS4IVMESAPROC WindowPos4ivMESA;
+ PFNGLWINDOWPOS4SMESAPROC WindowPos4sMESA;
+ PFNGLWINDOWPOS4SVMESAPROC WindowPos4svMESA;
+ PFNGLWINDOWRECTANGLESEXTPROC WindowRectanglesEXT;
+ PFNGLWRITEMASKEXTPROC WriteMaskEXT;
+} GladGLContext;
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/内核源代码/StgSharp.C/glfw3.h b/内核源代码/StgSharp.C/glfw3.h
new file mode 100644
index 00000000..d4215c17
--- /dev/null
+++ b/内核源代码/StgSharp.C/glfw3.h
@@ -0,0 +1,6440 @@
+/*************************************************************************
+ * GLFW 3.4 - www.glfw->org
+ * A library for OpenGL, window and input
+ *------------------------------------------------------------------------
+ * Copyright (c) 2002-2006 Marcus Geelnard
+ * Copyright (c) 2006-2019 Camilla Löwy org>
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would
+ * be appreciated but is not required.
+ *
+ * 2. Altered source versions must be plainly marked as such, and must not
+ * be misrepresented as being the original software.
+ *
+ * 3. This notice may not be removed or altered from any source
+ * distribution.
+ *
+ *************************************************************************/
+
+#ifndef _glfw3_h_
+#define _glfw3_h_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+ /*************************************************************************
+ * Doxygen documentation
+ *************************************************************************/
+
+ /*! @file glfw3.h
+ * @brief The header of the GLFW 3 API.
+ *
+ * This is the header file of the GLFW 3 API. It defines all its types and
+ * declares all its functions.
+ *
+ * For more information about how to use this file, see @ref build_include.
+ */
+ /*! @defgroup context Context reference
+ * @brief Functions and types related to OpenGL and OpenGL ES contexts.
+ *
+ * This is the reference documentation for OpenGL and OpenGL ES context related
+ * functions. For more task-oriented information, see the @ref context_guide.
+ */
+ /*! @defgroup vulkan Vulkan support reference
+ * @brief Functions and types related to Vulkan.
+ *
+ * This is the reference documentation for Vulkan related functions and types.
+ * For more task-oriented information, see the @ref vulkan_guide.
+ */
+ /*! @defgroup init Initialization, version and error reference
+ * @brief Functions and types related to initialization and error handling.
+ *
+ * This is the reference documentation for initialization and termination of
+ * the library, version management and error handling. For more task-oriented
+ * information, see the @ref intro_guide.
+ */
+ /*! @defgroup input Input reference
+ * @brief Functions and types related to input handling.
+ *
+ * This is the reference documentation for input related functions and types.
+ * For more task-oriented information, see the @ref input_guide.
+ */
+ /*! @defgroup monitor Monitor reference
+ * @brief Functions and types related to monitors.
+ *
+ * This is the reference documentation for monitor related functions and types.
+ * For more task-oriented information, see the @ref monitor_guide.
+ */
+ /*! @defgroup window Window reference
+ * @brief Functions and types related to windows.
+ *
+ * This is the reference documentation for window related functions and types,
+ * including creation, deletion and event polling. For more task-oriented
+ * information, see the @ref window_guide.
+ */
+
+
+ /*************************************************************************
+ * Compiler- and platform-specific preprocessor work
+ *************************************************************************/
+
+ /* If we are we on Windows, we want a single define for it.
+ */
+#if !defined(_WIN32) && (defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__))
+#define _WIN32
+#endif /* _WIN32 */
+
+ /* Include because most Windows GLU headers need wchar_t and
+ * the macOS OpenGL header blocks the definition of ptrdiff_t by glext.h.
+ * Include it unconditionally to avoid surprising side-effects.
+ */
+#include
+
+ /* Include because it is needed by Vulkan and related functions.
+ * Include it unconditionally to avoid surprising side-effects.
+ */
+#include
+
+#if defined(GLFW_INCLUDE_VULKAN)
+#include
+#endif /* Vulkan header */
+
+ /* The Vulkan header may have indirectly included windows.h (because of
+ * VK_USE_PLATFORM_WIN32_KHR) so we offer our replacement symbols after it.
+ */
+
+ /* It is customary to use APIENTRY for OpenGL function pointer declarations on
+ * all platforms. Additionally, the Windows OpenGL header needs APIENTRY.
+ */
+#if !defined(APIENTRY)
+#if defined(_WIN32)
+#define APIENTRY _stdcall
+#else
+#define APIENTRY
+#endif
+#define GLFW_APIENTRY_DEFINED
+#endif /* APIENTRY */
+
+ /* Some Windows OpenGL headers need this.
+ */
+#if !defined(WINGDIAPI) && defined(_WIN32)
+#define WINGDIAPI __declspec(dllimport)
+#define GLFW_WINGDIAPI_DEFINED
+#endif /* WINGDIAPI */
+
+ /* Some Windows GLU headers need this.
+ */
+#if !defined(CALLBACK) && defined(_WIN32)
+#define CALLBACK __stdcall
+#define GLFW_CALLBACK_DEFINED
+#endif /* CALLBACK */
+
+ /* Include the chosen OpenGL or OpenGL ES headers.
+ */
+#if defined(GLFW_INCLUDE_ES1)
+
+#include
+#if defined(GLFW_INCLUDE_GLEXT)
+#include
+#endif
+
+#elif defined(GLFW_INCLUDE_ES2)
+
+#include
+#if defined(GLFW_INCLUDE_GLEXT)
+#include
+#endif
+
+#elif defined(GLFW_INCLUDE_ES3)
+
+#include
+#if defined(GLFW_INCLUDE_GLEXT)
+#include
+#endif
+
+#elif defined(GLFW_INCLUDE_ES31)
+
+#include
+#if defined(GLFW_INCLUDE_GLEXT)
+#include
+#endif
+
+#elif defined(GLFW_INCLUDE_ES32)
+
+#include
+#if defined(GLFW_INCLUDE_GLEXT)
+#include
+#endif
+
+#elif defined(GLFW_INCLUDE_GLCOREARB)
+
+#if defined(__APPLE__)
+
+#include
+#if defined(GLFW_INCLUDE_GLEXT)
+#include
+#endif /*GLFW_INCLUDE_GLEXT*/
+
+#else /*__APPLE__*/
+
+#include
+#if defined(GLFW_INCLUDE_GLEXT)
+#include
+#endif
+
+#endif /*__APPLE__*/
+
+#elif defined(GLFW_INCLUDE_GLU)
+
+#if defined(__APPLE__)
+
+#if defined(GLFW_INCLUDE_GLU)
+#include
+#endif
+
+#else /*__APPLE__*/
+
+#if defined(GLFW_INCLUDE_GLU)
+#include
+#endif
+
+#endif /*__APPLE__*/
+
+#elif !defined(GLFW_INCLUDE_NONE) && \
+ !defined(__gl_h_) && \
+ !defined(__gles1_gl_h_) && \
+ !defined(__gles2_gl2_h_) && \
+ !defined(__gles2_gl3_h_) && \
+ !defined(__gles2_gl31_h_) && \
+ !defined(__gles2_gl32_h_) && \
+ !defined(__gl_glcorearb_h_) && \
+ !defined(__gl2_h_) /*legacy*/ && \
+ !defined(__gl3_h_) /*legacy*/ && \
+ !defined(__gl31_h_) /*legacy*/ && \
+ !defined(__gl32_h_) /*legacy*/ && \
+ !defined(__glcorearb_h_) /*legacy*/ && \
+ !defined(__GL_H__) /*non-standard*/ && \
+ !defined(__gltypes_h_) /*non-standard*/ && \
+ !defined(__glee_h_) /*non-standard*/
+
+#if defined(__APPLE__)
+
+#if !defined(GLFW_INCLUDE_GLEXT)
+#define GL_GLEXT_LEGACY
+#endif
+#include
+
+#else /*__APPLE__*/
+
+#include
+#if defined(GLFW_INCLUDE_GLEXT)
+#include
+#endif
+
+#endif /*__APPLE__*/
+
+#endif /* OpenGL and OpenGL ES headers */
+
+#ifndef SSCAPI
+
+#include "ssgc_internal.h"
+
+#endif // ! SSCAPI
+
+
+
+ //#if defined(GLFW_DLL) && defined(_GLFW_BUILD_DLL)
+ // /* GLFW_DLL must be defined by applications that are linking against the DLL
+ // * version of the GLFW library. _GLFW_BUILD_DLL is defined by the GLFW
+ // * configuration header when compiling the DLL version of the library.
+ // */
+ //#error "You must not have both GLFW_DLL and _GLFW_BUILD_DLL defined"
+ //#endif
+ //
+ // /* SSCAPI is used to declare public API functions for export
+ // * from the DLL / shared library / dynamic library.
+ // */
+ //#if defined(_WIN32) && defined(_GLFW_BUILD_DLL)
+ /* We are building GLFW as a Win32 DLL */
+ //#define SSCAPI __declspec(dllexport)
+ //#elif defined(_WIN32) && defined(GLFW_DLL)
+ /* We are calling a GLFW Win32 DLL */
+ //#define SSCAPI __declspec(dllimport)
+ //#elif defined(__GNUC__) && defined(_GLFW_BUILD_DLL)
+ /* We are building GLFW as a Unix shared library */
+ //#define SSCAPI __attribute__((visibility("default")))
+ //#else
+ //#define SSCAPI
+ //#endif
+
+
+/*************************************************************************
+ * GLFW API tokens
+ *************************************************************************/
+
+ /*! @name GLFW version macros
+ * @{ */
+ /*! @brief The major version number of the GLFW header.
+ *
+ * The major version number of the GLFW header. This is incremented when the
+ * API is changed in non-compatible ways.
+ * @ingroup init
+ */
+#define GLFW_VERSION_MAJOR 3
+ /*! @brief The minor version number of the GLFW header.
+ *
+ * The minor version number of the GLFW header. This is incremented when
+ * features are added to the API but it remains backward-compatible.
+ * @ingroup init
+ */
+#define GLFW_VERSION_MINOR 4
+ /*! @brief The revision number of the GLFW header.
+ *
+ * The revision number of the GLFW header. This is incremented when a bug fix
+ * release is made that does not contain any API changes.
+ * @ingroup init
+ */
+#define GLFW_VERSION_REVISION 0
+ /*! @} */
+
+ /*! @brief One.
+ *
+ * This is only semantic sugar for the number 1. You can instead use `1` or
+ * `true` or `_True` or `GL_TRUE` or `VK_TRUE` or anything else that is equal
+ * to one.
+ *
+ * @ingroup init
+ */
+#define GLFW_TRUE 1
+ /*! @brief Zero.
+ *
+ * This is only semantic sugar for the number 0. You can instead use `0` or
+ * `false` or `_False` or `GL_FALSE` or `VK_FALSE` or anything else that is
+ * equal to zero.
+ *
+ * @ingroup init
+ */
+#define GLFW_FALSE 0
+
+ /*! @name Key and button actions
+ * @{ */
+ /*! @brief The key or mouse button was released.
+ *
+ * The key or mouse button was released.
+ *
+ * @ingroup input
+ */
+#define GLFW_RELEASE 0
+ /*! @brief The key or mouse button was pressed.
+ *
+ * The key or mouse button was pressed.
+ *
+ * @ingroup input
+ */
+#define GLFW_PRESS 1
+ /*! @brief The key was held down until it repeated.
+ *
+ * The key was held down until it repeated.
+ *
+ * @ingroup input
+ */
+#define GLFW_REPEAT 2
+ /*! @} */
+
+ /*! @defgroup hat_state Joystick hat states
+ * @brief Joystick hat states.
+ *
+ * See [joystick hat input](@ref joystick_hat) for how these are used.
+ *
+ * @ingroup input
+ * @{ */
+#define GLFW_HAT_CENTERED 0
+#define GLFW_HAT_UP 1
+#define GLFW_HAT_RIGHT 2
+#define GLFW_HAT_DOWN 4
+#define GLFW_HAT_LEFT 8
+#define GLFW_HAT_RIGHT_UP (GLFW_HAT_RIGHT | GLFW_HAT_UP)
+#define GLFW_HAT_RIGHT_DOWN (GLFW_HAT_RIGHT | GLFW_HAT_DOWN)
+#define GLFW_HAT_LEFT_UP (GLFW_HAT_LEFT | GLFW_HAT_UP)
+#define GLFW_HAT_LEFT_DOWN (GLFW_HAT_LEFT | GLFW_HAT_DOWN)
+ /*! @} */
+
+ /*! @defgroup keys Keyboard keys
+ * @brief Keyboard key IDs.
+ *
+ * See [key input](@ref input_key) for how these are used.
+ *
+ * These key codes are inspired by the _USB HID Usage Tables v1.12_ (p. 53-60),
+ * but re-arranged to map to 7-bit ASCII for printable keys (function keys are
+ * put in the 256+ range).
+ *
+ * The naming of the key codes follow these rules:
+ * - The US keyboard layout is used
+ * - Names of printable alphanumeric characters are used (e.g. "A", "R",
+ * "3", etc.)
+ * - For non-alphanumeric characters, Unicode:ish names are used (e.g.
+ * "COMMA", "LEFT_SQUARE_BRACKET", etc.). Note that some names do not
+ * correspond to the Unicode standard (usually for brevity)
+ * - Keys that lack a clear US mapping are named "WORLD_x"
+ * - For non-printable keys, custom names are used (e.g. "F4",
+ * "BACKSPACE", etc.)
+ *
+ * @ingroup input
+ * @{
+ */
+
+ /* The unknown key */
+#define GLFW_KEY_UNKNOWN -1
+
+/* Printable keys */
+#define GLFW_KEY_SPACE 32
+#define GLFW_KEY_APOSTROPHE 39 /* ' */
+#define GLFW_KEY_COMMA 44 /* , */
+#define GLFW_KEY_MINUS 45 /* - */
+#define GLFW_KEY_PERIOD 46 /* . */
+#define GLFW_KEY_SLASH 47 /* / */
+#define GLFW_KEY_0 48
+#define GLFW_KEY_1 49
+#define GLFW_KEY_2 50
+#define GLFW_KEY_3 51
+#define GLFW_KEY_4 52
+#define GLFW_KEY_5 53
+#define GLFW_KEY_6 54
+#define GLFW_KEY_7 55
+#define GLFW_KEY_8 56
+#define GLFW_KEY_9 57
+#define GLFW_KEY_SEMICOLON 59 /* ; */
+#define GLFW_KEY_EQUAL 61 /* = */
+#define GLFW_KEY_A 65
+#define GLFW_KEY_B 66
+#define GLFW_KEY_C 67
+#define GLFW_KEY_D 68
+#define GLFW_KEY_E 69
+#define GLFW_KEY_F 70
+#define GLFW_KEY_G 71
+#define GLFW_KEY_H 72
+#define GLFW_KEY_I 73
+#define GLFW_KEY_J 74
+#define GLFW_KEY_K 75
+#define GLFW_KEY_L 76
+#define GLFW_KEY_M 77
+#define GLFW_KEY_N 78
+#define GLFW_KEY_O 79
+#define GLFW_KEY_P 80
+#define GLFW_KEY_Q 81
+#define GLFW_KEY_R 82
+#define GLFW_KEY_S 83
+#define GLFW_KEY_T 84
+#define GLFW_KEY_U 85
+#define GLFW_KEY_V 86
+#define GLFW_KEY_W 87
+#define GLFW_KEY_X 88
+#define GLFW_KEY_Y 89
+#define GLFW_KEY_Z 90
+#define GLFW_KEY_LEFT_BRACKET 91 /* [ */
+#define GLFW_KEY_BACKSLASH 92 /* \ */
+#define GLFW_KEY_RIGHT_BRACKET 93 /* ] */
+#define GLFW_KEY_GRAVE_ACCENT 96 /* ` */
+#define GLFW_KEY_WORLD_1 161 /* non-US #1 */
+#define GLFW_KEY_WORLD_2 162 /* non-US #2 */
+
+/* Function keys */
+#define GLFW_KEY_ESCAPE 256
+#define GLFW_KEY_ENTER 257
+#define GLFW_KEY_TAB 258
+#define GLFW_KEY_BACKSPACE 259
+#define GLFW_KEY_INSERT 260
+#define GLFW_KEY_DELETE 261
+#define GLFW_KEY_RIGHT 262
+#define GLFW_KEY_LEFT 263
+#define GLFW_KEY_DOWN 264
+#define GLFW_KEY_UP 265
+#define GLFW_KEY_PAGE_UP 266
+#define GLFW_KEY_PAGE_DOWN 267
+#define GLFW_KEY_HOME 268
+#define GLFW_KEY_END 269
+#define GLFW_KEY_CAPS_LOCK 280
+#define GLFW_KEY_SCROLL_LOCK 281
+#define GLFW_KEY_NUM_LOCK 282
+#define GLFW_KEY_PRINT_SCREEN 283
+#define GLFW_KEY_PAUSE 284
+#define GLFW_KEY_F1 290
+#define GLFW_KEY_F2 291
+#define GLFW_KEY_F3 292
+#define GLFW_KEY_F4 293
+#define GLFW_KEY_F5 294
+#define GLFW_KEY_F6 295
+#define GLFW_KEY_F7 296
+#define GLFW_KEY_F8 297
+#define GLFW_KEY_F9 298
+#define GLFW_KEY_F10 299
+#define GLFW_KEY_F11 300
+#define GLFW_KEY_F12 301
+#define GLFW_KEY_F13 302
+#define GLFW_KEY_F14 303
+#define GLFW_KEY_F15 304
+#define GLFW_KEY_F16 305
+#define GLFW_KEY_F17 306
+#define GLFW_KEY_F18 307
+#define GLFW_KEY_F19 308
+#define GLFW_KEY_F20 309
+#define GLFW_KEY_F21 310
+#define GLFW_KEY_F22 311
+#define GLFW_KEY_F23 312
+#define GLFW_KEY_F24 313
+#define GLFW_KEY_F25 314
+#define GLFW_KEY_KP_0 320
+#define GLFW_KEY_KP_1 321
+#define GLFW_KEY_KP_2 322
+#define GLFW_KEY_KP_3 323
+#define GLFW_KEY_KP_4 324
+#define GLFW_KEY_KP_5 325
+#define GLFW_KEY_KP_6 326
+#define GLFW_KEY_KP_7 327
+#define GLFW_KEY_KP_8 328
+#define GLFW_KEY_KP_9 329
+#define GLFW_KEY_KP_DECIMAL 330
+#define GLFW_KEY_KP_DIVIDE 331
+#define GLFW_KEY_KP_MULTIPLY 332
+#define GLFW_KEY_KP_SUBTRACT 333
+#define GLFW_KEY_KP_ADD 334
+#define GLFW_KEY_KP_ENTER 335
+#define GLFW_KEY_KP_EQUAL 336
+#define GLFW_KEY_LEFT_SHIFT 340
+#define GLFW_KEY_LEFT_CONTROL 341
+#define GLFW_KEY_LEFT_ALT 342
+#define GLFW_KEY_LEFT_SUPER 343
+#define GLFW_KEY_RIGHT_SHIFT 344
+#define GLFW_KEY_RIGHT_CONTROL 345
+#define GLFW_KEY_RIGHT_ALT 346
+#define GLFW_KEY_RIGHT_SUPER 347
+#define GLFW_KEY_MENU 348
+
+#define GLFW_KEY_LAST GLFW_KEY_MENU
+
+/*! @} */
+
+/*! @defgroup mods Modifier key flags
+ * @brief Modifier key flags.
+ *
+ * See [key input](@ref input_key) for how these are used.
+ *
+ * @ingroup input
+ * @{ */
+
+ /*! @brief If this bit is set one or more Shift keys were held down.
+ *
+ * If this bit is set one or more Shift keys were held down.
+ */
+#define GLFW_MOD_SHIFT 0x0001
+ /*! @brief If this bit is set one or more Control keys were held down.
+ *
+ * If this bit is set one or more Control keys were held down.
+ */
+#define GLFW_MOD_CONTROL 0x0002
+ /*! @brief If this bit is set one or more Alt keys were held down.
+ *
+ * If this bit is set one or more Alt keys were held down.
+ */
+#define GLFW_MOD_ALT 0x0004
+ /*! @brief If this bit is set one or more Super keys were held down.
+ *
+ * If this bit is set one or more Super keys were held down.
+ */
+#define GLFW_MOD_SUPER 0x0008
+ /*! @brief If this bit is set the Caps Lock key is enabled.
+ *
+ * If this bit is set the Caps Lock key is enabled and the @ref
+ * GLFW_LOCK_KEY_MODS input mode is set.
+ */
+#define GLFW_MOD_CAPS_LOCK 0x0010
+ /*! @brief If this bit is set the Num Lock key is enabled.
+ *
+ * If this bit is set the Num Lock key is enabled and the @ref
+ * GLFW_LOCK_KEY_MODS input mode is set.
+ */
+#define GLFW_MOD_NUM_LOCK 0x0020
+
+ /*! @} */
+
+ /*! @defgroup buttons Mouse buttons
+ * @brief Mouse button IDs.
+ *
+ * See [mouse button input](@ref input_mouse_button) for how these are used.
+ *
+ * @ingroup input
+ * @{ */
+#define GLFW_MOUSE_BUTTON_1 0
+#define GLFW_MOUSE_BUTTON_2 1
+#define GLFW_MOUSE_BUTTON_3 2
+#define GLFW_MOUSE_BUTTON_4 3
+#define GLFW_MOUSE_BUTTON_5 4
+#define GLFW_MOUSE_BUTTON_6 5
+#define GLFW_MOUSE_BUTTON_7 6
+#define GLFW_MOUSE_BUTTON_8 7
+#define GLFW_MOUSE_BUTTON_LAST GLFW_MOUSE_BUTTON_8
+#define GLFW_MOUSE_BUTTON_LEFT GLFW_MOUSE_BUTTON_1
+#define GLFW_MOUSE_BUTTON_RIGHT GLFW_MOUSE_BUTTON_2
+#define GLFW_MOUSE_BUTTON_MIDDLE GLFW_MOUSE_BUTTON_3
+ /*! @} */
+
+ /*! @defgroup joysticks Joysticks
+ * @brief Joystick IDs.
+ *
+ * See [joystick input](@ref joystick) for how these are used.
+ *
+ * @ingroup input
+ * @{ */
+#define GLFW_JOYSTICK_1 0
+#define GLFW_JOYSTICK_2 1
+#define GLFW_JOYSTICK_3 2
+#define GLFW_JOYSTICK_4 3
+#define GLFW_JOYSTICK_5 4
+#define GLFW_JOYSTICK_6 5
+#define GLFW_JOYSTICK_7 6
+#define GLFW_JOYSTICK_8 7
+#define GLFW_JOYSTICK_9 8
+#define GLFW_JOYSTICK_10 9
+#define GLFW_JOYSTICK_11 10
+#define GLFW_JOYSTICK_12 11
+#define GLFW_JOYSTICK_13 12
+#define GLFW_JOYSTICK_14 13
+#define GLFW_JOYSTICK_15 14
+#define GLFW_JOYSTICK_16 15
+#define GLFW_JOYSTICK_LAST GLFW_JOYSTICK_16
+ /*! @} */
+
+ /*! @defgroup gamepad_buttons Gamepad buttons
+ * @brief Gamepad buttons.
+ *
+ * See @ref gamepad for how these are used.
+ *
+ * @ingroup input
+ * @{ */
+#define GLFW_GAMEPAD_BUTTON_A 0
+#define GLFW_GAMEPAD_BUTTON_B 1
+#define GLFW_GAMEPAD_BUTTON_X 2
+#define GLFW_GAMEPAD_BUTTON_Y 3
+#define GLFW_GAMEPAD_BUTTON_LEFT_BUMPER 4
+#define GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER 5
+#define GLFW_GAMEPAD_BUTTON_BACK 6
+#define GLFW_GAMEPAD_BUTTON_START 7
+#define GLFW_GAMEPAD_BUTTON_GUIDE 8
+#define GLFW_GAMEPAD_BUTTON_LEFT_THUMB 9
+#define GLFW_GAMEPAD_BUTTON_RIGHT_THUMB 10
+#define GLFW_GAMEPAD_BUTTON_DPAD_UP 11
+#define GLFW_GAMEPAD_BUTTON_DPAD_RIGHT 12
+#define GLFW_GAMEPAD_BUTTON_DPAD_DOWN 13
+#define GLFW_GAMEPAD_BUTTON_DPAD_LEFT 14
+#define GLFW_GAMEPAD_BUTTON_LAST GLFW_GAMEPAD_BUTTON_DPAD_LEFT
+
+#define GLFW_GAMEPAD_BUTTON_CROSS GLFW_GAMEPAD_BUTTON_A
+#define GLFW_GAMEPAD_BUTTON_CIRCLE GLFW_GAMEPAD_BUTTON_B
+#define GLFW_GAMEPAD_BUTTON_SQUARE GLFW_GAMEPAD_BUTTON_X
+#define GLFW_GAMEPAD_BUTTON_TRIANGLE GLFW_GAMEPAD_BUTTON_Y
+ /*! @} */
+
+ /*! @defgroup gamepad_axes Gamepad axes
+ * @brief Gamepad axes.
+ *
+ * See @ref gamepad for how these are used.
+ *
+ * @ingroup input
+ * @{ */
+#define GLFW_GAMEPAD_AXIS_LEFT_X 0
+#define GLFW_GAMEPAD_AXIS_LEFT_Y 1
+#define GLFW_GAMEPAD_AXIS_RIGHT_X 2
+#define GLFW_GAMEPAD_AXIS_RIGHT_Y 3
+#define GLFW_GAMEPAD_AXIS_LEFT_TRIGGER 4
+#define GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER 5
+#define GLFW_GAMEPAD_AXIS_LAST GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER
+ /*! @} */
+
+ /*! @defgroup errors Error codes
+ * @brief Error codes.
+ *
+ * See [error handling](@ref error_handling) for how these are used.
+ *
+ * @ingroup init
+ * @{ */
+ /*! @brief No error has occurred.
+ *
+ * No error has occurred.
+ *
+ * @analysis Yay.
+ */
+#define GLFW_NO_ERROR 0
+ /*! @brief GLFW has not been initialized.
+ *
+ * This occurs if a GLFW function was called that must not be called unless the
+ * library is [initialized](@ref intro_init).
+ *
+ * @analysis Application programmer error. Initialize GLFW before calling any
+ * function that requires initialization.
+ */
+#define GLFW_NOT_INITIALIZED 0x00010001
+ /*! @brief No context is current for this thread.
+ *
+ * This occurs if a GLFW function was called that needs and operates on the
+ * current OpenGL or OpenGL ES context but no context is current on the calling
+ * thread. One such function is @ref glfwSwapInterval.
+ *
+ * @analysis Application programmer error. Ensure a context is current before
+ * calling functions that require a current context.
+ */
+#define GLFW_NO_CURRENT_CONTEXT 0x00010002
+ /*! @brief One of the arguments to the function was an invalid enum value.
+ *
+ * One of the arguments to the function was an invalid enum value, for example
+ * requesting @ref GLFW_RED_BITS with @ref glfwGetWindowAttrib.
+ *
+ * @analysis Application programmer error. Fix the offending call.
+ */
+#define GLFW_INVALID_ENUM 0x00010003
+ /*! @brief One of the arguments to the function was an invalid value.
+ *
+ * One of the arguments to the function was an invalid value, for example
+ * requesting a non-existent OpenGL or OpenGL ES version like 2.7.
+ *
+ * Requesting a valid but unavailable OpenGL or OpenGL ES version will instead
+ * result in a @ref GLFW_VERSION_UNAVAILABLE error.
+ *
+ * @analysis Application programmer error. Fix the offending call.
+ */
+#define GLFW_INVALID_VALUE 0x00010004
+ /*! @brief A memory allocation failed.
+ *
+ * A memory allocation failed.
+ *
+ * @analysis A bug in GLFW or the underlying operating system. Report the bug
+ * to our [issue tracker](https://github.com/glfw/glfw/issues).
+ */
+#define GLFW_OUT_OF_MEMORY 0x00010005
+ /*! @brief GLFW could not find support for the requested API on the system.
+ *
+ * GLFW could not find support for the requested API on the system.
+ *
+ * @analysis The installed graphics driver does not support the requested
+ * API, or does not support it via the chosen context creation API.
+ * Below are a few examples.
+ *
+ * @par
+ * Some pre-installed Windows graphics drivers do not support OpenGL. AMD only
+ * supports OpenGL ES via EGL, while Nvidia and Intel only support it via
+ * a WGL or GLX extension. macOS does not provide OpenGL ES at all. The Mesa
+ * EGL, OpenGL and OpenGL ES libraries do not interface with the Nvidia binary
+ * driver. Older graphics drivers do not support Vulkan.
+ */
+#define GLFW_API_UNAVAILABLE 0x00010006
+ /*! @brief The requested OpenGL or OpenGL ES version is not available.
+ *
+ * The requested OpenGL or OpenGL ES version (including any requested context
+ * or framebuffer hints) is not available on this machine.
+ *
+ * @analysis The machine does not support your requirements. If your
+ * application is sufficiently flexible, downgrade your requirements and try
+ * again. Otherwise, inform the user that their machine does not match your
+ * requirements.
+ *
+ * @par
+ * Future invalid OpenGL and OpenGL ES versions, for example OpenGL 4.8 if 5.0
+ * comes out before the 4.x series gets that far, also fail with this error and
+ * not @ref GLFW_INVALID_VALUE, because GLFW cannot know what future versions
+ * will exist.
+ */
+#define GLFW_VERSION_UNAVAILABLE 0x00010007
+ /*! @brief A platform-specific error occurred that does not match any of the
+ * more specific categories.
+ *
+ * A platform-specific error occurred that does not match any of the more
+ * specific categories.
+ *
+ * @analysis A bug or configuration error in GLFW, the underlying operating
+ * system or its drivers, or a lack of required resources. Report the issue to
+ * our [issue tracker](https://github.com/glfw/glfw/issues).
+ */
+#define GLFW_PLATFORM_ERROR 0x00010008
+ /*! @brief The requested format is not supported or available.
+ *
+ * If emitted during window creation, the requested pixel format is not
+ * supported.
+ *
+ * If emitted when querying the clipboard, the contents of the clipboard could
+ * not be converted to the requested format.
+ *
+ * @analysis If emitted during window creation, one or more
+ * [hard constraints](@ref window_hints_hard) did not match any of the
+ * available pixel formats. If your application is sufficiently flexible,
+ * downgrade your requirements and try again. Otherwise, inform the user that
+ * their machine does not match your requirements.
+ *
+ * @par
+ * If emitted when querying the clipboard, ignore the error or report it to
+ * the user, as appropriate.
+ */
+#define GLFW_FORMAT_UNAVAILABLE 0x00010009
+ /*! @brief The specified window does not have an OpenGL or OpenGL ES context.
+ *
+ * A window that does not have an OpenGL or OpenGL ES context was passed to
+ * a function that requires it to have one.
+ *
+ * @analysis Application programmer error. Fix the offending call.
+ */
+#define GLFW_NO_WINDOW_CONTEXT 0x0001000A
+ /*! @brief The specified cursor shape is not available.
+ *
+ * The specified standard cursor shape is not available, either because the
+ * current platform cursor theme does not provide it or because it is not
+ * available on the platform.
+ *
+ * @analysis Platform or system settings limitation. Pick another
+ * [standard cursor shape](@ref shapes) or create a
+ * [custom cursor](@ref cursor_custom).
+ */
+#define GLFW_CURSOR_UNAVAILABLE 0x0001000B
+ /*! @brief The requested feature is not provided by the platform.
+ *
+ * The requested feature is not provided by the platform, so GLFW is unable to
+ * implement it. The documentation for each function notes if it could emit
+ * this error.
+ *
+ * @analysis Platform or platform version limitation. The error can be ignored
+ * unless the feature is critical to the application.
+ *
+ * @par
+ * A function call that emits this error has no effect other than the error and
+ * updating any existing out parameters.
+ */
+#define GLFW_FEATURE_UNAVAILABLE 0x0001000C
+ /*! @brief The requested feature is not implemented for the platform.
+ *
+ * The requested feature has not yet been implemented in GLFW for this platform.
+ *
+ * @analysis An incomplete implementation of GLFW for this platform, hopefully
+ * fixed in a future release. The error can be ignored unless the feature is
+ * critical to the application.
+ *
+ * @par
+ * A function call that emits this error has no effect other than the error and
+ * updating any existing out parameters.
+ */
+#define GLFW_FEATURE_UNIMPLEMENTED 0x0001000D
+ /*! @brief Platform unavailable or no matching platform was found.
+ *
+ * If emitted during initialization, no matching platform was found. If @ref
+ * GLFW_PLATFORM is set to `GLFW_ANY_PLATFORM`, GLFW could not detect any of the
+ * platforms supported by this library binary, except for the Null platform. If set to
+ * a specific platform, it is either not supported by this library binary or GLFW was not
+ * able to detect it.
+ *
+ * If emitted by a native access function, GLFW was initialized for a different platform
+ * than the function is for.
+ *
+ * @analysis Failure to detect any platform usually only happens on non-macOS Unix
+ * systems, either when no window system is running or the program was run from
+ * a terminal that does not have the necessary environment variables. Fall back to
+ * a different platform if possible or notify the user that no usable platform was
+ * detected.
+ *
+ * Failure to detect a specific platform may have the same cause as above or be because
+ * support for that platform was not compiled in. Call @ref glfwPlatformSupported to
+ * check whether a specific platform is supported by a library binary.
+ */
+#define GLFW_PLATFORM_UNAVAILABLE 0x0001000E
+ /*! @} */
+
+ /*! @addtogroup window
+ * @{ */
+ /*! @brief Input focus window hint and attribute
+ *
+ * Input focus [window hint](@ref GLFW_FOCUSED_hint) or
+ * [window attribute](@ref GLFW_FOCUSED_attrib).
+ */
+#define GLFW_FOCUSED 0x00020001
+ /*! @brief Window iconification window attribute
+ *
+ * Window iconification [window attribute](@ref GLFW_ICONIFIED_attrib).
+ */
+#define GLFW_ICONIFIED 0x00020002
+ /*! @brief Window resize-ability window hint and attribute
+ *
+ * Window resize-ability [window hint](@ref GLFW_RESIZABLE_hint) and
+ * [window attribute](@ref GLFW_RESIZABLE_attrib).
+ */
+#define GLFW_RESIZABLE 0x00020003
+ /*! @brief Window visibility window hint and attribute
+ *
+ * Window visibility [window hint](@ref GLFW_VISIBLE_hint) and
+ * [window attribute](@ref GLFW_VISIBLE_attrib).
+ */
+#define GLFW_VISIBLE 0x00020004
+ /*! @brief Window decoration window hint and attribute
+ *
+ * Window decoration [window hint](@ref GLFW_DECORATED_hint) and
+ * [window attribute](@ref GLFW_DECORATED_attrib).
+ */
+#define GLFW_DECORATED 0x00020005
+ /*! @brief Window auto-iconification window hint and attribute
+ *
+ * Window auto-iconification [window hint](@ref GLFW_AUTO_ICONIFY_hint) and
+ * [window attribute](@ref GLFW_AUTO_ICONIFY_attrib).
+ */
+#define GLFW_AUTO_ICONIFY 0x00020006
+ /*! @brief Window decoration window hint and attribute
+ *
+ * Window decoration [window hint](@ref GLFW_FLOATING_hint) and
+ * [window attribute](@ref GLFW_FLOATING_attrib).
+ */
+#define GLFW_FLOATING 0x00020007
+ /*! @brief Window maximization window hint and attribute
+ *
+ * Window maximization [window hint](@ref GLFW_MAXIMIZED_hint) and
+ * [window attribute](@ref GLFW_MAXIMIZED_attrib).
+ */
+#define GLFW_MAXIMIZED 0x00020008
+ /*! @brief Cursor centering window hint
+ *
+ * Cursor centering [window hint](@ref GLFW_CENTER_CURSOR_hint).
+ */
+#define GLFW_CENTER_CURSOR 0x00020009
+ /*! @brief Window framebuffer transparency hint and attribute
+ *
+ * Window framebuffer transparency
+ * [window hint](@ref GLFW_TRANSPARENT_FRAMEBUFFER_hint) and
+ * [window attribute](@ref GLFW_TRANSPARENT_FRAMEBUFFER_attrib).
+ */
+#define GLFW_TRANSPARENT_FRAMEBUFFER 0x0002000A
+ /*! @brief Mouse cursor hover window attribute.
+ *
+ * Mouse cursor hover [window attribute](@ref GLFW_HOVERED_attrib).
+ */
+#define GLFW_HOVERED 0x0002000B
+ /*! @brief Input focus on calling show window hint and attribute
+ *
+ * Input focus [window hint](@ref GLFW_FOCUS_ON_SHOW_hint) or
+ * [window attribute](@ref GLFW_FOCUS_ON_SHOW_attrib).
+ */
+#define GLFW_FOCUS_ON_SHOW 0x0002000C
+
+ /*! @brief Mouse input transparency window hint and attribute
+ *
+ * Mouse input transparency [window hint](@ref GLFW_MOUSE_PASSTHROUGH_hint) or
+ * [window attribute](@ref GLFW_MOUSE_PASSTHROUGH_attrib).
+ */
+#define GLFW_MOUSE_PASSTHROUGH 0x0002000D
+
+ /*! @brief Initial position x-coordinate window hint.
+ *
+ * Initial position x-coordinate [window hint](@ref GLFW_POSITION_X).
+ */
+#define GLFW_POSITION_X 0x0002000E
+
+ /*! @brief Initial position y-coordinate window hint.
+ *
+ * Initial position y-coordinate [window hint](@ref GLFW_POSITION_Y).
+ */
+#define GLFW_POSITION_Y 0x0002000F
+
+ /*! @brief Framebuffer bit depth hint.
+ *
+ * Framebuffer bit depth [hint](@ref GLFW_RED_BITS).
+ */
+#define GLFW_RED_BITS 0x00021001
+ /*! @brief Framebuffer bit depth hint.
+ *
+ * Framebuffer bit depth [hint](@ref GLFW_GREEN_BITS).
+ */
+#define GLFW_GREEN_BITS 0x00021002
+ /*! @brief Framebuffer bit depth hint.
+ *
+ * Framebuffer bit depth [hint](@ref GLFW_BLUE_BITS).
+ */
+#define GLFW_BLUE_BITS 0x00021003
+ /*! @brief Framebuffer bit depth hint.
+ *
+ * Framebuffer bit depth [hint](@ref GLFW_ALPHA_BITS).
+ */
+#define GLFW_ALPHA_BITS 0x00021004
+ /*! @brief Framebuffer bit depth hint.
+ *
+ * Framebuffer bit depth [hint](@ref GLFW_DEPTH_BITS).
+ */
+#define GLFW_DEPTH_BITS 0x00021005
+ /*! @brief Framebuffer bit depth hint.
+ *
+ * Framebuffer bit depth [hint](@ref GLFW_STENCIL_BITS).
+ */
+#define GLFW_STENCIL_BITS 0x00021006
+ /*! @brief Framebuffer bit depth hint.
+ *
+ * Framebuffer bit depth [hint](@ref GLFW_ACCUM_RED_BITS).
+ */
+#define GLFW_ACCUM_RED_BITS 0x00021007
+ /*! @brief Framebuffer bit depth hint.
+ *
+ * Framebuffer bit depth [hint](@ref GLFW_ACCUM_GREEN_BITS).
+ */
+#define GLFW_ACCUM_GREEN_BITS 0x00021008
+ /*! @brief Framebuffer bit depth hint.
+ *
+ * Framebuffer bit depth [hint](@ref GLFW_ACCUM_BLUE_BITS).
+ */
+#define GLFW_ACCUM_BLUE_BITS 0x00021009
+ /*! @brief Framebuffer bit depth hint.
+ *
+ * Framebuffer bit depth [hint](@ref GLFW_ACCUM_ALPHA_BITS).
+ */
+#define GLFW_ACCUM_ALPHA_BITS 0x0002100A
+ /*! @brief Framebuffer auxiliary buffer hint.
+ *
+ * Framebuffer auxiliary buffer [hint](@ref GLFW_AUX_BUFFERS).
+ */
+#define GLFW_AUX_BUFFERS 0x0002100B
+ /*! @brief OpenGL stereoscopic rendering hint.
+ *
+ * OpenGL stereoscopic rendering [hint](@ref GLFW_STEREO).
+ */
+#define GLFW_STEREO 0x0002100C
+ /*! @brief Framebuffer MSAA samples hint.
+ *
+ * Framebuffer MSAA samples [hint](@ref GLFW_SAMPLES).
+ */
+#define GLFW_SAMPLES 0x0002100D
+ /*! @brief Framebuffer sRGB hint.
+ *
+ * Framebuffer sRGB [hint](@ref GLFW_SRGB_CAPABLE).
+ */
+#define GLFW_SRGB_CAPABLE 0x0002100E
+ /*! @brief Monitor refresh rate hint.
+ *
+ * Monitor refresh rate [hint](@ref GLFW_REFRESH_RATE).
+ */
+#define GLFW_REFRESH_RATE 0x0002100F
+ /*! @brief Framebuffer double buffering hint and attribute.
+ *
+ * Framebuffer double buffering [hint](@ref GLFW_DOUBLEBUFFER_hint) and
+ * [attribute](@ref GLFW_DOUBLEBUFFER_attrib).
+ */
+#define GLFW_DOUBLEBUFFER 0x00021010
+
+ /*! @brief Context client API hint and attribute.
+ *
+ * Context client API [hint](@ref GLFW_CLIENT_API_hint) and
+ * [attribute](@ref GLFW_CLIENT_API_attrib).
+ */
+#define GLFW_CLIENT_API 0x00022001
+ /*! @brief Context client API major version hint and attribute.
+ *
+ * Context client API major version [hint](@ref GLFW_CONTEXT_VERSION_MAJOR_hint)
+ * and [attribute](@ref GLFW_CONTEXT_VERSION_MAJOR_attrib).
+ */
+#define GLFW_CONTEXT_VERSION_MAJOR 0x00022002
+ /*! @brief Context client API minor version hint and attribute.
+ *
+ * Context client API minor version [hint](@ref GLFW_CONTEXT_VERSION_MINOR_hint)
+ * and [attribute](@ref GLFW_CONTEXT_VERSION_MINOR_attrib).
+ */
+#define GLFW_CONTEXT_VERSION_MINOR 0x00022003
+ /*! @brief Context client API revision number attribute.
+ *
+ * Context client API revision number
+ * [attribute](@ref GLFW_CONTEXT_REVISION_attrib).
+ */
+#define GLFW_CONTEXT_REVISION 0x00022004
+ /*! @brief Context robustness hint and attribute.
+ *
+ * Context client API revision number [hint](@ref GLFW_CONTEXT_ROBUSTNESS_hint)
+ * and [attribute](@ref GLFW_CONTEXT_ROBUSTNESS_attrib).
+ */
+#define GLFW_CONTEXT_ROBUSTNESS 0x00022005
+ /*! @brief OpenGL forward-compatibility hint and attribute.
+ *
+ * OpenGL forward-compatibility [hint](@ref GLFW_OPENGL_FORWARD_COMPAT_hint)
+ * and [attribute](@ref GLFW_OPENGL_FORWARD_COMPAT_attrib).
+ */
+#define GLFW_OPENGL_FORWARD_COMPAT 0x00022006
+ /*! @brief Debug mode context hint and attribute.
+ *
+ * Debug mode context [hint](@ref GLFW_CONTEXT_DEBUG_hint) and
+ * [attribute](@ref GLFW_CONTEXT_DEBUG_attrib).
+ */
+#define GLFW_CONTEXT_DEBUG 0x00022007
+ /*! @brief Legacy name for compatibility.
+ *
+ * This is an alias for compatibility with earlier versions.
+ */
+#define GLFW_OPENGL_DEBUG_CONTEXT GLFW_CONTEXT_DEBUG
+ /*! @brief OpenGL profile hint and attribute.
+ *
+ * OpenGL profile [hint](@ref GLFW_OPENGL_PROFILE_hint) and
+ * [attribute](@ref GLFW_OPENGL_PROFILE_attrib).
+ */
+#define GLFW_OPENGL_PROFILE 0x00022008
+ /*! @brief Context flush-on-release hint and attribute.
+ *
+ * Context flush-on-release [hint](@ref GLFW_CONTEXT_RELEASE_BEHAVIOR_hint) and
+ * [attribute](@ref GLFW_CONTEXT_RELEASE_BEHAVIOR_attrib).
+ */
+#define GLFW_CONTEXT_RELEASE_BEHAVIOR 0x00022009
+ /*! @brief Context error suppression hint and attribute.
+ *
+ * Context error suppression [hint](@ref GLFW_CONTEXT_NO_ERROR_hint) and
+ * [attribute](@ref GLFW_CONTEXT_NO_ERROR_attrib).
+ */
+#define GLFW_CONTEXT_NO_ERROR 0x0002200A
+ /*! @brief Context creation API hint and attribute.
+ *
+ * Context creation API [hint](@ref GLFW_CONTEXT_CREATION_API_hint) and
+ * [attribute](@ref GLFW_CONTEXT_CREATION_API_attrib).
+ */
+#define GLFW_CONTEXT_CREATION_API 0x0002200B
+ /*! @brief Window content area scaling window
+ * [window hint](@ref GLFW_SCALE_TO_MONITOR).
+ */
+#define GLFW_SCALE_TO_MONITOR 0x0002200C
+ /*! @brief macOS specific
+ * [window hint](@ref GLFW_COCOA_RETINA_FRAMEBUFFER_hint).
+ */
+#define GLFW_COCOA_RETINA_FRAMEBUFFER 0x00023001
+ /*! @brief macOS specific
+ * [window hint](@ref GLFW_COCOA_FRAME_NAME_hint).
+ */
+#define GLFW_COCOA_FRAME_NAME 0x00023002
+ /*! @brief macOS specific
+ * [window hint](@ref GLFW_COCOA_GRAPHICS_SWITCHING_hint).
+ */
+#define GLFW_COCOA_GRAPHICS_SWITCHING 0x00023003
+ /*! @brief X11 specific
+ * [window hint](@ref GLFW_X11_CLASS_NAME_hint).
+ */
+#define GLFW_X11_CLASS_NAME 0x00024001
+ /*! @brief X11 specific
+ * [window hint](@ref GLFW_X11_CLASS_NAME_hint).
+ */
+#define GLFW_X11_INSTANCE_NAME 0x00024002
+#define GLFW_WIN32_KEYBOARD_MENU 0x00025001
+ /*! @brief Wayland specific
+ * [window hint](@ref GLFW_WAYLAND_APP_ID_hint).
+ *
+ * Allows specification of the Wayland app_id.
+ */
+#define GLFW_WAYLAND_APP_ID 0x00026001
+ /*! @} */
+
+#define GLFW_NO_API 0
+#define GLFW_OPENGL_API 0x00030001
+#define GLFW_OPENGL_ES_API 0x00030002
+
+#define GLFW_NO_ROBUSTNESS 0
+#define GLFW_NO_RESET_NOTIFICATION 0x00031001
+#define GLFW_LOSE_CONTEXT_ON_RESET 0x00031002
+
+#define GLFW_OPENGL_ANY_PROFILE 0
+#define GLFW_OPENGL_CORE_PROFILE 0x00032001
+#define GLFW_OPENGL_COMPAT_PROFILE 0x00032002
+
+#define GLFW_CURSOR 0x00033001
+#define GLFW_STICKY_KEYS 0x00033002
+#define GLFW_STICKY_MOUSE_BUTTONS 0x00033003
+#define GLFW_LOCK_KEY_MODS 0x00033004
+#define GLFW_RAW_MOUSE_MOTION 0x00033005
+
+#define GLFW_CURSOR_NORMAL 0x00034001
+#define GLFW_CURSOR_HIDDEN 0x00034002
+#define GLFW_CURSOR_DISABLED 0x00034003
+#define GLFW_CURSOR_CAPTURED 0x00034004
+
+#define GLFW_ANY_RELEASE_BEHAVIOR 0
+#define GLFW_RELEASE_BEHAVIOR_FLUSH 0x00035001
+#define GLFW_RELEASE_BEHAVIOR_NONE 0x00035002
+
+#define GLFW_NATIVE_CONTEXT_API 0x00036001
+#define GLFW_EGL_CONTEXT_API 0x00036002
+#define GLFW_OSMESA_CONTEXT_API 0x00036003
+
+#define GLFW_ANGLE_PLATFORM_TYPE_NONE 0x00037001
+#define GLFW_ANGLE_PLATFORM_TYPE_OPENGL 0x00037002
+#define GLFW_ANGLE_PLATFORM_TYPE_OPENGLES 0x00037003
+#define GLFW_ANGLE_PLATFORM_TYPE_D3D9 0x00037004
+#define GLFW_ANGLE_PLATFORM_TYPE_D3D11 0x00037005
+#define GLFW_ANGLE_PLATFORM_TYPE_VULKAN 0x00037007
+#define GLFW_ANGLE_PLATFORM_TYPE_METAL 0x00037008
+
+#define GLFW_WAYLAND_PREFER_LIBDECOR 0x00038001
+#define GLFW_WAYLAND_DISABLE_LIBDECOR 0x00038002
+
+#define GLFW_ANY_POSITION 0x80000000
+
+/*! @defgroup shapes Standard cursor shapes
+ * @brief Standard system cursor shapes.
+ *
+ * These are the [standard cursor shapes](@ref cursor_standard) that can be
+ * requested from the platform (window system).
+ *
+ * @ingroup input
+ * @{ */
+
+ /*! @brief The regular arrow cursor shape.
+ *
+ * The regular arrow cursor shape.
+ */
+#define GLFW_ARROW_CURSOR 0x00036001
+ /*! @brief The text input I-beam cursor shape.
+ *
+ * The text input I-beam cursor shape.
+ */
+#define GLFW_IBEAM_CURSOR 0x00036002
+ /*! @brief The crosshair cursor shape.
+ *
+ * The crosshair cursor shape.
+ */
+#define GLFW_CROSSHAIR_CURSOR 0x00036003
+ /*! @brief The pointing hand cursor shape.
+ *
+ * The pointing hand cursor shape.
+ */
+#define GLFW_POINTING_HAND_CURSOR 0x00036004
+ /*! @brief The horizontal resize/move arrow shape.
+ *
+ * The horizontal resize/move arrow shape. This is usually a horizontal
+ * double-headed arrow.
+ */
+#define GLFW_RESIZE_EW_CURSOR 0x00036005
+ /*! @brief The vertical resize/move arrow shape.
+ *
+ * The vertical resize/move shape. This is usually a vertical double-headed
+ * arrow.
+ */
+#define GLFW_RESIZE_NS_CURSOR 0x00036006
+ /*! @brief The top-left to bottom-right diagonal resize/move arrow shape.
+ *
+ * The top-left to bottom-right diagonal resize/move shape. This is usually
+ * a diagonal double-headed arrow.
+ *
+ * @note @macos This shape is provided by a private system API and may fail
+ * with @ref GLFW_CURSOR_UNAVAILABLE in the future.
+ *
+ * @note @x11 This shape is provided by a newer standard not supported by all
+ * cursor themes.
+ *
+ * @note @wayland This shape is provided by a newer standard not supported by
+ * all cursor themes.
+ */
+#define GLFW_RESIZE_NWSE_CURSOR 0x00036007
+ /*! @brief The top-right to bottom-left diagonal resize/move arrow shape.
+ *
+ * The top-right to bottom-left diagonal resize/move shape. This is usually
+ * a diagonal double-headed arrow.
+ *
+ * @note @macos This shape is provided by a private system API and may fail
+ * with @ref GLFW_CURSOR_UNAVAILABLE in the future.
+ *
+ * @note @x11 This shape is provided by a newer standard not supported by all
+ * cursor themes.
+ *
+ * @note @wayland This shape is provided by a newer standard not supported by
+ * all cursor themes.
+ */
+#define GLFW_RESIZE_NESW_CURSOR 0x00036008
+ /*! @brief The omni-directional resize/move cursor shape.
+ *
+ * The omni-directional resize cursor/move shape. This is usually either
+ * a combined horizontal and vertical double-headed arrow or a grabbing hand.
+ */
+#define GLFW_RESIZE_ALL_CURSOR 0x00036009
+ /*! @brief The operation-not-allowed shape.
+ *
+ * The operation-not-allowed shape. This is usually a circle with a diagonal
+ * line through it.
+ *
+ * @note @x11 This shape is provided by a newer standard not supported by all
+ * cursor themes.
+ *
+ * @note @wayland This shape is provided by a newer standard not supported by
+ * all cursor themes.
+ */
+#define GLFW_NOT_ALLOWED_CURSOR 0x0003600A
+ /*! @brief Legacy name for compatibility.
+ *
+ * This is an alias for compatibility with earlier versions.
+ */
+#define GLFW_HRESIZE_CURSOR GLFW_RESIZE_EW_CURSOR
+ /*! @brief Legacy name for compatibility.
+ *
+ * This is an alias for compatibility with earlier versions.
+ */
+#define GLFW_VRESIZE_CURSOR GLFW_RESIZE_NS_CURSOR
+ /*! @brief Legacy name for compatibility.
+ *
+ * This is an alias for compatibility with earlier versions.
+ */
+#define GLFW_HAND_CURSOR GLFW_POINTING_HAND_CURSOR
+ /*! @} */
+
+#define GLFW_CONNECTED 0x00040001
+#define GLFW_DISCONNECTED 0x00040002
+
+/*! @addtogroup init
+ * @{ */
+ /*! @brief Joystick hat buttons init hint.
+ *
+ * Joystick hat buttons [init hint](@ref GLFW_JOYSTICK_HAT_BUTTONS).
+ */
+#define GLFW_JOYSTICK_HAT_BUTTONS 0x00050001
+ /*! @brief ANGLE rendering backend init hint.
+ *
+ * ANGLE rendering backend [init hint](@ref GLFW_ANGLE_PLATFORM_TYPE_hint).
+ */
+#define GLFW_ANGLE_PLATFORM_TYPE 0x00050002
+ /*! @brief Platform selection init hint.
+ *
+ * Platform selection [init hint](@ref GLFW_PLATFORM).
+ */
+#define GLFW_PLATFORM 0x00050003
+ /*! @brief macOS specific init hint.
+ *
+ * macOS specific [init hint](@ref GLFW_COCOA_CHDIR_RESOURCES_hint).
+ */
+#define GLFW_COCOA_CHDIR_RESOURCES 0x00051001
+ /*! @brief macOS specific init hint.
+ *
+ * macOS specific [init hint](@ref GLFW_COCOA_MENUBAR_hint).
+ */
+#define GLFW_COCOA_MENUBAR 0x00051002
+ /*! @brief X11 specific init hint.
+ *
+ * X11 specific [init hint](@ref GLFW_X11_XCB_VULKAN_SURFACE_hint).
+ */
+#define GLFW_X11_XCB_VULKAN_SURFACE 0x00052001
+ /*! @brief Wayland specific init hint.
+ *
+ * Wayland specific [init hint](@ref GLFW_WAYLAND_LIBDECOR_hint).
+ */
+#define GLFW_WAYLAND_LIBDECOR 0x00053001
+ /*! @} */
+
+ /*! @addtogroup init
+ * @{ */
+ /*! @brief Hint value that enables automatic platform selection.
+ *
+ * Hint value for @ref GLFW_PLATFORM that enables automatic platform selection.
+ */
+#define GLFW_ANY_PLATFORM 0x00060000
+#define GLFW_PLATFORM_WIN32 0x00060001
+#define GLFW_PLATFORM_COCOA 0x00060002
+#define GLFW_PLATFORM_WAYLAND 0x00060003
+#define GLFW_PLATFORM_X11 0x00060004
+#define GLFW_PLATFORM_NULL 0x00060005
+ /*! @} */
+
+#define GLFW_DONT_CARE -1
+
+
+/*************************************************************************
+ * GLFW API types
+ *************************************************************************/
+
+ /*! @brief Client API function pointer type.
+ *
+ * Generic function pointer used for returning client API function pointers
+ * without forcing a cast from a regular pointer.
+ *
+ * @sa @ref context_glext
+ * @sa @ref glfwGetProcAddress
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup context
+ */
+ typedef void (*GLFWglproc)(void);
+
+ /*! @brief Vulkan API function pointer type.
+ *
+ * Generic function pointer used for returning Vulkan API function pointers
+ * without forcing a cast from a regular pointer.
+ *
+ * @sa @ref vulkan_proc
+ * @sa @ref glfwGetInstanceProcAddress
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup vulkan
+ */
+ typedef void (*GLFWvkproc)(void);
+
+ /*! @brief Opaque monitor object.
+ *
+ * Opaque monitor object.
+ *
+ * @see @ref monitor_object
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup monitor
+ */
+ typedef struct GLFWmonitor GLFWmonitor;
+
+ /*! @brief Opaque window object.
+ *
+ * Opaque window object.
+ *
+ * @see @ref window_object
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ typedef struct GLFWwindow GLFWwindow;
+
+ /*! @brief Opaque cursor object.
+ *
+ * Opaque cursor object.
+ *
+ * @see @ref cursor_object
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup input
+ */
+ typedef struct GLFWcursor GLFWcursor;
+
+ /*! @brief The function pointer type for memory allocation callbacks.
+ *
+ * This is the function pointer type for memory allocation callbacks. A memory
+ * allocation callback function has the following signature:
+ * @code
+ * void* function_name(size_t size, void* user)
+ * @endcode
+ *
+ * This function must return either a memory block at least `size` bytes long,
+ * or `NULL` if allocation failed. Note that not all parts of GLFW handle allocation
+ * failures gracefully yet.
+ *
+ * This function may be called during @ref glfwInit but before the library is
+ * flagged as initialized, as well as during @ref glfwTerminate after the
+ * library is no longer flagged as initialized.
+ *
+ * Any memory allocated by this function will be deallocated during library
+ * termination or earlier.
+ *
+ * The size will always be greater than zero. Allocations of size zero are filtered out
+ * before reaching the custom allocator.
+ *
+ * @param[in] size The minimum size, in bytes, of the memory block.
+ * @param[in] user The user-defined pointer from the allocator.
+ * @return The address of the newly allocated memory block, or `NULL` if an
+ * error occurred.
+ *
+ * @pointer_lifetime The returned memory block must be valid at least until it
+ * is deallocated.
+ *
+ * @reentrancy This function should not call any GLFW function.
+ *
+ * @thread_safety This function may be called from any thread that calls GLFW functions.
+ *
+ * @sa @ref init_allocator
+ * @sa @ref GLFWallocator
+ *
+ * @since Added in version 3.4.
+ *
+ * @ingroup init
+ */
+ typedef void* (*GLFWallocatefun)(size_t size, void* user);
+
+ /*! @brief The function pointer type for memory reallocation callbacks.
+ *
+ * This is the function pointer type for memory reallocation callbacks.
+ * A memory reallocation callback function has the following signature:
+ * @code
+ * void* function_name(void* block, size_t size, void* user)
+ * @endcode
+ *
+ * This function must return a memory block at least `size` bytes long, or
+ * `NULL` if allocation failed. Note that not all parts of GLFW handle allocation
+ * failures gracefully yet.
+ *
+ * This function may be called during @ref glfwInit but before the library is
+ * flagged as initialized, as well as during @ref glfwTerminate after the
+ * library is no longer flagged as initialized.
+ *
+ * Any memory allocated by this function will be deallocated during library
+ * termination or earlier.
+ *
+ * The block address will never be `NULL` and the size will always be greater than zero.
+ * Reallocations of a block to size zero are converted into deallocations. Reallocations
+ * of `NULL` to a non-zero size are converted into regular allocations.
+ *
+ * @param[in] block The address of the memory block to reallocate.
+ * @param[in] size The new minimum size, in bytes, of the memory block.
+ * @param[in] user The user-defined pointer from the allocator.
+ * @return The address of the newly allocated or resized memory block, or
+ * `NULL` if an error occurred.
+ *
+ * @pointer_lifetime The returned memory block must be valid at least until it
+ * is deallocated.
+ *
+ * @reentrancy This function should not call any GLFW function.
+ *
+ * @thread_safety This function may be called from any thread that calls GLFW functions.
+ *
+ * @sa @ref init_allocator
+ * @sa @ref GLFWallocator
+ *
+ * @since Added in version 3.4.
+ *
+ * @ingroup init
+ */
+ typedef void* (*GLFWreallocatefun)(void* block, size_t size, void* user);
+
+ /*! @brief The function pointer type for memory deallocation callbacks.
+ *
+ * This is the function pointer type for memory deallocation callbacks.
+ * A memory deallocation callback function has the following signature:
+ * @code
+ * void function_name(void* block, void* user)
+ * @endcode
+ *
+ * This function may deallocate the specified memory block. This memory block
+ * will have been allocated with the same allocator.
+ *
+ * This function may be called during @ref glfwInit but before the library is
+ * flagged as initialized, as well as during @ref glfwTerminate after the
+ * library is no longer flagged as initialized.
+ *
+ * The block address will never be `NULL`. Deallocations of `NULL` are filtered out
+ * before reaching the custom allocator.
+ *
+ * @param[in] block The address of the memory block to deallocate.
+ * @param[in] user The user-defined pointer from the allocator.
+ *
+ * @pointer_lifetime The specified memory block will not be accessed by GLFW
+ * after this function is called.
+ *
+ * @reentrancy This function should not call any GLFW function.
+ *
+ * @thread_safety This function may be called from any thread that calls GLFW functions.
+ *
+ * @sa @ref init_allocator
+ * @sa @ref GLFWallocator
+ *
+ * @since Added in version 3.4.
+ *
+ * @ingroup init
+ */
+ typedef void (*GLFWdeallocatefun)(void* block, void* user);
+
+ /*! @brief The function pointer type for error callbacks.
+ *
+ * This is the function pointer type for error callbacks. An error callback
+ * function has the following signature:
+ * @code
+ * void callback_name(int error_code, const char* description)
+ * @endcode
+ *
+ * @param[in] error_code An [error code](@ref errors). Future releases may add
+ * more error codes.
+ * @param[in] description A UTF-8 encoded string describing the error.
+ *
+ * @pointer_lifetime The error description string is valid until the callback
+ * function returns.
+ *
+ * @sa @ref error_handling
+ * @sa @ref glfwSetErrorCallback
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup init
+ */
+ typedef void (*GLFWerrorfun)(int error_code, const char* description);
+
+ /*! @brief The function pointer type for window position callbacks.
+ *
+ * This is the function pointer type for window position callbacks. A window
+ * position callback function has the following signature:
+ * @code
+ * void callback_name(GLFWwindow* window, int xpos, int ypos)
+ * @endcode
+ *
+ * @param[in] window The window that was moved.
+ * @param[in] xpos The new x-coordinate, in screen coordinates, of the
+ * upper-left corner of the content area of the window.
+ * @param[in] ypos The new y-coordinate, in screen coordinates, of the
+ * upper-left corner of the content area of the window.
+ *
+ * @sa @ref window_pos
+ * @sa @ref glfwSetWindowPosCallback
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ typedef void (*GLFWwindowposfun)(GLFWwindow* window, int xpos, int ypos);
+
+ /*! @brief The function pointer type for window size callbacks.
+ *
+ * This is the function pointer type for window size callbacks. A window size
+ * callback function has the following signature:
+ * @code
+ * void callback_name(GLFWwindow* window, int width, int height)
+ * @endcode
+ *
+ * @param[in] window The window that was resized.
+ * @param[in] width The new width, in screen coordinates, of the window.
+ * @param[in] height The new height, in screen coordinates, of the window.
+ *
+ * @sa @ref window_size
+ * @sa @ref glfwSetWindowSizeCallback
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Added window handle parameter.
+ *
+ * @ingroup window
+ */
+ typedef void (*GLFWwindowsizefun)(GLFWwindow* window, int width, int height);
+
+ /*! @brief The function pointer type for window close callbacks.
+ *
+ * This is the function pointer type for window close callbacks. A window
+ * close callback function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window)
+ * @endcode
+ *
+ * @param[in] window The window that the user attempted to close.
+ *
+ * @sa @ref window_close
+ * @sa @ref glfwSetWindowCloseCallback
+ *
+ * @since Added in version 2.5.
+ * @glfw3 Added window handle parameter.
+ *
+ * @ingroup window
+ */
+ typedef void (*GLFWwindowclosefun)(GLFWwindow* window);
+
+ /*! @brief The function pointer type for window content refresh callbacks.
+ *
+ * This is the function pointer type for window content refresh callbacks.
+ * A window content refresh callback function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window);
+ * @endcode
+ *
+ * @param[in] window The window whose content needs to be refreshed.
+ *
+ * @sa @ref window_refresh
+ * @sa @ref glfwSetWindowRefreshCallback
+ *
+ * @since Added in version 2.5.
+ * @glfw3 Added window handle parameter.
+ *
+ * @ingroup window
+ */
+ typedef void (*GLFWwindowrefreshfun)(GLFWwindow* window);
+
+ /*! @brief The function pointer type for window focus callbacks.
+ *
+ * This is the function pointer type for window focus callbacks. A window
+ * focus callback function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window, int focused)
+ * @endcode
+ *
+ * @param[in] window The window that gained or lost input focus.
+ * @param[in] focused `GLFW_TRUE` if the window was given input focus, or
+ * `GLFW_FALSE` if it lost it.
+ *
+ * @sa @ref window_focus
+ * @sa @ref glfwSetWindowFocusCallback
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ typedef void (*GLFWwindowfocusfun)(GLFWwindow* window, int focused);
+
+ /*! @brief The function pointer type for window iconify callbacks.
+ *
+ * This is the function pointer type for window iconify callbacks. A window
+ * iconify callback function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window, int iconified)
+ * @endcode
+ *
+ * @param[in] window The window that was iconified or restored.
+ * @param[in] iconified `GLFW_TRUE` if the window was iconified, or
+ * `GLFW_FALSE` if it was restored.
+ *
+ * @sa @ref window_iconify
+ * @sa @ref glfwSetWindowIconifyCallback
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ typedef void (*GLFWwindowiconifyfun)(GLFWwindow* window, int iconified);
+
+ /*! @brief The function pointer type for window maximize callbacks.
+ *
+ * This is the function pointer type for window maximize callbacks. A window
+ * maximize callback function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window, int maximized)
+ * @endcode
+ *
+ * @param[in] window The window that was maximized or restored.
+ * @param[in] maximized `GLFW_TRUE` if the window was maximized, or
+ * `GLFW_FALSE` if it was restored.
+ *
+ * @sa @ref window_maximize
+ * @sa glfwSetWindowMaximizeCallback
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup window
+ */
+ typedef void (*GLFWwindowmaximizefun)(GLFWwindow* window, int maximized);
+
+ /*! @brief The function pointer type for framebuffer size callbacks.
+ *
+ * This is the function pointer type for framebuffer size callbacks.
+ * A framebuffer size callback function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window, int width, int height)
+ * @endcode
+ *
+ * @param[in] window The window whose framebuffer was resized.
+ * @param[in] width The new width, in pixels, of the framebuffer.
+ * @param[in] height The new height, in pixels, of the framebuffer.
+ *
+ * @sa @ref window_fbsize
+ * @sa @ref glfwSetFramebufferSizeCallback
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ typedef void (*GLFWframebuffersizefun)(GLFWwindow* window, int width, int height);
+
+ /*! @brief The function pointer type for window content scale callbacks.
+ *
+ * This is the function pointer type for window content scale callbacks.
+ * A window content scale callback function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window, float xscale, float yscale)
+ * @endcode
+ *
+ * @param[in] window The window whose content scale changed.
+ * @param[in] xscale The new x-axis content scale of the window.
+ * @param[in] yscale The new y-axis content scale of the window.
+ *
+ * @sa @ref window_scale
+ * @sa @ref glfwSetWindowContentScaleCallback
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup window
+ */
+ typedef void (*GLFWwindowcontentscalefun)(GLFWwindow* window, float xscale, float yscale);
+
+ /*! @brief The function pointer type for mouse button callbacks.
+ *
+ * This is the function pointer type for mouse button callback functions.
+ * A mouse button callback function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window, int button, int action, int mods)
+ * @endcode
+ *
+ * @param[in] window The window that received the event.
+ * @param[in] button The [mouse button](@ref buttons) that was pressed or
+ * released.
+ * @param[in] action One of `GLFW_PRESS` or `GLFW_RELEASE`. Future releases
+ * may add more actions.
+ * @param[in] mods Bit field describing which [modifier keys](@ref mods) were
+ * held down.
+ *
+ * @sa @ref input_mouse_button
+ * @sa @ref glfwSetMouseButtonCallback
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Added window handle and modifier mask parameters.
+ *
+ * @ingroup input
+ */
+ typedef void (*GLFWmousebuttonfun)(GLFWwindow* window, int button, int action, int mods);
+
+ /*! @brief The function pointer type for cursor position callbacks.
+ *
+ * This is the function pointer type for cursor position callbacks. A cursor
+ * position callback function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window, double xpos, double ypos);
+ * @endcode
+ *
+ * @param[in] window The window that received the event.
+ * @param[in] xpos The new cursor x-coordinate, relative to the left edge of
+ * the content area.
+ * @param[in] ypos The new cursor y-coordinate, relative to the top edge of the
+ * content area.
+ *
+ * @sa @ref cursor_pos
+ * @sa @ref glfwSetCursorPosCallback
+ *
+ * @since Added in version 3.0. Replaces `GLFWmouseposfun`.
+ *
+ * @ingroup input
+ */
+ typedef void (*GLFWcursorposfun)(GLFWwindow* window, double xpos, double ypos);
+
+ /*! @brief The function pointer type for cursor enter/leave callbacks.
+ *
+ * This is the function pointer type for cursor enter/leave callbacks.
+ * A cursor enter/leave callback function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window, int entered)
+ * @endcode
+ *
+ * @param[in] window The window that received the event.
+ * @param[in] entered `GLFW_TRUE` if the cursor entered the window's content
+ * area, or `GLFW_FALSE` if it left it.
+ *
+ * @sa @ref cursor_enter
+ * @sa @ref glfwSetCursorEnterCallback
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup input
+ */
+ typedef void (*GLFWcursorenterfun)(GLFWwindow* window, int entered);
+
+ /*! @brief The function pointer type for scroll callbacks.
+ *
+ * This is the function pointer type for scroll callbacks. A scroll callback
+ * function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window, double xoffset, double yoffset)
+ * @endcode
+ *
+ * @param[in] window The window that received the event.
+ * @param[in] xoffset The scroll offset along the x-axis.
+ * @param[in] yoffset The scroll offset along the y-axis.
+ *
+ * @sa @ref scrolling
+ * @sa @ref glfwSetScrollCallback
+ *
+ * @since Added in version 3.0. Replaces `GLFWmousewheelfun`.
+ *
+ * @ingroup input
+ */
+ typedef void (*GLFWscrollfun)(GLFWwindow* window, double xoffset, double yoffset);
+
+ /*! @brief The function pointer type for keyboard key callbacks.
+ *
+ * This is the function pointer type for keyboard key callbacks. A keyboard
+ * key callback function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window, int key, int scancode, int action, int mods)
+ * @endcode
+ *
+ * @param[in] window The window that received the event.
+ * @param[in] key The [keyboard key](@ref keys) that was pressed or released.
+ * @param[in] scancode The platform-specific scancode of the key.
+ * @param[in] action `GLFW_PRESS`, `GLFW_RELEASE` or `GLFW_REPEAT`. Future
+ * releases may add more actions.
+ * @param[in] mods Bit field describing which [modifier keys](@ref mods) were
+ * held down.
+ *
+ * @sa @ref input_key
+ * @sa @ref glfwSetKeyCallback
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Added window handle, scancode and modifier mask parameters.
+ *
+ * @ingroup input
+ */
+ typedef void (*GLFWkeyfun)(GLFWwindow* window, int key, int scancode, int action, int mods);
+
+ /*! @brief The function pointer type for Unicode character callbacks.
+ *
+ * This is the function pointer type for Unicode character callbacks.
+ * A Unicode character callback function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window, unsigned int codepoint)
+ * @endcode
+ *
+ * @param[in] window The window that received the event.
+ * @param[in] codepoint The Unicode code point of the character.
+ *
+ * @sa @ref input_char
+ * @sa @ref glfwSetCharCallback
+ *
+ * @since Added in version 2.4.
+ * @glfw3 Added window handle parameter.
+ *
+ * @ingroup input
+ */
+ typedef void (*GLFWcharfun)(GLFWwindow* window, unsigned int codepoint);
+
+ /*! @brief The function pointer type for Unicode character with modifiers
+ * callbacks.
+ *
+ * This is the function pointer type for Unicode character with modifiers
+ * callbacks. It is called for each input character, regardless of what
+ * modifier keys are held down. A Unicode character with modifiers callback
+ * function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window, unsigned int codepoint, int mods)
+ * @endcode
+ *
+ * @param[in] window The window that received the event.
+ * @param[in] codepoint The Unicode code point of the character.
+ * @param[in] mods Bit field describing which [modifier keys](@ref mods) were
+ * held down.
+ *
+ * @sa @ref input_char
+ * @sa @ref glfwSetCharModsCallback
+ *
+ * @deprecated Scheduled for removal in version 4.0.
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup input
+ */
+ typedef void (*GLFWcharmodsfun)(GLFWwindow* window, unsigned int codepoint, int mods);
+
+ /*! @brief The function pointer type for path drop callbacks.
+ *
+ * This is the function pointer type for path drop callbacks. A path drop
+ * callback function has the following signature:
+ * @code
+ * void function_name(GLFWwindow* window, int path_count, const char* paths[])
+ * @endcode
+ *
+ * @param[in] window The window that received the event.
+ * @param[in] path_count The number of dropped paths.
+ * @param[in] paths The UTF-8 encoded file and/or directory path names.
+ *
+ * @pointer_lifetime The path array and its strings are valid until the
+ * callback function returns.
+ *
+ * @sa @ref path_drop
+ * @sa @ref glfwSetDropCallback
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup input
+ */
+ typedef void (*GLFWdropfun)(GLFWwindow* window, int path_count, const char* paths[]);
+
+ /*! @brief The function pointer type for monitor configuration callbacks.
+ *
+ * This is the function pointer type for monitor configuration callbacks.
+ * A monitor callback function has the following signature:
+ * @code
+ * void function_name(GLFWmonitor* monitor, int event)
+ * @endcode
+ *
+ * @param[in] monitor The monitor that was connected or disconnected.
+ * @param[in] event One of `GLFW_CONNECTED` or `GLFW_DISCONNECTED`. Future
+ * releases may add more events.
+ *
+ * @sa @ref monitor_event
+ * @sa @ref glfwSetMonitorCallback
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup monitor
+ */
+ typedef void (*GLFWmonitorfun)(GLFWmonitor* monitor, int event);
+
+ /*! @brief The function pointer type for joystick configuration callbacks.
+ *
+ * This is the function pointer type for joystick configuration callbacks.
+ * A joystick configuration callback function has the following signature:
+ * @code
+ * void function_name(int jid, int event)
+ * @endcode
+ *
+ * @param[in] jid The joystick that was connected or disconnected.
+ * @param[in] event One of `GLFW_CONNECTED` or `GLFW_DISCONNECTED`. Future
+ * releases may add more events.
+ *
+ * @sa @ref joystick_event
+ * @sa @ref glfwSetJoystickCallback
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup input
+ */
+ typedef void (*GLFWjoystickfun)(int jid, int event);
+
+ /*! @brief Video mode type.
+ *
+ * This describes a single video mode.
+ *
+ * @sa @ref monitor_modes
+ * @sa @ref glfwGetVideoMode
+ * @sa @ref glfwGetVideoModes
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Added refresh rate member.
+ *
+ * @ingroup monitor
+ */
+ typedef struct GLFWvidmode
+ {
+ /*! The width, in screen coordinates, of the video mode.
+ */
+ int width;
+ /*! The height, in screen coordinates, of the video mode.
+ */
+ int height;
+ /*! The bit depth of the red channel of the video mode.
+ */
+ int redBits;
+ /*! The bit depth of the green channel of the video mode.
+ */
+ int greenBits;
+ /*! The bit depth of the blue channel of the video mode.
+ */
+ int blueBits;
+ /*! The refresh rate, in Hz, of the video mode.
+ */
+ int refreshRate;
+ } GLFWvidmode;
+
+ /*! @brief Gamma ramp.
+ *
+ * This describes the gamma ramp for a monitor.
+ *
+ * @sa @ref monitor_gamma
+ * @sa @ref glfwGetGammaRamp
+ * @sa @ref glfwSetGammaRamp
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup monitor
+ */
+ typedef struct GLFWgammaramp
+ {
+ /*! An array of value describing the response of the red channel.
+ */
+ unsigned short* red;
+ /*! An array of value describing the response of the green channel.
+ */
+ unsigned short* green;
+ /*! An array of value describing the response of the blue channel.
+ */
+ unsigned short* blue;
+ /*! The number of elements in each array.
+ */
+ unsigned int size;
+ } GLFWgammaramp;
+
+ /*! @brief Image data.
+ *
+ * This describes a single 2D image. See the documentation for each related
+ * function what the expected pixel format is.
+ *
+ * @sa @ref cursor_custom
+ * @sa @ref window_icon
+ *
+ * @since Added in version 2.1.
+ * @glfw3 Removed format and bytes-per-pixel members.
+ *
+ * @ingroup window
+ */
+ typedef struct GLFWimage
+ {
+ /*! The width, in pixels, of this image.
+ */
+ int width;
+ /*! The height, in pixels, of this image.
+ */
+ int height;
+ /*! The pixel data of this image, arranged left-to-right, top-to-bottom.
+ */
+ unsigned char* pixels;
+ } GLFWimage;
+
+ /*! @brief Gamepad input state
+ *
+ * This describes the input state of a gamepad.
+ *
+ * @sa @ref gamepad
+ * @sa @ref glfwGetGamepadState
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup input
+ */
+ typedef struct GLFWgamepadstate
+ {
+ /*! The states of each [gamepad button](@ref gamepad_buttons), `GLFW_PRESS`
+ * or `GLFW_RELEASE`.
+ */
+ unsigned char buttons[15];
+ /*! The states of each [gamepad axis](@ref gamepad_axes), in the range -1.0
+ * to 1.0 inclusive.
+ */
+ float axes[6];
+ } GLFWgamepadstate;
+
+ /*! @brief
+ *
+ * @sa @ref init_allocator
+ * @sa @ref glfwInitAllocator
+ *
+ * @since Added in version 3.4.
+ *
+ * @ingroup init
+ */
+ typedef struct GLFWallocator
+ {
+ GLFWallocatefun allocate;
+ GLFWreallocatefun reallocate;
+ GLFWdeallocatefun deallocate;
+ void* user;
+ } GLFWallocator;
+
+
+ /*************************************************************************
+ * GLFW API functions
+ *************************************************************************/
+
+ /*! @brief Initializes the GLFW library.
+ *
+ * This function initializes the GLFW library. Before most GLFW functions can
+ * be used, GLFW must be initialized, and before an application terminates GLFW
+ * should be terminated in order to free any resources allocated during or
+ * after initialization.
+ *
+ * If this function fails, it calls @ref glfwTerminate before returning. If it
+ * succeeds, you should call @ref glfwTerminate before the application exits.
+ *
+ * Additional calls to this function after successful initialization but before
+ * termination will return `GLFW_TRUE` immediately.
+ *
+ * The @ref GLFW_PLATFORM init hint controls which platforms are considered during
+ * initialization. This also depends on which platforms the library was compiled to
+ * support.
+ *
+ * @return `GLFW_TRUE` if successful, or `GLFW_FALSE` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_PLATFORM_UNAVAILABLE and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @remark @macos This function will change the current directory of the
+ * application to the `Contents/Resources` subdirectory of the application's
+ * bundle, if present. This can be disabled with the @ref
+ * GLFW_COCOA_CHDIR_RESOURCES init hint.
+ *
+ * @remark @macos This function will create the main menu and dock icon for the
+ * application. If GLFW finds a `MainMenu.nib` it is loaded and assumed to
+ * contain a menu bar. Otherwise a minimal menu bar is created manually with
+ * common commands like Hide, Quit and About. The About entry opens a minimal
+ * about dialog with information from the application's bundle. The menu bar
+ * and dock icon can be disabled entirely with the @ref GLFW_COCOA_MENUBAR init
+ * hint.
+ *
+ * @remark @x11 This function will set the `LC_CTYPE` category of the
+ * application locale according to the current environment if that category is
+ * still "C". This is because the "C" locale breaks Unicode text input.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref intro_init
+ * @sa @ref glfwInitHint
+ * @sa @ref glfwInitAllocator
+ * @sa @ref glfwTerminate
+ *
+ * @since Added in version 1.0.
+ *
+ * @ingroup init
+ */
+ SSCAPI int glfwInit(void);
+
+ /*! @brief Terminates the GLFW library.
+ *
+ * This function destroys all remaining windows and cursors, restores any
+ * modified gamma ramps and frees any other allocated resources. Once this
+ * function is called, you must again call @ref glfwInit successfully before
+ * you will be able to use most GLFW functions.
+ *
+ * If GLFW has been successfully initialized, this function should be called
+ * before the application exits. If initialization fails, there is no need to
+ * call this function, as it is called by @ref glfwInit before it returns
+ * failure.
+ *
+ * This function has no effect if GLFW is not initialized.
+ *
+ * @errors Possible errors include @ref GLFW_PLATFORM_ERROR.
+ *
+ * @remark This function may be called before @ref glfwInit.
+ *
+ * @warning The contexts of any remaining windows must not be current on any
+ * other thread when this function is called.
+ *
+ * @reentrancy This function must not be called from a callback.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref intro_init
+ * @sa @ref glfwInit
+ *
+ * @since Added in version 1.0.
+ *
+ * @ingroup init
+ */
+ SSCAPI void glfwTerminate(void);
+
+ /*! @brief Sets the specified init hint to the desired value.
+ *
+ * This function sets hints for the next initialization of GLFW.
+ *
+ * The values you set hints to are never reset by GLFW, but they only take
+ * effect during initialization. Once GLFW has been initialized, any values
+ * you set will be ignored until the library is terminated and initialized
+ * again.
+ *
+ * Some hints are platform specific. These may be set on any platform but they
+ * will only affect their specific platform. Other platforms will ignore them.
+ * Setting these hints requires no platform specific headers or functions.
+ *
+ * @param[in] hint The [init hint](@ref init_hints) to set.
+ * @param[in] value The new value of the init hint.
+ *
+ * @errors Possible errors include @ref GLFW_INVALID_ENUM and @ref
+ * GLFW_INVALID_VALUE.
+ *
+ * @remarks This function may be called before @ref glfwInit.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa init_hints
+ * @sa glfwInit
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup init
+ */
+ SSCAPI void glfwInitHint(int hint, int value);
+
+ /*! @brief Sets the init allocator to the desired value.
+ *
+ * To use the default allocator, call this function with a `NULL` argument.
+ *
+ * If you specify an allocator struct, every member must be a valid function
+ * pointer. If any member is `NULL`, this function emits @ref
+ * GLFW_INVALID_VALUE and the init allocator is unchanged.
+ *
+ * @param[in] allocator The allocator to use at the next initialization, or
+ * `NULL` to use the default one.
+ *
+ * @errors Possible errors include @ref GLFW_INVALID_VALUE.
+ *
+ * @pointer_lifetime The specified allocator is copied before this function
+ * returns.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref init_allocator
+ * @sa @ref glfwInit
+ *
+ * @since Added in version 3.4.
+ *
+ * @ingroup init
+ */
+ SSCAPI void glfwInitAllocator(const GLFWallocator* allocator);
+
+#if defined(VK_VERSION_1_0)
+
+ /*! @brief Sets the desired Vulkan `vkGetInstanceProcAddr` function.
+ *
+ * This function sets the `vkGetInstanceProcAddr` function that GLFW will use for all
+ * Vulkan related entry point queries.
+ *
+ * This feature is mostly useful on macOS, if your copy of the Vulkan loader is in
+ * a location where GLFW cannot find it through dynamic loading, or if you are still
+ * using the static library version of the loader.
+ *
+ * If set to `NULL`, GLFW will try to load the Vulkan loader dynamically by its standard
+ * name and get this function from there. This is the default behavior.
+ *
+ * The standard name of the loader is `vulkan-1.dll` on Windows, `libvulkan.so.1` on
+ * Linux and other Unix-like systems and `libvulkan.1.dylib` on macOS. If your code is
+ * also loading it via these names then you probably don't need to use this function.
+ *
+ * The function address you set is never reset by GLFW, but it only takes effect during
+ * initialization. Once GLFW has been initialized, any updates will be ignored until the
+ * library is terminated and initialized again.
+ *
+ * @param[in] loader The address of the function to use, or `NULL`.
+ *
+ * @par Loader function signature
+ * @code
+ * PFN_vkVoidFunction vkGetInstanceProcAddr(VkInstance instance, const char* name)
+ * @endcode
+ * For more information about this function, see the
+ * [Vulkan Registry](https://www.khronos.org/registry/vulkan/).
+ *
+ * @errors None.
+ *
+ * @remark This function may be called before @ref glfwInit.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref vulkan_loader
+ * @sa @ref glfwInit
+ *
+ * @since Added in version 3.4.
+ *
+ * @ingroup init
+ */
+ SSCAPI void glfwInitVulkanLoader(PFN_vkGetInstanceProcAddr loader);
+
+#endif /*VK_VERSION_1_0*/
+
+ /*! @brief Retrieves the version of the GLFW library.
+ *
+ * This function retrieves the major, minor and revision numbers of the GLFW
+ * library. It is intended for when you are using GLFW as a shared library and
+ * want to ensure that you are using the minimum required version.
+ *
+ * Any or all of the version arguments may be `NULL`.
+ *
+ * @param[out] major Where to store the major version number, or `NULL`.
+ * @param[out] minor Where to store the minor version number, or `NULL`.
+ * @param[out] rev Where to store the revision number, or `NULL`.
+ *
+ * @errors None.
+ *
+ * @remark This function may be called before @ref glfwInit.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref intro_version
+ * @sa @ref glfwGetVersionString
+ *
+ * @since Added in version 1.0.
+ *
+ * @ingroup init
+ */
+ SSCAPI void glfwGetVersion(int* major, int* minor, int* rev);
+
+ /*! @brief Returns a string describing the compile-time configuration.
+ *
+ * This function returns the compile-time generated
+ * [version string](@ref intro_version_string) of the GLFW library binary. It describes
+ * the version, platforms, compiler and any platform or operating system specific
+ * compile-time options. It should not be confused with the OpenGL or OpenGL ES version
+ * string, queried with `glGetString`.
+ *
+ * __Do not use the version string__ to parse the GLFW library version. The
+ * @ref glfwGetVersion function provides the version of the running library
+ * binary in numerical format.
+ *
+ * __Do not use the version string__ to parse what platforms are supported. The @ref
+ * glfwPlatformSupported function lets you query platform support.
+ *
+ * @return The ASCII encoded GLFW version string.
+ *
+ * @errors None.
+ *
+ * @remark This function may be called before @ref glfwInit.
+ *
+ * @pointer_lifetime The returned string is static and compile-time generated.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref intro_version
+ * @sa @ref glfwGetVersion
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup init
+ */
+ SSCAPI const char* glfwGetVersionString(void);
+
+ /*! @brief Returns and clears the last error for the calling thread.
+ *
+ * This function returns and clears the [error code](@ref errors) of the last
+ * error that occurred on the calling thread, and optionally a UTF-8 encoded
+ * human-readable description of it. If no error has occurred since the last
+ * call, it returns @ref GLFW_NO_ERROR (zero) and the description pointer is
+ * set to `NULL`.
+ *
+ * @param[in] description Where to store the error description pointer, or `NULL`.
+ * @return The last error code for the calling thread, or @ref GLFW_NO_ERROR
+ * (zero).
+ *
+ * @errors None.
+ *
+ * @pointer_lifetime The returned string is allocated and freed by GLFW. You
+ * should not free it yourself. It is guaranteed to be valid only until the
+ * next error occurs or the library is terminated.
+ *
+ * @remark This function may be called before @ref glfwInit.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref error_handling
+ * @sa @ref glfwSetErrorCallback
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup init
+ */
+ SSCAPI int glfwGetError(const char** description);
+
+ /*! @brief Sets the error callback.
+ *
+ * This function sets the error callback, which is called with an error code
+ * and a human-readable description each time a GLFW error occurs.
+ *
+ * The error code is set before the callback is called. Calling @ref
+ * glfwGetError from the error callback will return the same value as the error
+ * code argument.
+ *
+ * The error callback is called on the thread where the error occurred. If you
+ * are using GLFW from multiple threads, your error callback needs to be
+ * written accordingly.
+ *
+ * Because the description string may have been generated specifically for that
+ * error, it is not guaranteed to be valid after the callback has returned. If
+ * you wish to use it after the callback returns, you need to make a copy.
+ *
+ * Once set, the error callback remains set even after the library has been
+ * terminated.
+ *
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set.
+ *
+ * @callback_signature
+ * @code
+ * void callback_name(int error_code, const char* description)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [callback pointer type](@ref GLFWerrorfun).
+ *
+ * @errors None.
+ *
+ * @remark This function may be called before @ref glfwInit.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref error_handling
+ * @sa @ref glfwGetError
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup init
+ */
+ SSCAPI GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun callback);
+
+ /*! @brief Returns the currently selected platform.
+ *
+ * This function returns the platform that was selected during initialization. The
+ * returned value will be one of `GLFW_PLATFORM_WIN32`, `GLFW_PLATFORM_COCOA`,
+ * `GLFW_PLATFORM_WAYLAND`, `GLFW_PLATFORM_X11` or `GLFW_PLATFORM_NULL`.
+ *
+ * @return The currently selected platform, or zero if an error occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref platform
+ * @sa @ref glfwPlatformSupported
+ *
+ * @since Added in version 3.4.
+ *
+ * @ingroup init
+ */
+ SSCAPI int glfwGetPlatform(void);
+
+ /*! @brief Returns whether the library includes support for the specified platform.
+ *
+ * This function returns whether the library was compiled with support for the specified
+ * platform. The platform must be one of `GLFW_PLATFORM_WIN32`, `GLFW_PLATFORM_COCOA`,
+ * `GLFW_PLATFORM_WAYLAND`, `GLFW_PLATFORM_X11` or `GLFW_PLATFORM_NULL`.
+ *
+ * @param[in] platform The platform to query.
+ * @return `GLFW_TRUE` if the platform is supported, or `GLFW_FALSE` otherwise.
+ *
+ * @errors Possible errors include @ref GLFW_INVALID_ENUM.
+ *
+ * @remark This function may be called before @ref glfwInit.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref platform
+ * @sa @ref glfwGetPlatform
+ *
+ * @since Added in version 3.4.
+ *
+ * @ingroup init
+ */
+ SSCAPI int glfwPlatformSupported(int platform);
+
+ /*! @brief Returns the currently connected monitors.
+ *
+ * This function returns an array of handles for all currently connected
+ * monitors. The primary monitor is always first in the returned array. If no
+ * monitors were found, this function returns `NULL`.
+ *
+ * @param[out] count Where to store the number of monitors in the returned
+ * array. This is set to zero if an error occurred.
+ * @return An array of monitor handles, or `NULL` if no monitors were found or
+ * if an [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @pointer_lifetime The returned array is allocated and freed by GLFW. You
+ * should not free it yourself. It is guaranteed to be valid only until the
+ * monitor configuration changes or the library is terminated.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref monitor_monitors
+ * @sa @ref monitor_event
+ * @sa @ref glfwGetPrimaryMonitor
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI GLFWmonitor** glfwGetMonitors(int* count);
+
+ /*! @brief Returns the primary monitor.
+ *
+ * This function returns the primary monitor. This is usually the monitor
+ * where elements like the task bar or global menu bar are located.
+ *
+ * @return The primary monitor, or `NULL` if no monitors were found or if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @remark The primary monitor is always first in the array returned by @ref
+ * glfwGetMonitors.
+ *
+ * @sa @ref monitor_monitors
+ * @sa @ref glfwGetMonitors
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI GLFWmonitor* glfwGetPrimaryMonitor(void);
+
+ /*! @brief Returns the position of the monitor's viewport on the virtual screen.
+ *
+ * This function returns the position, in screen coordinates, of the upper-left
+ * corner of the specified monitor.
+ *
+ * Any or all of the position arguments may be `NULL`. If an error occurs, all
+ * non-`NULL` position arguments will be set to zero.
+ *
+ * @param[in] monitor The monitor to query.
+ * @param[out] xpos Where to store the monitor x-coordinate, or `NULL`.
+ * @param[out] ypos Where to store the monitor y-coordinate, or `NULL`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref monitor_properties
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI void glfwGetMonitorPos(GLFWmonitor* monitor, int* xpos, int* ypos);
+
+ /*! @brief Retrieves the work area of the monitor.
+ *
+ * This function returns the position, in screen coordinates, of the upper-left
+ * corner of the work area of the specified monitor along with the work area
+ * size in screen coordinates. The work area is defined as the area of the
+ * monitor not occluded by the window system task bar where present. If no
+ * task bar exists then the work area is the monitor resolution in screen
+ * coordinates.
+ *
+ * Any or all of the position and size arguments may be `NULL`. If an error
+ * occurs, all non-`NULL` position and size arguments will be set to zero.
+ *
+ * @param[in] monitor The monitor to query.
+ * @param[out] xpos Where to store the monitor x-coordinate, or `NULL`.
+ * @param[out] ypos Where to store the monitor y-coordinate, or `NULL`.
+ * @param[out] width Where to store the monitor width, or `NULL`.
+ * @param[out] height Where to store the monitor height, or `NULL`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref monitor_workarea
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI void glfwGetMonitorWorkarea(GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height);
+
+ /*! @brief Returns the physical size of the monitor.
+ *
+ * This function returns the size, in millimetres, of the display area of the
+ * specified monitor.
+ *
+ * Some platforms do not provide accurate monitor size information, either
+ * because the monitor
+ * [EDID](https://en.wikipedia.org/wiki/Extended_display_identification_data)
+ * data is incorrect or because the driver does not report it accurately.
+ *
+ * Any or all of the size arguments may be `NULL`. If an error occurs, all
+ * non-`NULL` size arguments will be set to zero.
+ *
+ * @param[in] monitor The monitor to query.
+ * @param[out] widthMM Where to store the width, in millimetres, of the
+ * monitor's display area, or `NULL`.
+ * @param[out] heightMM Where to store the height, in millimetres, of the
+ * monitor's display area, or `NULL`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @remark @win32 On Windows 8 and earlier the physical size is calculated from
+ * the current resolution and system DPI instead of querying the monitor EDID data.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref monitor_properties
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI void glfwGetMonitorPhysicalSize(GLFWmonitor* monitor, int* widthMM, int* heightMM);
+
+ /*! @brief Retrieves the content scale for the specified monitor.
+ *
+ * This function retrieves the content scale for the specified monitor. The
+ * content scale is the ratio between the current DPI and the platform's
+ * default DPI. This is especially important for text and any UI elements. If
+ * the pixel dimensions of your UI scaled by this look appropriate on your
+ * machine then it should appear at a reasonable size on other machines
+ * regardless of their DPI and scaling settings. This relies on the system DPI
+ * and scaling settings being somewhat correct.
+ *
+ * The content scale may depend on both the monitor resolution and pixel
+ * density and on user settings. It may be very different from the raw DPI
+ * calculated from the physical size and current resolution.
+ *
+ * @param[in] monitor The monitor to query.
+ * @param[out] xscale Where to store the x-axis content scale, or `NULL`.
+ * @param[out] yscale Where to store the y-axis content scale, or `NULL`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref monitor_scale
+ * @sa @ref glfwGetWindowContentScale
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI void glfwGetMonitorContentScale(GLFWmonitor* monitor, float* xscale, float* yscale);
+
+ /*! @brief Returns the name of the specified monitor.
+ *
+ * This function returns a human-readable name, encoded as UTF-8, of the
+ * specified monitor. The name typically reflects the make and model of the
+ * monitor and is not guaranteed to be unique among the connected monitors.
+ *
+ * @param[in] monitor The monitor to query.
+ * @return The UTF-8 encoded name of the monitor, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @pointer_lifetime The returned string is allocated and freed by GLFW. You
+ * should not free it yourself. It is valid until the specified monitor is
+ * disconnected or the library is terminated.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref monitor_properties
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI const char* glfwGetMonitorName(GLFWmonitor* monitor);
+
+ /*! @brief Sets the user pointer of the specified monitor.
+ *
+ * This function sets the user-defined pointer of the specified monitor. The
+ * current value is retained until the monitor is disconnected. The initial
+ * value is `NULL`.
+ *
+ * This function may be called from the monitor callback, even for a monitor
+ * that is being disconnected.
+ *
+ * @param[in] monitor The monitor whose pointer to set.
+ * @param[in] pointer The new value.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @sa @ref monitor_userptr
+ * @sa @ref glfwGetMonitorUserPointer
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI void glfwSetMonitorUserPointer(GLFWmonitor* monitor, void* pointer);
+
+ /*! @brief Returns the user pointer of the specified monitor.
+ *
+ * This function returns the current value of the user-defined pointer of the
+ * specified monitor. The initial value is `NULL`.
+ *
+ * This function may be called from the monitor callback, even for a monitor
+ * that is being disconnected.
+ *
+ * @param[in] monitor The monitor whose pointer to return.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @sa @ref monitor_userptr
+ * @sa @ref glfwSetMonitorUserPointer
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI void* glfwGetMonitorUserPointer(GLFWmonitor* monitor);
+
+ /*! @brief Sets the monitor configuration callback.
+ *
+ * This function sets the monitor configuration callback, or removes the
+ * currently set callback. This is called when a monitor is connected to or
+ * disconnected from the system.
+ *
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWmonitor* monitor, int event)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWmonitorfun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref monitor_event
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun callback);
+
+ /*! @brief Returns the available video modes for the specified monitor.
+ *
+ * This function returns an array of all video modes supported by the specified
+ * monitor. The returned array is sorted in ascending order, first by color
+ * bit depth (the sum of all channel depths), then by resolution area (the
+ * product of width and height), then resolution width and finally by refresh
+ * rate.
+ *
+ * @param[in] monitor The monitor to query.
+ * @param[out] count Where to store the number of video modes in the returned
+ * array. This is set to zero if an error occurred.
+ * @return An array of video modes, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @pointer_lifetime The returned array is allocated and freed by GLFW. You
+ * should not free it yourself. It is valid until the specified monitor is
+ * disconnected, this function is called again for that monitor or the library
+ * is terminated.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref monitor_modes
+ * @sa @ref glfwGetVideoMode
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Changed to return an array of modes for a specific monitor.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI const GLFWvidmode* glfwGetVideoModes(GLFWmonitor* monitor, int* count);
+
+ /*! @brief Returns the current mode of the specified monitor.
+ *
+ * This function returns the current video mode of the specified monitor. If
+ * you have created a full screen window for that monitor, the return value
+ * will depend on whether that window is iconified.
+ *
+ * @param[in] monitor The monitor to query.
+ * @return The current mode of the monitor, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @pointer_lifetime The returned array is allocated and freed by GLFW. You
+ * should not free it yourself. It is valid until the specified monitor is
+ * disconnected or the library is terminated.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref monitor_modes
+ * @sa @ref glfwGetVideoModes
+ *
+ * @since Added in version 3.0. Replaces `glfwGetDesktopMode`.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI const GLFWvidmode* glfwGetVideoMode(GLFWmonitor* monitor);
+
+ /*! @brief Generates a gamma ramp and sets it for the specified monitor.
+ *
+ * This function generates an appropriately sized gamma ramp from the specified
+ * exponent and then calls @ref glfwSetGammaRamp with it. The value must be
+ * a finite number greater than zero.
+ *
+ * The software controlled gamma ramp is applied _in addition_ to the hardware
+ * gamma correction, which today is usually an approximation of sRGB gamma.
+ * This means that setting a perfectly linear ramp, or gamma 1.0, will produce
+ * the default (usually sRGB-like) behavior.
+ *
+ * For gamma correct rendering with OpenGL or OpenGL ES, see the @ref
+ * GLFW_SRGB_CAPABLE hint.
+ *
+ * @param[in] monitor The monitor whose gamma ramp to set.
+ * @param[in] gamma The desired exponent.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref GLFW_INVALID_VALUE,
+ * @ref GLFW_PLATFORM_ERROR and @ref GLFW_FEATURE_UNAVAILABLE (see remarks).
+ *
+ * @remark @wayland Gamma handling is a privileged protocol, this function
+ * will thus never be implemented and emits @ref GLFW_FEATURE_UNAVAILABLE.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref monitor_gamma
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI void glfwSetGamma(GLFWmonitor* monitor, float gamma);
+
+ /*! @brief Returns the current gamma ramp for the specified monitor.
+ *
+ * This function returns the current gamma ramp of the specified monitor.
+ *
+ * @param[in] monitor The monitor to query.
+ * @return The current gamma ramp, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref GLFW_PLATFORM_ERROR
+ * and @ref GLFW_FEATURE_UNAVAILABLE (see remarks).
+ *
+ * @remark @wayland Gamma handling is a privileged protocol, this function
+ * will thus never be implemented and emits @ref GLFW_FEATURE_UNAVAILABLE while
+ * returning `NULL`.
+ *
+ * @pointer_lifetime The returned structure and its arrays are allocated and
+ * freed by GLFW. You should not free them yourself. They are valid until the
+ * specified monitor is disconnected, this function is called again for that
+ * monitor or the library is terminated.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref monitor_gamma
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI const GLFWgammaramp* glfwGetGammaRamp(GLFWmonitor* monitor);
+
+ /*! @brief Sets the current gamma ramp for the specified monitor.
+ *
+ * This function sets the current gamma ramp for the specified monitor. The
+ * original gamma ramp for that monitor is saved by GLFW the first time this
+ * function is called and is restored by @ref glfwTerminate.
+ *
+ * The software controlled gamma ramp is applied _in addition_ to the hardware
+ * gamma correction, which today is usually an approximation of sRGB gamma.
+ * This means that setting a perfectly linear ramp, or gamma 1.0, will produce
+ * the default (usually sRGB-like) behavior.
+ *
+ * For gamma correct rendering with OpenGL or OpenGL ES, see the @ref
+ * GLFW_SRGB_CAPABLE hint.
+ *
+ * @param[in] monitor The monitor whose gamma ramp to set.
+ * @param[in] ramp The gamma ramp to use.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref GLFW_PLATFORM_ERROR
+ * and @ref GLFW_FEATURE_UNAVAILABLE (see remarks).
+ *
+ * @remark The size of the specified gamma ramp should match the size of the
+ * current ramp for that monitor.
+ *
+ * @remark @win32 The gamma ramp size must be 256.
+ *
+ * @remark @wayland Gamma handling is a privileged protocol, this function
+ * will thus never be implemented and emits @ref GLFW_FEATURE_UNAVAILABLE.
+ *
+ * @pointer_lifetime The specified gamma ramp is copied before this function
+ * returns.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref monitor_gamma
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup monitor
+ */
+ SSCAPI void glfwSetGammaRamp(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
+
+ /*! @brief Resets all window hints to their default values.
+ *
+ * This function resets all window hints to their
+ * [default values](@ref window_hints_values).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_hints
+ * @sa @ref glfwWindowHint
+ * @sa @ref glfwWindowHintString
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwDefaultWindowHints(void);
+
+ /*! @brief Sets the specified window hint to the desired value.
+ *
+ * This function sets hints for the next call to @ref glfwCreateWindow. The
+ * hints, once set, retain their values until changed by a call to this
+ * function or @ref glfwDefaultWindowHints, or until the library is terminated.
+ *
+ * Only integer value hints can be set with this function. String value hints
+ * are set with @ref glfwWindowHintString.
+ *
+ * This function does not check whether the specified hint values are valid.
+ * If you set hints to invalid values this will instead be reported by the next
+ * call to @ref glfwCreateWindow.
+ *
+ * Some hints are platform specific. These may be set on any platform but they
+ * will only affect their specific platform. Other platforms will ignore them.
+ * Setting these hints requires no platform specific headers or functions.
+ *
+ * @param[in] hint The [window hint](@ref window_hints) to set.
+ * @param[in] value The new value of the window hint.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_INVALID_ENUM.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_hints
+ * @sa @ref glfwWindowHintString
+ * @sa @ref glfwDefaultWindowHints
+ *
+ * @since Added in version 3.0. Replaces `glfwOpenWindowHint`.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwWindowHint(int hint, int value);
+
+ /*! @brief Sets the specified window hint to the desired value.
+ *
+ * This function sets hints for the next call to @ref glfwCreateWindow. The
+ * hints, once set, retain their values until changed by a call to this
+ * function or @ref glfwDefaultWindowHints, or until the library is terminated.
+ *
+ * Only string type hints can be set with this function. Integer value hints
+ * are set with @ref glfwWindowHint.
+ *
+ * This function does not check whether the specified hint values are valid.
+ * If you set hints to invalid values this will instead be reported by the next
+ * call to @ref glfwCreateWindow.
+ *
+ * Some hints are platform specific. These may be set on any platform but they
+ * will only affect their specific platform. Other platforms will ignore them.
+ * Setting these hints requires no platform specific headers or functions.
+ *
+ * @param[in] hint The [window hint](@ref window_hints) to set.
+ * @param[in] value The new value of the window hint.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_INVALID_ENUM.
+ *
+ * @pointer_lifetime The specified string is copied before this function
+ * returns.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_hints
+ * @sa @ref glfwWindowHint
+ * @sa @ref glfwDefaultWindowHints
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwWindowHintString(int hint, const char* value);
+
+ /*! @brief Creates a window and its associated context.
+ *
+ * This function creates a window and its associated OpenGL or OpenGL ES
+ * context. Most of the options controlling how the window and its context
+ * should be created are specified with [window hints](@ref window_hints).
+ *
+ * Successful creation does not change which context is current. Before you
+ * can use the newly created context, you need to
+ * [make it current](@ref context_current). For information about the `share`
+ * parameter, see @ref context_sharing.
+ *
+ * The created window, framebuffer and context may differ from what you
+ * requested, as not all parameters and hints are
+ * [hard constraints](@ref window_hints_hard). This includes the size of the
+ * window, especially for full screen windows. To query the actual attributes
+ * of the created window, framebuffer and context, see @ref
+ * glfwGetWindowAttrib, @ref glfwGetWindowSize and @ref glfwGetFramebufferSize.
+ *
+ * To create a full screen window, you need to specify the monitor the window
+ * will cover. If no monitor is specified, the window will be windowed mode.
+ * Unless you have a way for the user to choose a specific monitor, it is
+ * recommended that you pick the primary monitor. For more information on how
+ * to query connected monitors, see @ref monitor_monitors.
+ *
+ * For full screen windows, the specified size becomes the resolution of the
+ * window's _desired video mode_. As long as a full screen window is not
+ * iconified, the supported video mode most closely matching the desired video
+ * mode is set for the specified monitor. For more information about full
+ * screen windows, including the creation of so called _windowed full screen_
+ * or _borderless full screen_ windows, see @ref window_windowed_full_screen.
+ *
+ * Once you have created the window, you can switch it between windowed and
+ * full screen mode with @ref glfwSetWindowMonitor. This will not affect its
+ * OpenGL or OpenGL ES context.
+ *
+ * By default, newly created windows use the placement recommended by the
+ * window system. To create the window at a specific position, set the @ref
+ * GLFW_POSITION_X and @ref GLFW_POSITION_Y window hints before creation. To
+ * restore the default behavior, set either or both hints back to
+ * `GLFW_ANY_POSITION`.
+ *
+ * As long as at least one full screen window is not iconified, the screensaver
+ * is prohibited from starting.
+ *
+ * Window systems put limits on window sizes. Very large or very small window
+ * dimensions may be overridden by the window system on creation. Check the
+ * actual [size](@ref window_size) after creation.
+ *
+ * The [swap interval](@ref buffer_swap) is not set during window creation and
+ * the initial value may vary depending on driver settings and defaults.
+ *
+ * @param[in] width The desired width, in screen coordinates, of the window.
+ * This must be greater than zero.
+ * @param[in] height The desired height, in screen coordinates, of the window.
+ * This must be greater than zero.
+ * @param[in] title The initial, UTF-8 encoded window title.
+ * @param[in] monitor The monitor to use for full screen mode, or `NULL` for
+ * windowed mode.
+ * @param[in] share The window whose context to share resources with, or `NULL`
+ * to not share resources.
+ * @return The handle of the created window, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_ENUM, @ref GLFW_INVALID_VALUE, @ref GLFW_API_UNAVAILABLE, @ref
+ * GLFW_VERSION_UNAVAILABLE, @ref GLFW_FORMAT_UNAVAILABLE and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @remark @win32 Window creation will fail if the Microsoft GDI software
+ * OpenGL implementation is the only one available.
+ *
+ * @remark @win32 If the executable has an icon resource named `GLFW_ICON,` it
+ * will be set as the initial icon for the window. If no such icon is present,
+ * the `IDI_APPLICATION` icon will be used instead. To set a different icon,
+ * see @ref glfwSetWindowIcon.
+ *
+ * @remark @win32 The context to share resources with must not be current on
+ * any other thread.
+ *
+ * @remark @macos The OS only supports core profile contexts for OpenGL
+ * versions 3.2 and later. Before creating an OpenGL context of version 3.2 or
+ * later you must set the [GLFW_OPENGL_PROFILE](@ref GLFW_OPENGL_PROFILE_hint)
+ * hint accordingly. OpenGL 3.0 and 3.1 contexts are not supported at all
+ * on macOS.
+ *
+ * @remark @macos The GLFW window has no icon, as it is not a document
+ * window, but the dock icon will be the same as the application bundle's icon.
+ * For more information on bundles, see the
+ * [Bundle Programming Guide](https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/)
+ * in the Mac Developer Library.
+ *
+ * @remark @macos On OS X 10.10 and later the window frame will not be rendered
+ * at full resolution on Retina displays unless the
+ * [GLFW_COCOA_RETINA_FRAMEBUFFER](@ref GLFW_COCOA_RETINA_FRAMEBUFFER_hint)
+ * hint is `GLFW_TRUE` and the `NSHighResolutionCapable` key is enabled in the
+ * application bundle's `Info.plist`. For more information, see
+ * [High Resolution Guidelines for OS X](https://developer.apple.com/library/mac/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Explained/Explained.html)
+ * in the Mac Developer Library. The GLFW test and example programs use
+ * a custom `Info.plist` template for this, which can be found as
+ * `CMake/Info.plist.in` in the source tree.
+ *
+ * @remark @macos When activating frame autosaving with
+ * [GLFW_COCOA_FRAME_NAME](@ref GLFW_COCOA_FRAME_NAME_hint), the specified
+ * window size and position may be overridden by previously saved values.
+ *
+ * @remark @x11 Some window managers will not respect the placement of
+ * initially hidden windows.
+ *
+ * @remark @x11 Due to the asynchronous nature of X11, it may take a moment for
+ * a window to reach its requested state. This means you may not be able to
+ * query the final size, position or other attributes directly after window
+ * creation.
+ *
+ * @remark @x11 The class part of the `WM_CLASS` window property will by
+ * default be set to the window title passed to this function. The instance
+ * part will use the contents of the `RESOURCE_NAME` environment variable, if
+ * present and not empty, or fall back to the window title. Set the
+ * [GLFW_X11_CLASS_NAME](@ref GLFW_X11_CLASS_NAME_hint) and
+ * [GLFW_X11_INSTANCE_NAME](@ref GLFW_X11_INSTANCE_NAME_hint) window hints to
+ * override this.
+ *
+ * @remark @wayland Compositors should implement the xdg-decoration protocol
+ * for GLFW to decorate the window properly. If this protocol isn't
+ * supported, or if the compositor prefers client-side decorations, a very
+ * simple fallback frame will be drawn using the wp_viewporter protocol. A
+ * compositor can still emit close, maximize or fullscreen events, using for
+ * instance a keybind mechanism. If neither of these protocols is supported,
+ * the window won't be decorated.
+ *
+ * @remark @wayland A full screen window will not attempt to change the mode,
+ * no matter what the requested size or refresh rate.
+ *
+ * @remark @wayland Screensaver inhibition requires the idle-inhibit protocol
+ * to be implemented in the user's compositor.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_creation
+ * @sa @ref glfwDestroyWindow
+ *
+ * @since Added in version 3.0. Replaces `glfwOpenWindow`.
+ *
+ * @ingroup window
+ */
+ SSCAPI GLFWwindow* glfwCreateWindow(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share);
+
+ /*! @brief Destroys the specified window and its context.
+ *
+ * This function destroys the specified window and its context. On calling
+ * this function, no further callbacks will be called for that window.
+ *
+ * If the context of the specified window is current on the main thread, it is
+ * detached before being destroyed.
+ *
+ * @param[in] window The window to destroy.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @note The context of the specified window must not be current on any other
+ * thread when this function is called.
+ *
+ * @reentrancy This function must not be called from a callback.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_creation
+ * @sa @ref glfwCreateWindow
+ *
+ * @since Added in version 3.0. Replaces `glfwCloseWindow`.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwDestroyWindow(GLFWwindow* window);
+
+ /*! @brief Checks the close flag of the specified window.
+ *
+ * This function returns the value of the close flag of the specified window.
+ *
+ * @param[in] window The window to query.
+ * @return The value of the close flag.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @sa @ref window_close
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI int glfwWindowShouldClose(GLFWwindow* window);
+
+ /*! @brief Sets the close flag of the specified window.
+ *
+ * This function sets the value of the close flag of the specified window.
+ * This can be used to override the user's attempt to close the window, or
+ * to signal that it should be closed.
+ *
+ * @param[in] window The window whose flag to change.
+ * @param[in] value The new value.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @sa @ref window_close
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwSetWindowShouldClose(GLFWwindow* window, int value);
+
+ /*! @brief Sets the title of the specified window.
+ *
+ * This function sets the window title, encoded as UTF-8, of the specified
+ * window.
+ *
+ * @param[in] window The window whose title to change.
+ * @param[in] title The UTF-8 encoded window title.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @remark @macos The window title will not be updated until the next time you
+ * process events.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_title
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Added window handle parameter.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwSetWindowTitle(GLFWwindow* window, const char* title);
+
+ /*! @brief Sets the icon for the specified window.
+ *
+ * This function sets the icon of the specified window. If passed an array of
+ * candidate images, those of or closest to the sizes desired by the system are
+ * selected. If no images are specified, the window reverts to its default
+ * icon.
+ *
+ * The pixels are 32-bit, little-endian, non-premultiplied RGBA, i.e. eight
+ * bits per channel with the red channel first. They are arranged canonically
+ * as packed sequential rows, starting from the top-left corner.
+ *
+ * The desired image sizes varies depending on platform and system settings.
+ * The selected images will be rescaled as needed. Good sizes include 16x16,
+ * 32x32 and 48x48.
+ *
+ * @param[in] window The window whose icon to set.
+ * @param[in] count The number of images in the specified array, or zero to
+ * revert to the default window icon.
+ * @param[in] images The images to create the icon from. This is ignored if
+ * count is zero.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_VALUE, @ref GLFW_PLATFORM_ERROR and @ref
+ * GLFW_FEATURE_UNAVAILABLE (see remarks).
+ *
+ * @pointer_lifetime The specified image data is copied before this function
+ * returns.
+ *
+ * @remark @macos Regular windows do not have icons on macOS. This function
+ * will emit @ref GLFW_FEATURE_UNAVAILABLE. The dock icon will be the same as
+ * the application bundle's icon. For more information on bundles, see the
+ * [Bundle Programming Guide](https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/)
+ * in the Mac Developer Library.
+ *
+ * @remark @wayland There is no existing protocol to change an icon, the
+ * window will thus inherit the one defined in the application's desktop file.
+ * This function will emit @ref GLFW_FEATURE_UNAVAILABLE.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_icon
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwSetWindowIcon(GLFWwindow* window, int count, const GLFWimage* images);
+
+ /*! @brief Retrieves the position of the content area of the specified window.
+ *
+ * This function retrieves the position, in screen coordinates, of the
+ * upper-left corner of the content area of the specified window.
+ *
+ * Any or all of the position arguments may be `NULL`. If an error occurs, all
+ * non-`NULL` position arguments will be set to zero.
+ *
+ * @param[in] window The window to query.
+ * @param[out] xpos Where to store the x-coordinate of the upper-left corner of
+ * the content area, or `NULL`.
+ * @param[out] ypos Where to store the y-coordinate of the upper-left corner of
+ * the content area, or `NULL`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_PLATFORM_ERROR and @ref GLFW_FEATURE_UNAVAILABLE (see remarks).
+ *
+ * @remark @wayland There is no way for an application to retrieve the global
+ * position of its windows. This function will emit @ref
+ * GLFW_FEATURE_UNAVAILABLE.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_pos
+ * @sa @ref glfwSetWindowPos
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwGetWindowPos(GLFWwindow* window, int* xpos, int* ypos);
+
+ /*! @brief Sets the position of the content area of the specified window.
+ *
+ * This function sets the position, in screen coordinates, of the upper-left
+ * corner of the content area of the specified windowed mode window. If the
+ * window is a full screen window, this function does nothing.
+ *
+ * __Do not use this function__ to move an already visible window unless you
+ * have very good reasons for doing so, as it will confuse and annoy the user.
+ *
+ * The window manager may put limits on what positions are allowed. GLFW
+ * cannot and should not override these limits.
+ *
+ * @param[in] window The window to query.
+ * @param[in] xpos The x-coordinate of the upper-left corner of the content area.
+ * @param[in] ypos The y-coordinate of the upper-left corner of the content area.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_PLATFORM_ERROR and @ref GLFW_FEATURE_UNAVAILABLE (see remarks).
+ *
+ * @remark @wayland There is no way for an application to set the global
+ * position of its windows. This function will emit @ref
+ * GLFW_FEATURE_UNAVAILABLE.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_pos
+ * @sa @ref glfwGetWindowPos
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Added window handle parameter.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwSetWindowPos(GLFWwindow* window, int xpos, int ypos);
+
+ /*! @brief Retrieves the size of the content area of the specified window.
+ *
+ * This function retrieves the size, in screen coordinates, of the content area
+ * of the specified window. If you wish to retrieve the size of the
+ * framebuffer of the window in pixels, see @ref glfwGetFramebufferSize.
+ *
+ * Any or all of the size arguments may be `NULL`. If an error occurs, all
+ * non-`NULL` size arguments will be set to zero.
+ *
+ * @param[in] window The window whose size to retrieve.
+ * @param[out] width Where to store the width, in screen coordinates, of the
+ * content area, or `NULL`.
+ * @param[out] height Where to store the height, in screen coordinates, of the
+ * content area, or `NULL`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_size
+ * @sa @ref glfwSetWindowSize
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Added window handle parameter.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwGetWindowSize(GLFWwindow* window, int* width, int* height);
+
+ /*! @brief Sets the size limits of the specified window.
+ *
+ * This function sets the size limits of the content area of the specified
+ * window. If the window is full screen, the size limits only take effect
+ * once it is made windowed. If the window is not resizable, this function
+ * does nothing.
+ *
+ * The size limits are applied immediately to a windowed mode window and may
+ * cause it to be resized.
+ *
+ * The maximum dimensions must be greater than or equal to the minimum
+ * dimensions and all must be greater than or equal to zero.
+ *
+ * @param[in] window The window to set limits for.
+ * @param[in] minwidth The minimum width, in screen coordinates, of the content
+ * area, or `GLFW_DONT_CARE`.
+ * @param[in] minheight The minimum height, in screen coordinates, of the
+ * content area, or `GLFW_DONT_CARE`.
+ * @param[in] maxwidth The maximum width, in screen coordinates, of the content
+ * area, or `GLFW_DONT_CARE`.
+ * @param[in] maxheight The maximum height, in screen coordinates, of the
+ * content area, or `GLFW_DONT_CARE`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_VALUE and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @remark If you set size limits and an aspect ratio that conflict, the
+ * results are undefined.
+ *
+ * @remark @wayland The size limits will not be applied until the window is
+ * actually resized, either by the user or by the compositor.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_sizelimits
+ * @sa @ref glfwSetWindowAspectRatio
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwSetWindowSizeLimits(GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
+
+ /*! @brief Sets the aspect ratio of the specified window.
+ *
+ * This function sets the required aspect ratio of the content area of the
+ * specified window. If the window is full screen, the aspect ratio only takes
+ * effect once it is made windowed. If the window is not resizable, this
+ * function does nothing.
+ *
+ * The aspect ratio is specified as a numerator and a denominator and both
+ * values must be greater than zero. For example, the common 16:9 aspect ratio
+ * is specified as 16 and 9, respectively.
+ *
+ * If the numerator and denominator is set to `GLFW_DONT_CARE` then the aspect
+ * ratio limit is disabled.
+ *
+ * The aspect ratio is applied immediately to a windowed mode window and may
+ * cause it to be resized.
+ *
+ * @param[in] window The window to set limits for.
+ * @param[in] numer The numerator of the desired aspect ratio, or
+ * `GLFW_DONT_CARE`.
+ * @param[in] denom The denominator of the desired aspect ratio, or
+ * `GLFW_DONT_CARE`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_VALUE and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @remark If you set size limits and an aspect ratio that conflict, the
+ * results are undefined.
+ *
+ * @remark @wayland The aspect ratio will not be applied until the window is
+ * actually resized, either by the user or by the compositor.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_sizelimits
+ * @sa @ref glfwSetWindowSizeLimits
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwSetWindowAspectRatio(GLFWwindow* window, int numer, int denom);
+
+ /*! @brief Sets the size of the content area of the specified window.
+ *
+ * This function sets the size, in screen coordinates, of the content area of
+ * the specified window.
+ *
+ * For full screen windows, this function updates the resolution of its desired
+ * video mode and switches to the video mode closest to it, without affecting
+ * the window's context. As the context is unaffected, the bit depths of the
+ * framebuffer remain unchanged.
+ *
+ * If you wish to update the refresh rate of the desired video mode in addition
+ * to its resolution, see @ref glfwSetWindowMonitor.
+ *
+ * The window manager may put limits on what sizes are allowed. GLFW cannot
+ * and should not override these limits.
+ *
+ * @param[in] window The window to resize.
+ * @param[in] width The desired width, in screen coordinates, of the window
+ * content area.
+ * @param[in] height The desired height, in screen coordinates, of the window
+ * content area.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @remark @wayland A full screen window will not attempt to change the mode,
+ * no matter what the requested size.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_size
+ * @sa @ref glfwGetWindowSize
+ * @sa @ref glfwSetWindowMonitor
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Added window handle parameter.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwSetWindowSize(GLFWwindow* window, int width, int height);
+
+ /*! @brief Retrieves the size of the framebuffer of the specified window.
+ *
+ * This function retrieves the size, in pixels, of the framebuffer of the
+ * specified window. If you wish to retrieve the size of the window in screen
+ * coordinates, see @ref glfwGetWindowSize.
+ *
+ * Any or all of the size arguments may be `NULL`. If an error occurs, all
+ * non-`NULL` size arguments will be set to zero.
+ *
+ * @param[in] window The window whose framebuffer to query.
+ * @param[out] width Where to store the width, in pixels, of the framebuffer,
+ * or `NULL`.
+ * @param[out] height Where to store the height, in pixels, of the framebuffer,
+ * or `NULL`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_fbsize
+ * @sa @ref glfwSetFramebufferSizeCallback
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwGetFramebufferSize(GLFWwindow* window, int* width, int* height);
+
+ /*! @brief Retrieves the size of the frame of the window.
+ *
+ * This function retrieves the size, in screen coordinates, of each edge of the
+ * frame of the specified window. This size includes the title bar, if the
+ * window has one. The size of the frame may vary depending on the
+ * [window-related hints](@ref window_hints_wnd) used to create it.
+ *
+ * Because this function retrieves the size of each window frame edge and not
+ * the offset along a particular coordinate axis, the retrieved values will
+ * always be zero or positive.
+ *
+ * Any or all of the size arguments may be `NULL`. If an error occurs, all
+ * non-`NULL` size arguments will be set to zero.
+ *
+ * @param[in] window The window whose frame size to query.
+ * @param[out] left Where to store the size, in screen coordinates, of the left
+ * edge of the window frame, or `NULL`.
+ * @param[out] top Where to store the size, in screen coordinates, of the top
+ * edge of the window frame, or `NULL`.
+ * @param[out] right Where to store the size, in screen coordinates, of the
+ * right edge of the window frame, or `NULL`.
+ * @param[out] bottom Where to store the size, in screen coordinates, of the
+ * bottom edge of the window frame, or `NULL`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_size
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwGetWindowFrameSize(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
+
+ /*! @brief Retrieves the content scale for the specified window.
+ *
+ * This function retrieves the content scale for the specified window. The
+ * content scale is the ratio between the current DPI and the platform's
+ * default DPI. This is especially important for text and any UI elements. If
+ * the pixel dimensions of your UI scaled by this look appropriate on your
+ * machine then it should appear at a reasonable size on other machines
+ * regardless of their DPI and scaling settings. This relies on the system DPI
+ * and scaling settings being somewhat correct.
+ *
+ * On platforms where each monitors can have its own content scale, the window
+ * content scale will depend on which monitor the system considers the window
+ * to be on.
+ *
+ * @param[in] window The window to query.
+ * @param[out] xscale Where to store the x-axis content scale, or `NULL`.
+ * @param[out] yscale Where to store the y-axis content scale, or `NULL`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_scale
+ * @sa @ref glfwSetWindowContentScaleCallback
+ * @sa @ref glfwGetMonitorContentScale
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwGetWindowContentScale(GLFWwindow* window, float* xscale, float* yscale);
+
+ /*! @brief Returns the opacity of the whole window.
+ *
+ * This function returns the opacity of the window, including any decorations.
+ *
+ * The opacity (or alpha) value is a positive finite number between zero and
+ * one, where zero is fully transparent and one is fully opaque. If the system
+ * does not support whole window transparency, this function always returns one.
+ *
+ * The initial opacity value for newly created windows is one.
+ *
+ * @param[in] window The window to query.
+ * @return The opacity value of the specified window.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_transparency
+ * @sa @ref glfwSetWindowOpacity
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup window
+ */
+ SSCAPI float glfwGetWindowOpacity(GLFWwindow* window);
+
+ /*! @brief Sets the opacity of the whole window.
+ *
+ * This function sets the opacity of the window, including any decorations.
+ *
+ * The opacity (or alpha) value is a positive finite number between zero and
+ * one, where zero is fully transparent and one is fully opaque.
+ *
+ * The initial opacity value for newly created windows is one.
+ *
+ * A window created with framebuffer transparency may not use whole window
+ * transparency. The results of doing this are undefined.
+ *
+ * @param[in] window The window to set the opacity for.
+ * @param[in] opacity The desired opacity of the specified window.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_PLATFORM_ERROR and @ref GLFW_FEATURE_UNAVAILABLE (see remarks).
+ *
+ * @remark @wayland There is no way to set an opacity factor for a window.
+ * This function will emit @ref GLFW_FEATURE_UNAVAILABLE.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_transparency
+ * @sa @ref glfwGetWindowOpacity
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwSetWindowOpacity(GLFWwindow* window, float opacity);
+
+ /*! @brief Iconifies the specified window.
+ *
+ * This function iconifies (minimizes) the specified window if it was
+ * previously restored. If the window is already iconified, this function does
+ * nothing.
+ *
+ * If the specified window is a full screen window, GLFW restores the original
+ * video mode of the monitor. The window's desired video mode is set again
+ * when the window is restored.
+ *
+ * @param[in] window The window to iconify.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @remark @wayland Once a window is iconified, @ref glfwRestoreWindow won’t
+ * be able to restore it. This is a design decision of the xdg-shell
+ * protocol.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_iconify
+ * @sa @ref glfwRestoreWindow
+ * @sa @ref glfwMaximizeWindow
+ *
+ * @since Added in version 2.1.
+ * @glfw3 Added window handle parameter.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwIconifyWindow(GLFWwindow* window);
+
+ /*! @brief Restores the specified window.
+ *
+ * This function restores the specified window if it was previously iconified
+ * (minimized) or maximized. If the window is already restored, this function
+ * does nothing.
+ *
+ * If the specified window is an iconified full screen window, its desired
+ * video mode is set again for its monitor when the window is restored.
+ *
+ * @param[in] window The window to restore.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_iconify
+ * @sa @ref glfwIconifyWindow
+ * @sa @ref glfwMaximizeWindow
+ *
+ * @since Added in version 2.1.
+ * @glfw3 Added window handle parameter.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwRestoreWindow(GLFWwindow* window);
+
+ /*! @brief Maximizes the specified window.
+ *
+ * This function maximizes the specified window if it was previously not
+ * maximized. If the window is already maximized, this function does nothing.
+ *
+ * If the specified window is a full screen window, this function does nothing.
+ *
+ * @param[in] window The window to maximize.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @par Thread Safety
+ * This function may only be called from the main thread.
+ *
+ * @sa @ref window_iconify
+ * @sa @ref glfwIconifyWindow
+ * @sa @ref glfwRestoreWindow
+ *
+ * @since Added in GLFW 3.2.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwMaximizeWindow(GLFWwindow* window);
+
+ /*! @brief Makes the specified window visible.
+ *
+ * This function makes the specified window visible if it was previously
+ * hidden. If the window is already visible or is in full screen mode, this
+ * function does nothing.
+ *
+ * By default, windowed mode windows are focused when shown
+ * Set the [GLFW_FOCUS_ON_SHOW](@ref GLFW_FOCUS_ON_SHOW_hint) window hint
+ * to change this behavior for all newly created windows, or change the
+ * behavior for an existing window with @ref glfwSetWindowAttrib.
+ *
+ * @param[in] window The window to make visible.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @remark @wayland Because Wayland wants every frame of the desktop to be
+ * complete, this function does not immediately make the window visible.
+ * Instead it will become visible the next time the window framebuffer is
+ * updated after this call.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_hide
+ * @sa @ref glfwHideWindow
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwShowWindow(GLFWwindow* window);
+
+ /*! @brief Hides the specified window.
+ *
+ * This function hides the specified window if it was previously visible. If
+ * the window is already hidden or is in full screen mode, this function does
+ * nothing.
+ *
+ * @param[in] window The window to hide.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_hide
+ * @sa @ref glfwShowWindow
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwHideWindow(GLFWwindow* window);
+
+ /*! @brief Brings the specified window to front and sets input focus.
+ *
+ * This function brings the specified window to front and sets input focus.
+ * The window should already be visible and not iconified.
+ *
+ * By default, both windowed and full screen mode windows are focused when
+ * initially created. Set the [GLFW_FOCUSED](@ref GLFW_FOCUSED_hint) to
+ * disable this behavior.
+ *
+ * Also by default, windowed mode windows are focused when shown
+ * with @ref glfwShowWindow. Set the
+ * [GLFW_FOCUS_ON_SHOW](@ref GLFW_FOCUS_ON_SHOW_hint) to disable this behavior.
+ *
+ * __Do not use this function__ to steal focus from other applications unless
+ * you are certain that is what the user wants. Focus stealing can be
+ * extremely disruptive.
+ *
+ * For a less disruptive way of getting the user's attention, see
+ * [attention requests](@ref window_attention).
+ *
+ * @param[in] window The window to give input focus.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_PLATFORM_ERROR and @ref GLFW_FEATURE_UNAVAILABLE (see remarks).
+ *
+ * @remark @wayland It is not possible for an application to set the input
+ * focus. This function will emit @ref GLFW_FEATURE_UNAVAILABLE.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_focus
+ * @sa @ref window_attention
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwFocusWindow(GLFWwindow* window);
+
+ /*! @brief Requests user attention to the specified window.
+ *
+ * This function requests user attention to the specified window. On
+ * platforms where this is not supported, attention is requested to the
+ * application as a whole.
+ *
+ * Once the user has given attention, usually by focusing the window or
+ * application, the system will end the request automatically.
+ *
+ * @param[in] window The window to request attention to.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @remark @macos Attention is requested to the application as a whole, not the
+ * specific window.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_attention
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwRequestWindowAttention(GLFWwindow* window);
+
+ /*! @brief Returns the monitor that the window uses for full screen mode.
+ *
+ * This function returns the handle of the monitor that the specified window is
+ * in full screen on.
+ *
+ * @param[in] window The window to query.
+ * @return The monitor, or `NULL` if the window is in windowed mode or an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_monitor
+ * @sa @ref glfwSetWindowMonitor
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI GLFWmonitor* glfwGetWindowMonitor(GLFWwindow* window);
+
+ /*! @brief Sets the mode, monitor, video mode and placement of a window.
+ *
+ * This function sets the monitor that the window uses for full screen mode or,
+ * if the monitor is `NULL`, makes it windowed mode.
+ *
+ * When setting a monitor, this function updates the width, height and refresh
+ * rate of the desired video mode and switches to the video mode closest to it.
+ * The window position is ignored when setting a monitor.
+ *
+ * When the monitor is `NULL`, the position, width and height are used to
+ * place the window content area. The refresh rate is ignored when no monitor
+ * is specified.
+ *
+ * If you only wish to update the resolution of a full screen window or the
+ * size of a windowed mode window, see @ref glfwSetWindowSize.
+ *
+ * When a window transitions from full screen to windowed mode, this function
+ * restores any previous window settings such as whether it is decorated,
+ * floating, resizable, has size or aspect ratio limits, etc.
+ *
+ * @param[in] window The window whose monitor, size or video mode to set.
+ * @param[in] monitor The desired monitor, or `NULL` to set windowed mode.
+ * @param[in] xpos The desired x-coordinate of the upper-left corner of the
+ * content area.
+ * @param[in] ypos The desired y-coordinate of the upper-left corner of the
+ * content area.
+ * @param[in] width The desired with, in screen coordinates, of the content
+ * area or video mode.
+ * @param[in] height The desired height, in screen coordinates, of the content
+ * area or video mode.
+ * @param[in] refreshRate The desired refresh rate, in Hz, of the video mode,
+ * or `GLFW_DONT_CARE`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @remark The OpenGL or OpenGL ES context will not be destroyed or otherwise
+ * affected by any resizing or mode switching, although you may need to update
+ * your viewport if the framebuffer size has changed.
+ *
+ * @remark @wayland The desired window position is ignored, as there is no way
+ * for an application to set this property.
+ *
+ * @remark @wayland Setting the window to full screen will not attempt to
+ * change the mode, no matter what the requested size or refresh rate.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_monitor
+ * @sa @ref window_full_screen
+ * @sa @ref glfwGetWindowMonitor
+ * @sa @ref glfwSetWindowSize
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwSetWindowMonitor(GLFWwindow* window, GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate);
+
+ /*! @brief Returns an attribute of the specified window.
+ *
+ * This function returns the value of an attribute of the specified window or
+ * its OpenGL or OpenGL ES context.
+ *
+ * @param[in] window The window to query.
+ * @param[in] attrib The [window attribute](@ref window_attribs) whose value to
+ * return.
+ * @return The value of the attribute, or zero if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @remark Framebuffer related hints are not window attributes. See @ref
+ * window_attribs_fb for more information.
+ *
+ * @remark Zero is a valid value for many window and context related
+ * attributes so you cannot use a return value of zero as an indication of
+ * errors. However, this function should not fail as long as it is passed
+ * valid arguments and the library has been [initialized](@ref intro_init).
+ *
+ * @remark @wayland The Wayland protocol provides no way to check whether a
+ * window is iconfied, so @ref GLFW_ICONIFIED always returns `GLFW_FALSE`.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_attribs
+ * @sa @ref glfwSetWindowAttrib
+ *
+ * @since Added in version 3.0. Replaces `glfwGetWindowParam` and
+ * `glfwGetGLVersion`.
+ *
+ * @ingroup window
+ */
+ SSCAPI int glfwGetWindowAttrib(GLFWwindow* window, int attrib);
+
+ /*! @brief Sets an attribute of the specified window.
+ *
+ * This function sets the value of an attribute of the specified window.
+ *
+ * The supported attributes are [GLFW_DECORATED](@ref GLFW_DECORATED_attrib),
+ * [GLFW_RESIZABLE](@ref GLFW_RESIZABLE_attrib),
+ * [GLFW_FLOATING](@ref GLFW_FLOATING_attrib),
+ * [GLFW_AUTO_ICONIFY](@ref GLFW_AUTO_ICONIFY_attrib) and
+ * [GLFW_FOCUS_ON_SHOW](@ref GLFW_FOCUS_ON_SHOW_attrib).
+ * [GLFW_MOUSE_PASSTHROUGH](@ref GLFW_MOUSE_PASSTHROUGH_attrib)
+ *
+ * Some of these attributes are ignored for full screen windows. The new
+ * value will take effect if the window is later made windowed.
+ *
+ * Some of these attributes are ignored for windowed mode windows. The new
+ * value will take effect if the window is later made full screen.
+ *
+ * @param[in] window The window to set the attribute for.
+ * @param[in] attrib A supported window attribute.
+ * @param[in] value `GLFW_TRUE` or `GLFW_FALSE`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_ENUM, @ref GLFW_INVALID_VALUE, @ref GLFW_PLATFORM_ERROR and @ref
+ * GLFW_FEATURE_UNAVAILABLE.
+ *
+ * @remark Calling @ref glfwGetWindowAttrib will always return the latest
+ * value, even if that value is ignored by the current mode of the window.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_attribs
+ * @sa @ref glfwGetWindowAttrib
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwSetWindowAttrib(GLFWwindow* window, int attrib, int value);
+
+ /*! @brief Sets the user pointer of the specified window.
+ *
+ * This function sets the user-defined pointer of the specified window. The
+ * current value is retained until the window is destroyed. The initial value
+ * is `NULL`.
+ *
+ * @param[in] window The window whose pointer to set.
+ * @param[in] pointer The new value.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @sa @ref window_userptr
+ * @sa @ref glfwGetWindowUserPointer
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwSetWindowUserPointer(GLFWwindow* window, void* pointer);
+
+ /*! @brief Returns the user pointer of the specified window.
+ *
+ * This function returns the current value of the user-defined pointer of the
+ * specified window. The initial value is `NULL`.
+ *
+ * @param[in] window The window whose pointer to return.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @sa @ref window_userptr
+ * @sa @ref glfwSetWindowUserPointer
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI void* glfwGetWindowUserPointer(GLFWwindow* window);
+
+ /*! @brief Sets the position callback for the specified window.
+ *
+ * This function sets the position callback of the specified window, which is
+ * called when the window is moved. The callback is provided with the
+ * position, in screen coordinates, of the upper-left corner of the content
+ * area of the window.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, int xpos, int ypos)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWwindowposfun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @remark @wayland This callback will never be called, as there is no way for
+ * an application to know its global position.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_pos
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI GLFWwindowposfun glfwSetWindowPosCallback(GLFWwindow* window, GLFWwindowposfun callback);
+
+ /*! @brief Sets the size callback for the specified window.
+ *
+ * This function sets the size callback of the specified window, which is
+ * called when the window is resized. The callback is provided with the size,
+ * in screen coordinates, of the content area of the window.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, int width, int height)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWwindowsizefun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_size
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Added window handle parameter and return value.
+ *
+ * @ingroup window
+ */
+ SSCAPI GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow* window, GLFWwindowsizefun callback);
+
+ /*! @brief Sets the close callback for the specified window.
+ *
+ * This function sets the close callback of the specified window, which is
+ * called when the user attempts to close the window, for example by clicking
+ * the close widget in the title bar.
+ *
+ * The close flag is set before this callback is called, but you can modify it
+ * at any time with @ref glfwSetWindowShouldClose.
+ *
+ * The close callback is not triggered by @ref glfwDestroyWindow.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWwindowclosefun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @remark @macos Selecting Quit from the application menu will trigger the
+ * close callback for all windows.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_close
+ *
+ * @since Added in version 2.5.
+ * @glfw3 Added window handle parameter and return value.
+ *
+ * @ingroup window
+ */
+ SSCAPI GLFWwindowclosefun glfwSetWindowCloseCallback(GLFWwindow* window, GLFWwindowclosefun callback);
+
+ /*! @brief Sets the refresh callback for the specified window.
+ *
+ * This function sets the refresh callback of the specified window, which is
+ * called when the content area of the window needs to be redrawn, for example
+ * if the window has been exposed after having been covered by another window.
+ *
+ * On compositing window systems such as Aero, Compiz, Aqua or Wayland, where
+ * the window contents are saved off-screen, this callback may be called only
+ * very infrequently or never at all.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window);
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWwindowrefreshfun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_refresh
+ *
+ * @since Added in version 2.5.
+ * @glfw3 Added window handle parameter and return value.
+ *
+ * @ingroup window
+ */
+ SSCAPI GLFWwindowrefreshfun glfwSetWindowRefreshCallback(GLFWwindow* window, GLFWwindowrefreshfun callback);
+
+ /*! @brief Sets the focus callback for the specified window.
+ *
+ * This function sets the focus callback of the specified window, which is
+ * called when the window gains or loses input focus.
+ *
+ * After the focus callback is called for a window that lost input focus,
+ * synthetic key and mouse button release events will be generated for all such
+ * that had been pressed. For more information, see @ref glfwSetKeyCallback
+ * and @ref glfwSetMouseButtonCallback.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, int focused)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWwindowfocusfun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_focus
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI GLFWwindowfocusfun glfwSetWindowFocusCallback(GLFWwindow* window, GLFWwindowfocusfun callback);
+
+ /*! @brief Sets the iconify callback for the specified window.
+ *
+ * This function sets the iconification callback of the specified window, which
+ * is called when the window is iconified or restored.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, int iconified)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWwindowiconifyfun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_iconify
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI GLFWwindowiconifyfun glfwSetWindowIconifyCallback(GLFWwindow* window, GLFWwindowiconifyfun callback);
+
+ /*! @brief Sets the maximize callback for the specified window.
+ *
+ * This function sets the maximization callback of the specified window, which
+ * is called when the window is maximized or restored.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, int maximized)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWwindowmaximizefun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_maximize
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup window
+ */
+ SSCAPI GLFWwindowmaximizefun glfwSetWindowMaximizeCallback(GLFWwindow* window, GLFWwindowmaximizefun callback);
+
+ /*! @brief Sets the framebuffer resize callback for the specified window.
+ *
+ * This function sets the framebuffer resize callback of the specified window,
+ * which is called when the framebuffer of the specified window is resized.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, int width, int height)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWframebuffersizefun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_fbsize
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI GLFWframebuffersizefun glfwSetFramebufferSizeCallback(GLFWwindow* window, GLFWframebuffersizefun callback);
+
+ /*! @brief Sets the window content scale callback for the specified window.
+ *
+ * This function sets the window content scale callback of the specified window,
+ * which is called when the content scale of the specified window changes.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, float xscale, float yscale)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWwindowcontentscalefun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref window_scale
+ * @sa @ref glfwGetWindowContentScale
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup window
+ */
+ SSCAPI GLFWwindowcontentscalefun glfwSetWindowContentScaleCallback(GLFWwindow* window, GLFWwindowcontentscalefun callback);
+
+ /*! @brief Processes all pending events.
+ *
+ * This function processes only those events that are already in the event
+ * queue and then returns immediately. Processing events will cause the window
+ * and input callbacks associated with those events to be called.
+ *
+ * On some platforms, a window move, resize or menu operation will cause event
+ * processing to block. This is due to how event processing is designed on
+ * those platforms. You can use the
+ * [window refresh callback](@ref window_refresh) to redraw the contents of
+ * your window when necessary during such operations.
+ *
+ * Do not assume that callbacks you set will _only_ be called in response to
+ * event processing functions like this one. While it is necessary to poll for
+ * events, window systems that require GLFW to register callbacks of its own
+ * can pass events to GLFW in response to many window system function calls.
+ * GLFW will pass those events on to the application callbacks before
+ * returning.
+ *
+ * Event processing is not required for joystick input to work.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @reentrancy This function must not be called from a callback.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref events
+ * @sa @ref glfwWaitEvents
+ * @sa @ref glfwWaitEventsTimeout
+ *
+ * @since Added in version 1.0.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwPollEvents(void);
+
+ /*! @brief Waits until events are queued and processes them.
+ *
+ * This function puts the calling thread to sleep until at least one event is
+ * available in the event queue. Once one or more events are available,
+ * it behaves exactly like @ref glfwPollEvents, i.e. the events in the queue
+ * are processed and the function then returns immediately. Processing events
+ * will cause the window and input callbacks associated with those events to be
+ * called.
+ *
+ * Since not all events are associated with callbacks, this function may return
+ * without a callback having been called even if you are monitoring all
+ * callbacks.
+ *
+ * On some platforms, a window move, resize or menu operation will cause event
+ * processing to block. This is due to how event processing is designed on
+ * those platforms. You can use the
+ * [window refresh callback](@ref window_refresh) to redraw the contents of
+ * your window when necessary during such operations.
+ *
+ * Do not assume that callbacks you set will _only_ be called in response to
+ * event processing functions like this one. While it is necessary to poll for
+ * events, window systems that require GLFW to register callbacks of its own
+ * can pass events to GLFW in response to many window system function calls.
+ * GLFW will pass those events on to the application callbacks before
+ * returning.
+ *
+ * Event processing is not required for joystick input to work.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @reentrancy This function must not be called from a callback.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref events
+ * @sa @ref glfwPollEvents
+ * @sa @ref glfwWaitEventsTimeout
+ *
+ * @since Added in version 2.5.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwWaitEvents(void);
+
+ /*! @brief Waits with timeout until events are queued and processes them.
+ *
+ * This function puts the calling thread to sleep until at least one event is
+ * available in the event queue, or until the specified timeout is reached. If
+ * one or more events are available, it behaves exactly like @ref
+ * glfwPollEvents, i.e. the events in the queue are processed and the function
+ * then returns immediately. Processing events will cause the window and input
+ * callbacks associated with those events to be called.
+ *
+ * The timeout value must be a positive finite number.
+ *
+ * Since not all events are associated with callbacks, this function may return
+ * without a callback having been called even if you are monitoring all
+ * callbacks.
+ *
+ * On some platforms, a window move, resize or menu operation will cause event
+ * processing to block. This is due to how event processing is designed on
+ * those platforms. You can use the
+ * [window refresh callback](@ref window_refresh) to redraw the contents of
+ * your window when necessary during such operations.
+ *
+ * Do not assume that callbacks you set will _only_ be called in response to
+ * event processing functions like this one. While it is necessary to poll for
+ * events, window systems that require GLFW to register callbacks of its own
+ * can pass events to GLFW in response to many window system function calls.
+ * GLFW will pass those events on to the application callbacks before
+ * returning.
+ *
+ * Event processing is not required for joystick input to work.
+ *
+ * @param[in] timeout The maximum amount of time, in seconds, to wait.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_VALUE and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @reentrancy This function must not be called from a callback.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref events
+ * @sa @ref glfwPollEvents
+ * @sa @ref glfwWaitEvents
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwWaitEventsTimeout(double timeout);
+
+ /*! @brief Posts an empty event to the event queue.
+ *
+ * This function posts an empty event from the current thread to the event
+ * queue, causing @ref glfwWaitEvents or @ref glfwWaitEventsTimeout to return.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref events
+ * @sa @ref glfwWaitEvents
+ * @sa @ref glfwWaitEventsTimeout
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwPostEmptyEvent(void);
+
+ /*! @brief Returns the value of an input option for the specified window.
+ *
+ * This function returns the value of an input option for the specified window.
+ * The mode must be one of @ref GLFW_CURSOR, @ref GLFW_STICKY_KEYS,
+ * @ref GLFW_STICKY_MOUSE_BUTTONS, @ref GLFW_LOCK_KEY_MODS or
+ * @ref GLFW_RAW_MOUSE_MOTION.
+ *
+ * @param[in] window The window to query.
+ * @param[in] mode One of `GLFW_CURSOR`, `GLFW_STICKY_KEYS`,
+ * `GLFW_STICKY_MOUSE_BUTTONS`, `GLFW_LOCK_KEY_MODS` or
+ * `GLFW_RAW_MOUSE_MOTION`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_INVALID_ENUM.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref glfwSetInputMode
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup input
+ */
+ SSCAPI int glfwGetInputMode(GLFWwindow* window, int mode);
+
+ /*! @brief Sets an input option for the specified window.
+ *
+ * This function sets an input mode option for the specified window. The mode
+ * must be one of @ref GLFW_CURSOR, @ref GLFW_STICKY_KEYS,
+ * @ref GLFW_STICKY_MOUSE_BUTTONS, @ref GLFW_LOCK_KEY_MODS or
+ * @ref GLFW_RAW_MOUSE_MOTION.
+ *
+ * If the mode is `GLFW_CURSOR`, the value must be one of the following cursor
+ * modes:
+ * - `GLFW_CURSOR_NORMAL` makes the cursor visible and behaving normally.
+ * - `GLFW_CURSOR_HIDDEN` makes the cursor invisible when it is over the
+ * content area of the window but does not restrict the cursor from leaving.
+ * - `GLFW_CURSOR_DISABLED` hides and grabs the cursor, providing virtual
+ * and unlimited cursor movement. This is useful for implementing for
+ * example 3D camera controls.
+ * - `GLFW_CURSOR_CAPTURED` makes the cursor visible and confines it to the
+ * content area of the window.
+ *
+ * If the mode is `GLFW_STICKY_KEYS`, the value must be either `GLFW_TRUE` to
+ * enable sticky keys, or `GLFW_FALSE` to disable it. If sticky keys are
+ * enabled, a key press will ensure that @ref glfwGetKey returns `GLFW_PRESS`
+ * the next time it is called even if the key had been released before the
+ * call. This is useful when you are only interested in whether keys have been
+ * pressed but not when or in which order.
+ *
+ * If the mode is `GLFW_STICKY_MOUSE_BUTTONS`, the value must be either
+ * `GLFW_TRUE` to enable sticky mouse buttons, or `GLFW_FALSE` to disable it.
+ * If sticky mouse buttons are enabled, a mouse button press will ensure that
+ * @ref glfwGetMouseButton returns `GLFW_PRESS` the next time it is called even
+ * if the mouse button had been released before the call. This is useful when
+ * you are only interested in whether mouse buttons have been pressed but not
+ * when or in which order.
+ *
+ * If the mode is `GLFW_LOCK_KEY_MODS`, the value must be either `GLFW_TRUE` to
+ * enable lock key modifier bits, or `GLFW_FALSE` to disable them. If enabled,
+ * callbacks that receive modifier bits will also have the @ref
+ * GLFW_MOD_CAPS_LOCK bit set when the event was generated with Caps Lock on,
+ * and the @ref GLFW_MOD_NUM_LOCK bit when Num Lock was on.
+ *
+ * If the mode is `GLFW_RAW_MOUSE_MOTION`, the value must be either `GLFW_TRUE`
+ * to enable raw (unscaled and unaccelerated) mouse motion when the cursor is
+ * disabled, or `GLFW_FALSE` to disable it. If raw motion is not supported,
+ * attempting to set this will emit @ref GLFW_FEATURE_UNAVAILABLE. Call @ref
+ * glfwRawMouseMotionSupported to check for support.
+ *
+ * @param[in] window The window whose input mode to set.
+ * @param[in] mode One of `GLFW_CURSOR`, `GLFW_STICKY_KEYS`,
+ * `GLFW_STICKY_MOUSE_BUTTONS`, `GLFW_LOCK_KEY_MODS` or
+ * `GLFW_RAW_MOUSE_MOTION`.
+ * @param[in] value The new value of the specified input mode.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_ENUM, @ref GLFW_PLATFORM_ERROR and @ref
+ * GLFW_FEATURE_UNAVAILABLE (see above).
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref glfwGetInputMode
+ *
+ * @since Added in version 3.0. Replaces `glfwEnable` and `glfwDisable`.
+ *
+ * @ingroup input
+ */
+ SSCAPI void glfwSetInputMode(GLFWwindow* window, int mode, int value);
+
+ /*! @brief Returns whether raw mouse motion is supported.
+ *
+ * This function returns whether raw mouse motion is supported on the current
+ * system. This status does not change after GLFW has been initialized so you
+ * only need to check this once. If you attempt to enable raw motion on
+ * a system that does not support it, @ref GLFW_PLATFORM_ERROR will be emitted.
+ *
+ * Raw mouse motion is closer to the actual motion of the mouse across
+ * a surface. It is not affected by the scaling and acceleration applied to
+ * the motion of the desktop cursor. That processing is suitable for a cursor
+ * while raw motion is better for controlling for example a 3D camera. Because
+ * of this, raw mouse motion is only provided when the cursor is disabled.
+ *
+ * @return `GLFW_TRUE` if raw mouse motion is supported on the current machine,
+ * or `GLFW_FALSE` otherwise.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref raw_mouse_motion
+ * @sa @ref glfwSetInputMode
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup input
+ */
+ SSCAPI int glfwRawMouseMotionSupported(void);
+
+ /*! @brief Returns the layout-specific name of the specified printable key.
+ *
+ * This function returns the name of the specified printable key, encoded as
+ * UTF-8. This is typically the character that key would produce without any
+ * modifier keys, intended for displaying key bindings to the user. For dead
+ * keys, it is typically the diacritic it would add to a character.
+ *
+ * __Do not use this function__ for [text input](@ref input_char). You will
+ * break text input for many languages even if it happens to work for yours.
+ *
+ * If the key is `GLFW_KEY_UNKNOWN`, the scancode is used to identify the key,
+ * otherwise the scancode is ignored. If you specify a non-printable key, or
+ * `GLFW_KEY_UNKNOWN` and a scancode that maps to a non-printable key, this
+ * function returns `NULL` but does not emit an error.
+ *
+ * This behavior allows you to always pass in the arguments in the
+ * [key callback](@ref input_key) without modification.
+ *
+ * The printable keys are:
+ * - `GLFW_KEY_APOSTROPHE`
+ * - `GLFW_KEY_COMMA`
+ * - `GLFW_KEY_MINUS`
+ * - `GLFW_KEY_PERIOD`
+ * - `GLFW_KEY_SLASH`
+ * - `GLFW_KEY_SEMICOLON`
+ * - `GLFW_KEY_EQUAL`
+ * - `GLFW_KEY_LEFT_BRACKET`
+ * - `GLFW_KEY_RIGHT_BRACKET`
+ * - `GLFW_KEY_BACKSLASH`
+ * - `GLFW_KEY_WORLD_1`
+ * - `GLFW_KEY_WORLD_2`
+ * - `GLFW_KEY_0` to `GLFW_KEY_9`
+ * - `GLFW_KEY_A` to `GLFW_KEY_Z`
+ * - `GLFW_KEY_KP_0` to `GLFW_KEY_KP_9`
+ * - `GLFW_KEY_KP_DECIMAL`
+ * - `GLFW_KEY_KP_DIVIDE`
+ * - `GLFW_KEY_KP_MULTIPLY`
+ * - `GLFW_KEY_KP_SUBTRACT`
+ * - `GLFW_KEY_KP_ADD`
+ * - `GLFW_KEY_KP_EQUAL`
+ *
+ * Names for printable keys depend on keyboard layout, while names for
+ * non-printable keys are the same across layouts but depend on the application
+ * language and should be localized along with other user interface text.
+ *
+ * @param[in] key The key to query, or `GLFW_KEY_UNKNOWN`.
+ * @param[in] scancode The scancode of the key to query.
+ * @return The UTF-8 encoded, layout-specific name of the key, or `NULL`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @remark The contents of the returned string may change when a keyboard
+ * layout change event is received.
+ *
+ * @pointer_lifetime The returned string is allocated and freed by GLFW. You
+ * should not free it yourself. It is valid until the library is terminated.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref input_key_name
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup input
+ */
+ SSCAPI const char* glfwGetKeyName(int key, int scancode);
+
+ /*! @brief Returns the platform-specific scancode of the specified key.
+ *
+ * This function returns the platform-specific scancode of the specified key.
+ *
+ * If the key is `GLFW_KEY_UNKNOWN` or does not exist on the keyboard this
+ * method will return `-1`.
+ *
+ * @param[in] key Any [named key](@ref keys).
+ * @return The platform-specific scancode for the key, or `-1` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref input_key
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup input
+ */
+ SSCAPI int glfwGetKeyScancode(int key);
+
+ /*! @brief Returns the last reported state of a keyboard key for the specified
+ * window.
+ *
+ * This function returns the last state reported for the specified key to the
+ * specified window. The returned state is one of `GLFW_PRESS` or
+ * `GLFW_RELEASE`. The action `GLFW_REPEAT` is only reported to the key callback.
+ *
+ * If the @ref GLFW_STICKY_KEYS input mode is enabled, this function returns
+ * `GLFW_PRESS` the first time you call it for a key that was pressed, even if
+ * that key has already been released.
+ *
+ * The key functions deal with physical keys, with [key tokens](@ref keys)
+ * named after their use on the standard US keyboard layout. If you want to
+ * input text, use the Unicode character callback instead.
+ *
+ * The [modifier key bit masks](@ref mods) are not key tokens and cannot be
+ * used with this function.
+ *
+ * __Do not use this function__ to implement [text input](@ref input_char).
+ *
+ * @param[in] window The desired window.
+ * @param[in] key The desired [keyboard key](@ref keys). `GLFW_KEY_UNKNOWN` is
+ * not a valid key for this function.
+ * @return One of `GLFW_PRESS` or `GLFW_RELEASE`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_INVALID_ENUM.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref input_key
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Added window handle parameter.
+ *
+ * @ingroup input
+ */
+ SSCAPI int glfwGetKey(GLFWwindow* window, int key);
+
+ /*! @brief Returns the last reported state of a mouse button for the specified
+ * window.
+ *
+ * This function returns the last state reported for the specified mouse button
+ * to the specified window. The returned state is one of `GLFW_PRESS` or
+ * `GLFW_RELEASE`.
+ *
+ * If the @ref GLFW_STICKY_MOUSE_BUTTONS input mode is enabled, this function
+ * returns `GLFW_PRESS` the first time you call it for a mouse button that was
+ * pressed, even if that mouse button has already been released.
+ *
+ * @param[in] window The desired window.
+ * @param[in] button The desired [mouse button](@ref buttons).
+ * @return One of `GLFW_PRESS` or `GLFW_RELEASE`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_INVALID_ENUM.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref input_mouse_button
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Added window handle parameter.
+ *
+ * @ingroup input
+ */
+ SSCAPI int glfwGetMouseButton(GLFWwindow* window, int button);
+
+ /*! @brief Retrieves the position of the cursor relative to the content area of
+ * the window.
+ *
+ * This function returns the position of the cursor, in screen coordinates,
+ * relative to the upper-left corner of the content area of the specified
+ * window.
+ *
+ * If the cursor is disabled (with `GLFW_CURSOR_DISABLED`) then the cursor
+ * position is unbounded and limited only by the minimum and maximum values of
+ * a `double`.
+ *
+ * The coordinate can be converted to their integer equivalents with the
+ * `floor` function. Casting directly to an integer type works for positive
+ * coordinates, but fails for negative ones.
+ *
+ * Any or all of the position arguments may be `NULL`. If an error occurs, all
+ * non-`NULL` position arguments will be set to zero.
+ *
+ * @param[in] window The desired window.
+ * @param[out] xpos Where to store the cursor x-coordinate, relative to the
+ * left edge of the content area, or `NULL`.
+ * @param[out] ypos Where to store the cursor y-coordinate, relative to the to
+ * top edge of the content area, or `NULL`.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref cursor_pos
+ * @sa @ref glfwSetCursorPos
+ *
+ * @since Added in version 3.0. Replaces `glfwGetMousePos`.
+ *
+ * @ingroup input
+ */
+ SSCAPI void glfwGetCursorPos(GLFWwindow* window, double* xpos, double* ypos);
+
+ /*! @brief Sets the position of the cursor, relative to the content area of the
+ * window.
+ *
+ * This function sets the position, in screen coordinates, of the cursor
+ * relative to the upper-left corner of the content area of the specified
+ * window. The window must have input focus. If the window does not have
+ * input focus when this function is called, it fails silently.
+ *
+ * __Do not use this function__ to implement things like camera controls. GLFW
+ * already provides the `GLFW_CURSOR_DISABLED` cursor mode that hides the
+ * cursor, transparently re-centers it and provides unconstrained cursor
+ * motion. See @ref glfwSetInputMode for more information.
+ *
+ * If the cursor mode is `GLFW_CURSOR_DISABLED` then the cursor position is
+ * unconstrained and limited only by the minimum and maximum values of
+ * a `double`.
+ *
+ * @param[in] window The desired window.
+ * @param[in] xpos The desired x-coordinate, relative to the left edge of the
+ * content area.
+ * @param[in] ypos The desired y-coordinate, relative to the top edge of the
+ * content area.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_PLATFORM_ERROR and @ref GLFW_FEATURE_UNAVAILABLE (see remarks).
+ *
+ * @remark @wayland This function will only work when the cursor mode is
+ * `GLFW_CURSOR_DISABLED`, otherwise it will emit @ref GLFW_FEATURE_UNAVAILABLE.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref cursor_pos
+ * @sa @ref glfwGetCursorPos
+ *
+ * @since Added in version 3.0. Replaces `glfwSetMousePos`.
+ *
+ * @ingroup input
+ */
+ SSCAPI void glfwSetCursorPos(GLFWwindow* window, double xpos, double ypos);
+
+ /*! @brief Creates a custom cursor.
+ *
+ * Creates a new custom cursor image that can be set for a window with @ref
+ * glfwSetCursor. The cursor can be destroyed with @ref glfwDestroyCursor.
+ * Any remaining cursors are destroyed by @ref glfwTerminate.
+ *
+ * The pixels are 32-bit, little-endian, non-premultiplied RGBA, i.e. eight
+ * bits per channel with the red channel first. They are arranged canonically
+ * as packed sequential rows, starting from the top-left corner.
+ *
+ * The cursor hotspot is specified in pixels, relative to the upper-left corner
+ * of the cursor image. Like all other coordinate systems in GLFW, the X-axis
+ * points to the right and the Y-axis points down.
+ *
+ * @param[in] image The desired cursor image.
+ * @param[in] xhot The desired x-coordinate, in pixels, of the cursor hotspot.
+ * @param[in] yhot The desired y-coordinate, in pixels, of the cursor hotspot.
+ * @return The handle of the created cursor, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_VALUE and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @pointer_lifetime The specified image data is copied before this function
+ * returns.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref cursor_object
+ * @sa @ref glfwDestroyCursor
+ * @sa @ref glfwCreateStandardCursor
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup input
+ */
+ SSCAPI GLFWcursor* glfwCreateCursor(const GLFWimage* image, int xhot, int yhot);
+
+ /*! @brief Creates a cursor with a standard shape.
+ *
+ * Returns a cursor with a standard shape, that can be set for a window with
+ * @ref glfwSetCursor. The images for these cursors come from the system
+ * cursor theme and their exact appearance will vary between platforms.
+ *
+ * Most of these shapes are guaranteed to exist on every supported platform but
+ * a few may not be present. See the table below for details.
+ *
+ * Cursor shape | Windows | macOS | X11 | Wayland
+ * ------------------------------ | ------- | ----- | ------ | -------
+ * @ref GLFW_ARROW_CURSOR | Yes | Yes | Yes | Yes
+ * @ref GLFW_IBEAM_CURSOR | Yes | Yes | Yes | Yes
+ * @ref GLFW_CROSSHAIR_CURSOR | Yes | Yes | Yes | Yes
+ * @ref GLFW_POINTING_HAND_CURSOR | Yes | Yes | Yes | Yes
+ * @ref GLFW_RESIZE_EW_CURSOR | Yes | Yes | Yes | Yes
+ * @ref GLFW_RESIZE_NS_CURSOR | Yes | Yes | Yes | Yes
+ * @ref GLFW_RESIZE_NWSE_CURSOR | Yes | Yes1 | Maybe2 | Maybe2
+ * @ref GLFW_RESIZE_NESW_CURSOR | Yes | Yes1 | Maybe2 | Maybe2
+ * @ref GLFW_RESIZE_ALL_CURSOR | Yes | Yes | Yes | Yes
+ * @ref GLFW_NOT_ALLOWED_CURSOR | Yes | Yes | Maybe2 | Maybe2
+ *
+ * 1) This uses a private system API and may fail in the future.
+ *
+ * 2) This uses a newer standard that not all cursor themes support.
+ *
+ * If the requested shape is not available, this function emits a @ref
+ * GLFW_CURSOR_UNAVAILABLE error and returns `NULL`.
+ *
+ * @param[in] shape One of the [standard shapes](@ref shapes).
+ * @return A new cursor ready to use or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_ENUM, @ref GLFW_CURSOR_UNAVAILABLE and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref cursor_standard
+ * @sa @ref glfwCreateCursor
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup input
+ */
+ SSCAPI GLFWcursor* glfwCreateStandardCursor(int shape);
+
+ /*! @brief Destroys a cursor.
+ *
+ * This function destroys a cursor previously created with @ref
+ * glfwCreateCursor. Any remaining cursors will be destroyed by @ref
+ * glfwTerminate.
+ *
+ * If the specified cursor is current for any window, that window will be
+ * reverted to the default cursor. This does not affect the cursor mode.
+ *
+ * @param[in] cursor The cursor object to destroy.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @reentrancy This function must not be called from a callback.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref cursor_object
+ * @sa @ref glfwCreateCursor
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup input
+ */
+ SSCAPI void glfwDestroyCursor(GLFWcursor* cursor);
+
+ /*! @brief Sets the cursor for the window.
+ *
+ * This function sets the cursor image to be used when the cursor is over the
+ * content area of the specified window. The set cursor will only be visible
+ * when the [cursor mode](@ref cursor_mode) of the window is
+ * `GLFW_CURSOR_NORMAL`.
+ *
+ * On some platforms, the set cursor may not be visible unless the window also
+ * has input focus.
+ *
+ * @param[in] window The window to set the cursor for.
+ * @param[in] cursor The cursor to set, or `NULL` to switch back to the default
+ * arrow cursor.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref cursor_object
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup input
+ */
+ SSCAPI void glfwSetCursor(GLFWwindow* window, GLFWcursor* cursor);
+
+ /*! @brief Sets the key callback.
+ *
+ * This function sets the key callback of the specified window, which is called
+ * when a key is pressed, repeated or released.
+ *
+ * The key functions deal with physical keys, with layout independent
+ * [key tokens](@ref keys) named after their values in the standard US keyboard
+ * layout. If you want to input text, use the
+ * [character callback](@ref glfwSetCharCallback) instead.
+ *
+ * When a window loses input focus, it will generate synthetic key release
+ * events for all pressed keys. You can tell these events from user-generated
+ * events by the fact that the synthetic ones are generated after the focus
+ * loss event has been processed, i.e. after the
+ * [window focus callback](@ref glfwSetWindowFocusCallback) has been called.
+ *
+ * The scancode of a key is specific to that platform or sometimes even to that
+ * machine. Scancodes are intended to allow users to bind keys that don't have
+ * a GLFW key token. Such keys have `key` set to `GLFW_KEY_UNKNOWN`, their
+ * state is not saved and so it cannot be queried with @ref glfwGetKey.
+ *
+ * Sometimes GLFW needs to generate synthetic key events, in which case the
+ * scancode may be zero.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new key callback, or `NULL` to remove the currently
+ * set callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, int key, int scancode, int action, int mods)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWkeyfun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref input_key
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Added window handle parameter and return value.
+ *
+ * @ingroup input
+ */
+ SSCAPI GLFWkeyfun glfwSetKeyCallback(GLFWwindow* window, GLFWkeyfun callback);
+
+ /*! @brief Sets the Unicode character callback.
+ *
+ * This function sets the character callback of the specified window, which is
+ * called when a Unicode character is input.
+ *
+ * The character callback is intended for Unicode text input. As it deals with
+ * characters, it is keyboard layout dependent, whereas the
+ * [key callback](@ref glfwSetKeyCallback) is not. Characters do not map 1:1
+ * to physical keys, as a key may produce zero, one or more characters. If you
+ * want to know whether a specific physical key was pressed or released, see
+ * the key callback instead.
+ *
+ * The character callback behaves as system text input normally does and will
+ * not be called if modifier keys are held down that would prevent normal text
+ * input on that platform, for example a Super (Command) key on macOS or Alt key
+ * on Windows.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, unsigned int codepoint)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWcharfun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref input_char
+ *
+ * @since Added in version 2.4.
+ * @glfw3 Added window handle parameter and return value.
+ *
+ * @ingroup input
+ */
+ SSCAPI GLFWcharfun glfwSetCharCallback(GLFWwindow* window, GLFWcharfun callback);
+
+ /*! @brief Sets the Unicode character with modifiers callback.
+ *
+ * This function sets the character with modifiers callback of the specified
+ * window, which is called when a Unicode character is input regardless of what
+ * modifier keys are used.
+ *
+ * The character with modifiers callback is intended for implementing custom
+ * Unicode character input. For regular Unicode text input, see the
+ * [character callback](@ref glfwSetCharCallback). Like the character
+ * callback, the character with modifiers callback deals with characters and is
+ * keyboard layout dependent. Characters do not map 1:1 to physical keys, as
+ * a key may produce zero, one or more characters. If you want to know whether
+ * a specific physical key was pressed or released, see the
+ * [key callback](@ref glfwSetKeyCallback) instead.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or an
+ * [error](@ref error_handling) occurred.
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, unsigned int codepoint, int mods)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWcharmodsfun).
+ *
+ * @deprecated Scheduled for removal in version 4.0.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref input_char
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup input
+ */
+ SSCAPI GLFWcharmodsfun glfwSetCharModsCallback(GLFWwindow* window, GLFWcharmodsfun callback);
+
+ /*! @brief Sets the mouse button callback.
+ *
+ * This function sets the mouse button callback of the specified window, which
+ * is called when a mouse button is pressed or released.
+ *
+ * When a window loses input focus, it will generate synthetic mouse button
+ * release events for all pressed mouse buttons. You can tell these events
+ * from user-generated events by the fact that the synthetic ones are generated
+ * after the focus loss event has been processed, i.e. after the
+ * [window focus callback](@ref glfwSetWindowFocusCallback) has been called.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, int button, int action, int mods)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWmousebuttonfun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref input_mouse_button
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Added window handle parameter and return value.
+ *
+ * @ingroup input
+ */
+ SSCAPI GLFWmousebuttonfun glfwSetMouseButtonCallback(GLFWwindow* window, GLFWmousebuttonfun callback);
+
+ /*! @brief Sets the cursor position callback.
+ *
+ * This function sets the cursor position callback of the specified window,
+ * which is called when the cursor is moved. The callback is provided with the
+ * position, in screen coordinates, relative to the upper-left corner of the
+ * content area of the window.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, double xpos, double ypos);
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWcursorposfun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref cursor_pos
+ *
+ * @since Added in version 3.0. Replaces `glfwSetMousePosCallback`.
+ *
+ * @ingroup input
+ */
+ SSCAPI GLFWcursorposfun glfwSetCursorPosCallback(GLFWwindow* window, GLFWcursorposfun callback);
+
+ /*! @brief Sets the cursor enter/leave callback.
+ *
+ * This function sets the cursor boundary crossing callback of the specified
+ * window, which is called when the cursor enters or leaves the content area of
+ * the window.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, int entered)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWcursorenterfun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref cursor_enter
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup input
+ */
+ SSCAPI GLFWcursorenterfun glfwSetCursorEnterCallback(GLFWwindow* window, GLFWcursorenterfun callback);
+
+ /*! @brief Sets the scroll callback.
+ *
+ * This function sets the scroll callback of the specified window, which is
+ * called when a scrolling device is used, such as a mouse wheel or scrolling
+ * area of a touchpad.
+ *
+ * The scroll callback receives all scrolling input, like that from a mouse
+ * wheel or a touchpad scrolling area.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new scroll callback, or `NULL` to remove the
+ * currently set callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, double xoffset, double yoffset)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWscrollfun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref scrolling
+ *
+ * @since Added in version 3.0. Replaces `glfwSetMouseWheelCallback`.
+ *
+ * @ingroup input
+ */
+ SSCAPI GLFWscrollfun glfwSetScrollCallback(GLFWwindow* window, GLFWscrollfun callback);
+
+ /*! @brief Sets the path drop callback.
+ *
+ * This function sets the path drop callback of the specified window, which is
+ * called when one or more dragged paths are dropped on the window.
+ *
+ * Because the path array and its strings may have been generated specifically
+ * for that event, they are not guaranteed to be valid after the callback has
+ * returned. If you wish to use them after the callback returns, you need to
+ * make a deep copy.
+ *
+ * @param[in] window The window whose callback to set.
+ * @param[in] callback The new file drop callback, or `NULL` to remove the
+ * currently set callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(GLFWwindow* window, int path_count, const char* paths[])
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWdropfun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @remark @wayland File drop is currently unimplemented.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref path_drop
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup input
+ */
+ SSCAPI GLFWdropfun glfwSetDropCallback(GLFWwindow* window, GLFWdropfun callback);
+
+ /*! @brief Returns whether the specified joystick is present.
+ *
+ * This function returns whether the specified joystick is present.
+ *
+ * There is no need to call this function before other functions that accept
+ * a joystick ID, as they all check for presence before performing any other
+ * work.
+ *
+ * @param[in] jid The [joystick](@ref joysticks) to query.
+ * @return `GLFW_TRUE` if the joystick is present, or `GLFW_FALSE` otherwise.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref joystick
+ *
+ * @since Added in version 3.0. Replaces `glfwGetJoystickParam`.
+ *
+ * @ingroup input
+ */
+ SSCAPI int glfwJoystickPresent(int jid);
+
+ /*! @brief Returns the values of all axes of the specified joystick.
+ *
+ * This function returns the values of all axes of the specified joystick.
+ * Each element in the array is a value between -1.0 and 1.0.
+ *
+ * If the specified joystick is not present this function will return `NULL`
+ * but will not generate an error. This can be used instead of first calling
+ * @ref glfwJoystickPresent.
+ *
+ * @param[in] jid The [joystick](@ref joysticks) to query.
+ * @param[out] count Where to store the number of axis values in the returned
+ * array. This is set to zero if the joystick is not present or an error
+ * occurred.
+ * @return An array of axis values, or `NULL` if the joystick is not present or
+ * an [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @pointer_lifetime The returned array is allocated and freed by GLFW. You
+ * should not free it yourself. It is valid until the specified joystick is
+ * disconnected or the library is terminated.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref joystick_axis
+ *
+ * @since Added in version 3.0. Replaces `glfwGetJoystickPos`.
+ *
+ * @ingroup input
+ */
+ SSCAPI const float* glfwGetJoystickAxes(int jid, int* count);
+
+ /*! @brief Returns the state of all buttons of the specified joystick.
+ *
+ * This function returns the state of all buttons of the specified joystick.
+ * Each element in the array is either `GLFW_PRESS` or `GLFW_RELEASE`.
+ *
+ * For backward compatibility with earlier versions that did not have @ref
+ * glfwGetJoystickHats, the button array also includes all hats, each
+ * represented as four buttons. The hats are in the same order as returned by
+ * __glfwGetJoystickHats__ and are in the order _up_, _right_, _down_ and
+ * _left_. To disable these extra buttons, set the @ref
+ * GLFW_JOYSTICK_HAT_BUTTONS init hint before initialization.
+ *
+ * If the specified joystick is not present this function will return `NULL`
+ * but will not generate an error. This can be used instead of first calling
+ * @ref glfwJoystickPresent.
+ *
+ * @param[in] jid The [joystick](@ref joysticks) to query.
+ * @param[out] count Where to store the number of button states in the returned
+ * array. This is set to zero if the joystick is not present or an error
+ * occurred.
+ * @return An array of button states, or `NULL` if the joystick is not present
+ * or an [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @pointer_lifetime The returned array is allocated and freed by GLFW. You
+ * should not free it yourself. It is valid until the specified joystick is
+ * disconnected or the library is terminated.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref joystick_button
+ *
+ * @since Added in version 2.2.
+ * @glfw3 Changed to return a dynamic array.
+ *
+ * @ingroup input
+ */
+ SSCAPI const unsigned char* glfwGetJoystickButtons(int jid, int* count);
+
+ /*! @brief Returns the state of all hats of the specified joystick.
+ *
+ * This function returns the state of all hats of the specified joystick.
+ * Each element in the array is one of the following values:
+ *
+ * Name | Value
+ * ---- | -----
+ * `GLFW_HAT_CENTERED` | 0
+ * `GLFW_HAT_UP` | 1
+ * `GLFW_HAT_RIGHT` | 2
+ * `GLFW_HAT_DOWN` | 4
+ * `GLFW_HAT_LEFT` | 8
+ * `GLFW_HAT_RIGHT_UP` | `GLFW_HAT_RIGHT` \| `GLFW_HAT_UP`
+ * `GLFW_HAT_RIGHT_DOWN` | `GLFW_HAT_RIGHT` \| `GLFW_HAT_DOWN`
+ * `GLFW_HAT_LEFT_UP` | `GLFW_HAT_LEFT` \| `GLFW_HAT_UP`
+ * `GLFW_HAT_LEFT_DOWN` | `GLFW_HAT_LEFT` \| `GLFW_HAT_DOWN`
+ *
+ * The diagonal directions are bitwise combinations of the primary (up, right,
+ * down and left) directions and you can test for these individually by ANDing
+ * it with the corresponding direction.
+ *
+ * @code
+ * if (hats[2] & GLFW_HAT_RIGHT)
+ * {
+ * // State of hat 2 could be right-up, right or right-down
+ * }
+ * @endcode
+ *
+ * If the specified joystick is not present this function will return `NULL`
+ * but will not generate an error. This can be used instead of first calling
+ * @ref glfwJoystickPresent.
+ *
+ * @param[in] jid The [joystick](@ref joysticks) to query.
+ * @param[out] count Where to store the number of hat states in the returned
+ * array. This is set to zero if the joystick is not present or an error
+ * occurred.
+ * @return An array of hat states, or `NULL` if the joystick is not present
+ * or an [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @pointer_lifetime The returned array is allocated and freed by GLFW. You
+ * should not free it yourself. It is valid until the specified joystick is
+ * disconnected, this function is called again for that joystick or the library
+ * is terminated.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref joystick_hat
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup input
+ */
+ SSCAPI const unsigned char* glfwGetJoystickHats(int jid, int* count);
+
+ /*! @brief Returns the name of the specified joystick.
+ *
+ * This function returns the name, encoded as UTF-8, of the specified joystick.
+ * The returned string is allocated and freed by GLFW. You should not free it
+ * yourself.
+ *
+ * If the specified joystick is not present this function will return `NULL`
+ * but will not generate an error. This can be used instead of first calling
+ * @ref glfwJoystickPresent.
+ *
+ * @param[in] jid The [joystick](@ref joysticks) to query.
+ * @return The UTF-8 encoded name of the joystick, or `NULL` if the joystick
+ * is not present or an [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @pointer_lifetime The returned string is allocated and freed by GLFW. You
+ * should not free it yourself. It is valid until the specified joystick is
+ * disconnected or the library is terminated.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref joystick_name
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup input
+ */
+ SSCAPI const char* glfwGetJoystickName(int jid);
+
+ /*! @brief Returns the SDL compatible GUID of the specified joystick.
+ *
+ * This function returns the SDL compatible GUID, as a UTF-8 encoded
+ * hexadecimal string, of the specified joystick. The returned string is
+ * allocated and freed by GLFW. You should not free it yourself.
+ *
+ * The GUID is what connects a joystick to a gamepad mapping. A connected
+ * joystick will always have a GUID even if there is no gamepad mapping
+ * assigned to it.
+ *
+ * If the specified joystick is not present this function will return `NULL`
+ * but will not generate an error. This can be used instead of first calling
+ * @ref glfwJoystickPresent.
+ *
+ * The GUID uses the format introduced in SDL 2.0.5. This GUID tries to
+ * uniquely identify the make and model of a joystick but does not identify
+ * a specific unit, e.g. all wired Xbox 360 controllers will have the same
+ * GUID on that platform. The GUID for a unit may vary between platforms
+ * depending on what hardware information the platform specific APIs provide.
+ *
+ * @param[in] jid The [joystick](@ref joysticks) to query.
+ * @return The UTF-8 encoded GUID of the joystick, or `NULL` if the joystick
+ * is not present or an [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @pointer_lifetime The returned string is allocated and freed by GLFW. You
+ * should not free it yourself. It is valid until the specified joystick is
+ * disconnected or the library is terminated.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref gamepad
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup input
+ */
+ SSCAPI const char* glfwGetJoystickGUID(int jid);
+
+ /*! @brief Sets the user pointer of the specified joystick.
+ *
+ * This function sets the user-defined pointer of the specified joystick. The
+ * current value is retained until the joystick is disconnected. The initial
+ * value is `NULL`.
+ *
+ * This function may be called from the joystick callback, even for a joystick
+ * that is being disconnected.
+ *
+ * @param[in] jid The joystick whose pointer to set.
+ * @param[in] pointer The new value.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @sa @ref joystick_userptr
+ * @sa @ref glfwGetJoystickUserPointer
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup input
+ */
+ SSCAPI void glfwSetJoystickUserPointer(int jid, void* pointer);
+
+ /*! @brief Returns the user pointer of the specified joystick.
+ *
+ * This function returns the current value of the user-defined pointer of the
+ * specified joystick. The initial value is `NULL`.
+ *
+ * This function may be called from the joystick callback, even for a joystick
+ * that is being disconnected.
+ *
+ * @param[in] jid The joystick whose pointer to return.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @sa @ref joystick_userptr
+ * @sa @ref glfwSetJoystickUserPointer
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup input
+ */
+ SSCAPI void* glfwGetJoystickUserPointer(int jid);
+
+ /*! @brief Returns whether the specified joystick has a gamepad mapping.
+ *
+ * This function returns whether the specified joystick is both present and has
+ * a gamepad mapping.
+ *
+ * If the specified joystick is present but does not have a gamepad mapping
+ * this function will return `GLFW_FALSE` but will not generate an error. Call
+ * @ref glfwJoystickPresent to check if a joystick is present regardless of
+ * whether it has a mapping.
+ *
+ * @param[in] jid The [joystick](@ref joysticks) to query.
+ * @return `GLFW_TRUE` if a joystick is both present and has a gamepad mapping,
+ * or `GLFW_FALSE` otherwise.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_INVALID_ENUM.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref gamepad
+ * @sa @ref glfwGetGamepadState
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup input
+ */
+ SSCAPI int glfwJoystickIsGamepad(int jid);
+
+ /*! @brief Sets the joystick configuration callback.
+ *
+ * This function sets the joystick configuration callback, or removes the
+ * currently set callback. This is called when a joystick is connected to or
+ * disconnected from the system.
+ *
+ * For joystick connection and disconnection events to be delivered on all
+ * platforms, you need to call one of the [event processing](@ref events)
+ * functions. Joystick disconnection may also be detected and the callback
+ * called by joystick functions. The function will then return whatever it
+ * returns if the joystick is not present.
+ *
+ * @param[in] callback The new callback, or `NULL` to remove the currently set
+ * callback.
+ * @return The previously set callback, or `NULL` if no callback was set or the
+ * library had not been [initialized](@ref intro_init).
+ *
+ * @callback_signature
+ * @code
+ * void function_name(int jid, int event)
+ * @endcode
+ * For more information about the callback parameters, see the
+ * [function pointer type](@ref GLFWjoystickfun).
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref joystick_event
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup input
+ */
+ SSCAPI GLFWjoystickfun glfwSetJoystickCallback(GLFWjoystickfun callback);
+
+ /*! @brief Adds the specified SDL_GameControllerDB gamepad mappings.
+ *
+ * This function parses the specified ASCII encoded string and updates the
+ * internal list with any gamepad mappings it finds. This string may
+ * contain either a single gamepad mapping or many mappings separated by
+ * newlines. The parser supports the full format of the `gamecontrollerdb.txt`
+ * source file including empty lines and comments.
+ *
+ * See @ref gamepad_mapping for a description of the format.
+ *
+ * If there is already a gamepad mapping for a given GUID in the internal list,
+ * it will be replaced by the one passed to this function. If the library is
+ * terminated and re-initialized the internal list will revert to the built-in
+ * default.
+ *
+ * @param[in] string The string containing the gamepad mappings.
+ * @return `GLFW_TRUE` if successful, or `GLFW_FALSE` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_INVALID_VALUE.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref gamepad
+ * @sa @ref glfwJoystickIsGamepad
+ * @sa @ref glfwGetGamepadName
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup input
+ */
+ SSCAPI int glfwUpdateGamepadMappings(const char* string);
+
+ /*! @brief Returns the human-readable gamepad name for the specified joystick.
+ *
+ * This function returns the human-readable name of the gamepad from the
+ * gamepad mapping assigned to the specified joystick.
+ *
+ * If the specified joystick is not present or does not have a gamepad mapping
+ * this function will return `NULL` but will not generate an error. Call
+ * @ref glfwJoystickPresent to check whether it is present regardless of
+ * whether it has a mapping.
+ *
+ * @param[in] jid The [joystick](@ref joysticks) to query.
+ * @return The UTF-8 encoded name of the gamepad, or `NULL` if the
+ * joystick is not present, does not have a mapping or an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref GLFW_INVALID_ENUM.
+ *
+ * @pointer_lifetime The returned string is allocated and freed by GLFW. You
+ * should not free it yourself. It is valid until the specified joystick is
+ * disconnected, the gamepad mappings are updated or the library is terminated.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref gamepad
+ * @sa @ref glfwJoystickIsGamepad
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup input
+ */
+ SSCAPI const char* glfwGetGamepadName(int jid);
+
+ /*! @brief Retrieves the state of the specified joystick remapped as a gamepad.
+ *
+ * This function retrieves the state of the specified joystick remapped to
+ * an Xbox-like gamepad.
+ *
+ * If the specified joystick is not present or does not have a gamepad mapping
+ * this function will return `GLFW_FALSE` but will not generate an error. Call
+ * @ref glfwJoystickPresent to check whether it is present regardless of
+ * whether it has a mapping.
+ *
+ * The Guide button may not be available for input as it is often hooked by the
+ * system or the Steam client.
+ *
+ * Not all devices have all the buttons or axes provided by @ref
+ * GLFWgamepadstate. Unavailable buttons and axes will always report
+ * `GLFW_RELEASE` and 0.0 respectively.
+ *
+ * @param[in] jid The [joystick](@ref joysticks) to query.
+ * @param[out] state The gamepad input state of the joystick.
+ * @return `GLFW_TRUE` if successful, or `GLFW_FALSE` if no joystick is
+ * connected, it has no gamepad mapping or an [error](@ref error_handling)
+ * occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_INVALID_ENUM.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref gamepad
+ * @sa @ref glfwUpdateGamepadMappings
+ * @sa @ref glfwJoystickIsGamepad
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup input
+ */
+ SSCAPI int glfwGetGamepadState(int jid, GLFWgamepadstate* state);
+
+ /*! @brief Sets the clipboard to the specified string.
+ *
+ * This function sets the system clipboard to the specified, UTF-8 encoded
+ * string.
+ *
+ * @param[in] window Deprecated. Any valid window or `NULL`.
+ * @param[in] string A UTF-8 encoded string.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @pointer_lifetime The specified string is copied before this function
+ * returns.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref clipboard
+ * @sa @ref glfwGetClipboardString
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup input
+ */
+ SSCAPI void glfwSetClipboardString(GLFWwindow* window, const char* string);
+
+ /*! @brief Returns the contents of the clipboard as a string.
+ *
+ * This function returns the contents of the system clipboard, if it contains
+ * or is convertible to a UTF-8 encoded string. If the clipboard is empty or
+ * if its contents cannot be converted, `NULL` is returned and a @ref
+ * GLFW_FORMAT_UNAVAILABLE error is generated.
+ *
+ * @param[in] window Deprecated. Any valid window or `NULL`.
+ * @return The contents of the clipboard as a UTF-8 encoded string, or `NULL`
+ * if an [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_FORMAT_UNAVAILABLE and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @pointer_lifetime The returned string is allocated and freed by GLFW. You
+ * should not free it yourself. It is valid until the next call to @ref
+ * glfwGetClipboardString or @ref glfwSetClipboardString, or until the library
+ * is terminated.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref clipboard
+ * @sa @ref glfwSetClipboardString
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup input
+ */
+ SSCAPI const char* glfwGetClipboardString(GLFWwindow* window);
+
+ /*! @brief Returns the GLFW time.
+ *
+ * This function returns the current GLFW time, in seconds. Unless the time
+ * has been set using @ref glfwSetTime it measures time elapsed since GLFW was
+ * initialized.
+ *
+ * This function and @ref glfwSetTime are helper functions on top of @ref
+ * glfwGetTimerFrequency and @ref glfwGetTimerValue.
+ *
+ * The resolution of the timer is system dependent, but is usually on the order
+ * of a few micro- or nanoseconds. It uses the highest-resolution monotonic
+ * time source on each operating system.
+ *
+ * @return The current time, in seconds, or zero if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Reading and
+ * writing of the internal base time is not atomic, so it needs to be
+ * externally synchronized with calls to @ref glfwSetTime.
+ *
+ * @sa @ref time
+ *
+ * @since Added in version 1.0.
+ *
+ * @ingroup input
+ */
+ SSCAPI double glfwGetTime(void);
+
+ /*! @brief Sets the GLFW time.
+ *
+ * This function sets the current GLFW time, in seconds. The value must be
+ * a positive finite number less than or equal to 18446744073.0, which is
+ * approximately 584.5 years.
+ *
+ * This function and @ref glfwGetTime are helper functions on top of @ref
+ * glfwGetTimerFrequency and @ref glfwGetTimerValue.
+ *
+ * @param[in] time The new value, in seconds.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_INVALID_VALUE.
+ *
+ * @remark The upper limit of GLFW time is calculated as
+ * floor((264 - 1) / 109) and is due to implementations
+ * storing nanoseconds in 64 bits. The limit may be increased in the future.
+ *
+ * @thread_safety This function may be called from any thread. Reading and
+ * writing of the internal base time is not atomic, so it needs to be
+ * externally synchronized with calls to @ref glfwGetTime.
+ *
+ * @sa @ref time
+ *
+ * @since Added in version 2.2.
+ *
+ * @ingroup input
+ */
+ SSCAPI void glfwSetTime(double time);
+
+ /*! @brief Returns the current value of the raw timer.
+ *
+ * This function returns the current value of the raw timer, measured in
+ * 1 / frequency seconds. To get the frequency, call @ref
+ * glfwGetTimerFrequency.
+ *
+ * @return The value of the timer, or zero if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref time
+ * @sa @ref glfwGetTimerFrequency
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup input
+ */
+ SSCAPI uint64_t glfwGetTimerValue(void);
+
+ /*! @brief Returns the frequency, in Hz, of the raw timer.
+ *
+ * This function returns the frequency, in Hz, of the raw timer.
+ *
+ * @return The frequency of the timer, in Hz, or zero if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref time
+ * @sa @ref glfwGetTimerValue
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup input
+ */
+ SSCAPI uint64_t glfwGetTimerFrequency(void);
+
+ /*! @brief Makes the context of the specified window current for the calling
+ * thread.
+ *
+ * This function makes the OpenGL or OpenGL ES context of the specified window
+ * current on the calling thread. A context must only be made current on
+ * a single thread at a time and each thread can have only a single current
+ * context at a time.
+ *
+ * When moving a context between threads, you must make it non-current on the
+ * old thread before making it current on the new one.
+ *
+ * By default, making a context non-current implicitly forces a pipeline flush.
+ * On machines that support `GL_KHR_context_flush_control`, you can control
+ * whether a context performs this flush by setting the
+ * [GLFW_CONTEXT_RELEASE_BEHAVIOR](@ref GLFW_CONTEXT_RELEASE_BEHAVIOR_hint)
+ * hint.
+ *
+ * The specified window must have an OpenGL or OpenGL ES context. Specifying
+ * a window without a context will generate a @ref GLFW_NO_WINDOW_CONTEXT
+ * error.
+ *
+ * @param[in] window The window whose context to make current, or `NULL` to
+ * detach the current context.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_NO_WINDOW_CONTEXT and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref context_current
+ * @sa @ref glfwGetCurrentContext
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup context
+ */
+ SSCAPI void glfwMakeContextCurrent(GLFWwindow* window);
+
+ /*! @brief Returns the window whose context is current on the calling thread.
+ *
+ * This function returns the window whose OpenGL or OpenGL ES context is
+ * current on the calling thread.
+ *
+ * @return The window whose context is current, or `NULL` if no window's
+ * context is current.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref context_current
+ * @sa @ref glfwMakeContextCurrent
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup context
+ */
+ SSCAPI GLFWwindow* glfwGetCurrentContext(void);
+
+ /*! @brief Swaps the front and back buffers of the specified window.
+ *
+ * This function swaps the front and back buffers of the specified window when
+ * rendering with OpenGL or OpenGL ES. If the swap interval is greater than
+ * zero, the GPU driver waits the specified number of screen updates before
+ * swapping the buffers.
+ *
+ * The specified window must have an OpenGL or OpenGL ES context. Specifying
+ * a window without a context will generate a @ref GLFW_NO_WINDOW_CONTEXT
+ * error.
+ *
+ * This function does not apply to Vulkan. If you are rendering with Vulkan,
+ * see `vkQueuePresentKHR` instead.
+ *
+ * @param[in] window The window whose buffers to swap.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_NO_WINDOW_CONTEXT and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @remark __EGL:__ The context of the specified window must be current on the
+ * calling thread.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref buffer_swap
+ * @sa @ref glfwSwapInterval
+ *
+ * @since Added in version 1.0.
+ * @glfw3 Added window handle parameter.
+ *
+ * @ingroup window
+ */
+ SSCAPI void glfwSwapBuffers(GLFWwindow* window);
+
+ /*! @brief Sets the swap interval for the current context.
+ *
+ * This function sets the swap interval for the current OpenGL or OpenGL ES
+ * context, i.e. the number of screen updates to wait from the time @ref
+ * glfwSwapBuffers was called before swapping the buffers and returning. This
+ * is sometimes called _vertical synchronization_, _vertical retrace
+ * synchronization_ or just _vsync_.
+ *
+ * A context that supports either of the `WGL_EXT_swap_control_tear` and
+ * `GLX_EXT_swap_control_tear` extensions also accepts _negative_ swap
+ * intervals, which allows the driver to swap immediately even if a frame
+ * arrives a little bit late. You can check for these extensions with @ref
+ * glfwExtensionSupported.
+ *
+ * A context must be current on the calling thread. Calling this function
+ * without a current context will cause a @ref GLFW_NO_CURRENT_CONTEXT error.
+ *
+ * This function does not apply to Vulkan. If you are rendering with Vulkan,
+ * see the present mode of your swapchain instead.
+ *
+ * @param[in] interval The minimum number of screen updates to wait for
+ * until the buffers are swapped by @ref glfwSwapBuffers.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_NO_CURRENT_CONTEXT and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @remark This function is not called during context creation, leaving the
+ * swap interval set to whatever is the default for that API. This is done
+ * because some swap interval extensions used by GLFW do not allow the swap
+ * interval to be reset to zero once it has been set to a non-zero value.
+ *
+ * @remark Some GPU drivers do not honor the requested swap interval, either
+ * because of a user setting that overrides the application's request or due to
+ * bugs in the driver.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref buffer_swap
+ * @sa @ref glfwSwapBuffers
+ *
+ * @since Added in version 1.0.
+ *
+ * @ingroup context
+ */
+ SSCAPI void glfwSwapInterval(int interval);
+
+ /*! @brief Returns whether the specified extension is available.
+ *
+ * This function returns whether the specified
+ * [API extension](@ref context_glext) is supported by the current OpenGL or
+ * OpenGL ES context. It searches both for client API extension and context
+ * creation API extensions.
+ *
+ * A context must be current on the calling thread. Calling this function
+ * without a current context will cause a @ref GLFW_NO_CURRENT_CONTEXT error.
+ *
+ * As this functions retrieves and searches one or more extension strings each
+ * call, it is recommended that you cache its results if it is going to be used
+ * frequently. The extension strings will not change during the lifetime of
+ * a context, so there is no danger in doing this.
+ *
+ * This function does not apply to Vulkan. If you are using Vulkan, see @ref
+ * glfwGetRequiredInstanceExtensions, `vkEnumerateInstanceExtensionProperties`
+ * and `vkEnumerateDeviceExtensionProperties` instead.
+ *
+ * @param[in] extension The ASCII encoded name of the extension.
+ * @return `GLFW_TRUE` if the extension is available, or `GLFW_FALSE`
+ * otherwise.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_NO_CURRENT_CONTEXT, @ref GLFW_INVALID_VALUE and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref context_glext
+ * @sa @ref glfwGetProcAddress
+ *
+ * @since Added in version 1.0.
+ *
+ * @ingroup context
+ */
+ SSCAPI int glfwExtensionSupported(const char* extension);
+
+ /*! @brief Returns the address of the specified function for the current
+ * context.
+ *
+ * This function returns the address of the specified OpenGL or OpenGL ES
+ * [core or extension function](@ref context_glext), if it is supported
+ * by the current context.
+ *
+ * A context must be current on the calling thread. Calling this function
+ * without a current context will cause a @ref GLFW_NO_CURRENT_CONTEXT error.
+ *
+ * This function does not apply to Vulkan. If you are rendering with Vulkan,
+ * see @ref glfwGetInstanceProcAddress, `vkGetInstanceProcAddr` and
+ * `vkGetDeviceProcAddr` instead.
+ *
+ * @param[in] procname The ASCII encoded name of the function.
+ * @return The address of the function, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_NO_CURRENT_CONTEXT and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @remark The address of a given function is not guaranteed to be the same
+ * between contexts.
+ *
+ * @remark This function may return a non-`NULL` address despite the
+ * associated version or extension not being available. Always check the
+ * context version or extension string first.
+ *
+ * @pointer_lifetime The returned function pointer is valid until the context
+ * is destroyed or the library is terminated.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref context_glext
+ * @sa @ref glfwExtensionSupported
+ *
+ * @since Added in version 1.0.
+ *
+ * @ingroup context
+ */
+ SSCAPI GLFWglproc glfwGetProcAddress(const char* procname);
+
+ /*! @brief Returns whether the Vulkan loader and an ICD have been found.
+ *
+ * This function returns whether the Vulkan loader and any minimally functional
+ * ICD have been found.
+ *
+ * The availability of a Vulkan loader and even an ICD does not by itself guarantee that
+ * surface creation or even instance creation is possible. Call @ref
+ * glfwGetRequiredInstanceExtensions to check whether the extensions necessary for Vulkan
+ * surface creation are available and @ref glfwGetPhysicalDevicePresentationSupport to
+ * check whether a queue family of a physical device supports image presentation.
+ *
+ * @return `GLFW_TRUE` if Vulkan is minimally available, or `GLFW_FALSE`
+ * otherwise.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref vulkan_support
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup vulkan
+ */
+ SSCAPI int glfwVulkanSupported(void);
+
+ /*! @brief Returns the Vulkan instance extensions required by GLFW.
+ *
+ * This function returns an array of names of Vulkan instance extensions required
+ * by GLFW for creating Vulkan surfaces for GLFW windows. If successful, the
+ * list will always contain `VK_KHR_surface`, so if you don't require any
+ * additional extensions you can pass this list directly to the
+ * `VkInstanceCreateInfo` struct.
+ *
+ * If Vulkan is not available on the machine, this function returns `NULL` and
+ * generates a @ref GLFW_API_UNAVAILABLE error. Call @ref glfwVulkanSupported
+ * to check whether Vulkan is at least minimally available.
+ *
+ * If Vulkan is available but no set of extensions allowing window surface
+ * creation was found, this function returns `NULL`. You may still use Vulkan
+ * for off-screen rendering and compute work.
+ *
+ * @param[out] count Where to store the number of extensions in the returned
+ * array. This is set to zero if an error occurred.
+ * @return An array of ASCII encoded extension names, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_API_UNAVAILABLE.
+ *
+ * @remark Additional extensions may be required by future versions of GLFW.
+ * You should check if any extensions you wish to enable are already in the
+ * returned array, as it is an error to specify an extension more than once in
+ * the `VkInstanceCreateInfo` struct.
+ *
+ * @pointer_lifetime The returned array is allocated and freed by GLFW. You
+ * should not free it yourself. It is guaranteed to be valid only until the
+ * library is terminated.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref vulkan_ext
+ * @sa @ref glfwCreateWindowSurface
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup vulkan
+ */
+ SSCAPI const char** glfwGetRequiredInstanceExtensions(uint32_t* count);
+
+#if defined(VK_VERSION_1_0)
+
+ /*! @brief Returns the address of the specified Vulkan instance function.
+ *
+ * This function returns the address of the specified Vulkan core or extension
+ * function for the specified instance. If instance is set to `NULL` it can
+ * return any function exported from the Vulkan loader, including at least the
+ * following functions:
+ *
+ * - `vkEnumerateInstanceExtensionProperties`
+ * - `vkEnumerateInstanceLayerProperties`
+ * - `vkCreateInstance`
+ * - `vkGetInstanceProcAddr`
+ *
+ * If Vulkan is not available on the machine, this function returns `NULL` and
+ * generates a @ref GLFW_API_UNAVAILABLE error. Call @ref glfwVulkanSupported
+ * to check whether Vulkan is at least minimally available.
+ *
+ * This function is equivalent to calling `vkGetInstanceProcAddr` with
+ * a platform-specific query of the Vulkan loader as a fallback.
+ *
+ * @param[in] instance The Vulkan instance to query, or `NULL` to retrieve
+ * functions related to instance creation.
+ * @param[in] procname The ASCII encoded name of the function.
+ * @return The address of the function, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_API_UNAVAILABLE.
+ *
+ * @pointer_lifetime The returned function pointer is valid until the library
+ * is terminated.
+ *
+ * @thread_safety This function may be called from any thread.
+ *
+ * @sa @ref vulkan_proc
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup vulkan
+ */
+ SSCAPI GLFWvkproc glfwGetInstanceProcAddress(VkInstance instance, const char* procname);
+
+ /*! @brief Returns whether the specified queue family can present images.
+ *
+ * This function returns whether the specified queue family of the specified
+ * physical device supports presentation to the platform GLFW was built for.
+ *
+ * If Vulkan or the required window surface creation instance extensions are
+ * not available on the machine, or if the specified instance was not created
+ * with the required extensions, this function returns `GLFW_FALSE` and
+ * generates a @ref GLFW_API_UNAVAILABLE error. Call @ref glfwVulkanSupported
+ * to check whether Vulkan is at least minimally available and @ref
+ * glfwGetRequiredInstanceExtensions to check what instance extensions are
+ * required.
+ *
+ * @param[in] instance The instance that the physical device belongs to.
+ * @param[in] device The physical device that the queue family belongs to.
+ * @param[in] queuefamily The index of the queue family to query.
+ * @return `GLFW_TRUE` if the queue family supports presentation, or
+ * `GLFW_FALSE` otherwise.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_API_UNAVAILABLE and @ref GLFW_PLATFORM_ERROR.
+ *
+ * @remark @macos This function currently always returns `GLFW_TRUE`, as the
+ * `VK_MVK_macos_surface` and `VK_EXT_metal_surface` extensions do not provide
+ * a `vkGetPhysicalDevice*PresentationSupport` type function.
+ *
+ * @thread_safety This function may be called from any thread. For
+ * synchronization details of Vulkan objects, see the Vulkan specification.
+ *
+ * @sa @ref vulkan_present
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup vulkan
+ */
+ SSCAPI int glfwGetPhysicalDevicePresentationSupport(VkInstance instance, VkPhysicalDevice device, uint32_t queuefamily);
+
+ /*! @brief Creates a Vulkan surface for the specified window.
+ *
+ * This function creates a Vulkan surface for the specified window.
+ *
+ * If the Vulkan loader or at least one minimally functional ICD were not found,
+ * this function returns `VK_ERROR_INITIALIZATION_FAILED` and generates a @ref
+ * GLFW_API_UNAVAILABLE error. Call @ref glfwVulkanSupported to check whether
+ * Vulkan is at least minimally available.
+ *
+ * If the required window surface creation instance extensions are not
+ * available or if the specified instance was not created with these extensions
+ * enabled, this function returns `VK_ERROR_EXTENSION_NOT_PRESENT` and
+ * generates a @ref GLFW_API_UNAVAILABLE error. Call @ref
+ * glfwGetRequiredInstanceExtensions to check what instance extensions are
+ * required.
+ *
+ * The window surface cannot be shared with another API so the window must
+ * have been created with the [client api hint](@ref GLFW_CLIENT_API_attrib)
+ * set to `GLFW_NO_API` otherwise it generates a @ref GLFW_INVALID_VALUE error
+ * and returns `VK_ERROR_NATIVE_WINDOW_IN_USE_KHR`.
+ *
+ * The window surface must be destroyed before the specified Vulkan instance.
+ * It is the responsibility of the caller to destroy the window surface. GLFW
+ * does not destroy it for you. Call `vkDestroySurfaceKHR` to destroy the
+ * surface.
+ *
+ * @param[in] instance The Vulkan instance to create the surface in.
+ * @param[in] window The window to create the surface for.
+ * @param[in] allocator The allocator to use, or `NULL` to use the default
+ * allocator.
+ * @param[out] surface Where to store the handle of the surface. This is set
+ * to `VK_NULL_HANDLE` if an error occurred.
+ * @return `VK_SUCCESS` if successful, or a Vulkan error code if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
+ * GLFW_API_UNAVAILABLE, @ref GLFW_PLATFORM_ERROR and @ref GLFW_INVALID_VALUE
+ *
+ * @remark If an error occurs before the creation call is made, GLFW returns
+ * the Vulkan error code most appropriate for the error. Appropriate use of
+ * @ref glfwVulkanSupported and @ref glfwGetRequiredInstanceExtensions should
+ * eliminate almost all occurrences of these errors.
+ *
+ * @remark @macos GLFW prefers the `VK_EXT_metal_surface` extension, with the
+ * `VK_MVK_macos_surface` extension as a fallback. The name of the selected
+ * extension, if any, is included in the array returned by @ref
+ * glfwGetRequiredInstanceExtensions.
+ *
+ * @remark @macos This function creates and sets a `CAMetalLayer` instance for
+ * the window content view, which is required for MoltenVK to function.
+ *
+ * @remark @x11 By default GLFW prefers the `VK_KHR_xcb_surface` extension,
+ * with the `VK_KHR_xlib_surface` extension as a fallback. You can make
+ * `VK_KHR_xlib_surface` the preferred extension by setting the
+ * [GLFW_X11_XCB_VULKAN_SURFACE](@ref GLFW_X11_XCB_VULKAN_SURFACE_hint) init
+ * hint. The name of the selected extension, if any, is included in the array
+ * returned by @ref glfwGetRequiredInstanceExtensions.
+ *
+ * @thread_safety This function may be called from any thread. For
+ * synchronization details of Vulkan objects, see the Vulkan specification.
+ *
+ * @sa @ref vulkan_surface
+ * @sa @ref glfwGetRequiredInstanceExtensions
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup vulkan
+ */
+ SSCAPI VkResult glfwCreateWindowSurface(VkInstance instance, GLFWwindow* window, const VkAllocationCallbacks* allocator, VkSurfaceKHR* surface);
+
+#endif /*VK_VERSION_1_0*/
+
+
+ /*************************************************************************
+ * Global definition cleanup
+ *************************************************************************/
+
+ /* ------------------- BEGIN SYSTEM/COMPILER SPECIFIC -------------------- */
+
+#ifdef GLFW_WINGDIAPI_DEFINED
+#undef WINGDIAPI
+#undef GLFW_WINGDIAPI_DEFINED
+#endif
+
+#ifdef GLFW_CALLBACK_DEFINED
+#undef CALLBACK
+#undef GLFW_CALLBACK_DEFINED
+#endif
+
+/* Some OpenGL related headers need GLAPIENTRY, but it is unconditionally
+ * defined by some gl.h variants (OpenBSD) so define it after if needed.
+ */
+#ifndef GLAPIENTRY
+#define GLAPIENTRY APIENTRY
+#define GLFW_GLAPIENTRY_DEFINED
+#endif
+
+ /* -------------------- END SYSTEM/COMPILER SPECIFIC --------------------- */
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _glfw3_h_ */
+
diff --git a/内核源代码/StgSharp.C/glfw3native.h b/内核源代码/StgSharp.C/glfw3native.h
new file mode 100644
index 00000000..a97c9840
--- /dev/null
+++ b/内核源代码/StgSharp.C/glfw3native.h
@@ -0,0 +1,632 @@
+/*************************************************************************
+ * GLFW 3.4 - www.glfw->org
+ * A library for OpenGL, window and input
+ *------------------------------------------------------------------------
+ * Copyright (c) 2002-2006 Marcus Geelnard
+ * Copyright (c) 2006-2018 Camilla Löwy org>
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would
+ * be appreciated but is not required.
+ *
+ * 2. Altered source versions must be plainly marked as such, and must not
+ * be misrepresented as being the original software.
+ *
+ * 3. This notice may not be removed or altered from any source
+ * distribution.
+ *
+ *************************************************************************/
+
+#ifndef _glfw3_native_h_
+#define _glfw3_native_h_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*************************************************************************
+ * Doxygen documentation
+ *************************************************************************/
+
+/*! @file glfw3native.h
+ * @brief The header of the native access functions.
+ *
+ * This is the header file of the native access functions. See @ref native for
+ * more information.
+ */
+/*! @defgroup native Native access
+ * @brief Functions related to accessing native handles.
+ *
+ * **By using the native access functions you assert that you know what you're
+ * doing and how to fix problems caused by using them. If you don't, you
+ * shouldn't be using them.**
+ *
+ * Before the inclusion of @ref glfw3native.h, you may define zero or more
+ * window system API macro and zero or more context creation API macros.
+ *
+ * The chosen backends must match those the library was compiled for. Failure
+ * to do this will cause a link-time error.
+ *
+ * The available window API macros are:
+ * * `GLFW_EXPOSE_NATIVE_WIN32`
+ * * `GLFW_EXPOSE_NATIVE_COCOA`
+ * * `GLFW_EXPOSE_NATIVE_X11`
+ * * `GLFW_EXPOSE_NATIVE_WAYLAND`
+ *
+ * The available context API macros are:
+ * * `GLFW_EXPOSE_NATIVE_WGL`
+ * * `GLFW_EXPOSE_NATIVE_NSGL`
+ * * `GLFW_EXPOSE_NATIVE_GLX`
+ * * `GLFW_EXPOSE_NATIVE_EGL`
+ * * `GLFW_EXPOSE_NATIVE_OSMESA`
+ *
+ * These macros select which of the native access functions that are declared
+ * and which platform-specific headers to include. It is then up your (by
+ * definition platform-specific) code to handle which of these should be
+ * defined.
+ *
+ * If you do not want the platform-specific headers to be included, define
+ * `GLFW_NATIVE_INCLUDE_NONE` before including the @ref glfw3native.h header.
+ *
+ * @code
+ * #define GLFW_EXPOSE_NATIVE_WIN32
+ * #define GLFW_EXPOSE_NATIVE_WGL
+ * #define GLFW_NATIVE_INCLUDE_NONE
+ * #include
+ * @endcode
+ */
+
+/*************************************************************************
+ * System headers and types
+ *************************************************************************/
+
+#if !defined(GLFW_NATIVE_INCLUDE_NONE)
+
+#if defined(GLFW_EXPOSE_NATIVE_WIN32) || defined(GLFW_EXPOSE_NATIVE_WGL)
+/* This is a workaround for the fact that glfw3.h needs to export APIENTRY (for
+ * example to allow applications to correctly declare a GL_KHR_debug callback)
+ * but windows.h assumes no one will define APIENTRY before it does
+ */
+#if defined(GLFW_APIENTRY_DEFINED)
+#undef APIENTRY
+#undef GLFW_APIENTRY_DEFINED
+#endif
+#include
+#endif
+
+#if defined(GLFW_EXPOSE_NATIVE_COCOA) || defined(GLFW_EXPOSE_NATIVE_NSGL)
+#if defined(__OBJC__)
+#import
+#else
+#include
+#include
+#endif
+#endif
+
+#if defined(GLFW_EXPOSE_NATIVE_X11) || defined(GLFW_EXPOSE_NATIVE_GLX)
+#include
+#include
+#endif
+
+#if defined(GLFW_EXPOSE_NATIVE_WAYLAND)
+#include
+#endif
+
+#if defined(GLFW_EXPOSE_NATIVE_WGL)
+/* WGL is declared by windows.h */
+#endif
+#if defined(GLFW_EXPOSE_NATIVE_NSGL)
+/* NSGL is declared by Cocoa.h */
+#endif
+#if defined(GLFW_EXPOSE_NATIVE_GLX)
+/* This is a workaround for the fact that glfw3.h defines GLAPIENTRY because by
+ * default it also acts as an OpenGL header
+ * However, glx.h will include gl.h, which will define it unconditionally
+ */
+#if defined(GLFW_GLAPIENTRY_DEFINED)
+#undef GLAPIENTRY
+#undef GLFW_GLAPIENTRY_DEFINED
+#endif
+#include
+#endif
+#if defined(GLFW_EXPOSE_NATIVE_EGL)
+#include
+#endif
+#if defined(GLFW_EXPOSE_NATIVE_OSMESA)
+/* This is a workaround for the fact that glfw3.h defines GLAPIENTRY because by
+ * default it also acts as an OpenGL header
+ * However, osmesa.h will include gl.h, which will define it unconditionally
+ */
+#if defined(GLFW_GLAPIENTRY_DEFINED)
+#undef GLAPIENTRY
+#undef GLFW_GLAPIENTRY_DEFINED
+#endif
+#include
+#endif
+
+#endif /*GLFW_NATIVE_INCLUDE_NONE*/
+
+/*************************************************************************
+ * Functions
+ *************************************************************************/
+
+#if defined(GLFW_EXPOSE_NATIVE_WIN32)
+/*! @brief Returns the adapter device name of the specified monitor.
+ *
+ * @return The UTF-8 encoded adapter device name (for example `\\.\DISPLAY1`)
+ * of the specified monitor, or `NULL` if an [error](@ref error_handling)
+ * occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup native
+ */
+SSCAPI const char *glfwGetWin32Adapter(GLFWmonitor *monitor);
+
+/*! @brief Returns the display device name of the specified monitor.
+ *
+ * @return The UTF-8 encoded display device name (for example
+ * `\\.\DISPLAY1\Monitor0`) of the specified monitor, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup native
+ */
+SSCAPI const char *glfwGetWin32Monitor(GLFWmonitor *monitor);
+
+/*! @brief Returns the `HWND` of the specified window.
+ *
+ * @return The `HWND` of the specified window, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @remark The `HDC` associated with the window can be queried with the
+ * [GetDC](https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getdc)
+ * function.
+ * @code
+ * HDC dc = GetDC(glfwGetWin32Window(window));
+ * @endcode
+ * This DC is private and does not need to be released.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup native
+ */
+SSCAPI HWND glfwGetWin32Window(GLFWwindow *window);
+#endif
+
+#if defined(GLFW_EXPOSE_NATIVE_WGL)
+/*! @brief Returns the `HGLRC` of the specified window.
+ *
+ * @return The `HGLRC` of the specified window, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
+ * GLFW_NOT_INITIALIZED.
+ *
+ * @remark The `HDC` associated with the window can be queried with the
+ * [GetDC](https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getdc)
+ * function.
+ * @code
+ * HDC dc = GetDC(glfwGetWin32Window(window));
+ * @endcode
+ * This DC is private and does not need to be released.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup native
+ */
+SSCAPI HGLRC glfwGetWGLContext(GLFWwindow *window);
+#endif
+
+#if defined(GLFW_EXPOSE_NATIVE_COCOA)
+/*! @brief Returns the `CGDirectDisplayID` of the specified monitor.
+ *
+ * @return The `CGDirectDisplayID` of the specified monitor, or
+ * `kCGNullDirectDisplay` if an [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup native
+ */
+SSCAPI CGDirectDisplayID glfwGetCocoaMonitor(GLFWmonitor *monitor);
+
+/*! @brief Returns the `NSWindow` of the specified window.
+ *
+ * @return The `NSWindow` of the specified window, or `nil` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup native
+ */
+SSCAPI id glfwGetCocoaWindow(GLFWwindow *window);
+#endif
+
+#if defined(GLFW_EXPOSE_NATIVE_NSGL)
+/*! @brief Returns the `NSOpenGLContext` of the specified window.
+ *
+ * @return The `NSOpenGLContext` of the specified window, or `nil` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
+ * GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup native
+ */
+SSCAPI id glfwGetNSGLContext(GLFWwindow *window);
+#endif
+
+#if defined(GLFW_EXPOSE_NATIVE_X11)
+/*! @brief Returns the `Display` used by GLFW.
+ *
+ * @return The `Display` used by GLFW, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup native
+ */
+SSCAPI Display *glfwGetX11Display(void);
+
+/*! @brief Returns the `RRCrtc` of the specified monitor.
+ *
+ * @return The `RRCrtc` of the specified monitor, or `None` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup native
+ */
+SSCAPI RRCrtc glfwGetX11Adapter(GLFWmonitor *monitor);
+
+/*! @brief Returns the `RROutput` of the specified monitor.
+ *
+ * @return The `RROutput` of the specified monitor, or `None` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.1.
+ *
+ * @ingroup native
+ */
+SSCAPI RROutput glfwGetX11Monitor(GLFWmonitor *monitor);
+
+/*! @brief Returns the `Window` of the specified window.
+ *
+ * @return The `Window` of the specified window, or `None` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup native
+ */
+SSCAPI Window glfwGetX11Window(GLFWwindow *window);
+
+/*! @brief Sets the current primary selection to the specified string.
+ *
+ * @param[in] string A UTF-8 encoded string.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @pointer_lifetime The specified string is copied before this function
+ * returns.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref clipboard
+ * @sa glfwGetX11SelectionString
+ * @sa glfwSetClipboardString
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup native
+ */
+SSCAPI void glfwSetX11SelectionString(const char *string);
+
+/*! @brief Returns the contents of the current primary selection as a string.
+ *
+ * If the selection is empty or if its contents cannot be converted, `NULL`
+ * is returned and a @ref GLFW_FORMAT_UNAVAILABLE error is generated.
+ *
+ * @return The contents of the selection as a UTF-8 encoded string, or `NULL`
+ * if an [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
+ * GLFW_PLATFORM_ERROR.
+ *
+ * @pointer_lifetime The returned string is allocated and freed by GLFW. You
+ * should not free it yourself. It is valid until the next call to @ref
+ * glfwGetX11SelectionString or @ref glfwSetX11SelectionString, or until the
+ * library is terminated.
+ *
+ * @thread_safety This function must only be called from the main thread.
+ *
+ * @sa @ref clipboard
+ * @sa glfwSetX11SelectionString
+ * @sa glfwGetClipboardString
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup native
+ */
+SSCAPI const char *glfwGetX11SelectionString(void);
+#endif
+
+#if defined(GLFW_EXPOSE_NATIVE_GLX)
+/*! @brief Returns the `GLXContext` of the specified window.
+ *
+ * @return The `GLXContext` of the specified window, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
+ * GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup native
+ */
+SSCAPI GLXContext glfwGetGLXContext(GLFWwindow *window);
+
+/*! @brief Returns the `GLXWindow` of the specified window.
+ *
+ * @return The `GLXWindow` of the specified window, or `None` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
+ * GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup native
+ */
+SSCAPI GLXWindow glfwGetGLXWindow(GLFWwindow *window);
+#endif
+
+#if defined(GLFW_EXPOSE_NATIVE_WAYLAND)
+/*! @brief Returns the `struct wl_display*` used by GLFW.
+ *
+ * @return The `struct wl_display*` used by GLFW, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup native
+ */
+SSCAPI struct wl_display *glfwGetWaylandDisplay(void);
+
+/*! @brief Returns the `struct wl_output*` of the specified monitor.
+ *
+ * @return The `struct wl_output*` of the specified monitor, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup native
+ */
+SSCAPI struct wl_output *glfwGetWaylandMonitor(GLFWmonitor *monitor);
+
+/*! @brief Returns the main `struct wl_surface*` of the specified window.
+ *
+ * @return The main `struct wl_surface*` of the specified window, or `NULL` if
+ * an [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.2.
+ *
+ * @ingroup native
+ */
+SSCAPI struct wl_surface *glfwGetWaylandWindow(GLFWwindow *window);
+#endif
+
+#if defined(GLFW_EXPOSE_NATIVE_EGL)
+/*! @brief Returns the `EGLDisplay` used by GLFW.
+ *
+ * @return The `EGLDisplay` used by GLFW, or `EGL_NO_DISPLAY` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
+ *
+ * @remark Because EGL is initialized on demand, this function will return
+ * `EGL_NO_DISPLAY` until the first context has been created via EGL.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup native
+ */
+SSCAPI EGLDisplay glfwGetEGLDisplay(void);
+
+/*! @brief Returns the `EGLContext` of the specified window.
+ *
+ * @return The `EGLContext` of the specified window, or `EGL_NO_CONTEXT` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
+ * GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup native
+ */
+SSCAPI EGLContext glfwGetEGLContext(GLFWwindow *window);
+
+/*! @brief Returns the `EGLSurface` of the specified window.
+ *
+ * @return The `EGLSurface` of the specified window, or `EGL_NO_SURFACE` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
+ * GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.0.
+ *
+ * @ingroup native
+ */
+SSCAPI EGLSurface glfwGetEGLSurface(GLFWwindow *window);
+#endif
+
+#if defined(GLFW_EXPOSE_NATIVE_OSMESA)
+/*! @brief Retrieves the color buffer associated with the specified window.
+ *
+ * @param[in] window The window whose color buffer to retrieve.
+ * @param[out] width Where to store the width of the color buffer, or `NULL`.
+ * @param[out] height Where to store the height of the color buffer, or `NULL`.
+ * @param[out] format Where to store the OSMesa pixel format of the color
+ * buffer, or `NULL`.
+ * @param[out] buffer Where to store the address of the color buffer, or
+ * `NULL`.
+ * @return `GLFW_TRUE` if successful, or `GLFW_FALSE` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
+ * GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup native
+ */
+SSCAPI int glfwGetOSMesaColorBuffer(GLFWwindow *window, int *width, int *height, int *format,
+ void **buffer);
+
+/*! @brief Retrieves the depth buffer associated with the specified window.
+ *
+ * @param[in] window The window whose depth buffer to retrieve.
+ * @param[out] width Where to store the width of the depth buffer, or `NULL`.
+ * @param[out] height Where to store the height of the depth buffer, or `NULL`.
+ * @param[out] bytesPerValue Where to store the number of bytes per depth
+ * buffer element, or `NULL`.
+ * @param[out] buffer Where to store the address of the depth buffer, or
+ * `NULL`.
+ * @return `GLFW_TRUE` if successful, or `GLFW_FALSE` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
+ * GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup native
+ */
+SSCAPI int glfwGetOSMesaDepthBuffer(GLFWwindow *window, int *width, int *height, int *bytesPerValue,
+ void **buffer);
+
+/*! @brief Returns the `OSMesaContext` of the specified window.
+ *
+ * @return The `OSMesaContext` of the specified window, or `NULL` if an
+ * [error](@ref error_handling) occurred.
+ *
+ * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
+ * GLFW_NOT_INITIALIZED.
+ *
+ * @thread_safety This function may be called from any thread. Access is not
+ * synchronized.
+ *
+ * @since Added in version 3.3.
+ *
+ * @ingroup native
+ */
+SSCAPI OSMesaContext glfwGetOSMesaContext(GLFWwindow *window);
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _glfw3_native_h_ */
diff --git a/内核源代码/StgSharp.C/hash.c b/内核源代码/StgSharp.C/hash.c
new file mode 100644
index 00000000..c0762b4a
--- /dev/null
+++ b/内核源代码/StgSharp.C/hash.c
@@ -0,0 +1,51 @@
+#include "ssc_intrinsic.h"
+#include "StgSharpC.h"
+
+static inline uint32_t fmix32(uint32_t h);
+
+INTERNAL int SSCDECL city_hash_simplify(byte const *str, int const length)
+{
+ uint32_t hash = length, size = length << 1;
+ byte *end = str + size, *ptr = str;
+
+ if (size < 4) {
+ for (; ptr < end; ptr += 2) {
+ hash = _mm_crc32_u16(hash, *ptr);
+ }
+ } else if (size < 16) {
+ byte *last = end - 4;
+ for (; ptr < end; ptr += 4) {
+ hash = _mm_crc32_u32(hash, *(uint32_t *)ptr);
+ }
+ for (; ptr < end; ptr++) {
+ hash = _mm_crc32_u16(hash, *ptr);
+ }
+ } else {
+ byte *last_128 = end - 16, *last_32 = end - 4;
+ uint64_t hash64 = size;
+ for (; ptr < last_128; ptr += 16) {
+ __m128i vec = _mm_loadu_si32((int *)ptr);
+ hash64 = _mm_crc32_u64(hash64, _mm_extract_epi64(vec, 0));
+ hash64 = _mm_crc32_u64(hash64, _mm_extract_epi64(vec, 1));
+ }
+ hash = _mm_crc32_u8(hash, hash64);
+ hash = _mm_crc32_u8(hash, hash64 >> 32);
+ for (; ptr < last_32; ptr += 4) {
+ hash = _mm_crc32_u32(hash,*(uint32_t *)ptr);
+ }
+ for (; ptr < end; ptr += 2) {
+ hash = _mm_crc32_u8(hash,*ptr);
+ }
+ }
+ return fmix32(hash);
+}
+
+INTERNAL inline uint32_t fmix32(uint32_t h)
+{
+ h ^= h >> 16;
+ h *= 0x85ebca6b;
+ h ^= h >> 13;
+ h *= 0xc2b2ae35;
+ h ^= h >> 16;
+ return h;
+}
diff --git a/内核源代码/StgSharp.C/intrinsic.c b/内核源代码/StgSharp.C/intrinsic.c
new file mode 100644
index 00000000..61c9f526
--- /dev/null
+++ b/内核源代码/StgSharp.C/intrinsic.c
@@ -0,0 +1,134 @@
+#include "StgSharpC.h"
+#include "ssc_intrinsic.h"
+#include
+
+#ifdef _MSC_VER
+#include
+#include
+#else
+#include
+#endif // _MSC_VER
+
+PRIVATE void load_intrinsic_sse(ssc_intrinsic *context);
+PRIVATE void load_intrinsic_avx(ssc_intrinsic *context);
+PRIVATE void load_intrinsic_512(ssc_intrinsic *context);
+
+PRIVATE int check_isa(most_advanced_instruction instruction_family)
+{
+ if (instruction_family != NEON) {
+#if _MSC_VER
+ return __check_isa_support(instruction_family, 0);
+#else
+ switch (instruction_family) {
+ case SSE:
+ return __builtin_cpu_supports("sse4.2");
+ case AVX256:
+ return __builtin_cpu_supports("avx2");
+ case AVX512:
+ return __builtin_cpu_supports("avx512f");
+ default:
+ return 0;
+ }
+#endif // _MSC_VER
+ }
+
+#if defined(__ARM_NEON) || defined(__ARM_NEON__)
+ return 1;
+#else
+ return 0;
+#endif
+}
+
+SSCAPI int load_intrinsic_function(void *intrinsic_context)
+{
+ ssc_null_assert(intrinsic_context);
+
+ ssc_intrinsic *context = (ssc_intrinsic *)intrinsic_context;
+
+ if (check_isa(AVX512)) {
+ load_intrinsic_512(context);
+ return 3;
+ } else if (check_isa(AVX256)) {
+ load_intrinsic_avx(context);
+ return 2;
+ } else if (check_isa(SSE)) {
+ load_intrinsic_sse(context);
+ return 1;
+ } else if (check_isa(NEON)) {
+ return -1;
+ }
+
+ return 0;
+}
+
+void load_intrinsic_sse(ssc_intrinsic *context)
+{
+ context->add_m2 = addmatrix2_sse;
+ context->add_m3 = addmatrix3_sse;
+ context->add_m4 = addmatrix4_sse;
+ context->transpose_23 = transpose23;
+ context->transpose_24 = transpose24;
+ context->transpose_32 = transpose32;
+ context->transpose_33 = transpose33;
+ context->transpose_34 = transpose34;
+ context->transpose_42 = transpose42;
+ context->transpose_43 = transpose43;
+ context->transpose_44 = transpose44;
+ context->normalize_3 = normalize;
+ context->det_matrix33 = det_mat3;
+ context->det_matrix44 = det_mat4;
+ context->dot_31 = dot_31_sse;
+ context->dot_32 = dot_32_sse;
+ context->dot_41 = dot_41_sse;
+ context->dot_42 = dot_42_sse;
+ context->dot_43 = dot_43_sse;
+ context->city_hash_simplify = city_hash_simplify;
+}
+
+void load_intrinsic_avx(ssc_intrinsic *context)
+{
+ context->add_m2 = addmatrix2_avx;
+ context->add_m3 = addmatrix3_avx;
+ context->add_m4 = addmatrix4_avx;
+ context->transpose_23 = transpose23;
+ context->transpose_24 = transpose24;
+ context->transpose_32 = transpose32;
+ context->transpose_33 = transpose33;
+ context->transpose_34 = transpose34;
+ context->transpose_42 = transpose42;
+ context->transpose_43 = transpose43;
+ context->transpose_44 = transpose44;
+ context->normalize_3 = normalize;
+ context->det_matrix33 = det_mat3;
+ context->det_matrix44 = det_mat4;
+ context->dot_31 = dot_31_avx;
+ context->dot_32 = dot_32_avx;
+ context->dot_41 = dot_41_avx;
+ context->dot_42 = dot_42_avx;
+ context->dot_43 = dot_43_avx;
+ context->city_hash_simplify = city_hash_simplify;
+}
+
+void load_intrinsic_512(ssc_intrinsic *context)
+{
+ context->add_m2 = addmatrix2_avx;
+ context->add_m3 = addmatrix3_512;
+ context->add_m4 = addmatrix4_512;
+ context->transpose_23 = transpose23;
+ context->transpose_24 = transpose24;
+ context->transpose_32 = transpose32;
+ context->transpose_33 = transpose33;
+ context->transpose_34 = transpose34;
+ context->transpose_42 = transpose42;
+ context->transpose_43 = transpose43;
+ context->transpose_44 = transpose44;
+ context->normalize_3 = normalize;
+ context->det_matrix33 = det_mat3;
+ context->det_matrix44 = det_mat4;
+ context->dot_31 = dot_31_avx;
+ context->dot_32 = dot_32_avx;
+ context->dot_41 = dot_41_avx;
+ context->dot_42 = dot_42_avx;
+ context->dot_43 = dot_43_avx;
+ context->city_hash_simplify = city_hash_simplify;
+}
diff --git a/内核源代码/StgSharp.C/khrplatform.h b/内核源代码/StgSharp.C/khrplatform.h
new file mode 100644
index 00000000..5cd17f65
--- /dev/null
+++ b/内核源代码/StgSharp.C/khrplatform.h
@@ -0,0 +1,310 @@
+#ifndef __khrplatform_h_
+#define __khrplatform_h_
+
+/*
+** Copyright (c) 2008-2018 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
+
+/* Khronos platform-specific types and definitions.
+ *
+ * The master copy of khrplatform.h is maintained in the Khronos EGL
+ * Registry repository at https://github.com/KhronosGroup/EGL-Registry
+ * The last semantic modification to khrplatform.h was at commit ID:
+ * 67a3e0864c2d75ea5287b9f3d2eb74a745936692
+ *
+ * Adopters may modify this file to suit their platform. Adopters are
+ * encouraged to submit platform specific modifications to the Khronos
+ * group so that they can be included in future versions of this file.
+ * Please submit changes by filing pull requests or issues on
+ * the EGL Registry repository linked above.
+ *
+ *
+ * See the Implementer's Guidelines for information about where this file
+ * should be located on your system and for more details of its use:
+ * http://www.khronos.org/registry/implementers_guide.pdf
+ *
+ * This file should be included as
+ * #include
+ * by Khronos client API header files that use its types and defines.
+ *
+ * The types in khrplatform.h should only be used to define API-specific types.
+ *
+ * Types defined in khrplatform.h:
+ * khronos_int8_t signed 8 bit
+ * khronos_uint8_t unsigned 8 bit
+ * khronos_int16_t signed 16 bit
+ * khronos_uint16_t unsigned 16 bit
+ * khronos_int32_t signed 32 bit
+ * khronos_uint32_t unsigned 32 bit
+ * khronos_int64_t signed 64 bit
+ * khronos_uint64_t unsigned 64 bit
+ * khronos_intptr_t signed same number of bits as a pointer
+ * khronos_uintptr_t unsigned same number of bits as a pointer
+ * khronos_ssize_t signed size
+ * khronos_usize_t unsigned size
+ * khronos_float_t signed 32 bit floating point
+ * khronos_time_ns_t unsigned 64 bit time in nanoseconds
+ * khronos_utime_nanoseconds_t unsigned time interval or absolute time in
+ * nanoseconds
+ * khronos_stime_nanoseconds_t signed time interval in nanoseconds
+ * khronos_boolean_enum_t enumerated boolean type. This should
+ * only be used as a base type when a client API's boolean type is
+ * an enum. Client APIs which use an integer or other type for
+ * booleans cannot use this as the base type for their boolean.
+ *
+ * Tokens defined in khrplatform.h:
+ *
+ * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values.
+ *
+ * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0.
+ * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0.
+ *
+ * Calling convention macros defined in this file:
+ * KHRONOS_APICALL
+ * KHRONOS_APIENTRY
+ * KHRONOS_APIATTRIBUTES
+ *
+ * These may be used in function prototypes as:
+ *
+ * KHRONOS_APICALL void KHRONOS_APIENTRY funcname(
+ * int arg1,
+ * int arg2) KHRONOS_APIATTRIBUTES;
+ */
+
+#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC)
+#define KHRONOS_STATIC 1
+#endif
+
+/*-------------------------------------------------------------------------
+ * Definition of KHRONOS_APICALL
+ *-------------------------------------------------------------------------
+ * This precedes the return type of the function in the function prototype.
+ */
+#if defined(KHRONOS_STATIC)
+/* If the preprocessor constant KHRONOS_STATIC is defined, make the
+ * header compatible with static linking. */
+#define KHRONOS_APICALL
+#elif defined(_WIN32)
+#define KHRONOS_APICALL __declspec(dllimport)
+#elif defined(__SYMBIAN32__)
+#define KHRONOS_APICALL IMPORT_C
+#elif defined(__ANDROID__)
+#define KHRONOS_APICALL __attribute__((visibility("default")))
+#else
+#define KHRONOS_APICALL
+#endif
+
+/*-------------------------------------------------------------------------
+ * Definition of KHRONOS_APIENTRY
+ *-------------------------------------------------------------------------
+ * This follows the return type of the function and precedes the function
+ * name in the function prototype.
+ */
+#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__)
+/* Win32 but not WinCE */
+#define KHRONOS_APIENTRY __stdcall
+#else
+#define KHRONOS_APIENTRY
+#endif
+
+/*-------------------------------------------------------------------------
+ * Definition of KHRONOS_APIATTRIBUTES
+ *-------------------------------------------------------------------------
+ * This follows the closing parenthesis of the function prototype arguments.
+ */
+#if defined(__ARMCC_2__)
+#define KHRONOS_APIATTRIBUTES __softfp
+#else
+#define KHRONOS_APIATTRIBUTES
+#endif
+
+/*-------------------------------------------------------------------------
+ * basic type definitions
+ *-----------------------------------------------------------------------*/
+#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || \
+ defined(__SCO__) || defined(__USLC__)
+
+/*
+ * Using
+ */
+#include
+typedef int32_t khronos_int32_t;
+typedef uint32_t khronos_uint32_t;
+typedef int64_t khronos_int64_t;
+typedef uint64_t khronos_uint64_t;
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+/*
+ * To support platform where unsigned long cannot be used interchangeably with
+ * inptr_t (e.g. CHERI-extended ISAs), we can use the stdint.h intptr_t.
+ * Ideally, we could just use (u)intptr_t everywhere, but this could result in
+ * ABI breakage if khronos_uintptr_t is changed from unsigned long to
+ * unsigned long long or similar (this results in different C++ name mangling).
+ * To avoid changes for existing platforms, we restrict usage of intptr_t to
+ * platforms where the size of a pointer is larger than the size of long.
+ */
+#if defined(__SIZEOF_LONG__) && defined(__SIZEOF_POINTER__)
+#if __SIZEOF_POINTER__ > __SIZEOF_LONG__
+#define KHRONOS_USE_INTPTR_T
+#endif
+#endif
+
+#elif defined(__VMS) || defined(__sgi)
+
+/*
+ * Using
+ */
+#include
+typedef int32_t khronos_int32_t;
+typedef uint32_t khronos_uint32_t;
+typedef int64_t khronos_int64_t;
+typedef uint64_t khronos_uint64_t;
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+
+#elif defined(_WIN32) && !defined(__SCITECH_SNAP__)
+
+/*
+ * Win32
+ */
+typedef __int32 khronos_int32_t;
+typedef unsigned __int32 khronos_uint32_t;
+typedef __int64 khronos_int64_t;
+typedef unsigned __int64 khronos_uint64_t;
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+
+#elif defined(__sun__) || defined(__digital__)
+
+/*
+ * Sun or Digital
+ */
+typedef int khronos_int32_t;
+typedef unsigned int khronos_uint32_t;
+#if defined(__arch64__) || defined(_LP64)
+typedef long int khronos_int64_t;
+typedef unsigned long int khronos_uint64_t;
+#else
+typedef long long int khronos_int64_t;
+typedef unsigned long long int khronos_uint64_t;
+#endif /* __arch64__ */
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+
+#elif 0
+
+/*
+ * Hypothetical platform with no float or int64 support
+ */
+typedef int khronos_int32_t;
+typedef unsigned int khronos_uint32_t;
+#define KHRONOS_SUPPORT_INT64 0
+#define KHRONOS_SUPPORT_FLOAT 0
+
+#else
+
+/*
+ * Generic fallback
+ */
+#include
+typedef int32_t khronos_int32_t;
+typedef uint32_t khronos_uint32_t;
+typedef int64_t khronos_int64_t;
+typedef uint64_t khronos_uint64_t;
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+
+#endif
+
+/*
+ * Types that are (so far) the same on all platforms
+ */
+typedef signed char khronos_int8_t;
+typedef unsigned char khronos_uint8_t;
+typedef signed short int khronos_int16_t;
+typedef unsigned short int khronos_uint16_t;
+
+/*
+ * Types that differ between LLP64 and LP64 architectures - in LLP64,
+ * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
+ * to be the only LLP64 architecture in current use.
+ */
+#ifdef KHRONOS_USE_INTPTR_T
+typedef intptr_t khronos_intptr_t;
+typedef uintptr_t khronos_uintptr_t;
+#elif defined(_WIN64)
+typedef signed long long int khronos_intptr_t;
+typedef unsigned long long int khronos_uintptr_t;
+#else
+typedef signed long int khronos_intptr_t;
+typedef unsigned long int khronos_uintptr_t;
+#endif
+
+#if defined(_WIN64)
+typedef signed long long int khronos_ssize_t;
+typedef unsigned long long int khronos_usize_t;
+#else
+typedef signed long int khronos_ssize_t;
+typedef unsigned long int khronos_usize_t;
+#endif
+
+#if KHRONOS_SUPPORT_FLOAT
+/*
+ * Float type
+ */
+typedef float khronos_float_t;
+#endif
+
+#if KHRONOS_SUPPORT_INT64
+/* Time types
+ *
+ * These types can be used to represent a time interval in nanoseconds or
+ * an absolute Unadjusted System Time. Unadjusted System Time is the number
+ * of nanoseconds since some arbitrary system event (e.g. since the last
+ * time the system booted). The Unadjusted System Time is an unsigned
+ * 64 bit value that wraps back to 0 every 584 years. Time intervals
+ * may be either signed or unsigned.
+ */
+typedef khronos_uint64_t khronos_utime_nanoseconds_t;
+typedef khronos_int64_t khronos_stime_nanoseconds_t;
+#endif
+
+/*
+ * Dummy value used to pad enum types to 32 bits.
+ */
+#ifndef KHRONOS_MAX_ENUM
+#define KHRONOS_MAX_ENUM 0x7FFFFFFF
+#endif
+
+/*
+ * Enumerated boolean type
+ *
+ * Values other than zero should be considered to be true. Therefore
+ * comparisons should not be made against KHRONOS_TRUE.
+ */
+typedef enum {
+ KHRONOS_FALSE = 0,
+ KHRONOS_TRUE = 1,
+ KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM
+} khronos_boolean_enum_t;
+
+#endif /* __khrplatform_h_ */
diff --git a/内核源代码/StgSharp.C/mat2.c b/内核源代码/StgSharp.C/mat2.c
new file mode 100644
index 00000000..211b1eab
--- /dev/null
+++ b/内核源代码/StgSharp.C/mat2.c
@@ -0,0 +1,42 @@
+#include "StgSharpC.h"
+#include "ssc_intrinsic.h"
+
+INTERNAL void __cdecl transpose23(__2_columnset *source, __3_columnset *target)
+{
+ __m128 t0 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+ _MM_SHUFFLE(1, 0, 1, 0));
+ __m128 t1 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+ _MM_SHUFFLE(3, 2, 3, 2));
+
+ target->column[0] = _mm_shuffle_ps(t0, zero_vec, _MM_SHUFFLE(2, 0, 2, 0));
+ target->column[1] = _mm_shuffle_ps(t0, zero_vec, _MM_SHUFFLE(3, 1, 3, 1));
+ target->column[2] = _mm_shuffle_ps(t1, zero_vec, _MM_SHUFFLE(2, 0, 2, 0));
+}
+
+INTERNAL void __cdecl transpose24(__2_columnset *source, __4_columnset *target)
+{
+ __m128 t0 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+ _MM_SHUFFLE(1, 0, 1, 0));
+ __m128 t1 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+ _MM_SHUFFLE(3, 2, 3, 2));
+
+ target->column[0] = _mm_shuffle_ps(t0, zero_vec, _MM_SHUFFLE(2, 0, 2, 0));
+ target->column[1] = _mm_shuffle_ps(t0, zero_vec, _MM_SHUFFLE(3, 1, 3, 1));
+ target->column[2] = _mm_shuffle_ps(t1, zero_vec, _MM_SHUFFLE(2, 0, 2, 0));
+ target->column[3] = _mm_shuffle_ps(t1, zero_vec, _MM_SHUFFLE(3, 1, 3, 1));
+}
+
+INTERNAL void __cdecl addmatrix2_sse(__2_columnset *left, __2_columnset *right, __2_columnset *ans)
+{
+ __m128 temp0 = _mm_add_ps(ALIGN(left->column[0]), ALIGN(right->column[0]));
+ __m128 temp1 = _mm_add_ps(ALIGN(left->column[1]), ALIGN(right->column[1]));
+
+ _mm_storeu_ps(&ans->m[0][0], temp0);
+ _mm_storeu_ps(&ans->m[0][1], temp1);
+}
+
+INTERNAL void __cdecl addmatrix2_avx(__2_columnset *left, __2_columnset *right, __2_columnset *ans)
+{
+ __m256 temp = _mm256_add_ps(ALIGN256(left->column[0]), ALIGN256(right->column[0]));
+ _mm256_storeu_ps(&ans->m[0][0], temp);
+}
diff --git a/内核源代码/StgSharp.C/mat3.c b/内核源代码/StgSharp.C/mat3.c
new file mode 100644
index 00000000..b9dfeef6
--- /dev/null
+++ b/内核源代码/StgSharp.C/mat3.c
@@ -0,0 +1,104 @@
+#include "StgSharpC.h"
+#include "ssc_intrinsic.h"
+#include
+
+INTERNAL void _cdecl transpose32(__3_columnset *source, __2_columnset *target)
+{
+ __m128 t0 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+ _MM_SHUFFLE(1, 0, 1, 0));
+ __m128 t2 = _mm_shuffle_ps(ALIGN(source->column[2]), zero_vec, _MM_SHUFFLE(1, 0, 1, 0));
+
+ target->column[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
+ target->column[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
+}
+
+INTERNAL void _cdecl transpose33(__3_columnset *source, __3_columnset *target)
+{
+ __m128 t0 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+ _MM_SHUFFLE(1, 0, 1, 0));
+ __m128 t1 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+ _MM_SHUFFLE(3, 2, 3, 2));
+ __m128 t2 = _mm_shuffle_ps(ALIGN(source->column[2]), zero_vec, _MM_SHUFFLE(1, 0, 1, 0));
+ __m128 t3 = _mm_shuffle_ps(ALIGN(source->column[2]), zero_vec, _MM_SHUFFLE(3, 2, 3, 2));
+
+ target->column[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
+ target->column[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
+ target->column[2] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(2, 0, 2, 0));
+}
+
+INTERNAL void _cdecl transpose34(__3_columnset *source, __4_columnset *target)
+{
+ __m128 t0 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+ _MM_SHUFFLE(1, 0, 1, 0));
+ __m128 t1 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+ _MM_SHUFFLE(3, 2, 3, 2));
+ __m128 t2 = _mm_shuffle_ps(ALIGN(source->column[2]), zero_vec, _MM_SHUFFLE(1, 0, 1, 0));
+ __m128 t3 = _mm_shuffle_ps(ALIGN(source->column[2]), zero_vec, _MM_SHUFFLE(3, 2, 3, 2));
+
+ target->column[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
+ target->column[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
+ target->column[2] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(2, 0, 2, 0));
+ target->column[3] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(3, 1, 3, 1));
+}
+
+INTERNAL float _cdecl det_mat3_internal(__m128 const c0, __m128 const c1, __m128 const c2)
+{
+ //let adding row aligned
+ __m128 addc1 = _mm_shuffle_ps(c1, c1, _MM_SHUFFLE(3, 0, 2, 1));
+ __m128 addc2 = _mm_shuffle_ps(c2, c2, _MM_SHUFFLE(3, 1, 0, 2));
+
+ //let sub row aligned
+ __m128 subc1 = _mm_shuffle_ps(c1, c1, _MM_SHUFFLE(3, 1, 0, 2));
+ __m128 subc2 = _mm_shuffle_ps(c2, c2, _MM_SHUFFLE(3, 0, 2, 1));
+
+ //multple all add row
+ __m128 cache = _mm_mul_ps(c0, addc1);
+ cache = _mm_mul_ps(cache, addc2);
+
+ //multiple all sub row
+ __m128 sub = _mm_mul_ps(c0, subc1);
+ sub = _mm_mul_ps(sub, subc2);
+
+ //main-corner sub sub-corner
+ cache = _mm_sub_ps(cache, sub);
+
+ __m128 ret = _mm_hadd_ps(cache, cache); //element 1 add element 2
+ ret = _mm_add_ps(ret, cache); //(e1 add e2) add element 3
+
+ return ret.m128_f32[2];
+}
+
+INTERNAL float _cdecl det_mat3(__3_columnset *source, __3_columnset *transpose)
+{
+ return det_mat3_internal(source->column[0], source->column[1], source->column[2]);
+}
+
+#pragma region add
+
+INTERNAL void __cdecl addmatrix3_sse(__3_columnset *left, __3_columnset *right, __3_columnset *ans)
+{
+ __m128 temp0 = _mm_add_ps(ALIGN(left->column[0]), ALIGN(right->column[0]));
+ __m128 temp1 = _mm_add_ps(ALIGN(left->column[1]), ALIGN(right->column[1]));
+ __m128 temp2 = _mm_add_ps(ALIGN(left->column[2]), ALIGN(right->column[2]));
+
+ _mm_storeu_ps(&ans->m[0][0], temp0);
+ _mm_storeu_ps(&ans->m[0][1], temp1);
+ _mm_storeu_ps(&ans->m[0][2], temp2);
+}
+
+INTERNAL void __cdecl addmatrix3_avx(__3_columnset *left, __3_columnset *right, __3_columnset *ans)
+{
+ __m256 temp0 = _mm256_add_ps(ALIGN256(left->part), ALIGN256(right->part));
+ __m128 temp1 = _mm_add_ps(ALIGN(left->column[2]), ALIGN(right->column[2]));
+
+ _mm256_storeu_ps(&ans->m[0][0], temp0);
+ _mm_storeu_ps(&ans->m[0][2], temp1);
+}
+
+INTERNAL void __cdecl addmatrix3_512(__3_columnset *left, __3_columnset *right, __3_columnset *ans)
+{
+ __m512 temp = _mm512_add_ps(_mm512_loadu_ps(left), _mm512_loadu_ps(right));
+ _mm512_mask_store_ps(ans, 0x0fff, temp);
+}
+
+#pragma endregion
diff --git a/内核源代码/StgSharp.C/mat4.c b/内核源代码/StgSharp.C/mat4.c
new file mode 100644
index 00000000..5ddd28f6
--- /dev/null
+++ b/内核源代码/StgSharp.C/mat4.c
@@ -0,0 +1,84 @@
+
+#include "StgSharpC.h"
+#include "ssc_intrinsic.h"
+#include
+#include
+
+INTERNAL void __cdecl transpose42(__4_columnset const *source, __2_columnset *target)
+{
+ __m128 t0 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+ _MM_SHUFFLE(1, 0, 1, 0));
+ __m128 t2 = _mm_shuffle_ps(ALIGN(source->column[2]), ALIGN(source->column[3]),
+ _MM_SHUFFLE(1, 0, 1, 0));
+
+ target->column[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
+ target->column[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
+}
+
+INTERNAL void __cdecl transpose43(__4_columnset const *source, __3_columnset *target)
+{
+ __m128 t0 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+ _MM_SHUFFLE(1, 0, 1, 0));
+ __m128 t1 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+ _MM_SHUFFLE(3, 2, 3, 2));
+ __m128 t2 = _mm_shuffle_ps(ALIGN(source->column[2]), ALIGN(source->column[3]),
+ _MM_SHUFFLE(1, 0, 1, 0));
+ __m128 t3 = _mm_shuffle_ps(ALIGN(source->column[2]), ALIGN(source->column[3]),
+ _MM_SHUFFLE(3, 2, 3, 2));
+
+ target->column[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
+ target->column[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
+ target->column[2] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(2, 0, 2, 0));
+}
+
+INTERNAL void __cdecl transpose44(__4_columnset const *source, __4_columnset *target)
+{
+ __m128 t0 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+ _MM_SHUFFLE(1, 0, 1, 0));
+ __m128 t1 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]),
+ _MM_SHUFFLE(3, 2, 3, 2));
+ __m128 t2 = _mm_shuffle_ps(ALIGN(source->column[2]), ALIGN(source->column[3]),
+ _MM_SHUFFLE(1, 0, 1, 0));
+ __m128 t3 = _mm_shuffle_ps(ALIGN(source->column[2]), ALIGN(source->column[3]),
+ _MM_SHUFFLE(3, 2, 3, 2));
+
+ target->column[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
+ target->column[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
+ target->column[2] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(2, 0, 2, 0));
+ target->column[3] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(3, 1, 3, 1));
+}
+
+INTERNAL float __cdecl det_mat4(__4_columnset const *mat_ptr, __4_columnset const *transpose)
+{
+ __m128 mc0 = ALIGN(mat_ptr->column[0]);
+ __m128 mc1 = ALIGN(mat_ptr->column[1]);
+ __m128 mc2 = ALIGN(mat_ptr->column[2]);
+ __m128 mc3 = ALIGN(mat_ptr->column[3]);
+
+ __m128 cogeneration =
+ _mm_set_ps(det_mat3_internal(mc0, mc1, mc2), det_mat3_internal(mc0, mc1, mc3),
+ det_mat3_internal(mc0, mc2, mc3), det_mat3_internal(mc1, mc2, mc3));
+ __m128 retvec = _mm_mul_ps(ALIGN(transpose->column[3]), cogeneration);
+ retvec = _mm_hsub_ps(retvec, retvec);
+ retvec = _mm_hadd_ps(retvec, retvec);
+ return -retvec.m128_f32[0];
+}
+
+INTERNAL void SSCDECL addmatrix4_sse(__4_columnset *left, __4_columnset *right, __4_columnset *ans)
+{
+ ans->column[0] = _mm_add_ps(ALIGN(left->column[0]), ALIGN(right->column[0]));
+ ans->column[1] = _mm_add_ps(ALIGN(left->column[1]), ALIGN(right->column[1]));
+ ans->column[2] = _mm_add_ps(ALIGN(left->column[2]), ALIGN(right->column[2]));
+ ans->column[3] = _mm_add_ps(ALIGN(left->column[3]), ALIGN(right->column[3]));
+}
+
+INTERNAL void SSCDECL addmatrix4_avx(__4_columnset *left, __4_columnset *right, __4_columnset *ans)
+{
+ ans->half[0] = _mm256_add_ps(ALIGN256(left->half[0]), ALIGN256(right->half[0]));
+ ans->half[1] = _mm256_add_ps(ALIGN256(left->half[1]), ALIGN256(right->half[1]));
+}
+
+INTERNAL void SSCDECL addmatrix4_512(__4_columnset *left, __4_columnset *right, __4_columnset *ans)
+{
+ ans->stream = _mm512_add_ps(ALIGN512(left->stream), ALIGN512(right->stream));
+}
diff --git a/内核源代码/StgSharp.C/ssc_framework.h b/内核源代码/StgSharp.C/ssc_framework.h
new file mode 100644
index 00000000..6449593b
--- /dev/null
+++ b/内核源代码/StgSharp.C/ssc_framework.h
@@ -0,0 +1,7 @@
+#ifdef _MSC_VER
+#pragma once
+#endif
+
+#if _WIN32
+
+#endif // __WIN32
diff --git a/内核源代码/StgSharp.C/ssc_internal.h b/内核源代码/StgSharp.C/ssc_internal.h
new file mode 100644
index 00000000..164b7ced
--- /dev/null
+++ b/内核源代码/StgSharp.C/ssc_internal.h
@@ -0,0 +1,37 @@
+#ifdef _MSC_VER
+#pragma once
+#endif
+
+#include "xmmintrin.h"
+/*
+#include "GLAD/gl.h"
+#include "glfw3.h"
+#include "StgSharpC.h"
+*/
+
+#ifndef SSC_INTERNAL
+#define SSC_INTERNAL
+
+#ifdef _MSC_VER
+#define _CRT_SECURE_NO_WARNINGS 1
+#define WIN32_LEAN_AND_MEAN
+#define SSCDECL __cdecl
+#define SSCAPI __declspec(dllexport)
+#define FORCEINLINE __forceinline
+#include
+#elif defined(__clang__) || defined(__GNUC__)
+#define SSCDECL __attribute__((cdecl))
+#define SSCAPI __attribute__((dllexport))
+#define FORCEINLINE __attribute__((always_inline))
+#else
+#define SSCAPI
+#define SSCDECL
+#define FORCEINLINE
+#endif
+
+#define SSCAPI_DEFINE
+
+#define PRIVATE static
+#define INTERNAL extern
+
+#endif //
diff --git a/内核源代码/StgSharp.C/ssc_intrinsic.h b/内核源代码/StgSharp.C/ssc_intrinsic.h
new file mode 100644
index 00000000..b15511b2
--- /dev/null
+++ b/内核源代码/StgSharp.C/ssc_intrinsic.h
@@ -0,0 +1,149 @@
+#ifdef _MSC_VER
+#pragma once
+#endif
+
+#ifndef SSC_INTRIN
+#define SSC_INTRIN
+
+#include "StgSharpC.h"
+#include
+#include
+
+#ifdef _MSC_VER
+#include
+#include
+#endif
+
+#define LASTTWO(x) (x & 3)
+#define LAST(x) (x & 3)
+#define get_align_begin(x) ((x + 15) & (~15))
+
+#define SSE_INSERT(source, target, reset3, reset2, reset1, reset0) \
+ (LASTTWO(source - 1) << 6) | (LASTTWO(target - 1) << 4) | (LAST(reset3) << 3) | \
+ (LAST(reset2) << 2) | (LAST(reset1) << 1) | LAST(reset0)
+#define SSE_INSERT_SIMPLE(source, target) SSE_INSERT(source, target, 0, 0, 0, 0)
+#define M256_PERMUTE(s3, s2, s1, s0) (LASTTWO(s3) << 6) | (LASTTWO(s2) << 4) | (LASTTWO(s1) << 2) | (LASTTWO(s0)
+
+#define zero_vec _mm_setzero_ps()
+#define zero_vec_256 _mm256_setzero_ps()
+
+typedef union uint64_u {
+ uint64_t u64;
+ uint32_t u32[2];
+}uint64_u;
+
+typedef union column_2 {
+ __m256 stream;
+ __m128 column[2];
+ float m[4][2];
+} __2_columnset;
+
+typedef union column_3 {
+ __m256 part;
+ __m128 column[3];
+ float m[4][3];
+} __3_columnset;
+
+typedef union column_4 {
+ __m512 stream;
+ __m256 half[2];
+ __m128 column[4];
+ float m[4][4];
+} __4_columnset;
+
+typedef void(SSCDECL *VECTORNORMALIZEPROC)(__m128 *source, __m128 *target);
+typedef void(SSCDECL *DOTPROC)(void *transpose, __m128 *vector, __m128 *ans);
+typedef void(SSCDECL *MATRIXTRANSPOSEPROC)(void *source, void *target);
+typedef void(SSCDECL *MATRIXDETPROC)(void *mat, void *transpose);
+typedef void(SSCDECL *MATARITHMETIC)(void *left, void *right, void *ans);
+typedef void(SSCDECL *SCALERMATARITHMETIC)(void *left, void *right, void *ans);
+
+#pragma region matix function
+
+INTERNAL void normalize(__m128 *source, __m128 *target);
+
+INTERNAL void SSCDECL addmatrix2_sse(__2_columnset *left, __2_columnset *right, __2_columnset *ans);
+INTERNAL void SSCDECL addmatrix2_avx(__2_columnset *left, __2_columnset *right, __2_columnset *ans);
+INTERNAL void SSCDECL transpose23(__2_columnset const *source, __3_columnset *target);
+INTERNAL void SSCDECL transpose24(__2_columnset const *source, __4_columnset *target);
+
+INTERNAL void SSCDECL addmatrix3_sse(__3_columnset *left, __3_columnset *right, __3_columnset *ans);
+INTERNAL void SSCDECL addmatrix3_avx(__3_columnset *left, __3_columnset *right, __3_columnset *ans);
+INTERNAL void SSCDECL addmatrix3_512(__3_columnset *left, __3_columnset *right, __3_columnset *ans);
+INTERNAL void SSCDECL transpose32(__3_columnset const *source, __2_columnset *target);
+INTERNAL void SSCDECL transpose33(__3_columnset const *source, __3_columnset *target);
+INTERNAL void SSCDECL transpose34(__3_columnset const *source, __4_columnset *target);
+INTERNAL float SSCDECL det_mat3(__3_columnset *matrix, __3_columnset *tranpose);
+
+INTERNAL void SSCDECL addmatrix4_sse(__4_columnset *left, __4_columnset *right, __4_columnset *ans);
+INTERNAL void SSCDECL addmatrix4_avx(__4_columnset *left, __4_columnset *right, __4_columnset *ans);
+INTERNAL void SSCDECL addmatrix4_512(__4_columnset *left, __4_columnset *right, __4_columnset *ans);
+INTERNAL void SSCDECL transpose42(__4_columnset const *source, __2_columnset *target);
+INTERNAL void SSCDECL transpose43(__4_columnset const *source, __3_columnset *target);
+INTERNAL void SSCDECL transpose44(__4_columnset const *source, __4_columnset *target);
+INTERNAL float SSCDECL det_mat4(__4_columnset *matrix, __4_columnset *transpose);
+
+#pragma endregion
+
+#pragma region dot
+
+INTERNAL void FORCEINLINE SSCDECL dot_41_sse(__4_columnset *transpose, __m128 *vector, __m128 *ans);
+INTERNAL void FORCEINLINE SSCDECL dot_31_sse(__3_columnset *transpose, __m128 *vector, __m128 *ans);
+INTERNAL void FORCEINLINE SSCDECL dot_41_avx(__4_columnset *transpose, __m128 *vector, __m128 *ans);
+INTERNAL void FORCEINLINE SSCDECL dot_31_avx(__3_columnset *transpose, __m128 *vector, __m128 *ans);
+
+INTERNAL void SSCDECL dot_32_sse(__3_columnset *transpose, __m128 *vector, __m128 *ans);
+INTERNAL void SSCDECL dot_32_avx(__3_columnset *transpose, __m128 *vector, __m128 *ans);
+INTERNAL void SSCDECL dot_42_sse(__4_columnset *transpose, __m128 *vector, __m128 *ans);
+INTERNAL void SSCDECL dot_42_avx(__4_columnset *transpose, __m128 *vector, __m128 *ans);
+
+INTERNAL void SSCDECL dot_43_sse(__4_columnset *transpose, __m128 *vector, __m128 *ans);
+INTERNAL void SSCDECL dot_43_avx(__4_columnset *transpose, __m128 *vector, __m128 *ans);
+INTERNAL void SSCDECL dot_43_512(__4_columnset *transpose, __m128 *vector, __m128 *ans);
+
+#pragma endregion
+
+#pragma region quick_hash
+
+INTERNAL int city_hash_simplify(byte const *str, int length);
+
+#pragma endregion
+
+typedef struct ssc_intrinsic {
+ MATARITHMETIC add_m2;
+ MATARITHMETIC add_m3;
+ MATARITHMETIC add_m4;
+ int (*city_hash_simplify)(byte *str, int length);
+ MATRIXDETPROC det_matrix33;
+ MATRIXDETPROC det_matrix44;
+ DOTPROC dot_31;
+ DOTPROC dot_32;
+ DOTPROC dot_41;
+ DOTPROC dot_42;
+ DOTPROC dot_43;
+ VECTORNORMALIZEPROC normalize_3;
+ MATRIXTRANSPOSEPROC transpose_23;
+ MATRIXTRANSPOSEPROC transpose_24;
+ MATRIXTRANSPOSEPROC transpose_32;
+ MATRIXTRANSPOSEPROC transpose_33;
+ MATRIXTRANSPOSEPROC transpose_34;
+ MATRIXTRANSPOSEPROC transpose_42;
+ MATRIXTRANSPOSEPROC transpose_43;
+ MATRIXTRANSPOSEPROC transpose_44;
+} ssc_intrinsic;
+
+typedef enum most_advanced_instruction {
+#ifdef _MSC_VER
+ SSE = __IA_SUPPORT_SSE42,
+ AVX256 = __IA_SUPPORT_VECTOR256,
+ AVX512 = __IA_SUPPORT_VECTOR512,
+ NEON
+#else
+ SSE,
+ AVX256,
+ AVX512,
+ NEON
+#endif
+} most_advanced_instruction;
+
+#endif // !SSC_INTRIN
diff --git a/内核源代码/StgSharp.C/stb_image.c b/内核源代码/StgSharp.C/stb_image.c
new file mode 100644
index 00000000..3c2d25a2
--- /dev/null
+++ b/内核源代码/StgSharp.C/stb_image.c
@@ -0,0 +1,8475 @@
+#include "stb_image.h"
+
+#if defined(STBI_ONLY_JPEG) || defined(STBI_ONLY_PNG) || defined(STBI_ONLY_BMP) || \
+ defined(STBI_ONLY_TGA) || defined(STBI_ONLY_GIF) || defined(STBI_ONLY_PSD) || \
+ defined(STBI_ONLY_HDR) || defined(STBI_ONLY_PIC) || defined(STBI_ONLY_PNM) || \
+ defined(STBI_ONLY_ZLIB)
+#ifndef STBI_ONLY_JPEG
+#define STBI_NO_JPEG
+#endif
+#ifndef STBI_ONLY_PNG
+#define STBI_NO_PNG
+#endif
+#ifndef STBI_ONLY_BMP
+#define STBI_NO_BMP
+#endif
+#ifndef STBI_ONLY_PSD
+#define STBI_NO_PSD
+#endif
+#ifndef STBI_ONLY_TGA
+#define STBI_NO_TGA
+#endif
+#ifndef STBI_ONLY_GIF
+#define STBI_NO_GIF
+#endif
+#ifndef STBI_ONLY_HDR
+#define STBI_NO_HDR
+#endif
+#ifndef STBI_ONLY_PIC
+#define STBI_NO_PIC
+#endif
+#ifndef STBI_ONLY_PNM
+#define STBI_NO_PNM
+#endif
+#endif
+
+#if defined(STBI_NO_PNG) && !defined(STBI_SUPPORT_ZLIB) && !defined(STBI_NO_ZLIB)
+#define STBI_NO_ZLIB
+#endif
+
+#include
+#include // ptrdiff_t on osx
+#include
+#include
+#include
+
+#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR)
+#include // ldexp, pow
+#endif
+
+#ifndef STBI_NO_STDIO
+#include
+#endif
+
+#ifndef STBI_ASSERT
+#include
+#define STBI_ASSERT(x) assert(x)
+#endif
+
+#ifdef __cplusplus
+#define STBI_EXTERN extern "C"
+#else
+#define STBI_EXTERN extern
+#endif
+
+#ifndef _MSC_VER
+#ifdef __cplusplus
+#define stbi_inline inline
+#else
+#define stbi_inline
+#endif
+#else
+#define stbi_inline __forceinline
+#endif
+
+#ifndef STBI_NO_THREAD_LOCALS
+#if defined(__cplusplus) && __cplusplus >= 201103L
+#define STBI_THREAD_LOCAL thread_local
+#elif defined(__GNUC__) && __GNUC__ < 5
+#define STBI_THREAD_LOCAL __thread
+#elif defined(_MSC_VER)
+#define STBI_THREAD_LOCAL __declspec(thread)
+#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L && !defined(__STDC_NO_THREADS__)
+#define STBI_THREAD_LOCAL _Thread_local
+#endif
+
+#ifndef STBI_THREAD_LOCAL
+#if defined(__GNUC__)
+#define STBI_THREAD_LOCAL __thread
+#endif
+#endif
+#endif
+
+#if defined(_MSC_VER) || defined(__SYMBIAN32__)
+typedef unsigned short stbi__uint16;
+typedef signed short stbi__int16;
+typedef unsigned int stbi__uint32;
+typedef signed int stbi__int32;
+#else
+#include
+typedef uint16_t stbi__uint16;
+typedef int16_t stbi__int16;
+typedef uint32_t stbi__uint32;
+typedef int32_t stbi__int32;
+#endif
+
+// should produce compiler error if size is wrong
+typedef unsigned char validate_uint32[sizeof(stbi__uint32) == 4 ? 1 : -1];
+
+#ifdef _MSC_VER
+#define STBI_NOTUSED(v) (void)(v)
+#else
+#define STBI_NOTUSED(v) (void)sizeof(v)
+#endif
+
+#ifdef _MSC_VER
+#define STBI_HAS_LROTL
+#endif
+
+#ifdef STBI_HAS_LROTL
+#define stbi_lrot(x, y) _lrotl(x, y)
+#else
+#define stbi_lrot(x, y) (((x) << (y)) | ((x) >> (-(y) & 31)))
+#endif
+
+#if defined(STBI_MALLOC) && defined(STBI_FREE) && \
+ (defined(STBI_REALLOC) || defined(STBI_REALLOC_SIZED))
+// ok
+#elif !defined(STBI_MALLOC) && !defined(STBI_FREE) && !defined(STBI_REALLOC) && \
+ !defined(STBI_REALLOC_SIZED)
+// ok
+#else
+#error "Must define all or none of STBI_MALLOC, STBI_FREE, and STBI_REALLOC (or STBI_REALLOC_SIZED)."
+#endif
+
+#ifndef STBI_MALLOC
+#define STBI_MALLOC(sz) malloc(sz)
+#define STBI_REALLOC(p, newsz) realloc(p, newsz)
+#define STBI_FREE(p) free(p)
+#endif
+
+#ifndef STBI_REALLOC_SIZED
+#define STBI_REALLOC_SIZED(p, oldsz, newsz) STBI_REALLOC(p, newsz)
+#endif
+
+// x86/x64 detection
+#if defined(__x86_64__) || defined(_M_X64)
+#define STBI__X64_TARGET
+#elif defined(__i386) || defined(_M_IX86)
+#define STBI__X86_TARGET
+#endif
+
+#if defined(__GNUC__) && defined(STBI__X86_TARGET) && !defined(__SSE2__) && !defined(STBI_NO_SIMD)
+// gcc doesn't support sse2 intrinsics unless you compile with -msse2,
+// which in turn means it gets to use SSE2 everywhere. This is unfortunate,
+// but previous attempts to provide the SSE2 functions with runtime
+// detection caused numerous issues. The way architecture extensions are
+// exposed in GCC/Clang is, sadly, not really suited for one-file libs.
+// New behavior: if compiled with -msse2, we use SSE2 without any
+// detection; if not, we don't use it at all.
+#define STBI_NO_SIMD
+#endif
+
+#if defined(__MINGW32__) && defined(STBI__X86_TARGET) && !defined(STBI_MINGW_ENABLE_SSE2) && \
+ !defined(STBI_NO_SIMD)
+// Note that __MINGW32__ doesn't actually mean 32-bit, so we have to avoid STBI__X64_TARGET
+//
+// 32-bit MinGW wants ESP to be 16-byte aligned, but this is not in the
+// Windows ABI and VC++ as well as Windows DLLs don't maintain that invariant.
+// As a result, enabling SSE2 on 32-bit MinGW is dangerous when not
+// simultaneously enabling "-mstackrealign".
+//
+// See https://github.com/nothings/stb/issues/81 for more information.
+//
+// So default to no SSE2 on 32-bit MinGW. If you've read this far and added
+// -mstackrealign to your build settings, feel free to #define STBI_MINGW_ENABLE_SSE2.
+#define STBI_NO_SIMD
+#endif
+
+#if !defined(STBI_NO_SIMD) && (defined(STBI__X86_TARGET) || defined(STBI__X64_TARGET))
+#define STBI_SSE2
+#include
+
+#ifdef _MSC_VER
+
+#if _MSC_VER >= 1400 // not VC6
+#include // __cpuid
+static int stbi__cpuid3(void)
+{
+ int info[4];
+ __cpuid(info, 1);
+ return info[3];
+}
+#else
+static int stbi__cpuid3(void)
+{
+ int res;
+ __asm {
+ mov eax, 1
+ cpuid
+ mov res, edx
+ }
+ return res;
+}
+#endif
+
+#define STBI_SIMD_ALIGN(type, name) __declspec(align(16)) type name
+
+#if !defined(STBI_NO_JPEG) && defined(STBI_SSE2)
+static int stbi__sse2_available(void)
+{
+ int info3 = stbi__cpuid3();
+ return ((info3 >> 26) & 1) != 0;
+}
+#endif
+
+#else // assume GCC-style if not VC++
+#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16)))
+
+#if !defined(STBI_NO_JPEG) && defined(STBI_SSE2)
+static int stbi__sse2_available(void)
+{
+ // If we're even attempting to compile this on GCC/Clang, that means
+ // -msse2 is on, which means the compiler is allowed to use SSE2
+ // instructions at will, and so are we.
+ return 1;
+}
+#endif
+
+#endif
+#endif
+
+// ARM NEON
+#if defined(STBI_NO_SIMD) && defined(STBI_NEON)
+#undef STBI_NEON
+#endif
+
+#ifdef STBI_NEON
+#include
+#ifdef _MSC_VER
+#define STBI_SIMD_ALIGN(type, name) __declspec(align(16)) type name
+#else
+#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16)))
+#endif
+#endif
+
+#ifndef STBI_SIMD_ALIGN
+#define STBI_SIMD_ALIGN(type, name) type name
+#endif
+
+#ifndef STBI_MAX_DIMENSIONS
+#define STBI_MAX_DIMENSIONS (1 << 24)
+#endif
+
+///////////////////////////////////////////////
+//
+// stbi__context struct and start_xxx functions
+
+// stbi__context structure is our basic context used by all images, so it
+// contains all the IO context, plus some basic image information
+typedef struct {
+ stbi__uint32 img_x, img_y;
+ int img_n, img_out_n;
+
+ stbi_io_callbacks io;
+ void *io_user_data;
+
+ int read_from_callbacks;
+ int buflen;
+ stbi_uc buffer_start[128];
+ int callback_already_read;
+
+ stbi_uc *img_buffer, *img_buffer_end;
+ stbi_uc *img_buffer_original, *img_buffer_original_end;
+} stbi__context;
+
+static void stbi__refill_buffer(stbi__context *s);
+
+// initialize a memory-decode context
+static void stbi__start_mem(stbi__context *s, stbi_uc const *buffer, int len)
+{
+ s->io.read = NULL;
+ s->read_from_callbacks = 0;
+ s->callback_already_read = 0;
+ s->img_buffer = s->img_buffer_original = (stbi_uc *)buffer;
+ s->img_buffer_end = s->img_buffer_original_end = (stbi_uc *)buffer + len;
+}
+
+// initialize a callback-based context
+static void stbi__start_callbacks(stbi__context *s, stbi_io_callbacks *c, void *user)
+{
+ s->io = *c;
+ s->io_user_data = user;
+ s->buflen = sizeof(s->buffer_start);
+ s->read_from_callbacks = 1;
+ s->callback_already_read = 0;
+ s->img_buffer = s->img_buffer_original = s->buffer_start;
+ stbi__refill_buffer(s);
+ s->img_buffer_original_end = s->img_buffer_end;
+}
+
+#ifndef STBI_NO_STDIO
+
+static int stbi__stdio_read(void *user, char *data, int size)
+{
+ return (int)fread(data, 1, size, (FILE *)user);
+}
+
+static void stbi__stdio_skip(void *user, int n)
+{
+ int ch;
+ fseek((FILE *)user, n, SEEK_CUR);
+ ch = fgetc((FILE *)user); /* have to read a byte to reset feof()'s flag */
+ if (ch != EOF) {
+ ungetc(ch, (FILE *)user); /* push byte back onto stream if valid. */
+ }
+}
+
+static int stbi__stdio_eof(void *user)
+{
+ return feof((FILE *)user) || ferror((FILE *)user);
+}
+
+static stbi_io_callbacks stbi__stdio_callbacks = {
+ stbi__stdio_read,
+ stbi__stdio_skip,
+ stbi__stdio_eof,
+};
+
+static void stbi__start_file(stbi__context *s, FILE *f)
+{
+ stbi__start_callbacks(s, &stbi__stdio_callbacks, (void *)f);
+}
+
+//static void stop_file(stbi__context *s) { }
+
+#endif // !STBI_NO_STDIO
+
+static void stbi__rewind(stbi__context *s)
+{
+ // conceptually rewind SHOULD rewind to the beginning of the stream,
+ // but we just rewind to the beginning of the initial buffer, because
+ // we only use it after doing 'test', which only ever looks at at most 92 bytes
+ s->img_buffer = s->img_buffer_original;
+ s->img_buffer_end = s->img_buffer_original_end;
+}
+
+enum { STBI_ORDER_RGB, STBI_ORDER_BGR };
+
+typedef struct {
+ int bits_per_channel;
+ int num_channels;
+ int channel_order;
+} stbi__result_info;
+
+#ifndef STBI_NO_JPEG
+static int stbi__jpeg_test(stbi__context *s);
+static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri);
+static int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp);
+#endif
+
+#ifndef STBI_NO_PNG
+static int stbi__png_test(stbi__context *s);
+static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri);
+static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp);
+static int stbi__png_is16(stbi__context *s);
+#endif
+
+#ifndef STBI_NO_BMP
+static int stbi__bmp_test(stbi__context *s);
+static void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri);
+static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp);
+#endif
+
+#ifndef STBI_NO_TGA
+static int stbi__tga_test(stbi__context *s);
+static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri);
+static int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp);
+#endif
+
+#ifndef STBI_NO_PSD
+static int stbi__psd_test(stbi__context *s);
+static void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri, int bpc);
+static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp);
+static int stbi__psd_is16(stbi__context *s);
+#endif
+
+#ifndef STBI_NO_HDR
+static int stbi__hdr_test(stbi__context *s);
+static float *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri);
+static int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp);
+#endif
+
+#ifndef STBI_NO_PIC
+static int stbi__pic_test(stbi__context *s);
+static void *stbi__pic_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri);
+static int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp);
+#endif
+
+#ifndef STBI_NO_GIF
+static int stbi__gif_test(stbi__context *s);
+static void *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri);
+static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp,
+ int req_comp);
+static int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp);
+#endif
+
+#ifndef STBI_NO_PNM
+static int stbi__pnm_test(stbi__context *s);
+static void *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri);
+static int stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp);
+static int stbi__pnm_is16(stbi__context *s);
+#endif
+
+static
+#ifdef STBI_THREAD_LOCAL
+ STBI_THREAD_LOCAL
+#endif
+ const char *stbi__g_failure_reason;
+
+STBIDEF const char *stbi_failure_reason(void)
+{
+ return stbi__g_failure_reason;
+}
+
+#ifndef STBI_NO_FAILURE_STRINGS
+static int stbi__err(const char *str)
+{
+ stbi__g_failure_reason = str;
+ return 0;
+}
+#endif
+
+static void *stbi__malloc(size_t size)
+{
+ return STBI_MALLOC(size);
+}
+
+// stb_image uses ints pervasively, including for offset calculations.
+// therefore the largest decoded image size we can support with the
+// current code, even on 64-bit targets, is INT_MAX. this is not a
+// significant limitation for the intended use case.
+//
+// we do, however, need to make sure our size calculations don't
+// overflow. hence a few helper functions for size calculations that
+// multiply integers together, making sure that they're non-negative
+// and no overflow occurs.
+
+// return 1 if the sum is valid, 0 on overflow.
+// negative terms are considered invalid.
+static int stbi__addsizes_valid(int a, int b)
+{
+ if (b < 0)
+ return 0;
+ // now 0 <= b <= INT_MAX, hence also
+ // 0 <= INT_MAX - b <= INTMAX.
+ // And "a + b <= INT_MAX" (which might overflow) is the
+ // same as a <= INT_MAX - b (no overflow)
+ return a <= INT_MAX - b;
+}
+
+// returns 1 if the product is valid, 0 on overflow.
+// negative factors are considered invalid.
+static int stbi__mul2sizes_valid(int a, int b)
+{
+ if (a < 0 || b < 0)
+ return 0;
+ if (b == 0)
+ return 1; // mul-by-0 is always safe
+ // portable way to check for no overflows in a*b
+ return a <= INT_MAX / b;
+}
+
+#if !defined(STBI_NO_JPEG) || !defined(STBI_NO_PNG) || !defined(STBI_NO_TGA) || \
+ !defined(STBI_NO_HDR)
+// returns 1 if "a*b + add" has no negative terms/factors and doesn't overflow
+static int stbi__mad2sizes_valid(int a, int b, int add)
+{
+ return stbi__mul2sizes_valid(a, b) && stbi__addsizes_valid(a * b, add);
+}
+#endif
+
+// returns 1 if "a*b*c + add" has no negative terms/factors and doesn't overflow
+static int stbi__mad3sizes_valid(int a, int b, int c, int add)
+{
+ return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a * b, c) &&
+ stbi__addsizes_valid(a * b * c, add);
+}
+
+// returns 1 if "a*b*c*d + add" has no negative terms/factors and doesn't overflow
+#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) || !defined(STBI_NO_PNM)
+static int stbi__mad4sizes_valid(int a, int b, int c, int d, int add)
+{
+ return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a * b, c) &&
+ stbi__mul2sizes_valid(a * b * c, d) && stbi__addsizes_valid(a * b * c * d, add);
+}
+#endif
+
+#if !defined(STBI_NO_JPEG) || !defined(STBI_NO_PNG) || !defined(STBI_NO_TGA) || \
+ !defined(STBI_NO_HDR)
+// mallocs with size overflow checking
+static void *stbi__malloc_mad2(int a, int b, int add)
+{
+ if (!stbi__mad2sizes_valid(a, b, add))
+ return NULL;
+ return stbi__malloc(a * b + add);
+}
+#endif
+
+static void *stbi__malloc_mad3(int a, int b, int c, int add)
+{
+ if (!stbi__mad3sizes_valid(a, b, c, add))
+ return NULL;
+ return stbi__malloc(a * b * c + add);
+}
+
+#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) || !defined(STBI_NO_PNM)
+static void *stbi__malloc_mad4(int a, int b, int c, int d, int add)
+{
+ if (!stbi__mad4sizes_valid(a, b, c, d, add))
+ return NULL;
+ return stbi__malloc(a * b * c * d + add);
+}
+#endif
+
+// returns 1 if the sum of two signed ints is valid (between -2^31 and 2^31-1 inclusive), 0 on overflow.
+static int stbi__addints_valid(int a, int b)
+{
+ if ((a >= 0) != (b >= 0))
+ return 1; // a and b have different signs, so no overflow
+ if (a < 0 && b < 0)
+ return a >=
+ INT_MIN -
+ b; // same as a + b >= INT_MIN; INT_MIN - b cannot overflow since b < 0.
+ return a <= INT_MAX - b;
+}
+
+// returns 1 if the product of two signed shorts is valid, 0 on overflow.
+static int stbi__mul2shorts_valid(short a, short b)
+{
+ if (b == 0 || b == -1)
+ return 1; // multiplication by 0 is always 0; check for -1 so SHRT_MIN/b doesn't overflow
+ if ((a >= 0) == (b >= 0))
+ return a <= SHRT_MAX / b; // product is positive, so similar to mul2sizes_valid
+ if (b < 0)
+ return a <= SHRT_MIN / b; // same as a * b >= SHRT_MIN
+ return a >= SHRT_MIN / b;
+}
+
+// stbi__err - error
+// stbi__errpf - error returning pointer to float
+// stbi__errpuc - error returning pointer to unsigned char
+
+#ifdef STBI_NO_FAILURE_STRINGS
+#define stbi__err(x, y) 0
+#elif defined(STBI_FAILURE_USERMSG)
+#define stbi__err(x, y) stbi__err(y)
+#else
+#define stbi__err(x, y) stbi__err(x)
+#endif
+
+#define stbi__errpf(x, y) ((float *)(size_t)(stbi__err(x, y) ? NULL : NULL))
+#define stbi__errpuc(x, y) ((unsigned char *)(size_t)(stbi__err(x, y) ? NULL : NULL))
+
+STBIDEF void stbi_image_free(void *retval_from_stbi_load)
+{
+ STBI_FREE(retval_from_stbi_load);
+}
+
+#ifndef STBI_NO_LINEAR
+static float *stbi__ldr_to_hdr(stbi_uc *data, int x, int y, int comp);
+#endif
+
+#ifndef STBI_NO_HDR
+static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp);
+#endif
+
+static int stbi__vertically_flip_on_load_global = 0;
+
+STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip)
+{
+ stbi__vertically_flip_on_load_global = flag_true_if_should_flip;
+}
+
+#ifndef STBI_THREAD_LOCAL
+#define stbi__vertically_flip_on_load stbi__vertically_flip_on_load_global
+#else
+static STBI_THREAD_LOCAL int stbi__vertically_flip_on_load_local, stbi__vertically_flip_on_load_set;
+
+STBIDEF void stbi_set_flip_vertically_on_load_thread(int flag_true_if_should_flip)
+{
+ stbi__vertically_flip_on_load_local = flag_true_if_should_flip;
+ stbi__vertically_flip_on_load_set = 1;
+}
+
+#define stbi__vertically_flip_on_load \
+ (stbi__vertically_flip_on_load_set ? stbi__vertically_flip_on_load_local : \
+ stbi__vertically_flip_on_load_global)
+#endif // STBI_THREAD_LOCAL
+
+static void *stbi__load_main(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri, int bpc)
+{
+ memset(ri, 0,
+ sizeof(*ri)); // make sure it's initialized if we add new fields
+ ri->bits_per_channel = 8; // default is 8 so most paths don't have to be changed
+ ri->channel_order =
+ STBI_ORDER_RGB; // all current input & output are this, but this is here so we can add BGR order
+ ri->num_channels = 0;
+
+ // test the formats with a very explicit header first (at least a FOURCC
+ // or distinctive magic number first)
+#ifndef STBI_NO_PNG
+ if (stbi__png_test(s))
+ return stbi__png_load(s, x, y, comp, req_comp, ri);
+#endif
+#ifndef STBI_NO_BMP
+ if (stbi__bmp_test(s))
+ return stbi__bmp_load(s, x, y, comp, req_comp, ri);
+#endif
+#ifndef STBI_NO_GIF
+ if (stbi__gif_test(s))
+ return stbi__gif_load(s, x, y, comp, req_comp, ri);
+#endif
+#ifndef STBI_NO_PSD
+ if (stbi__psd_test(s))
+ return stbi__psd_load(s, x, y, comp, req_comp, ri, bpc);
+#else
+ STBI_NOTUSED(bpc);
+#endif
+#ifndef STBI_NO_PIC
+ if (stbi__pic_test(s))
+ return stbi__pic_load(s, x, y, comp, req_comp, ri);
+#endif
+
+ // then the formats that can end up attempting to load with just 1 or 2
+ // bytes matching expectations; these are prone to false positives, so
+ // try them later
+#ifndef STBI_NO_JPEG
+ if (stbi__jpeg_test(s))
+ return stbi__jpeg_load(s, x, y, comp, req_comp, ri);
+#endif
+#ifndef STBI_NO_PNM
+ if (stbi__pnm_test(s))
+ return stbi__pnm_load(s, x, y, comp, req_comp, ri);
+#endif
+
+#ifndef STBI_NO_HDR
+ if (stbi__hdr_test(s)) {
+ float *hdr = stbi__hdr_load(s, x, y, comp, req_comp, ri);
+ return stbi__hdr_to_ldr(hdr, *x, *y, req_comp ? req_comp : *comp);
+ }
+#endif
+
+#ifndef STBI_NO_TGA
+ // test tga last because it's a crappy test!
+ if (stbi__tga_test(s))
+ return stbi__tga_load(s, x, y, comp, req_comp, ri);
+#endif
+
+ return stbi__errpuc("unknown image type", "Image not of any known type, or corrupt");
+}
+
+static stbi_uc *stbi__convert_16_to_8(stbi__uint16 *orig, int w, int h, int channels)
+{
+ int i;
+ int img_len = w * h * channels;
+ stbi_uc *reduced;
+
+ reduced = (stbi_uc *)stbi__malloc(img_len);
+ if (reduced == NULL)
+ return stbi__errpuc("outofmem", "Out of memory");
+
+ for (i = 0; i < img_len; ++i)
+ reduced[i] =
+ (stbi_uc)((orig[i] >> 8) &
+ 0xFF); // top half of each byte is sufficient approx of 16->8 bit scaling
+
+ STBI_FREE(orig);
+ return reduced;
+}
+
+static stbi__uint16 *stbi__convert_8_to_16(stbi_uc *orig, int w, int h, int channels)
+{
+ int i;
+ int img_len = w * h * channels;
+ stbi__uint16 *enlarged;
+
+ enlarged = (stbi__uint16 *)stbi__malloc(img_len * 2);
+ if (enlarged == NULL)
+ return (stbi__uint16 *)stbi__errpuc("outofmem", "Out of memory");
+
+ for (i = 0; i < img_len; ++i)
+ enlarged[i] =
+ (stbi__uint16)((orig[i] << 8) +
+ orig[i]); // replicate to high and low byte, maps 0->0, 255->0xffff
+
+ STBI_FREE(orig);
+ return enlarged;
+}
+
+static void stbi__vertical_flip(void *image, int w, int h, int bytes_per_pixel)
+{
+ int row;
+ size_t bytes_per_row = (size_t)w * bytes_per_pixel;
+ stbi_uc temp[2048];
+ stbi_uc *bytes = (stbi_uc *)image;
+
+ for (row = 0; row < (h >> 1); row++) {
+ stbi_uc *row0 = bytes + row * bytes_per_row;
+ stbi_uc *row1 = bytes + (h - row - 1) * bytes_per_row;
+ // swap row0 with row1
+ size_t bytes_left = bytes_per_row;
+ while (bytes_left) {
+ size_t bytes_copy = (bytes_left < sizeof(temp)) ? bytes_left : sizeof(temp);
+ memcpy(temp, row0, bytes_copy);
+ memcpy(row0, row1, bytes_copy);
+ memcpy(row1, temp, bytes_copy);
+ row0 += bytes_copy;
+ row1 += bytes_copy;
+ bytes_left -= bytes_copy;
+ }
+ }
+}
+
+#ifndef STBI_NO_GIF
+static void stbi__vertical_flip_slices(void *image, int w, int h, int z, int bytes_per_pixel)
+{
+ int slice;
+ int slice_size = w * h * bytes_per_pixel;
+
+ stbi_uc *bytes = (stbi_uc *)image;
+ for (slice = 0; slice < z; ++slice) {
+ stbi__vertical_flip(bytes, w, h, bytes_per_pixel);
+ bytes += slice_size;
+ }
+}
+#endif
+
+static unsigned char *stbi__load_and_postprocess_8bit(stbi__context *s, int *x, int *y, int *comp,
+ int req_comp)
+{
+ stbi__result_info ri;
+ void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 8);
+
+ if (result == NULL)
+ return NULL;
+
+ // it is the responsibility of the loaders to make sure we get either 8 or 16 bit.
+ STBI_ASSERT(ri.bits_per_channel == 8 || ri.bits_per_channel == 16);
+
+ if (ri.bits_per_channel != 8) {
+ result = stbi__convert_16_to_8((stbi__uint16 *)result, *x, *y,
+ req_comp == 0 ? *comp : req_comp);
+ ri.bits_per_channel = 8;
+ }
+
+ // @TODO: move stbi__convert_format to here
+
+ if (stbi__vertically_flip_on_load) {
+ int channels = req_comp ? req_comp : *comp;
+ stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi_uc));
+ }
+
+ return (unsigned char *)result;
+}
+
+static stbi__uint16 *stbi__load_and_postprocess_16bit(stbi__context *s, int *x, int *y, int *comp,
+ int req_comp)
+{
+ stbi__result_info ri;
+ void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 16);
+
+ if (result == NULL)
+ return NULL;
+
+ // it is the responsibility of the loaders to make sure we get either 8 or 16 bit.
+ STBI_ASSERT(ri.bits_per_channel == 8 || ri.bits_per_channel == 16);
+
+ if (ri.bits_per_channel != 16) {
+ result = stbi__convert_8_to_16((stbi_uc *)result, *x, *y,
+ req_comp == 0 ? *comp : req_comp);
+ ri.bits_per_channel = 16;
+ }
+
+ // @TODO: move stbi__convert_format16 to here
+ // @TODO: special case RGB-to-Y (and RGBA-to-YA) for 8-bit-to-16-bit case to keep more precision
+
+ if (stbi__vertically_flip_on_load) {
+ int channels = req_comp ? req_comp : *comp;
+ stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi__uint16));
+ }
+
+ return (stbi__uint16 *)result;
+}
+
+#if !defined(STBI_NO_HDR) && !defined(STBI_NO_LINEAR)
+static void stbi__float_postprocess(float *result, int *x, int *y, int *comp, int req_comp)
+{
+ if (stbi__vertically_flip_on_load && result != NULL) {
+ int channels = req_comp ? req_comp : *comp;
+ stbi__vertical_flip(result, *x, *y, channels * sizeof(float));
+ }
+}
+#endif
+
+#ifndef STBI_NO_STDIO
+
+#if defined(_WIN32) && defined(STBI_WINDOWS_UTF8)
+STBI_EXTERN __declspec(dllimport) int __stdcall MultiByteToWideChar(unsigned int cp,
+ unsigned long flags,
+ const char *str, int cbmb,
+ wchar_t *widestr, int cchwide);
+STBI_EXTERN __declspec(dllimport) int __stdcall WideCharToMultiByte(
+ unsigned int cp, unsigned long flags, const wchar_t *widestr, int cchwide, char *str,
+ int cbmb, const char *defchar, int *used_default);
+#endif
+
+#if defined(_WIN32) && defined(STBI_WINDOWS_UTF8)
+STBIDEF int stbi_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t *input)
+{
+ return WideCharToMultiByte(65001 /* UTF8 */, 0, input, -1, buffer, (int)bufferlen, NULL,
+ NULL);
+}
+#endif
+
+static FILE *stbi__fopen(char const *filename, char const *mode)
+{
+ FILE *f;
+#if defined(_WIN32) && defined(STBI_WINDOWS_UTF8)
+ wchar_t wMode[64];
+ wchar_t wFilename[1024];
+ if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, filename, -1, wFilename,
+ sizeof(wFilename) / sizeof(*wFilename)))
+ return 0;
+
+ if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, mode, -1, wMode,
+ sizeof(wMode) / sizeof(*wMode)))
+ return 0;
+
+#if defined(_MSC_VER) && _MSC_VER >= 1400
+ if (0 != _wfopen_s(&f, wFilename, wMode))
+ f = 0;
+#else
+ f = _wfopen(wFilename, wMode);
+#endif
+
+#elif defined(_MSC_VER) && _MSC_VER >= 1400
+ if (0 != fopen_s(&f, filename, mode))
+ f = 0;
+#else
+ f = fopen(filename, mode);
+#endif
+ return f;
+}
+
+STBIDEF stbi_uc *stbi_load(char const *filename, int *x, int *y, int *comp, int req_comp)
+{
+ FILE *f = stbi__fopen(filename, "rb");
+ unsigned char *result;
+ if (!f)
+ return stbi__errpuc("can't fopen", "Unable to open file");
+ result = stbi_load_from_file(f, x, y, comp, req_comp);
+ fclose(f);
+ return result;
+}
+
+STBIDEF void stbi_load_to_target(char const *filename, int *x, int *y, stbi_uc *target, int *comp,
+ int req_comp)
+{
+ FILE *f = stbi__fopen(filename, "rb");
+ unsigned char *result;
+ if (!f) {
+ *target = "can't fopen, Unable to open file";
+ return;
+ }
+ result = stbi_load_from_file(f, x, y, comp, req_comp);
+ fclose(f);
+}
+
+STBIDEF stbi_uc *stbi_load_from_file(FILE *f, int *x, int *y, int *comp, int req_comp)
+{
+ unsigned char *result;
+ stbi__context s;
+ stbi__start_file(&s, f);
+ result = stbi__load_and_postprocess_8bit(&s, x, y, comp, req_comp);
+ if (result) {
+ // need to 'unget' all the characters in the IO buffer
+ fseek(f, -(int)(s.img_buffer_end - s.img_buffer), SEEK_CUR);
+ }
+ return result;
+}
+
+STBIDEF stbi__uint16 *stbi_load_from_file_16(FILE *f, int *x, int *y, int *comp, int req_comp)
+{
+ stbi__uint16 *result;
+ stbi__context s;
+ stbi__start_file(&s, f);
+ result = stbi__load_and_postprocess_16bit(&s, x, y, comp, req_comp);
+ if (result) {
+ // need to 'unget' all the characters in the IO buffer
+ fseek(f, -(int)(s.img_buffer_end - s.img_buffer), SEEK_CUR);
+ }
+ return result;
+}
+
+STBIDEF stbi_us *stbi_load_16(char const *filename, int *x, int *y, int *comp, int req_comp)
+{
+ FILE *f = stbi__fopen(filename, "rb");
+ stbi__uint16 *result;
+ if (!f)
+ return (stbi_us *)stbi__errpuc("can't fopen", "Unable to open file");
+ result = stbi_load_from_file_16(f, x, y, comp, req_comp);
+ fclose(f);
+ return result;
+}
+
+#endif //!STBI_NO_STDIO
+
+STBIDEF stbi_us *stbi_load_16_from_memory(stbi_uc const *buffer, int len, int *x, int *y,
+ int *channels_in_file, int desired_channels)
+{
+ stbi__context s;
+ stbi__start_mem(&s, buffer, len);
+ return stbi__load_and_postprocess_16bit(&s, x, y, channels_in_file, desired_channels);
+}
+
+STBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x,
+ int *y, int *channels_in_file, int desired_channels)
+{
+ stbi__context s;
+ stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user);
+ return stbi__load_and_postprocess_16bit(&s, x, y, channels_in_file, desired_channels);
+}
+
+STBIDEF stbi_uc *stbi_load_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp,
+ int req_comp)
+{
+ stbi__context s;
+ stbi__start_mem(&s, buffer, len);
+ return stbi__load_and_postprocess_8bit(&s, x, y, comp, req_comp);
+}
+
+STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y,
+ int *comp, int req_comp)
+{
+ stbi__context s;
+ stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user);
+ return stbi__load_and_postprocess_8bit(&s, x, y, comp, req_comp);
+}
+
+#ifndef STBI_NO_GIF
+STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x,
+ int *y, int *z, int *comp, int req_comp)
+{
+ unsigned char *result;
+ stbi__context s;
+ stbi__start_mem(&s, buffer, len);
+
+ result = (unsigned char *)stbi__load_gif_main(&s, delays, x, y, z, comp, req_comp);
+ if (stbi__vertically_flip_on_load) {
+ stbi__vertical_flip_slices(result, *x, *y, *z, *comp);
+ }
+
+ return result;
+}
+#endif
+
+#ifndef STBI_NO_LINEAR
+static float *stbi__loadf_main(stbi__context *s, int *x, int *y, int *comp, int req_comp)
+{
+ unsigned char *data;
+#ifndef STBI_NO_HDR
+ if (stbi__hdr_test(s)) {
+ stbi__result_info ri;
+ float *hdr_data = stbi__hdr_load(s, x, y, comp, req_comp, &ri);
+ if (hdr_data)
+ stbi__float_postprocess(hdr_data, x, y, comp, req_comp);
+ return hdr_data;
+ }
+#endif
+ data = stbi__load_and_postprocess_8bit(s, x, y, comp, req_comp);
+ if (data)
+ return stbi__ldr_to_hdr(data, *x, *y, req_comp ? req_comp : *comp);
+ return stbi__errpf("unknown image type", "Image not of any known type, or corrupt");
+}
+
+STBIDEF float *stbi_loadf_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp,
+ int req_comp)
+{
+ stbi__context s;
+ stbi__start_mem(&s, buffer, len);
+ return stbi__loadf_main(&s, x, y, comp, req_comp);
+}
+
+STBIDEF float *stbi_loadf_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y,
+ int *comp, int req_comp)
+{
+ stbi__context s;
+ stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user);
+ return stbi__loadf_main(&s, x, y, comp, req_comp);
+}
+
+#ifndef STBI_NO_STDIO
+STBIDEF float *stbi_loadf(char const *filename, int *x, int *y, int *comp, int req_comp)
+{
+ float *result;
+ FILE *f = stbi__fopen(filename, "rb");
+ if (!f)
+ return stbi__errpf("can't fopen", "Unable to open file");
+ result = stbi_loadf_from_file(f, x, y, comp, req_comp);
+ fclose(f);
+ return result;
+}
+
+STBIDEF float *stbi_loadf_from_file(FILE *f, int *x, int *y, int *comp, int req_comp)
+{
+ stbi__context s;
+ stbi__start_file(&s, f);
+ return stbi__loadf_main(&s, x, y, comp, req_comp);
+}
+#endif // !STBI_NO_STDIO
+
+#endif // !STBI_NO_LINEAR
+
+// these is-hdr-or-not is defined independent of whether STBI_NO_LINEAR is
+// defined, for API simplicity; if STBI_NO_LINEAR is defined, it always
+// reports false!
+
+STBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len)
+{
+#ifndef STBI_NO_HDR
+ stbi__context s;
+ stbi__start_mem(&s, buffer, len);
+ return stbi__hdr_test(&s);
+#else
+ STBI_NOTUSED(buffer);
+ STBI_NOTUSED(len);
+ return 0;
+#endif
+}
+
+#ifndef STBI_NO_STDIO
+STBIDEF int stbi_is_hdr(char const *filename)
+{
+ FILE *f = stbi__fopen(filename, "rb");
+ int result = 0;
+ if (f) {
+ result = stbi_is_hdr_from_file(f);
+ fclose(f);
+ }
+ return result;
+}
+
+STBIDEF int stbi_is_hdr_from_file(FILE *f)
+{
+#ifndef STBI_NO_HDR
+ long pos = ftell(f);
+ int res;
+ stbi__context s;
+ stbi__start_file(&s, f);
+ res = stbi__hdr_test(&s);
+ fseek(f, pos, SEEK_SET);
+ return res;
+#else
+ STBI_NOTUSED(f);
+ return 0;
+#endif
+}
+#endif // !STBI_NO_STDIO
+
+STBIDEF int stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clbk, void *user)
+{
+#ifndef STBI_NO_HDR
+ stbi__context s;
+ stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user);
+ return stbi__hdr_test(&s);
+#else
+ STBI_NOTUSED(clbk);
+ STBI_NOTUSED(user);
+ return 0;
+#endif
+}
+
+#ifndef STBI_NO_LINEAR
+static float stbi__l2h_gamma = 2.2f, stbi__l2h_scale = 1.0f;
+
+STBIDEF void stbi_ldr_to_hdr_gamma(float gamma)
+{
+ stbi__l2h_gamma = gamma;
+}
+STBIDEF void stbi_ldr_to_hdr_scale(float scale)
+{
+ stbi__l2h_scale = scale;
+}
+#endif
+
+static float stbi__h2l_gamma_i = 1.0f / 2.2f, stbi__h2l_scale_i = 1.0f;
+
+STBIDEF void stbi_hdr_to_ldr_gamma(float gamma)
+{
+ stbi__h2l_gamma_i = 1 / gamma;
+}
+STBIDEF void stbi_hdr_to_ldr_scale(float scale)
+{
+ stbi__h2l_scale_i = 1 / scale;
+}
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// Common code used by all image loaders
+//
+
+enum { STBI__SCAN_load = 0, STBI__SCAN_type, STBI__SCAN_header };
+
+static void stbi__refill_buffer(stbi__context *s)
+{
+ int n = (s->io.read)(s->io_user_data, (char *)s->buffer_start, s->buflen);
+ s->callback_already_read += (int)(s->img_buffer - s->img_buffer_original);
+ if (n == 0) {
+ // at end of file, treat same as if from memory, but need to handle case
+ // where s->img_buffer isn't pointing to safe memory, e.g. 0-byte file
+ s->read_from_callbacks = 0;
+ s->img_buffer = s->buffer_start;
+ s->img_buffer_end = s->buffer_start + 1;
+ *s->img_buffer = 0;
+ } else {
+ s->img_buffer = s->buffer_start;
+ s->img_buffer_end = s->buffer_start + n;
+ }
+}
+
+stbi_inline static stbi_uc stbi__get8(stbi__context *s)
+{
+ if (s->img_buffer < s->img_buffer_end)
+ return *s->img_buffer++;
+ if (s->read_from_callbacks) {
+ stbi__refill_buffer(s);
+ return *s->img_buffer++;
+ }
+ return 0;
+}
+
+#if defined(STBI_NO_JPEG) && defined(STBI_NO_HDR) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM)
+// nothing
+#else
+stbi_inline static int stbi__at_eof(stbi__context *s)
+{
+ if (s->io.read) {
+ if (!(s->io.eof)(s->io_user_data))
+ return 0;
+ // if feof() is true, check if buffer = end
+ // special case: we've only got the special 0 character at the end
+ if (s->read_from_callbacks == 0)
+ return 1;
+ }
+
+ return s->img_buffer >= s->img_buffer_end;
+}
+#endif
+
+#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && \
+ defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && \
+ defined(STBI_NO_PIC)
+// nothing
+#else
+static void stbi__skip(stbi__context *s, int n)
+{
+ if (n == 0)
+ return; // already there!
+ if (n < 0) {
+ s->img_buffer = s->img_buffer_end;
+ return;
+ }
+ if (s->io.read) {
+ int blen = (int)(s->img_buffer_end - s->img_buffer);
+ if (blen < n) {
+ s->img_buffer = s->img_buffer_end;
+ (s->io.skip)(s->io_user_data, n - blen);
+ return;
+ }
+ }
+ s->img_buffer += n;
+}
+#endif
+
+#if defined(STBI_NO_PNG) && defined(STBI_NO_TGA) && defined(STBI_NO_HDR) && defined(STBI_NO_PNM)
+// nothing
+#else
+static int stbi__getn(stbi__context *s, stbi_uc *buffer, int n)
+{
+ if (s->io.read) {
+ int blen = (int)(s->img_buffer_end - s->img_buffer);
+ if (blen < n) {
+ int res, count;
+
+ memcpy(buffer, s->img_buffer, blen);
+
+ count = (s->io.read)(s->io_user_data, (char *)buffer + blen, n - blen);
+ res = (count == (n - blen));
+ s->img_buffer = s->img_buffer_end;
+ return res;
+ }
+ }
+
+ if (s->img_buffer + n <= s->img_buffer_end) {
+ memcpy(buffer, s->img_buffer, n);
+ s->img_buffer += n;
+ return 1;
+ } else
+ return 0;
+}
+#endif
+
+#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_PSD) && defined(STBI_NO_PIC)
+// nothing
+#else
+static int stbi__get16be(stbi__context *s)
+{
+ int z = stbi__get8(s);
+ return (z << 8) + stbi__get8(s);
+}
+#endif
+
+#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) && defined(STBI_NO_PIC)
+// nothing
+#else
+static stbi__uint32 stbi__get32be(stbi__context *s)
+{
+ stbi__uint32 z = stbi__get16be(s);
+ return (z << 16) + stbi__get16be(s);
+}
+#endif
+
+#if defined(STBI_NO_BMP) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF)
+// nothing
+#else
+static int stbi__get16le(stbi__context *s)
+{
+ int z = stbi__get8(s);
+ return z + (stbi__get8(s) << 8);
+}
+#endif
+
+#ifndef STBI_NO_BMP
+static stbi__uint32 stbi__get32le(stbi__context *s)
+{
+ stbi__uint32 z = stbi__get16le(s);
+ z += (stbi__uint32)stbi__get16le(s) << 16;
+ return z;
+}
+#endif
+
+#define STBI__BYTECAST(x) ((stbi_uc)((x) & 255)) // truncate int to byte without warnings
+
+#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && \
+ defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && \
+ defined(STBI_NO_PIC) && defined(STBI_NO_PNM)
+// nothing
+#else
+//////////////////////////////////////////////////////////////////////////////
+//
+// generic converter from built-in img_n to req_comp
+// individual types do this automatically as much as possible (e.g. jpeg
+// does all cases internally since it needs to colorspace convert anyway,
+// and it never has alpha, so very few cases ). png can automatically
+// interleave an alpha=255 channel, but falls back to this for other cases
+//
+// assume data buffer is malloced, so malloc a new one and free that one
+// only failure mode is malloc failing
+
+static stbi_uc stbi__compute_y(int r, int g, int b)
+{
+ return (stbi_uc)(((r * 77) + (g * 150) + (29 * b)) >> 8);
+}
+#endif
+
+#if defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && \
+ defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) && \
+ defined(STBI_NO_PNM)
+// nothing
+#else
+static unsigned char *stbi__convert_format(unsigned char *data, int img_n, int req_comp,
+ unsigned int x, unsigned int y)
+{
+ int i, j;
+ unsigned char *good;
+
+ if (req_comp == img_n)
+ return data;
+ STBI_ASSERT(req_comp >= 1 && req_comp <= 4);
+
+ good = (unsigned char *)stbi__malloc_mad3(req_comp, x, y, 0);
+ if (good == NULL) {
+ STBI_FREE(data);
+ return stbi__errpuc("outofmem", "Out of memory");
+ }
+
+ for (j = 0; j < (int)y; ++j) {
+ unsigned char *src = data + j * x * img_n;
+ unsigned char *dest = good + j * x * req_comp;
+
+#define STBI__COMBO(a, b) ((a) * 8 + (b))
+#define STBI__CASE(a, b) \
+ case STBI__COMBO(a, b): \
+ for (i = x - 1; i >= 0; --i, src += a, dest += b)
+ // convert source image with img_n components to one with req_comp components;
+ // avoid switch per pixel, so use switch per scanline and massive macros
+ switch (STBI__COMBO(img_n, req_comp)) {
+ STBI__CASE(1, 2)
+ {
+ dest[0] = src[0];
+ dest[1] = 255;
+ }
+ break;
+ STBI__CASE(1, 3)
+ {
+ dest[0] = dest[1] = dest[2] = src[0];
+ }
+ break;
+ STBI__CASE(1, 4)
+ {
+ dest[0] = dest[1] = dest[2] = src[0];
+ dest[3] = 255;
+ }
+ break;
+ STBI__CASE(2, 1)
+ {
+ dest[0] = src[0];
+ }
+ break;
+ STBI__CASE(2, 3)
+ {
+ dest[0] = dest[1] = dest[2] = src[0];
+ }
+ break;
+ STBI__CASE(2, 4)
+ {
+ dest[0] = dest[1] = dest[2] = src[0];
+ dest[3] = src[1];
+ }
+ break;
+ STBI__CASE(3, 4)
+ {
+ dest[0] = src[0];
+ dest[1] = src[1];
+ dest[2] = src[2];
+ dest[3] = 255;
+ }
+ break;
+ STBI__CASE(3, 1)
+ {
+ dest[0] = stbi__compute_y(src[0], src[1], src[2]);
+ }
+ break;
+ STBI__CASE(3, 2)
+ {
+ dest[0] = stbi__compute_y(src[0], src[1], src[2]);
+ dest[1] = 255;
+ }
+ break;
+ STBI__CASE(4, 1)
+ {
+ dest[0] = stbi__compute_y(src[0], src[1], src[2]);
+ }
+ break;
+ STBI__CASE(4, 2)
+ {
+ dest[0] = stbi__compute_y(src[0], src[1], src[2]);
+ dest[1] = src[3];
+ }
+ break;
+ STBI__CASE(4, 3)
+ {
+ dest[0] = src[0];
+ dest[1] = src[1];
+ dest[2] = src[2];
+ }
+ break;
+ default:
+ STBI_ASSERT(0);
+ STBI_FREE(data);
+ STBI_FREE(good);
+ return stbi__errpuc("unsupported", "Unsupported format conversion");
+ }
+#undef STBI__CASE
+ }
+
+ STBI_FREE(data);
+ return good;
+}
+#endif
+
+#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD)
+// nothing
+#else
+static stbi__uint16 stbi__compute_y_16(int r, int g, int b)
+{
+ return (stbi__uint16)(((r * 77) + (g * 150) + (29 * b)) >> 8);
+}
+#endif
+
+#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD)
+// nothing
+#else
+static stbi__uint16 *stbi__convert_format16(stbi__uint16 *data, int img_n, int req_comp,
+ unsigned int x, unsigned int y)
+{
+ int i, j;
+ stbi__uint16 *good;
+
+ if (req_comp == img_n)
+ return data;
+ STBI_ASSERT(req_comp >= 1 && req_comp <= 4);
+
+ good = (stbi__uint16 *)stbi__malloc(req_comp * x * y * 2);
+ if (good == NULL) {
+ STBI_FREE(data);
+ return (stbi__uint16 *)stbi__errpuc("outofmem", "Out of memory");
+ }
+
+ for (j = 0; j < (int)y; ++j) {
+ stbi__uint16 *src = data + j * x * img_n;
+ stbi__uint16 *dest = good + j * x * req_comp;
+
+#define STBI__COMBO(a, b) ((a) * 8 + (b))
+#define STBI__CASE(a, b) \
+ case STBI__COMBO(a, b): \
+ for (i = x - 1; i >= 0; --i, src += a, dest += b)
+ // convert source image with img_n components to one with req_comp components;
+ // avoid switch per pixel, so use switch per scanline and massive macros
+ switch (STBI__COMBO(img_n, req_comp)) {
+ STBI__CASE(1, 2)
+ {
+ dest[0] = src[0];
+ dest[1] = 0xffff;
+ }
+ break;
+ STBI__CASE(1, 3)
+ {
+ dest[0] = dest[1] = dest[2] = src[0];
+ }
+ break;
+ STBI__CASE(1, 4)
+ {
+ dest[0] = dest[1] = dest[2] = src[0];
+ dest[3] = 0xffff;
+ }
+ break;
+ STBI__CASE(2, 1)
+ {
+ dest[0] = src[0];
+ }
+ break;
+ STBI__CASE(2, 3)
+ {
+ dest[0] = dest[1] = dest[2] = src[0];
+ }
+ break;
+ STBI__CASE(2, 4)
+ {
+ dest[0] = dest[1] = dest[2] = src[0];
+ dest[3] = src[1];
+ }
+ break;
+ STBI__CASE(3, 4)
+ {
+ dest[0] = src[0];
+ dest[1] = src[1];
+ dest[2] = src[2];
+ dest[3] = 0xffff;
+ }
+ break;
+ STBI__CASE(3, 1)
+ {
+ dest[0] = stbi__compute_y_16(src[0], src[1], src[2]);
+ }
+ break;
+ STBI__CASE(3, 2)
+ {
+ dest[0] = stbi__compute_y_16(src[0], src[1], src[2]);
+ dest[1] = 0xffff;
+ }
+ break;
+ STBI__CASE(4, 1)
+ {
+ dest[0] = stbi__compute_y_16(src[0], src[1], src[2]);
+ }
+ break;
+ STBI__CASE(4, 2)
+ {
+ dest[0] = stbi__compute_y_16(src[0], src[1], src[2]);
+ dest[1] = src[3];
+ }
+ break;
+ STBI__CASE(4, 3)
+ {
+ dest[0] = src[0];
+ dest[1] = src[1];
+ dest[2] = src[2];
+ }
+ break;
+ default:
+ STBI_ASSERT(0);
+ STBI_FREE(data);
+ STBI_FREE(good);
+ return (stbi__uint16 *)stbi__errpuc("unsupported",
+ "Unsupported format conversion");
+ }
+#undef STBI__CASE
+ }
+
+ STBI_FREE(data);
+ return good;
+}
+#endif
+
+#ifndef STBI_NO_LINEAR
+static float *stbi__ldr_to_hdr(stbi_uc *data, int x, int y, int comp)
+{
+ int i, k, n;
+ float *output;
+ if (!data)
+ return NULL;
+ output = (float *)stbi__malloc_mad4(x, y, comp, sizeof(float), 0);
+ if (output == NULL) {
+ STBI_FREE(data);
+ return stbi__errpf("outofmem", "Out of memory");
+ }
+ // compute number of non-alpha components
+ if (comp & 1)
+ n = comp;
+ else
+ n = comp - 1;
+ for (i = 0; i < x * y; ++i) {
+ for (k = 0; k < n; ++k) {
+ output[i * comp + k] =
+ (float)(pow(data[i * comp + k] / 255.0f, stbi__l2h_gamma) *
+ stbi__l2h_scale);
+ }
+ }
+ if (n < comp) {
+ for (i = 0; i < x * y; ++i) {
+ output[i * comp + n] = data[i * comp + n] / 255.0f;
+ }
+ }
+ STBI_FREE(data);
+ return output;
+}
+#endif
+
+#ifndef STBI_NO_HDR
+#define stbi__float2int(x) ((int)(x))
+static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp)
+{
+ int i, k, n;
+ stbi_uc *output;
+ if (!data)
+ return NULL;
+ output = (stbi_uc *)stbi__malloc_mad3(x, y, comp, 0);
+ if (output == NULL) {
+ STBI_FREE(data);
+ return stbi__errpuc("outofmem", "Out of memory");
+ }
+ // compute number of non-alpha components
+ if (comp & 1)
+ n = comp;
+ else
+ n = comp - 1;
+ for (i = 0; i < x * y; ++i) {
+ for (k = 0; k < n; ++k) {
+ float z = (float)pow(data[i * comp + k] * stbi__h2l_scale_i,
+ stbi__h2l_gamma_i) *
+ 255 +
+ 0.5f;
+ if (z < 0)
+ z = 0;
+ if (z > 255)
+ z = 255;
+ output[i * comp + k] = (stbi_uc)stbi__float2int(z);
+ }
+ if (k < comp) {
+ float z = data[i * comp + k] * 255 + 0.5f;
+ if (z < 0)
+ z = 0;
+ if (z > 255)
+ z = 255;
+ output[i * comp + k] = (stbi_uc)stbi__float2int(z);
+ }
+ }
+ STBI_FREE(data);
+ return output;
+}
+#endif
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// "baseline" JPEG/JFIF decoder
+//
+// simple implementation
+// - doesn't support delayed output of y-dimension
+// - simple interface (only one output format: 8-bit interleaved RGB)
+// - doesn't try to recover corrupt jpegs
+// - doesn't allow partial loading, loading multiple at once
+// - still fast on x86 (copying globals into locals doesn't help x86)
+// - allocates lots of intermediate memory (full size of all components)
+// - non-interleaved case requires this anyway
+// - allows good upsampling (see next)
+// high-quality
+// - upsampled channels are bilinearly interpolated, even across blocks
+// - quality integer IDCT derived from IJG's 'slow'
+// performance
+// - fast huffman; reasonable integer IDCT
+// - some SIMD kernels for common paths on targets with SSE2/NEON
+// - uses a lot of intermediate memory, could cache poorly
+
+#ifndef STBI_NO_JPEG
+
+// huffman decoding acceleration
+#define FAST_BITS 9 // larger handles more cases; smaller stomps less cache
+
+typedef struct {
+ stbi_uc fast[1 << FAST_BITS];
+ // weirdly, repacking this into AoS is a 10% speed loss, instead of a win
+ stbi__uint16 code[256];
+ stbi_uc values[256];
+ stbi_uc size[257];
+ unsigned int maxcode[18];
+ int delta[17]; // old 'firstsymbol' - old 'firstcode'
+} stbi__huffman;
+
+typedef struct {
+ stbi__context *s;
+ stbi__huffman huff_dc[4];
+ stbi__huffman huff_ac[4];
+ stbi__uint16 dequant[4][64];
+ stbi__int16 fast_ac[4][1 << FAST_BITS];
+
+ // sizes for components, interleaved MCUs
+ int img_h_max, img_v_max;
+ int img_mcu_x, img_mcu_y;
+ int img_mcu_w, img_mcu_h;
+
+ // definition of jpeg image component
+ struct {
+ int id;
+ int h, v;
+ int tq;
+ int hd, ha;
+ int dc_pred;
+
+ int x, y, w2, h2;
+ stbi_uc *data;
+ void *raw_data, *raw_coeff;
+ stbi_uc *linebuf;
+ short *coeff; // progressive only
+ int coeff_w, coeff_h; // number of 8x8 coefficient blocks
+ } img_comp[4];
+
+ stbi__uint32 code_buffer; // jpeg entropy-coded buffer
+ int code_bits; // number of valid bits
+ unsigned char marker; // marker seen while filling entropy buffer
+ int nomore; // flag if we saw a marker so must stop
+
+ int progressive;
+ int spec_start;
+ int spec_end;
+ int succ_high;
+ int succ_low;
+ int eob_run;
+ int jfif;
+ int app14_color_transform; // Adobe APP14 tag
+ int rgb;
+
+ int scan_n, order[4];
+ int restart_interval, todo;
+
+ // kernels
+ void (*idct_block_kernel)(stbi_uc *out, int out_stride, short data[64]);
+ void (*YCbCr_to_RGB_kernel)(stbi_uc *out, const stbi_uc *y, const stbi_uc *pcb,
+ const stbi_uc *pcr, int count, int step);
+ stbi_uc *(*resample_row_hv_2_kernel)(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w,
+ int hs);
+} stbi__jpeg;
+
+static int stbi__build_huffman(stbi__huffman *h, int *count)
+{
+ int i, j, k = 0;
+ unsigned int code;
+ // build size list for each symbol (from JPEG spec)
+ for (i = 0; i < 16; ++i) {
+ for (j = 0; j < count[i]; ++j) {
+ h->size[k++] = (stbi_uc)(i + 1);
+ if (k >= 257)
+ return stbi__err("bad size list", "Corrupt JPEG");
+ }
+ }
+ h->size[k] = 0;
+
+ // compute actual symbols (from jpeg spec)
+ code = 0;
+ k = 0;
+ for (j = 1; j <= 16; ++j) {
+ // compute delta to add to code to compute symbol id
+ h->delta[j] = k - code;
+ if (h->size[k] == j) {
+ while (h->size[k] == j)
+ h->code[k++] = (stbi__uint16)(code++);
+ if (code - 1 >= (1u << j))
+ return stbi__err("bad code lengths", "Corrupt JPEG");
+ }
+ // compute largest code + 1 for this size, preshifted as needed later
+ h->maxcode[j] = code << (16 - j);
+ code <<= 1;
+ }
+ h->maxcode[j] = 0xffffffff;
+
+ // build non-spec acceleration table; 255 is flag for not-accelerated
+ memset(h->fast, 255, 1 << FAST_BITS);
+ for (i = 0; i < k; ++i) {
+ int s = h->size[i];
+ if (s <= FAST_BITS) {
+ int c = h->code[i] << (FAST_BITS - s);
+ int m = 1 << (FAST_BITS - s);
+ for (j = 0; j < m; ++j) {
+ h->fast[c + j] = (stbi_uc)i;
+ }
+ }
+ }
+ return 1;
+}
+
+// build a table that decodes both magnitude and value of small ACs in
+// one go.
+static void stbi__build_fast_ac(stbi__int16 *fast_ac, stbi__huffman *h)
+{
+ int i;
+ for (i = 0; i < (1 << FAST_BITS); ++i) {
+ stbi_uc fast = h->fast[i];
+ fast_ac[i] = 0;
+ if (fast < 255) {
+ int rs = h->values[fast];
+ int run = (rs >> 4) & 15;
+ int magbits = rs & 15;
+ int len = h->size[fast];
+
+ if (magbits && len + magbits <= FAST_BITS) {
+ // magnitude code followed by receive_extend code
+ int k = ((i << len) & ((1 << FAST_BITS) - 1)) >>
+ (FAST_BITS - magbits);
+ int m = 1 << (magbits - 1);
+ if (k < m)
+ k += (~0U << magbits) + 1;
+ // if the result is small enough, we can fit it in fast_ac table
+ if (k >= -128 && k <= 127)
+ fast_ac[i] = (stbi__int16)((k * 256) + (run * 16) +
+ (len + magbits));
+ }
+ }
+ }
+}
+
+static void stbi__grow_buffer_unsafe(stbi__jpeg *j)
+{
+ do {
+ unsigned int b = j->nomore ? 0 : stbi__get8(j->s);
+ if (b == 0xff) {
+ int c = stbi__get8(j->s);
+ while (c == 0xff)
+ c = stbi__get8(j->s); // consume fill bytes
+ if (c != 0) {
+ j->marker = (unsigned char)c;
+ j->nomore = 1;
+ return;
+ }
+ }
+ j->code_buffer |= b << (24 - j->code_bits);
+ j->code_bits += 8;
+ } while (j->code_bits <= 24);
+}
+
+// (1 << n) - 1
+static const stbi__uint32 stbi__bmask[17] = { 0, 1, 3, 7, 15, 31, 63, 127, 255,
+ 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535 };
+
+// decode a jpeg huffman value from the bitstream
+stbi_inline static int stbi__jpeg_huff_decode(stbi__jpeg *j, stbi__huffman *h)
+{
+ unsigned int temp;
+ int c, k;
+
+ if (j->code_bits < 16)
+ stbi__grow_buffer_unsafe(j);
+
+ // look at the top FAST_BITS and determine what symbol ID it is,
+ // if the code is <= FAST_BITS
+ c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS) - 1);
+ k = h->fast[c];
+ if (k < 255) {
+ int s = h->size[k];
+ if (s > j->code_bits)
+ return -1;
+ j->code_buffer <<= s;
+ j->code_bits -= s;
+ return h->values[k];
+ }
+
+ // naive test is to shift the code_buffer down so k bits are
+ // valid, then test against maxcode. To speed this up, we've
+ // preshifted maxcode left so that it has (16-k) 0s at the
+ // end; in other words, regardless of the number of bits, it
+ // wants to be compared against something shifted to have 16;
+ // that way we don't need to shift inside the loop.
+ temp = j->code_buffer >> 16;
+ for (k = FAST_BITS + 1;; ++k)
+ if (temp < h->maxcode[k])
+ break;
+ if (k == 17) {
+ // error! code not found
+ j->code_bits -= 16;
+ return -1;
+ }
+
+ if (k > j->code_bits)
+ return -1;
+
+ // convert the huffman code to the symbol id
+ c = ((j->code_buffer >> (32 - k)) & stbi__bmask[k]) + h->delta[k];
+ if (c < 0 || c >= 256) // symbol id out of bounds!
+ return -1;
+ STBI_ASSERT((((j->code_buffer) >> (32 - h->size[c])) & stbi__bmask[h->size[c]]) ==
+ h->code[c]);
+
+ // convert the id to a symbol
+ j->code_bits -= k;
+ j->code_buffer <<= k;
+ return h->values[c];
+}
+
+// bias[n] = (-1<code_bits < n)
+ stbi__grow_buffer_unsafe(j);
+ if (j->code_bits < n)
+ return 0; // ran out of bits from stream, return 0s intead of continuing
+
+ sgn = j->code_buffer >>
+ 31; // sign bit always in MSB; 0 if MSB clear (positive), 1 if MSB set (negative)
+ k = stbi_lrot(j->code_buffer, n);
+ j->code_buffer = k & ~stbi__bmask[n];
+ k &= stbi__bmask[n];
+ j->code_bits -= n;
+ return k + (stbi__jbias[n] & (sgn - 1));
+}
+
+// get some unsigned bits
+stbi_inline static int stbi__jpeg_get_bits(stbi__jpeg *j, int n)
+{
+ unsigned int k;
+ if (j->code_bits < n)
+ stbi__grow_buffer_unsafe(j);
+ if (j->code_bits < n)
+ return 0; // ran out of bits from stream, return 0s intead of continuing
+ k = stbi_lrot(j->code_buffer, n);
+ j->code_buffer = k & ~stbi__bmask[n];
+ k &= stbi__bmask[n];
+ j->code_bits -= n;
+ return k;
+}
+
+stbi_inline static int stbi__jpeg_get_bit(stbi__jpeg *j)
+{
+ unsigned int k;
+ if (j->code_bits < 1)
+ stbi__grow_buffer_unsafe(j);
+ if (j->code_bits < 1)
+ return 0; // ran out of bits from stream, return 0s intead of continuing
+ k = j->code_buffer;
+ j->code_buffer <<= 1;
+ --j->code_bits;
+ return k & 0x80000000;
+}
+
+// given a value that's at position X in the zigzag stream,
+// where does it appear in the 8x8 matrix coded as row-major?
+static const stbi_uc stbi__jpeg_dezigzag[64 + 15] = {
+ 0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27,
+ 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51,
+ 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63,
+ // let corrupt input sample past end
+ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63
+};
+
+// decode one 64-entry block--
+static int stbi__jpeg_decode_block(stbi__jpeg *j, short data[64], stbi__huffman *hdc,
+ stbi__huffman *hac, stbi__int16 *fac, int b,
+ stbi__uint16 *dequant)
+{
+ int diff, dc, k;
+ int t;
+
+ if (j->code_bits < 16)
+ stbi__grow_buffer_unsafe(j);
+ t = stbi__jpeg_huff_decode(j, hdc);
+ if (t < 0 || t > 15)
+ return stbi__err("bad huffman code", "Corrupt JPEG");
+
+ // 0 all the ac values now so we can do it 32-bits at a time
+ memset(data, 0, 64 * sizeof(data[0]));
+
+ diff = t ? stbi__extend_receive(j, t) : 0;
+ if (!stbi__addints_valid(j->img_comp[b].dc_pred, diff))
+ return stbi__err("bad delta", "Corrupt JPEG");
+ dc = j->img_comp[b].dc_pred + diff;
+ j->img_comp[b].dc_pred = dc;
+ if (!stbi__mul2shorts_valid(dc, dequant[0]))
+ return stbi__err("can't merge dc and ac", "Corrupt JPEG");
+ data[0] = (short)(dc * dequant[0]);
+
+ // decode AC components, see JPEG spec
+ k = 1;
+ do {
+ unsigned int zig;
+ int c, r, s;
+ if (j->code_bits < 16)
+ stbi__grow_buffer_unsafe(j);
+ c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS) - 1);
+ r = fac[c];
+ if (r) { // fast-AC path
+ k += (r >> 4) & 15; // run
+ s = r & 15; // combined length
+ if (s > j->code_bits)
+ return stbi__err("bad huffman code",
+ "Combined length longer than code bits available");
+ j->code_buffer <<= s;
+ j->code_bits -= s;
+ // decode into unzigzag'd location
+ zig = stbi__jpeg_dezigzag[k++];
+ data[zig] = (short)((r >> 8) * dequant[zig]);
+ } else {
+ int rs = stbi__jpeg_huff_decode(j, hac);
+ if (rs < 0)
+ return stbi__err("bad huffman code", "Corrupt JPEG");
+ s = rs & 15;
+ r = rs >> 4;
+ if (s == 0) {
+ if (rs != 0xf0)
+ break; // end block
+ k += 16;
+ } else {
+ k += r;
+ // decode into unzigzag'd location
+ zig = stbi__jpeg_dezigzag[k++];
+ data[zig] = (short)(stbi__extend_receive(j, s) * dequant[zig]);
+ }
+ }
+ } while (k < 64);
+ return 1;
+}
+
+static int stbi__jpeg_decode_block_prog_dc(stbi__jpeg *j, short data[64], stbi__huffman *hdc, int b)
+{
+ int diff, dc;
+ int t;
+ if (j->spec_end != 0)
+ return stbi__err("can't merge dc and ac", "Corrupt JPEG");
+
+ if (j->code_bits < 16)
+ stbi__grow_buffer_unsafe(j);
+
+ if (j->succ_high == 0) {
+ // first scan for DC coefficient, must be first
+ memset(data, 0,
+ 64 * sizeof(data[0])); // 0 all the ac values now
+ t = stbi__jpeg_huff_decode(j, hdc);
+ if (t < 0 || t > 15)
+ return stbi__err("can't merge dc and ac", "Corrupt JPEG");
+ diff = t ? stbi__extend_receive(j, t) : 0;
+
+ if (!stbi__addints_valid(j->img_comp[b].dc_pred, diff))
+ return stbi__err("bad delta", "Corrupt JPEG");
+ dc = j->img_comp[b].dc_pred + diff;
+ j->img_comp[b].dc_pred = dc;
+ if (!stbi__mul2shorts_valid(dc, 1 << j->succ_low))
+ return stbi__err("can't merge dc and ac", "Corrupt JPEG");
+ data[0] = (short)(dc * (1 << j->succ_low));
+ } else {
+ // refinement scan for DC coefficient
+ if (stbi__jpeg_get_bit(j))
+ data[0] += (short)(1 << j->succ_low);
+ }
+ return 1;
+}
+
+// @OPTIMIZE: store non-zigzagged during the decode passes,
+// and only de-zigzag when dequantizing
+static int stbi__jpeg_decode_block_prog_ac(stbi__jpeg *j, short data[64], stbi__huffman *hac,
+ stbi__int16 *fac)
+{
+ int k;
+ if (j->spec_start == 0)
+ return stbi__err("can't merge dc and ac", "Corrupt JPEG");
+
+ if (j->succ_high == 0) {
+ int shift = j->succ_low;
+
+ if (j->eob_run) {
+ --j->eob_run;
+ return 1;
+ }
+
+ k = j->spec_start;
+ do {
+ unsigned int zig;
+ int c, r, s;
+ if (j->code_bits < 16)
+ stbi__grow_buffer_unsafe(j);
+ c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS) - 1);
+ r = fac[c];
+ if (r) { // fast-AC path
+ k += (r >> 4) & 15; // run
+ s = r & 15; // combined length
+ if (s > j->code_bits)
+ return stbi__err(
+ "bad huffman code",
+ "Combined length longer than code bits available");
+ j->code_buffer <<= s;
+ j->code_bits -= s;
+ zig = stbi__jpeg_dezigzag[k++];
+ data[zig] = (short)((r >> 8) * (1 << shift));
+ } else {
+ int rs = stbi__jpeg_huff_decode(j, hac);
+ if (rs < 0)
+ return stbi__err("bad huffman code", "Corrupt JPEG");
+ s = rs & 15;
+ r = rs >> 4;
+ if (s == 0) {
+ if (r < 15) {
+ j->eob_run = (1 << r);
+ if (r)
+ j->eob_run += stbi__jpeg_get_bits(j, r);
+ --j->eob_run;
+ break;
+ }
+ k += 16;
+ } else {
+ k += r;
+ zig = stbi__jpeg_dezigzag[k++];
+ data[zig] =
+ (short)(stbi__extend_receive(j, s) * (1 << shift));
+ }
+ }
+ } while (k <= j->spec_end);
+ } else {
+ // refinement scan for these AC coefficients
+
+ short bit = (short)(1 << j->succ_low);
+
+ if (j->eob_run) {
+ --j->eob_run;
+ for (k = j->spec_start; k <= j->spec_end; ++k) {
+ short *p = &data[stbi__jpeg_dezigzag[k]];
+ if (*p != 0)
+ if (stbi__jpeg_get_bit(j))
+ if ((*p & bit) == 0) {
+ if (*p > 0)
+ *p += bit;
+ else
+ *p -= bit;
+ }
+ }
+ } else {
+ k = j->spec_start;
+ do {
+ int r, s;
+ int rs = stbi__jpeg_huff_decode(
+ j,
+ hac); // @OPTIMIZE see if we can use the fast path here, advance-by-r is so slow, eh
+ if (rs < 0)
+ return stbi__err("bad huffman code", "Corrupt JPEG");
+ s = rs & 15;
+ r = rs >> 4;
+ if (s == 0) {
+ if (r < 15) {
+ j->eob_run = (1 << r) - 1;
+ if (r)
+ j->eob_run += stbi__jpeg_get_bits(j, r);
+ r = 64; // force end of block
+ } else {
+ // r=15 s=0 should write 16 0s, so we just do
+ // a run of 15 0s and then write s (which is 0),
+ // so we don't have to do anything special here
+ }
+ } else {
+ if (s != 1)
+ return stbi__err("bad huffman code",
+ "Corrupt JPEG");
+ // sign bit
+ if (stbi__jpeg_get_bit(j))
+ s = bit;
+ else
+ s = -bit;
+ }
+
+ // advance by r
+ while (k <= j->spec_end) {
+ short *p = &data[stbi__jpeg_dezigzag[k++]];
+ if (*p != 0) {
+ if (stbi__jpeg_get_bit(j))
+ if ((*p & bit) == 0) {
+ if (*p > 0)
+ *p += bit;
+ else
+ *p -= bit;
+ }
+ } else {
+ if (r == 0) {
+ *p = (short)s;
+ break;
+ }
+ --r;
+ }
+ }
+ } while (k <= j->spec_end);
+ }
+ }
+ return 1;
+}
+
+// take a -128..127 value and stbi__clamp it and convert to 0..255
+stbi_inline static stbi_uc stbi__clamp(int x)
+{
+ // trick to use a single test to catch both cases
+ if ((unsigned int)x > 255) {
+ if (x < 0)
+ return 0;
+ if (x > 255)
+ return 255;
+ }
+ return (stbi_uc)x;
+}
+
+#define stbi__f2f(x) ((int)(((x) * 4096 + 0.5)))
+#define stbi__fsh(x) ((x) * 4096)
+
+// derived from jidctint -- DCT_ISLOW
+#define STBI__IDCT_1D(s0, s1, s2, s3, s4, s5, s6, s7) \
+ int t0, t1, t2, t3, p1, p2, p3, p4, p5, x0, x1, x2, x3; \
+ p2 = s2; \
+ p3 = s6; \
+ p1 = (p2 + p3) * stbi__f2f(0.5411961f); \
+ t2 = p1 + p3 * stbi__f2f(-1.847759065f); \
+ t3 = p1 + p2 * stbi__f2f(0.765366865f); \
+ p2 = s0; \
+ p3 = s4; \
+ t0 = stbi__fsh(p2 + p3); \
+ t1 = stbi__fsh(p2 - p3); \
+ x0 = t0 + t3; \
+ x3 = t0 - t3; \
+ x1 = t1 + t2; \
+ x2 = t1 - t2; \
+ t0 = s7; \
+ t1 = s5; \
+ t2 = s3; \
+ t3 = s1; \
+ p3 = t0 + t2; \
+ p4 = t1 + t3; \
+ p1 = t0 + t3; \
+ p2 = t1 + t2; \
+ p5 = (p3 + p4) * stbi__f2f(1.175875602f); \
+ t0 = t0 * stbi__f2f(0.298631336f); \
+ t1 = t1 * stbi__f2f(2.053119869f); \
+ t2 = t2 * stbi__f2f(3.072711026f); \
+ t3 = t3 * stbi__f2f(1.501321110f); \
+ p1 = p5 + p1 * stbi__f2f(-0.899976223f); \
+ p2 = p5 + p2 * stbi__f2f(-2.562915447f); \
+ p3 = p3 * stbi__f2f(-1.961570560f); \
+ p4 = p4 * stbi__f2f(-0.390180644f); \
+ t3 += p1 + p4; \
+ t2 += p2 + p3; \
+ t1 += p2 + p4; \
+ t0 += p1 + p3;
+
+static void stbi__idct_block(stbi_uc *out, int out_stride, short data[64])
+{
+ int i, val[64], *v = val;
+ stbi_uc *o;
+ short *d = data;
+
+ // columns
+ for (i = 0; i < 8; ++i, ++d, ++v) {
+ // if all zeroes, shortcut -- this avoids dequantizing 0s and IDCTing
+ if (d[8] == 0 && d[16] == 0 && d[24] == 0 && d[32] == 0 && d[40] == 0 &&
+ d[48] == 0 && d[56] == 0) {
+ // no shortcut 0 seconds
+ // (1|2|3|4|5|6|7)==0 0 seconds
+ // all separate -0.047 seconds
+ // 1 && 2|3 && 4|5 && 6|7: -0.047 seconds
+ int dcterm = d[0] * 4;
+ v[0] = v[8] = v[16] = v[24] = v[32] = v[40] = v[48] = v[56] = dcterm;
+ } else {
+ STBI__IDCT_1D(d[0], d[8], d[16], d[24], d[32], d[40], d[48], d[56])
+ // constants scaled things up by 1<<12; let's bring them back
+ // down, but keep 2 extra bits of precision
+ x0 += 512;
+ x1 += 512;
+ x2 += 512;
+ x3 += 512;
+ v[0] = (x0 + t3) >> 10;
+ v[56] = (x0 - t3) >> 10;
+ v[8] = (x1 + t2) >> 10;
+ v[48] = (x1 - t2) >> 10;
+ v[16] = (x2 + t1) >> 10;
+ v[40] = (x2 - t1) >> 10;
+ v[24] = (x3 + t0) >> 10;
+ v[32] = (x3 - t0) >> 10;
+ }
+ }
+
+ for (i = 0, v = val, o = out; i < 8; ++i, v += 8, o += out_stride) {
+ // no fast case since the first 1D IDCT spread components out
+ STBI__IDCT_1D(v[0], v[1], v[2], v[3], v[4], v[5], v[6], v[7])
+ // constants scaled things up by 1<<12, plus we had 1<<2 from first
+ // loop, plus horizontal and vertical each scale by sqrt(8) so together
+ // we've got an extra 1<<3, so 1<<17 total we need to remove.
+ // so we want to round that, which means adding 0.5 * 1<<17,
+ // aka 65536. Also, we'll end up with -128 to 127 that we want
+ // to encode as 0..255 by adding 128, so we'll add that before the shift
+ x0 += 65536 + (128 << 17);
+ x1 += 65536 + (128 << 17);
+ x2 += 65536 + (128 << 17);
+ x3 += 65536 + (128 << 17);
+ // tried computing the shifts into temps, or'ing the temps to see
+ // if any were out of range, but that was slower
+ o[0] = stbi__clamp((x0 + t3) >> 17);
+ o[7] = stbi__clamp((x0 - t3) >> 17);
+ o[1] = stbi__clamp((x1 + t2) >> 17);
+ o[6] = stbi__clamp((x1 - t2) >> 17);
+ o[2] = stbi__clamp((x2 + t1) >> 17);
+ o[5] = stbi__clamp((x2 - t1) >> 17);
+ o[3] = stbi__clamp((x3 + t0) >> 17);
+ o[4] = stbi__clamp((x3 - t0) >> 17);
+ }
+}
+
+#ifdef STBI_SSE2
+// sse2 integer IDCT. not the fastest possible implementation but it
+// produces bit-identical results to the generic C version so it's
+// fully "transparent".
+static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64])
+{
+ // This is constructed to match our regular (generic) integer IDCT exactly.
+ __m128i row0, row1, row2, row3, row4, row5, row6, row7;
+ __m128i tmp;
+
+ // dot product constant: even elems=x, odd elems=y
+#define dct_const(x, y) _mm_setr_epi16((x), (y), (x), (y), (x), (y), (x), (y))
+
+// out(0) = c0[even]*x + c0[odd]*y (c0, x, y 16-bit, out 32-bit)
+// out(1) = c1[even]*x + c1[odd]*y
+#define dct_rot(out0, out1, x, y, c0, c1) \
+ __m128i c0##lo = _mm_unpacklo_epi16((x), (y)); \
+ __m128i c0##hi = _mm_unpackhi_epi16((x), (y)); \
+ __m128i out0##_l = _mm_madd_epi16(c0##lo, c0); \
+ __m128i out0##_h = _mm_madd_epi16(c0##hi, c0); \
+ __m128i out1##_l = _mm_madd_epi16(c0##lo, c1); \
+ __m128i out1##_h = _mm_madd_epi16(c0##hi, c1)
+
+ // out = in << 12 (in 16-bit, out 32-bit)
+#define dct_widen(out, in) \
+ __m128i out##_l = _mm_srai_epi32(_mm_unpacklo_epi16(_mm_setzero_si128(), (in)), 4); \
+ __m128i out##_h = _mm_srai_epi32(_mm_unpackhi_epi16(_mm_setzero_si128(), (in)), 4)
+
+ // wide add
+#define dct_wadd(out, a, b) \
+ __m128i out##_l = _mm_add_epi32(a##_l, b##_l); \
+ __m128i out##_h = _mm_add_epi32(a##_h, b##_h)
+
+ // wide sub
+#define dct_wsub(out, a, b) \
+ __m128i out##_l = _mm_sub_epi32(a##_l, b##_l); \
+ __m128i out##_h = _mm_sub_epi32(a##_h, b##_h)
+
+ // butterfly a/b, add bias, then shift by "s" and pack
+#define dct_bfly32o(out0, out1, a, b, bias, s) \
+ { \
+ __m128i abiased_l = _mm_add_epi32(a##_l, bias); \
+ __m128i abiased_h = _mm_add_epi32(a##_h, bias); \
+ dct_wadd(sum, abiased, b); \
+ dct_wsub(dif, abiased, b); \
+ out0 = _mm_packs_epi32(_mm_srai_epi32(sum_l, s), _mm_srai_epi32(sum_h, s)); \
+ out1 = _mm_packs_epi32(_mm_srai_epi32(dif_l, s), _mm_srai_epi32(dif_h, s)); \
+ }
+
+ // 8-bit interleave step (for transposes)
+#define dct_interleave8(a, b) \
+ tmp = a; \
+ a = _mm_unpacklo_epi8(a, b); \
+ b = _mm_unpackhi_epi8(tmp, b)
+
+ // 16-bit interleave step (for transposes)
+#define dct_interleave16(a, b) \
+ tmp = a; \
+ a = _mm_unpacklo_epi16(a, b); \
+ b = _mm_unpackhi_epi16(tmp, b)
+
+#define dct_pass(bias, shift) \
+ { \
+ /* even part */ \
+ dct_rot(t2e, t3e, row2, row6, rot0_0, rot0_1); \
+ __m128i sum04 = _mm_add_epi16(row0, row4); \
+ __m128i dif04 = _mm_sub_epi16(row0, row4); \
+ dct_widen(t0e, sum04); \
+ dct_widen(t1e, dif04); \
+ dct_wadd(x0, t0e, t3e); \
+ dct_wsub(x3, t0e, t3e); \
+ dct_wadd(x1, t1e, t2e); \
+ dct_wsub(x2, t1e, t2e); \
+ /* odd part */ \
+ dct_rot(y0o, y2o, row7, row3, rot2_0, rot2_1); \
+ dct_rot(y1o, y3o, row5, row1, rot3_0, rot3_1); \
+ __m128i sum17 = _mm_add_epi16(row1, row7); \
+ __m128i sum35 = _mm_add_epi16(row3, row5); \
+ dct_rot(y4o, y5o, sum17, sum35, rot1_0, rot1_1); \
+ dct_wadd(x4, y0o, y4o); \
+ dct_wadd(x5, y1o, y5o); \
+ dct_wadd(x6, y2o, y5o); \
+ dct_wadd(x7, y3o, y4o); \
+ dct_bfly32o(row0, row7, x0, x7, bias, shift); \
+ dct_bfly32o(row1, row6, x1, x6, bias, shift); \
+ dct_bfly32o(row2, row5, x2, x5, bias, shift); \
+ dct_bfly32o(row3, row4, x3, x4, bias, shift); \
+ }
+
+ __m128i rot0_0 =
+ dct_const(stbi__f2f(0.5411961f), stbi__f2f(0.5411961f) + stbi__f2f(-1.847759065f));
+ __m128i rot0_1 =
+ dct_const(stbi__f2f(0.5411961f) + stbi__f2f(0.765366865f), stbi__f2f(0.5411961f));
+ __m128i rot1_0 = dct_const(stbi__f2f(1.175875602f) + stbi__f2f(-0.899976223f),
+ stbi__f2f(1.175875602f));
+ __m128i rot1_1 = dct_const(stbi__f2f(1.175875602f),
+ stbi__f2f(1.175875602f) + stbi__f2f(-2.562915447f));
+ __m128i rot2_0 = dct_const(stbi__f2f(-1.961570560f) + stbi__f2f(0.298631336f),
+ stbi__f2f(-1.961570560f));
+ __m128i rot2_1 = dct_const(stbi__f2f(-1.961570560f),
+ stbi__f2f(-1.961570560f) + stbi__f2f(3.072711026f));
+ __m128i rot3_0 = dct_const(stbi__f2f(-0.390180644f) + stbi__f2f(2.053119869f),
+ stbi__f2f(-0.390180644f));
+ __m128i rot3_1 = dct_const(stbi__f2f(-0.390180644f),
+ stbi__f2f(-0.390180644f) + stbi__f2f(1.501321110f));
+
+ // rounding biases in column/row passes, see stbi__idct_block for explanation.
+ __m128i bias_0 = _mm_set1_epi32(512);
+ __m128i bias_1 = _mm_set1_epi32(65536 + (128 << 17));
+
+ // load
+ row0 = _mm_load_si128((const __m128i *)(data + 0 * 8));
+ row1 = _mm_load_si128((const __m128i *)(data + 1 * 8));
+ row2 = _mm_load_si128((const __m128i *)(data + 2 * 8));
+ row3 = _mm_load_si128((const __m128i *)(data + 3 * 8));
+ row4 = _mm_load_si128((const __m128i *)(data + 4 * 8));
+ row5 = _mm_load_si128((const __m128i *)(data + 5 * 8));
+ row6 = _mm_load_si128((const __m128i *)(data + 6 * 8));
+ row7 = _mm_load_si128((const __m128i *)(data + 7 * 8));
+
+ // column pass
+ dct_pass(bias_0, 10);
+
+ {
+ // 16bit 8x8 transpose pass 1
+ dct_interleave16(row0, row4);
+ dct_interleave16(row1, row5);
+ dct_interleave16(row2, row6);
+ dct_interleave16(row3, row7);
+
+ // transpose pass 2
+ dct_interleave16(row0, row2);
+ dct_interleave16(row1, row3);
+ dct_interleave16(row4, row6);
+ dct_interleave16(row5, row7);
+
+ // transpose pass 3
+ dct_interleave16(row0, row1);
+ dct_interleave16(row2, row3);
+ dct_interleave16(row4, row5);
+ dct_interleave16(row6, row7);
+ }
+
+ // row pass
+ dct_pass(bias_1, 17);
+
+ {
+ // pack
+ __m128i p0 = _mm_packus_epi16(row0, row1); // a0a1a2a3...a7b0b1b2b3...b7
+ __m128i p1 = _mm_packus_epi16(row2, row3);
+ __m128i p2 = _mm_packus_epi16(row4, row5);
+ __m128i p3 = _mm_packus_epi16(row6, row7);
+
+ // 8bit 8x8 transpose pass 1
+ dct_interleave8(p0, p2); // a0e0a1e1...
+ dct_interleave8(p1, p3); // c0g0c1g1...
+
+ // transpose pass 2
+ dct_interleave8(p0, p1); // a0c0e0g0...
+ dct_interleave8(p2, p3); // b0d0f0h0...
+
+ // transpose pass 3
+ dct_interleave8(p0, p2); // a0b0c0d0...
+ dct_interleave8(p1, p3); // a4b4c4d4...
+
+ // store
+ _mm_storel_epi64((__m128i *)out, p0);
+ out += out_stride;
+ _mm_storel_epi64((__m128i *)out, _mm_shuffle_epi32(p0, 0x4e));
+ out += out_stride;
+ _mm_storel_epi64((__m128i *)out, p2);
+ out += out_stride;
+ _mm_storel_epi64((__m128i *)out, _mm_shuffle_epi32(p2, 0x4e));
+ out += out_stride;
+ _mm_storel_epi64((__m128i *)out, p1);
+ out += out_stride;
+ _mm_storel_epi64((__m128i *)out, _mm_shuffle_epi32(p1, 0x4e));
+ out += out_stride;
+ _mm_storel_epi64((__m128i *)out, p3);
+ out += out_stride;
+ _mm_storel_epi64((__m128i *)out, _mm_shuffle_epi32(p3, 0x4e));
+ }
+
+#undef dct_const
+#undef dct_rot
+#undef dct_widen
+#undef dct_wadd
+#undef dct_wsub
+#undef dct_bfly32o
+#undef dct_interleave8
+#undef dct_interleave16
+#undef dct_pass
+}
+
+#endif // STBI_SSE2
+
+#ifdef STBI_NEON
+
+// NEON integer IDCT. should produce bit-identical
+// results to the generic C version.
+static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64])
+{
+ int16x8_t row0, row1, row2, row3, row4, row5, row6, row7;
+
+ int16x4_t rot0_0 = vdup_n_s16(stbi__f2f(0.5411961f));
+ int16x4_t rot0_1 = vdup_n_s16(stbi__f2f(-1.847759065f));
+ int16x4_t rot0_2 = vdup_n_s16(stbi__f2f(0.765366865f));
+ int16x4_t rot1_0 = vdup_n_s16(stbi__f2f(1.175875602f));
+ int16x4_t rot1_1 = vdup_n_s16(stbi__f2f(-0.899976223f));
+ int16x4_t rot1_2 = vdup_n_s16(stbi__f2f(-2.562915447f));
+ int16x4_t rot2_0 = vdup_n_s16(stbi__f2f(-1.961570560f));
+ int16x4_t rot2_1 = vdup_n_s16(stbi__f2f(-0.390180644f));
+ int16x4_t rot3_0 = vdup_n_s16(stbi__f2f(0.298631336f));
+ int16x4_t rot3_1 = vdup_n_s16(stbi__f2f(2.053119869f));
+ int16x4_t rot3_2 = vdup_n_s16(stbi__f2f(3.072711026f));
+ int16x4_t rot3_3 = vdup_n_s16(stbi__f2f(1.501321110f));
+
+#define dct_long_mul(out, inq, coeff) \
+ int32x4_t out##_l = vmull_s16(vget_low_s16(inq), coeff); \
+ int32x4_t out##_h = vmull_s16(vget_high_s16(inq), coeff)
+
+#define dct_long_mac(out, acc, inq, coeff) \
+ int32x4_t out##_l = vmlal_s16(acc##_l, vget_low_s16(inq), coeff); \
+ int32x4_t out##_h = vmlal_s16(acc##_h, vget_high_s16(inq), coeff)
+
+#define dct_widen(out, inq) \
+ int32x4_t out##_l = vshll_n_s16(vget_low_s16(inq), 12); \
+ int32x4_t out##_h = vshll_n_s16(vget_high_s16(inq), 12)
+
+ // wide add
+#define dct_wadd(out, a, b) \
+ int32x4_t out##_l = vaddq_s32(a##_l, b##_l); \
+ int32x4_t out##_h = vaddq_s32(a##_h, b##_h)
+
+// wide sub
+#define dct_wsub(out, a, b) \
+ int32x4_t out##_l = vsubq_s32(a##_l, b##_l); \
+ int32x4_t out##_h = vsubq_s32(a##_h, b##_h)
+
+// butterfly a/b, then shift using "shiftop" by "s" and pack
+#define dct_bfly32o(out0, out1, a, b, shiftop, s) \
+ { \
+ dct_wadd(sum, a, b); \
+ dct_wsub(dif, a, b); \
+ out0 = vcombine_s16(shiftop(sum_l, s), shiftop(sum_h, s)); \
+ out1 = vcombine_s16(shiftop(dif_l, s), shiftop(dif_h, s)); \
+ }
+
+#define dct_pass(shiftop, shift) \
+ { \
+ /* even part */ \
+ int16x8_t sum26 = vaddq_s16(row2, row6); \
+ dct_long_mul(p1e, sum26, rot0_0); \
+ dct_long_mac(t2e, p1e, row6, rot0_1); \
+ dct_long_mac(t3e, p1e, row2, rot0_2); \
+ int16x8_t sum04 = vaddq_s16(row0, row4); \
+ int16x8_t dif04 = vsubq_s16(row0, row4); \
+ dct_widen(t0e, sum04); \
+ dct_widen(t1e, dif04); \
+ dct_wadd(x0, t0e, t3e); \
+ dct_wsub(x3, t0e, t3e); \
+ dct_wadd(x1, t1e, t2e); \
+ dct_wsub(x2, t1e, t2e); \
+ /* odd part */ \
+ int16x8_t sum15 = vaddq_s16(row1, row5); \
+ int16x8_t sum17 = vaddq_s16(row1, row7); \
+ int16x8_t sum35 = vaddq_s16(row3, row5); \
+ int16x8_t sum37 = vaddq_s16(row3, row7); \
+ int16x8_t sumodd = vaddq_s16(sum17, sum35); \
+ dct_long_mul(p5o, sumodd, rot1_0); \
+ dct_long_mac(p1o, p5o, sum17, rot1_1); \
+ dct_long_mac(p2o, p5o, sum35, rot1_2); \
+ dct_long_mul(p3o, sum37, rot2_0); \
+ dct_long_mul(p4o, sum15, rot2_1); \
+ dct_wadd(sump13o, p1o, p3o); \
+ dct_wadd(sump24o, p2o, p4o); \
+ dct_wadd(sump23o, p2o, p3o); \
+ dct_wadd(sump14o, p1o, p4o); \
+ dct_long_mac(x4, sump13o, row7, rot3_0); \
+ dct_long_mac(x5, sump24o, row5, rot3_1); \
+ dct_long_mac(x6, sump23o, row3, rot3_2); \
+ dct_long_mac(x7, sump14o, row1, rot3_3); \
+ dct_bfly32o(row0, row7, x0, x7, shiftop, shift); \
+ dct_bfly32o(row1, row6, x1, x6, shiftop, shift); \
+ dct_bfly32o(row2, row5, x2, x5, shiftop, shift); \
+ dct_bfly32o(row3, row4, x3, x4, shiftop, shift); \
+ }
+
+ // load
+ row0 = vld1q_s16(data + 0 * 8);
+ row1 = vld1q_s16(data + 1 * 8);
+ row2 = vld1q_s16(data + 2 * 8);
+ row3 = vld1q_s16(data + 3 * 8);
+ row4 = vld1q_s16(data + 4 * 8);
+ row5 = vld1q_s16(data + 5 * 8);
+ row6 = vld1q_s16(data + 6 * 8);
+ row7 = vld1q_s16(data + 7 * 8);
+
+ // add DC bias
+ row0 = vaddq_s16(row0, vsetq_lane_s16(1024, vdupq_n_s16(0), 0));
+
+ // column pass
+ dct_pass(vrshrn_n_s32, 10);
+
+ // 16bit 8x8 transpose
+ {
+ // these three map to a single VTRN.16, VTRN.32, and VSWP, respectively.
+ // whether compilers actually get this is another story, sadly.
+#define dct_trn16(x, y) \
+ { \
+ int16x8x2_t t = vtrnq_s16(x, y); \
+ x = t.val[0]; \
+ y = t.val[1]; \
+ }
+#define dct_trn32(x, y) \
+ { \
+ int32x4x2_t t = vtrnq_s32(vreinterpretq_s32_s16(x), vreinterpretq_s32_s16(y)); \
+ x = vreinterpretq_s16_s32(t.val[0]); \
+ y = vreinterpretq_s16_s32(t.val[1]); \
+ }
+#define dct_trn64(x, y) \
+ { \
+ int16x8_t x0 = x; \
+ int16x8_t y0 = y; \
+ x = vcombine_s16(vget_low_s16(x0), vget_low_s16(y0)); \
+ y = vcombine_s16(vget_high_s16(x0), vget_high_s16(y0)); \
+ }
+
+ // pass 1
+ dct_trn16(row0, row1); // a0b0a2b2a4b4a6b6
+ dct_trn16(row2, row3);
+ dct_trn16(row4, row5);
+ dct_trn16(row6, row7);
+
+ // pass 2
+ dct_trn32(row0, row2); // a0b0c0d0a4b4c4d4
+ dct_trn32(row1, row3);
+ dct_trn32(row4, row6);
+ dct_trn32(row5, row7);
+
+ // pass 3
+ dct_trn64(row0, row4); // a0b0c0d0e0f0g0h0
+ dct_trn64(row1, row5);
+ dct_trn64(row2, row6);
+ dct_trn64(row3, row7);
+
+#undef dct_trn16
+#undef dct_trn32
+#undef dct_trn64
+ }
+
+ // row pass
+ // vrshrn_n_s32 only supports shifts up to 16, we need
+ // 17. so do a non-rounding shift of 16 first then follow
+ // up with a rounding shift by 1.
+ dct_pass(vshrn_n_s32, 16);
+
+ {
+ // pack and round
+ uint8x8_t p0 = vqrshrun_n_s16(row0, 1);
+ uint8x8_t p1 = vqrshrun_n_s16(row1, 1);
+ uint8x8_t p2 = vqrshrun_n_s16(row2, 1);
+ uint8x8_t p3 = vqrshrun_n_s16(row3, 1);
+ uint8x8_t p4 = vqrshrun_n_s16(row4, 1);
+ uint8x8_t p5 = vqrshrun_n_s16(row5, 1);
+ uint8x8_t p6 = vqrshrun_n_s16(row6, 1);
+ uint8x8_t p7 = vqrshrun_n_s16(row7, 1);
+
+ // again, these can translate into one instruction, but often don't.
+#define dct_trn8_8(x, y) \
+ { \
+ uint8x8x2_t t = vtrn_u8(x, y); \
+ x = t.val[0]; \
+ y = t.val[1]; \
+ }
+#define dct_trn8_16(x, y) \
+ { \
+ uint16x4x2_t t = vtrn_u16(vreinterpret_u16_u8(x), vreinterpret_u16_u8(y)); \
+ x = vreinterpret_u8_u16(t.val[0]); \
+ y = vreinterpret_u8_u16(t.val[1]); \
+ }
+#define dct_trn8_32(x, y) \
+ { \
+ uint32x2x2_t t = vtrn_u32(vreinterpret_u32_u8(x), vreinterpret_u32_u8(y)); \
+ x = vreinterpret_u8_u32(t.val[0]); \
+ y = vreinterpret_u8_u32(t.val[1]); \
+ }
+
+ // sadly can't use interleaved stores here since we only write
+ // 8 bytes to each scan line!
+
+ // 8x8 8-bit transpose pass 1
+ dct_trn8_8(p0, p1);
+ dct_trn8_8(p2, p3);
+ dct_trn8_8(p4, p5);
+ dct_trn8_8(p6, p7);
+
+ // pass 2
+ dct_trn8_16(p0, p2);
+ dct_trn8_16(p1, p3);
+ dct_trn8_16(p4, p6);
+ dct_trn8_16(p5, p7);
+
+ // pass 3
+ dct_trn8_32(p0, p4);
+ dct_trn8_32(p1, p5);
+ dct_trn8_32(p2, p6);
+ dct_trn8_32(p3, p7);
+
+ // store
+ vst1_u8(out, p0);
+ out += out_stride;
+ vst1_u8(out, p1);
+ out += out_stride;
+ vst1_u8(out, p2);
+ out += out_stride;
+ vst1_u8(out, p3);
+ out += out_stride;
+ vst1_u8(out, p4);
+ out += out_stride;
+ vst1_u8(out, p5);
+ out += out_stride;
+ vst1_u8(out, p6);
+ out += out_stride;
+ vst1_u8(out, p7);
+
+#undef dct_trn8_8
+#undef dct_trn8_16
+#undef dct_trn8_32
+ }
+
+#undef dct_long_mul
+#undef dct_long_mac
+#undef dct_widen
+#undef dct_wadd
+#undef dct_wsub
+#undef dct_bfly32o
+#undef dct_pass
+}
+
+#endif // STBI_NEON
+
+#define STBI__MARKER_none 0xff
+// if there's a pending marker from the entropy stream, return that
+// otherwise, fetch from the stream and get a marker. if there's no
+// marker, return 0xff, which is never a valid marker value
+static stbi_uc stbi__get_marker(stbi__jpeg *j)
+{
+ stbi_uc x;
+ if (j->marker != STBI__MARKER_none) {
+ x = j->marker;
+ j->marker = STBI__MARKER_none;
+ return x;
+ }
+ x = stbi__get8(j->s);
+ if (x != 0xff)
+ return STBI__MARKER_none;
+ while (x == 0xff)
+ x = stbi__get8(j->s); // consume repeated 0xff fill bytes
+ return x;
+}
+
+// in each scan, we'll have scan_n components, and the order
+// of the components is specified by order[]
+#define STBI__RESTART(x) ((x) >= 0xd0 && (x) <= 0xd7)
+
+// after a restart interval, stbi__jpeg_reset the entropy decoder and
+// the dc prediction
+static void stbi__jpeg_reset(stbi__jpeg *j)
+{
+ j->code_bits = 0;
+ j->code_buffer = 0;
+ j->nomore = 0;
+ j->img_comp[0].dc_pred = j->img_comp[1].dc_pred = j->img_comp[2].dc_pred =
+ j->img_comp[3].dc_pred = 0;
+ j->marker = STBI__MARKER_none;
+ j->todo = j->restart_interval ? j->restart_interval : 0x7fffffff;
+ j->eob_run = 0;
+ // no more than 1<<31 MCUs if no restart_interal? that's plenty safe,
+ // since we don't even allow 1<<30 pixels
+}
+
+static int stbi__parse_entropy_coded_data(stbi__jpeg *z)
+{
+ stbi__jpeg_reset(z);
+ if (!z->progressive) {
+ if (z->scan_n == 1) {
+ int i, j;
+ STBI_SIMD_ALIGN(short, data[64]);
+ int n = z->order[0];
+ // non-interleaved data, we just need to process one block at a time,
+ // in trivial scanline order
+ // number of blocks to do just depends on how many actual "pixels" this
+ // component has, independent of interleaved MCU blocking and such
+ int w = (z->img_comp[n].x + 7) >> 3;
+ int h = (z->img_comp[n].y + 7) >> 3;
+ for (j = 0; j < h; ++j) {
+ for (i = 0; i < w; ++i) {
+ int ha = z->img_comp[n].ha;
+ if (!stbi__jpeg_decode_block(
+ z, data, z->huff_dc + z->img_comp[n].hd,
+ z->huff_ac + ha, z->fast_ac[ha], n,
+ z->dequant[z->img_comp[n].tq]))
+ return 0;
+ z->idct_block_kernel(z->img_comp[n].data +
+ z->img_comp[n].w2 * j * 8 +
+ i * 8,
+ z->img_comp[n].w2, data);
+ // every data block is an MCU, so countdown the restart interval
+ if (--z->todo <= 0) {
+ if (z->code_bits < 24)
+ stbi__grow_buffer_unsafe(z);
+ // if it's NOT a restart, then just bail, so we get corrupt data
+ // rather than no data
+ if (!STBI__RESTART(z->marker))
+ return 1;
+ stbi__jpeg_reset(z);
+ }
+ }
+ }
+ return 1;
+ } else { // interleaved
+ int i, j, k, x, y;
+ STBI_SIMD_ALIGN(short, data[64]);
+ for (j = 0; j < z->img_mcu_y; ++j) {
+ for (i = 0; i < z->img_mcu_x; ++i) {
+ // scan an interleaved mcu... process scan_n components in order
+ for (k = 0; k < z->scan_n; ++k) {
+ int n = z->order[k];
+ // scan out an mcu's worth of this component; that's just determined
+ // by the basic H and V specified for the component
+ for (y = 0; y < z->img_comp[n].v; ++y) {
+ for (x = 0; x < z->img_comp[n].h; ++x) {
+ int x2 =
+ (i * z->img_comp[n].h + x) *
+ 8;
+ int y2 =
+ (j * z->img_comp[n].v + y) *
+ 8;
+ int ha = z->img_comp[n].ha;
+ if (!stbi__jpeg_decode_block(
+ z, data,
+ z->huff_dc +
+ z->img_comp[n]
+ .hd,
+ z->huff_ac + ha,
+ z->fast_ac[ha], n,
+ z->dequant[z->img_comp[n]
+ .tq]))
+ return 0;
+ z->idct_block_kernel(
+ z->img_comp[n].data +
+ z->img_comp[n].w2 *
+ y2 +
+ x2,
+ z->img_comp[n].w2, data);
+ }
+ }
+ }
+ // after all interleaved components, that's an interleaved MCU,
+ // so now count down the restart interval
+ if (--z->todo <= 0) {
+ if (z->code_bits < 24)
+ stbi__grow_buffer_unsafe(z);
+ if (!STBI__RESTART(z->marker))
+ return 1;
+ stbi__jpeg_reset(z);
+ }
+ }
+ }
+ return 1;
+ }
+ } else {
+ if (z->scan_n == 1) {
+ int i, j;
+ int n = z->order[0];
+ // non-interleaved data, we just need to process one block at a time,
+ // in trivial scanline order
+ // number of blocks to do just depends on how many actual "pixels" this
+ // component has, independent of interleaved MCU blocking and such
+ int w = (z->img_comp[n].x + 7) >> 3;
+ int h = (z->img_comp[n].y + 7) >> 3;
+ for (j = 0; j < h; ++j) {
+ for (i = 0; i < w; ++i) {
+ short *data = z->img_comp[n].coeff +
+ 64 * (i + j * z->img_comp[n].coeff_w);
+ if (z->spec_start == 0) {
+ if (!stbi__jpeg_decode_block_prog_dc(
+ z, data, &z->huff_dc[z->img_comp[n].hd],
+ n))
+ return 0;
+ } else {
+ int ha = z->img_comp[n].ha;
+ if (!stbi__jpeg_decode_block_prog_ac(
+ z, data, &z->huff_ac[ha],
+ z->fast_ac[ha]))
+ return 0;
+ }
+ // every data block is an MCU, so countdown the restart interval
+ if (--z->todo <= 0) {
+ if (z->code_bits < 24)
+ stbi__grow_buffer_unsafe(z);
+ if (!STBI__RESTART(z->marker))
+ return 1;
+ stbi__jpeg_reset(z);
+ }
+ }
+ }
+ return 1;
+ } else { // interleaved
+ int i, j, k, x, y;
+ for (j = 0; j < z->img_mcu_y; ++j) {
+ for (i = 0; i < z->img_mcu_x; ++i) {
+ // scan an interleaved mcu... process scan_n components in order
+ for (k = 0; k < z->scan_n; ++k) {
+ int n = z->order[k];
+ // scan out an mcu's worth of this component; that's just determined
+ // by the basic H and V specified for the component
+ for (y = 0; y < z->img_comp[n].v; ++y) {
+ for (x = 0; x < z->img_comp[n].h; ++x) {
+ int x2 = (i * z->img_comp[n].h + x);
+ int y2 = (j * z->img_comp[n].v + y);
+ short *data =
+ z->img_comp[n].coeff +
+ 64 * (x2 +
+ y2 * z->img_comp[n]
+ .coeff_w);
+ if (!stbi__jpeg_decode_block_prog_dc(
+ z, data,
+ &z->huff_dc[z->img_comp[n]
+ .hd],
+ n))
+ return 0;
+ }
+ }
+ }
+ // after all interleaved components, that's an interleaved MCU,
+ // so now count down the restart interval
+ if (--z->todo <= 0) {
+ if (z->code_bits < 24)
+ stbi__grow_buffer_unsafe(z);
+ if (!STBI__RESTART(z->marker))
+ return 1;
+ stbi__jpeg_reset(z);
+ }
+ }
+ }
+ return 1;
+ }
+ }
+}
+
+static void stbi__jpeg_dequantize(short *data, stbi__uint16 *dequant)
+{
+ int i;
+ for (i = 0; i < 64; ++i)
+ data[i] *= dequant[i];
+}
+
+static void stbi__jpeg_finish(stbi__jpeg *z)
+{
+ if (z->progressive) {
+ // dequantize and idct the data
+ int i, j, n;
+ for (n = 0; n < z->s->img_n; ++n) {
+ int w = (z->img_comp[n].x + 7) >> 3;
+ int h = (z->img_comp[n].y + 7) >> 3;
+ for (j = 0; j < h; ++j) {
+ for (i = 0; i < w; ++i) {
+ short *data = z->img_comp[n].coeff +
+ 64 * (i + j * z->img_comp[n].coeff_w);
+ stbi__jpeg_dequantize(data, z->dequant[z->img_comp[n].tq]);
+ z->idct_block_kernel(z->img_comp[n].data +
+ z->img_comp[n].w2 * j * 8 +
+ i * 8,
+ z->img_comp[n].w2, data);
+ }
+ }
+ }
+ }
+}
+
+static int stbi__process_marker(stbi__jpeg *z, int m)
+{
+ int L;
+ switch (m) {
+ case STBI__MARKER_none: // no marker found
+ return stbi__err("expected marker", "Corrupt JPEG");
+
+ case 0xDD: // DRI - specify restart interval
+ if (stbi__get16be(z->s) != 4)
+ return stbi__err("bad DRI len", "Corrupt JPEG");
+ z->restart_interval = stbi__get16be(z->s);
+ return 1;
+
+ case 0xDB: // DQT - define quantization table
+ L = stbi__get16be(z->s) - 2;
+ while (L > 0) {
+ int q = stbi__get8(z->s);
+ int p = q >> 4, sixteen = (p != 0);
+ int t = q & 15, i;
+ if (p != 0 && p != 1)
+ return stbi__err("bad DQT type", "Corrupt JPEG");
+ if (t > 3)
+ return stbi__err("bad DQT table", "Corrupt JPEG");
+
+ for (i = 0; i < 64; ++i)
+ z->dequant[t][stbi__jpeg_dezigzag[i]] =
+ (stbi__uint16)(sixteen ? stbi__get16be(z->s) :
+ stbi__get8(z->s));
+ L -= (sixteen ? 129 : 65);
+ }
+ return L == 0;
+
+ case 0xC4: // DHT - define huffman table
+ L = stbi__get16be(z->s) - 2;
+ while (L > 0) {
+ stbi_uc *v;
+ int sizes[16], i, n = 0;
+ int q = stbi__get8(z->s);
+ int tc = q >> 4;
+ int th = q & 15;
+ if (tc > 1 || th > 3)
+ return stbi__err("bad DHT header", "Corrupt JPEG");
+ for (i = 0; i < 16; ++i) {
+ sizes[i] = stbi__get8(z->s);
+ n += sizes[i];
+ }
+ if (n > 256)
+ return stbi__err(
+ "bad DHT header",
+ "Corrupt JPEG"); // Loop over i < n would write past end of values!
+ L -= 17;
+ if (tc == 0) {
+ if (!stbi__build_huffman(z->huff_dc + th, sizes))
+ return 0;
+ v = z->huff_dc[th].values;
+ } else {
+ if (!stbi__build_huffman(z->huff_ac + th, sizes))
+ return 0;
+ v = z->huff_ac[th].values;
+ }
+ for (i = 0; i < n; ++i)
+ v[i] = stbi__get8(z->s);
+ if (tc != 0)
+ stbi__build_fast_ac(z->fast_ac[th], z->huff_ac + th);
+ L -= n;
+ }
+ return L == 0;
+ }
+
+ // check for comment block or APP blocks
+ if ((m >= 0xE0 && m <= 0xEF) || m == 0xFE) {
+ L = stbi__get16be(z->s);
+ if (L < 2) {
+ if (m == 0xFE)
+ return stbi__err("bad COM len", "Corrupt JPEG");
+ else
+ return stbi__err("bad APP len", "Corrupt JPEG");
+ }
+ L -= 2;
+
+ if (m == 0xE0 && L >= 5) { // JFIF APP0 segment
+ static const unsigned char tag[5] = { 'J', 'F', 'I', 'F', '\0' };
+ int ok = 1;
+ int i;
+ for (i = 0; i < 5; ++i)
+ if (stbi__get8(z->s) != tag[i])
+ ok = 0;
+ L -= 5;
+ if (ok)
+ z->jfif = 1;
+ } else if (m == 0xEE && L >= 12) { // Adobe APP14 segment
+ static const unsigned char tag[6] = { 'A', 'd', 'o', 'b', 'e', '\0' };
+ int ok = 1;
+ int i;
+ for (i = 0; i < 6; ++i)
+ if (stbi__get8(z->s) != tag[i])
+ ok = 0;
+ L -= 6;
+ if (ok) {
+ stbi__get8(z->s); // version
+ stbi__get16be(z->s); // flags0
+ stbi__get16be(z->s); // flags1
+ z->app14_color_transform = stbi__get8(z->s); // color transform
+ L -= 6;
+ }
+ }
+
+ stbi__skip(z->s, L);
+ return 1;
+ }
+
+ return stbi__err("unknown marker", "Corrupt JPEG");
+}
+
+// after we see SOS
+static int stbi__process_scan_header(stbi__jpeg *z)
+{
+ int i;
+ int Ls = stbi__get16be(z->s);
+ z->scan_n = stbi__get8(z->s);
+ if (z->scan_n < 1 || z->scan_n > 4 || z->scan_n > (int)z->s->img_n)
+ return stbi__err("bad SOS component count", "Corrupt JPEG");
+ if (Ls != 6 + 2 * z->scan_n)
+ return stbi__err("bad SOS len", "Corrupt JPEG");
+ for (i = 0; i < z->scan_n; ++i) {
+ int id = stbi__get8(z->s), which;
+ int q = stbi__get8(z->s);
+ for (which = 0; which < z->s->img_n; ++which)
+ if (z->img_comp[which].id == id)
+ break;
+ if (which == z->s->img_n)
+ return 0; // no match
+ z->img_comp[which].hd = q >> 4;
+ if (z->img_comp[which].hd > 3)
+ return stbi__err("bad DC huff", "Corrupt JPEG");
+ z->img_comp[which].ha = q & 15;
+ if (z->img_comp[which].ha > 3)
+ return stbi__err("bad AC huff", "Corrupt JPEG");
+ z->order[i] = which;
+ }
+
+ {
+ int aa;
+ z->spec_start = stbi__get8(z->s);
+ z->spec_end = stbi__get8(z->s); // should be 63, but might be 0
+ aa = stbi__get8(z->s);
+ z->succ_high = (aa >> 4);
+ z->succ_low = (aa & 15);
+ if (z->progressive) {
+ if (z->spec_start > 63 || z->spec_end > 63 || z->spec_start > z->spec_end ||
+ z->succ_high > 13 || z->succ_low > 13)
+ return stbi__err("bad SOS", "Corrupt JPEG");
+ } else {
+ if (z->spec_start != 0)
+ return stbi__err("bad SOS", "Corrupt JPEG");
+ if (z->succ_high != 0 || z->succ_low != 0)
+ return stbi__err("bad SOS", "Corrupt JPEG");
+ z->spec_end = 63;
+ }
+ }
+
+ return 1;
+}
+
+static int stbi__free_jpeg_components(stbi__jpeg *z, int ncomp, int why)
+{
+ int i;
+ for (i = 0; i < ncomp; ++i) {
+ if (z->img_comp[i].raw_data) {
+ STBI_FREE(z->img_comp[i].raw_data);
+ z->img_comp[i].raw_data = NULL;
+ z->img_comp[i].data = NULL;
+ }
+ if (z->img_comp[i].raw_coeff) {
+ STBI_FREE(z->img_comp[i].raw_coeff);
+ z->img_comp[i].raw_coeff = 0;
+ z->img_comp[i].coeff = 0;
+ }
+ if (z->img_comp[i].linebuf) {
+ STBI_FREE(z->img_comp[i].linebuf);
+ z->img_comp[i].linebuf = NULL;
+ }
+ }
+ return why;
+}
+
+static int stbi__process_frame_header(stbi__jpeg *z, int scan)
+{
+ stbi__context *s = z->s;
+ int Lf, p, i, q, h_max = 1, v_max = 1, c;
+ Lf = stbi__get16be(s);
+ if (Lf < 11)
+ return stbi__err("bad SOF len", "Corrupt JPEG"); // JPEG
+ p = stbi__get8(s);
+ if (p != 8)
+ return stbi__err("only 8-bit",
+ "JPEG format not supported: 8-bit only"); // JPEG baseline
+ s->img_y = stbi__get16be(s);
+ if (s->img_y == 0)
+ return stbi__err(
+ "no header height",
+ "JPEG format not supported: delayed height"); // Legal, but we don't handle it--but neither does IJG
+ s->img_x = stbi__get16be(s);
+ if (s->img_x == 0)
+ return stbi__err("0 width", "Corrupt JPEG"); // JPEG requires
+ if (s->img_y > STBI_MAX_DIMENSIONS)
+ return stbi__err("too large", "Very large image (corrupt?)");
+ if (s->img_x > STBI_MAX_DIMENSIONS)
+ return stbi__err("too large", "Very large image (corrupt?)");
+ c = stbi__get8(s);
+ if (c != 3 && c != 1 && c != 4)
+ return stbi__err("bad component count", "Corrupt JPEG");
+ s->img_n = c;
+ for (i = 0; i < c; ++i) {
+ z->img_comp[i].data = NULL;
+ z->img_comp[i].linebuf = NULL;
+ }
+
+ if (Lf != 8 + 3 * s->img_n)
+ return stbi__err("bad SOF len", "Corrupt JPEG");
+
+ z->rgb = 0;
+ for (i = 0; i < s->img_n; ++i) {
+ static const unsigned char rgb[3] = { 'R', 'G', 'B' };
+ z->img_comp[i].id = stbi__get8(s);
+ if (s->img_n == 3 && z->img_comp[i].id == rgb[i])
+ ++z->rgb;
+ q = stbi__get8(s);
+ z->img_comp[i].h = (q >> 4);
+ if (!z->img_comp[i].h || z->img_comp[i].h > 4)
+ return stbi__err("bad H", "Corrupt JPEG");
+ z->img_comp[i].v = q & 15;
+ if (!z->img_comp[i].v || z->img_comp[i].v > 4)
+ return stbi__err("bad V", "Corrupt JPEG");
+ z->img_comp[i].tq = stbi__get8(s);
+ if (z->img_comp[i].tq > 3)
+ return stbi__err("bad TQ", "Corrupt JPEG");
+ }
+
+ if (scan != STBI__SCAN_load)
+ return 1;
+
+ if (!stbi__mad3sizes_valid(s->img_x, s->img_y, s->img_n, 0))
+ return stbi__err("too large", "Image too large to decode");
+
+ for (i = 0; i < s->img_n; ++i) {
+ if (z->img_comp[i].h > h_max)
+ h_max = z->img_comp[i].h;
+ if (z->img_comp[i].v > v_max)
+ v_max = z->img_comp[i].v;
+ }
+
+ // check that plane subsampling factors are integer ratios; our resamplers can't deal with fractional ratios
+ // and I've never seen a non-corrupted JPEG file actually use them
+ for (i = 0; i < s->img_n; ++i) {
+ if (h_max % z->img_comp[i].h != 0)
+ return stbi__err("bad H", "Corrupt JPEG");
+ if (v_max % z->img_comp[i].v != 0)
+ return stbi__err("bad V", "Corrupt JPEG");
+ }
+
+ // compute interleaved mcu info
+ z->img_h_max = h_max;
+ z->img_v_max = v_max;
+ z->img_mcu_w = h_max * 8;
+ z->img_mcu_h = v_max * 8;
+ // these sizes can't be more than 17 bits
+ z->img_mcu_x = (s->img_x + z->img_mcu_w - 1) / z->img_mcu_w;
+ z->img_mcu_y = (s->img_y + z->img_mcu_h - 1) / z->img_mcu_h;
+
+ for (i = 0; i < s->img_n; ++i) {
+ // number of effective pixels (e.g. for non-interleaved MCU)
+ z->img_comp[i].x = (s->img_x * z->img_comp[i].h + h_max - 1) / h_max;
+ z->img_comp[i].y = (s->img_y * z->img_comp[i].v + v_max - 1) / v_max;
+ // to simplify generation, we'll allocate enough memory to decode
+ // the bogus oversized data from using interleaved MCUs and their
+ // big blocks (e.g. a 16x16 iMCU on an image of width 33); we won't
+ // discard the extra data until colorspace conversion
+ //
+ // img_mcu_x, img_mcu_y: <=17 bits; comp[i].h and .v are <=4 (checked earlier)
+ // so these muls can't overflow with 32-bit ints (which we require)
+ z->img_comp[i].w2 = z->img_mcu_x * z->img_comp[i].h * 8;
+ z->img_comp[i].h2 = z->img_mcu_y * z->img_comp[i].v * 8;
+ z->img_comp[i].coeff = 0;
+ z->img_comp[i].raw_coeff = 0;
+ z->img_comp[i].linebuf = NULL;
+ z->img_comp[i].raw_data =
+ stbi__malloc_mad2(z->img_comp[i].w2, z->img_comp[i].h2, 15);
+ if (z->img_comp[i].raw_data == NULL)
+ return stbi__free_jpeg_components(z, i + 1,
+ stbi__err("outofmem", "Out of memory"));
+ // align blocks for idct using mmx/sse
+ z->img_comp[i].data = (stbi_uc *)(((size_t)z->img_comp[i].raw_data + 15) & ~15);
+ if (z->progressive) {
+ // w2, h2 are multiples of 8 (see above)
+ z->img_comp[i].coeff_w = z->img_comp[i].w2 / 8;
+ z->img_comp[i].coeff_h = z->img_comp[i].h2 / 8;
+ z->img_comp[i].raw_coeff = stbi__malloc_mad3(
+ z->img_comp[i].w2, z->img_comp[i].h2, sizeof(short), 15);
+ if (z->img_comp[i].raw_coeff == NULL)
+ return stbi__free_jpeg_components(
+ z, i + 1, stbi__err("outofmem", "Out of memory"));
+ z->img_comp[i].coeff =
+ (short *)(((size_t)z->img_comp[i].raw_coeff + 15) & ~15);
+ }
+ }
+
+ return 1;
+}
+
+// use comparisons since in some cases we handle more than one case (e.g. SOF)
+#define stbi__DNL(x) ((x) == 0xdc)
+#define stbi__SOI(x) ((x) == 0xd8)
+#define stbi__EOI(x) ((x) == 0xd9)
+#define stbi__SOF(x) ((x) == 0xc0 || (x) == 0xc1 || (x) == 0xc2)
+#define stbi__SOS(x) ((x) == 0xda)
+
+#define stbi__SOF_progressive(x) ((x) == 0xc2)
+
+static int stbi__decode_jpeg_header(stbi__jpeg *z, int scan)
+{
+ int m;
+ z->jfif = 0;
+ z->app14_color_transform = -1; // valid values are 0,1,2
+ z->marker = STBI__MARKER_none; // initialize cached marker to empty
+ m = stbi__get_marker(z);
+ if (!stbi__SOI(m))
+ return stbi__err("no SOI", "Corrupt JPEG");
+ if (scan == STBI__SCAN_type)
+ return 1;
+ m = stbi__get_marker(z);
+ while (!stbi__SOF(m)) {
+ if (!stbi__process_marker(z, m))
+ return 0;
+ m = stbi__get_marker(z);
+ while (m == STBI__MARKER_none) {
+ // some files have extra padding after their blocks, so ok, we'll scan
+ if (stbi__at_eof(z->s))
+ return stbi__err("no SOF", "Corrupt JPEG");
+ m = stbi__get_marker(z);
+ }
+ }
+ z->progressive = stbi__SOF_progressive(m);
+ if (!stbi__process_frame_header(z, scan))
+ return 0;
+ return 1;
+}
+
+static int stbi__skip_jpeg_junk_at_end(stbi__jpeg *j)
+{
+ // some JPEGs have junk at end, skip over it but if we find what looks
+ // like a valid marker, resume there
+ while (!stbi__at_eof(j->s)) {
+ int x = stbi__get8(j->s);
+ while (x == 255) { // might be a marker
+ if (stbi__at_eof(j->s))
+ return STBI__MARKER_none;
+ x = stbi__get8(j->s);
+ if (x != 0x00 && x != 0xff) {
+ // not a stuffed zero or lead-in to another marker, looks
+ // like an actual marker, return it
+ return x;
+ }
+ // stuffed zero has x=0 now which ends the loop, meaning we go
+ // back to regular scan loop.
+ // repeated 0xff keeps trying to read the next byte of the marker.
+ }
+ }
+ return STBI__MARKER_none;
+}
+
+// decode image to YCbCr format
+static int stbi__decode_jpeg_image(stbi__jpeg *j)
+{
+ int m;
+ for (m = 0; m < 4; m++) {
+ j->img_comp[m].raw_data = NULL;
+ j->img_comp[m].raw_coeff = NULL;
+ }
+ j->restart_interval = 0;
+ if (!stbi__decode_jpeg_header(j, STBI__SCAN_load))
+ return 0;
+ m = stbi__get_marker(j);
+ while (!stbi__EOI(m)) {
+ if (stbi__SOS(m)) {
+ if (!stbi__process_scan_header(j))
+ return 0;
+ if (!stbi__parse_entropy_coded_data(j))
+ return 0;
+ if (j->marker == STBI__MARKER_none) {
+ j->marker = stbi__skip_jpeg_junk_at_end(j);
+ // if we reach eof without hitting a marker, stbi__get_marker() below will fail and we'll eventually return 0
+ }
+ m = stbi__get_marker(j);
+ if (STBI__RESTART(m))
+ m = stbi__get_marker(j);
+ } else if (stbi__DNL(m)) {
+ int Ld = stbi__get16be(j->s);
+ stbi__uint32 NL = stbi__get16be(j->s);
+ if (Ld != 4)
+ return stbi__err("bad DNL len", "Corrupt JPEG");
+ if (NL != j->s->img_y)
+ return stbi__err("bad DNL height", "Corrupt JPEG");
+ m = stbi__get_marker(j);
+ } else {
+ if (!stbi__process_marker(j, m))
+ return 1;
+ m = stbi__get_marker(j);
+ }
+ }
+ if (j->progressive)
+ stbi__jpeg_finish(j);
+ return 1;
+}
+
+// static jfif-centered resampling (across block boundaries)
+
+typedef stbi_uc *(*resample_row_func)(stbi_uc *out, stbi_uc *in0, stbi_uc *in1, int w, int hs);
+
+#define stbi__div4(x) ((stbi_uc)((x) >> 2))
+
+static stbi_uc *resample_row_1(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs)
+{
+ STBI_NOTUSED(out);
+ STBI_NOTUSED(in_far);
+ STBI_NOTUSED(w);
+ STBI_NOTUSED(hs);
+ return in_near;
+}
+
+static stbi_uc *stbi__resample_row_v_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w,
+ int hs)
+{
+ // need to generate two samples vertically for every one in input
+ int i;
+ STBI_NOTUSED(hs);
+ for (i = 0; i < w; ++i)
+ out[i] = stbi__div4(3 * in_near[i] + in_far[i] + 2);
+ return out;
+}
+
+static stbi_uc *stbi__resample_row_h_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w,
+ int hs)
+{
+ // need to generate two samples horizontally for every one in input
+ int i;
+ stbi_uc *input = in_near;
+
+ if (w == 1) {
+ // if only one sample, can't do any interpolation
+ out[0] = out[1] = input[0];
+ return out;
+ }
+
+ out[0] = input[0];
+ out[1] = stbi__div4(input[0] * 3 + input[1] + 2);
+ for (i = 1; i < w - 1; ++i) {
+ int n = 3 * input[i] + 2;
+ out[i * 2 + 0] = stbi__div4(n + input[i - 1]);
+ out[i * 2 + 1] = stbi__div4(n + input[i + 1]);
+ }
+ out[i * 2 + 0] = stbi__div4(input[w - 2] * 3 + input[w - 1] + 2);
+ out[i * 2 + 1] = input[w - 1];
+
+ STBI_NOTUSED(in_far);
+ STBI_NOTUSED(hs);
+
+ return out;
+}
+
+#define stbi__div16(x) ((stbi_uc)((x) >> 4))
+
+static stbi_uc *stbi__resample_row_hv_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w,
+ int hs)
+{
+ // need to generate 2x2 samples for every one in input
+ int i, t0, t1;
+ if (w == 1) {
+ out[0] = out[1] = stbi__div4(3 * in_near[0] + in_far[0] + 2);
+ return out;
+ }
+
+ t1 = 3 * in_near[0] + in_far[0];
+ out[0] = stbi__div4(t1 + 2);
+ for (i = 1; i < w; ++i) {
+ t0 = t1;
+ t1 = 3 * in_near[i] + in_far[i];
+ out[i * 2 - 1] = stbi__div16(3 * t0 + t1 + 8);
+ out[i * 2] = stbi__div16(3 * t1 + t0 + 8);
+ }
+ out[w * 2 - 1] = stbi__div4(t1 + 2);
+
+ STBI_NOTUSED(hs);
+
+ return out;
+}
+
+#if defined(STBI_SSE2) || defined(STBI_NEON)
+static stbi_uc *stbi__resample_row_hv_2_simd(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w,
+ int hs)
+{
+ // need to generate 2x2 samples for every one in input
+ int i = 0, t0, t1;
+
+ if (w == 1) {
+ out[0] = out[1] = stbi__div4(3 * in_near[0] + in_far[0] + 2);
+ return out;
+ }
+
+ t1 = 3 * in_near[0] + in_far[0];
+ // process groups of 8 pixels for as long as we can.
+ // note we can't handle the last pixel in a row in this loop
+ // because we need to handle the filter boundary conditions.
+ for (; i < ((w - 1) & ~7); i += 8) {
+#if defined(STBI_SSE2)
+ // load and perform the vertical filtering pass
+ // this uses 3*x + y = 4*x + (y - x)
+ __m128i zero = _mm_setzero_si128();
+ __m128i farb = _mm_loadl_epi64((__m128i *)(in_far + i));
+ __m128i nearb = _mm_loadl_epi64((__m128i *)(in_near + i));
+ __m128i farw = _mm_unpacklo_epi8(farb, zero);
+ __m128i nearw = _mm_unpacklo_epi8(nearb, zero);
+ __m128i diff = _mm_sub_epi16(farw, nearw);
+ __m128i nears = _mm_slli_epi16(nearw, 2);
+ __m128i curr = _mm_add_epi16(nears, diff); // current row
+
+ // horizontal filter works the same based on shifted vers of current
+ // row. "prev" is current row shifted right by 1 pixel; we need to
+ // insert the previous pixel value (from t1).
+ // "next" is current row shifted left by 1 pixel, with first pixel
+ // of next block of 8 pixels added in.
+ __m128i prv0 = _mm_slli_si128(curr, 2);
+ __m128i nxt0 = _mm_srli_si128(curr, 2);
+ __m128i prev = _mm_insert_epi16(prv0, t1, 0);
+ __m128i next = _mm_insert_epi16(nxt0, 3 * in_near[i + 8] + in_far[i + 8], 7);
+
+ // horizontal filter, polyphase implementation since it's convenient:
+ // even pixels = 3*cur + prev = cur*4 + (prev - cur)
+ // odd pixels = 3*cur + next = cur*4 + (next - cur)
+ // note the shared term.
+ __m128i bias = _mm_set1_epi16(8);
+ __m128i curs = _mm_slli_epi16(curr, 2);
+ __m128i prvd = _mm_sub_epi16(prev, curr);
+ __m128i nxtd = _mm_sub_epi16(next, curr);
+ __m128i curb = _mm_add_epi16(curs, bias);
+ __m128i even = _mm_add_epi16(prvd, curb);
+ __m128i odd = _mm_add_epi16(nxtd, curb);
+
+ // interleave even and odd pixels, then undo scaling.
+ __m128i int0 = _mm_unpacklo_epi16(even, odd);
+ __m128i int1 = _mm_unpackhi_epi16(even, odd);
+ __m128i de0 = _mm_srli_epi16(int0, 4);
+ __m128i de1 = _mm_srli_epi16(int1, 4);
+
+ // pack and write output
+ __m128i outv = _mm_packus_epi16(de0, de1);
+ _mm_storeu_si128((__m128i *)(out + i * 2), outv);
+#elif defined(STBI_NEON)
+ // load and perform the vertical filtering pass
+ // this uses 3*x + y = 4*x + (y - x)
+ uint8x8_t farb = vld1_u8(in_far + i);
+ uint8x8_t nearb = vld1_u8(in_near + i);
+ int16x8_t diff = vreinterpretq_s16_u16(vsubl_u8(farb, nearb));
+ int16x8_t nears = vreinterpretq_s16_u16(vshll_n_u8(nearb, 2));
+ int16x8_t curr = vaddq_s16(nears, diff); // current row
+
+ // horizontal filter works the same based on shifted vers of current
+ // row. "prev" is current row shifted right by 1 pixel; we need to
+ // insert the previous pixel value (from t1).
+ // "next" is current row shifted left by 1 pixel, with first pixel
+ // of next block of 8 pixels added in.
+ int16x8_t prv0 = vextq_s16(curr, curr, 7);
+ int16x8_t nxt0 = vextq_s16(curr, curr, 1);
+ int16x8_t prev = vsetq_lane_s16(t1, prv0, 0);
+ int16x8_t next = vsetq_lane_s16(3 * in_near[i + 8] + in_far[i + 8], nxt0, 7);
+
+ // horizontal filter, polyphase implementation since it's convenient:
+ // even pixels = 3*cur + prev = cur*4 + (prev - cur)
+ // odd pixels = 3*cur + next = cur*4 + (next - cur)
+ // note the shared term.
+ int16x8_t curs = vshlq_n_s16(curr, 2);
+ int16x8_t prvd = vsubq_s16(prev, curr);
+ int16x8_t nxtd = vsubq_s16(next, curr);
+ int16x8_t even = vaddq_s16(curs, prvd);
+ int16x8_t odd = vaddq_s16(curs, nxtd);
+
+ // undo scaling and round, then store with even/odd phases interleaved
+ uint8x8x2_t o;
+ o.val[0] = vqrshrun_n_s16(even, 4);
+ o.val[1] = vqrshrun_n_s16(odd, 4);
+ vst2_u8(out + i * 2, o);
+#endif
+
+ // "previous" value for next iter
+ t1 = 3 * in_near[i + 7] + in_far[i + 7];
+ }
+
+ t0 = t1;
+ t1 = 3 * in_near[i] + in_far[i];
+ out[i * 2] = stbi__div16(3 * t1 + t0 + 8);
+
+ for (++i; i < w; ++i) {
+ t0 = t1;
+ t1 = 3 * in_near[i] + in_far[i];
+ out[i * 2 - 1] = stbi__div16(3 * t0 + t1 + 8);
+ out[i * 2] = stbi__div16(3 * t1 + t0 + 8);
+ }
+ out[w * 2 - 1] = stbi__div4(t1 + 2);
+
+ STBI_NOTUSED(hs);
+
+ return out;
+}
+#endif
+
+static stbi_uc *stbi__resample_row_generic(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w,
+ int hs)
+{
+ // resample with nearest-neighbor
+ int i, j;
+ STBI_NOTUSED(in_far);
+ for (i = 0; i < w; ++i)
+ for (j = 0; j < hs; ++j)
+ out[i * hs + j] = in_near[i];
+ return out;
+}
+
+// this is a reduced-precision calculation of YCbCr-to-RGB introduced
+// to make sure the code produces the same results in both SIMD and scalar
+#define stbi__float2fixed(x) (((int)((x) * 4096.0f + 0.5f)) << 8)
+static void stbi__YCbCr_to_RGB_row(stbi_uc *out, const stbi_uc *y, const stbi_uc *pcb,
+ const stbi_uc *pcr, int count, int step)
+{
+ int i;
+ for (i = 0; i < count; ++i) {
+ int y_fixed = (y[i] << 20) + (1 << 19); // rounding
+ int r, g, b;
+ int cr = pcr[i] - 128;
+ int cb = pcb[i] - 128;
+ r = y_fixed + cr * stbi__float2fixed(1.40200f);
+ g = y_fixed + (cr * -stbi__float2fixed(0.71414f)) +
+ ((cb * -stbi__float2fixed(0.34414f)) & 0xffff0000);
+ b = y_fixed + cb * stbi__float2fixed(1.77200f);
+ r >>= 20;
+ g >>= 20;
+ b >>= 20;
+ if ((unsigned)r > 255) {
+ if (r < 0)
+ r = 0;
+ else
+ r = 255;
+ }
+ if ((unsigned)g > 255) {
+ if (g < 0)
+ g = 0;
+ else
+ g = 255;
+ }
+ if ((unsigned)b > 255) {
+ if (b < 0)
+ b = 0;
+ else
+ b = 255;
+ }
+ out[0] = (stbi_uc)r;
+ out[1] = (stbi_uc)g;
+ out[2] = (stbi_uc)b;
+ out[3] = 255;
+ out += step;
+ }
+}
+
+#if defined(STBI_SSE2) || defined(STBI_NEON)
+static void stbi__YCbCr_to_RGB_simd(stbi_uc *out, stbi_uc const *y, stbi_uc const *pcb,
+ stbi_uc const *pcr, int count, int step)
+{
+ int i = 0;
+
+#ifdef STBI_SSE2
+ // step == 3 is pretty ugly on the final interleave, and i'm not convinced
+ // it's useful in practice (you wouldn't use it for textures, for example).
+ // so just accelerate step == 4 case.
+ if (step == 4) {
+ // this is a fairly straightforward implementation and not super-optimized.
+ __m128i signflip = _mm_set1_epi8(-0x80);
+ __m128i cr_const0 = _mm_set1_epi16((short)(1.40200f * 4096.0f + 0.5f));
+ __m128i cr_const1 = _mm_set1_epi16(-(short)(0.71414f * 4096.0f + 0.5f));
+ __m128i cb_const0 = _mm_set1_epi16(-(short)(0.34414f * 4096.0f + 0.5f));
+ __m128i cb_const1 = _mm_set1_epi16((short)(1.77200f * 4096.0f + 0.5f));
+ __m128i y_bias = _mm_set1_epi8((char)(unsigned char)128);
+ __m128i xw = _mm_set1_epi16(255); // alpha channel
+
+ for (; i + 7 < count; i += 8) {
+ // load
+ __m128i y_bytes = _mm_loadl_epi64((__m128i *)(y + i));
+ __m128i cr_bytes = _mm_loadl_epi64((__m128i *)(pcr + i));
+ __m128i cb_bytes = _mm_loadl_epi64((__m128i *)(pcb + i));
+ __m128i cr_biased = _mm_xor_si128(cr_bytes, signflip); // -128
+ __m128i cb_biased = _mm_xor_si128(cb_bytes, signflip); // -128
+
+ // unpack to short (and left-shift cr, cb by 8)
+ __m128i yw = _mm_unpacklo_epi8(y_bias, y_bytes);
+ __m128i crw = _mm_unpacklo_epi8(_mm_setzero_si128(), cr_biased);
+ __m128i cbw = _mm_unpacklo_epi8(_mm_setzero_si128(), cb_biased);
+
+ // color transform
+ __m128i yws = _mm_srli_epi16(yw, 4);
+ __m128i cr0 = _mm_mulhi_epi16(cr_const0, crw);
+ __m128i cb0 = _mm_mulhi_epi16(cb_const0, cbw);
+ __m128i cb1 = _mm_mulhi_epi16(cbw, cb_const1);
+ __m128i cr1 = _mm_mulhi_epi16(crw, cr_const1);
+ __m128i rws = _mm_add_epi16(cr0, yws);
+ __m128i gwt = _mm_add_epi16(cb0, yws);
+ __m128i bws = _mm_add_epi16(yws, cb1);
+ __m128i gws = _mm_add_epi16(gwt, cr1);
+
+ // descale
+ __m128i rw = _mm_srai_epi16(rws, 4);
+ __m128i bw = _mm_srai_epi16(bws, 4);
+ __m128i gw = _mm_srai_epi16(gws, 4);
+
+ // back to byte, set up for transpose
+ __m128i brb = _mm_packus_epi16(rw, bw);
+ __m128i gxb = _mm_packus_epi16(gw, xw);
+
+ // transpose to interleave channels
+ __m128i t0 = _mm_unpacklo_epi8(brb, gxb);
+ __m128i t1 = _mm_unpackhi_epi8(brb, gxb);
+ __m128i o0 = _mm_unpacklo_epi16(t0, t1);
+ __m128i o1 = _mm_unpackhi_epi16(t0, t1);
+
+ // store
+ _mm_storeu_si128((__m128i *)(out + 0), o0);
+ _mm_storeu_si128((__m128i *)(out + 16), o1);
+ out += 32;
+ }
+ }
+#endif
+
+#ifdef STBI_NEON
+ // in this version, step=3 support would be easy to add. but is there demand?
+ if (step == 4) {
+ // this is a fairly straightforward implementation and not super-optimized.
+ uint8x8_t signflip = vdup_n_u8(0x80);
+ int16x8_t cr_const0 = vdupq_n_s16((short)(1.40200f * 4096.0f + 0.5f));
+ int16x8_t cr_const1 = vdupq_n_s16(-(short)(0.71414f * 4096.0f + 0.5f));
+ int16x8_t cb_const0 = vdupq_n_s16(-(short)(0.34414f * 4096.0f + 0.5f));
+ int16x8_t cb_const1 = vdupq_n_s16((short)(1.77200f * 4096.0f + 0.5f));
+
+ for (; i + 7 < count; i += 8) {
+ // load
+ uint8x8_t y_bytes = vld1_u8(y + i);
+ uint8x8_t cr_bytes = vld1_u8(pcr + i);
+ uint8x8_t cb_bytes = vld1_u8(pcb + i);
+ int8x8_t cr_biased = vreinterpret_s8_u8(vsub_u8(cr_bytes, signflip));
+ int8x8_t cb_biased = vreinterpret_s8_u8(vsub_u8(cb_bytes, signflip));
+
+ // expand to s16
+ int16x8_t yws = vreinterpretq_s16_u16(vshll_n_u8(y_bytes, 4));
+ int16x8_t crw = vshll_n_s8(cr_biased, 7);
+ int16x8_t cbw = vshll_n_s8(cb_biased, 7);
+
+ // color transform
+ int16x8_t cr0 = vqdmulhq_s16(crw, cr_const0);
+ int16x8_t cb0 = vqdmulhq_s16(cbw, cb_const0);
+ int16x8_t cr1 = vqdmulhq_s16(crw, cr_const1);
+ int16x8_t cb1 = vqdmulhq_s16(cbw, cb_const1);
+ int16x8_t rws = vaddq_s16(yws, cr0);
+ int16x8_t gws = vaddq_s16(vaddq_s16(yws, cb0), cr1);
+ int16x8_t bws = vaddq_s16(yws, cb1);
+
+ // undo scaling, round, convert to byte
+ uint8x8x4_t o;
+ o.val[0] = vqrshrun_n_s16(rws, 4);
+ o.val[1] = vqrshrun_n_s16(gws, 4);
+ o.val[2] = vqrshrun_n_s16(bws, 4);
+ o.val[3] = vdup_n_u8(255);
+
+ // store, interleaving r/g/b/a
+ vst4_u8(out, o);
+ out += 8 * 4;
+ }
+ }
+#endif
+
+ for (; i < count; ++i) {
+ int y_fixed = (y[i] << 20) + (1 << 19); // rounding
+ int r, g, b;
+ int cr = pcr[i] - 128;
+ int cb = pcb[i] - 128;
+ r = y_fixed + cr * stbi__float2fixed(1.40200f);
+ g = y_fixed + cr * -stbi__float2fixed(0.71414f) +
+ ((cb * -stbi__float2fixed(0.34414f)) & 0xffff0000);
+ b = y_fixed + cb * stbi__float2fixed(1.77200f);
+ r >>= 20;
+ g >>= 20;
+ b >>= 20;
+ if ((unsigned)r > 255) {
+ if (r < 0)
+ r = 0;
+ else
+ r = 255;
+ }
+ if ((unsigned)g > 255) {
+ if (g < 0)
+ g = 0;
+ else
+ g = 255;
+ }
+ if ((unsigned)b > 255) {
+ if (b < 0)
+ b = 0;
+ else
+ b = 255;
+ }
+ out[0] = (stbi_uc)r;
+ out[1] = (stbi_uc)g;
+ out[2] = (stbi_uc)b;
+ out[3] = 255;
+ out += step;
+ }
+}
+#endif
+
+// set up the kernels
+static void stbi__setup_jpeg(stbi__jpeg *j)
+{
+ j->idct_block_kernel = stbi__idct_block;
+ j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_row;
+ j->resample_row_hv_2_kernel = stbi__resample_row_hv_2;
+
+#ifdef STBI_SSE2
+ if (stbi__sse2_available()) {
+ j->idct_block_kernel = stbi__idct_simd;
+ j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd;
+ j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd;
+ }
+#endif
+
+#ifdef STBI_NEON
+ j->idct_block_kernel = stbi__idct_simd;
+ j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd;
+ j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd;
+#endif
+}
+
+// clean up the temporary component buffers
+static void stbi__cleanup_jpeg(stbi__jpeg *j)
+{
+ stbi__free_jpeg_components(j, j->s->img_n, 0);
+}
+
+typedef struct {
+ resample_row_func resample;
+ stbi_uc *line0, *line1;
+ int hs, vs; // expansion factor in each axis
+ int w_lores; // horizontal pixels pre-expansion
+ int ystep; // how far through vertical expansion we are
+ int ypos; // which pre-expansion row we're on
+} stbi__resample;
+
+// fast 0..255 * 0..255 => 0..255 rounded multiplication
+static stbi_uc stbi__blinn_8x8(stbi_uc x, stbi_uc y)
+{
+ unsigned int t = x * y + 128;
+ return (stbi_uc)((t + (t >> 8)) >> 8);
+}
+
+static stbi_uc *load_jpeg_image(stbi__jpeg *z, int *out_x, int *out_y, int *comp, int req_comp)
+{
+ int n, decode_n, is_rgb;
+ z->s->img_n = 0; // make stbi__cleanup_jpeg safe
+
+ // validate req_comp
+ if (req_comp < 0 || req_comp > 4)
+ return stbi__errpuc("bad req_comp", "Internal error");
+
+ // load a jpeg image from whichever source, but leave in YCbCr format
+ if (!stbi__decode_jpeg_image(z)) {
+ stbi__cleanup_jpeg(z);
+ return NULL;
+ }
+
+ // determine actual number of components to generate
+ n = req_comp ? req_comp : z->s->img_n >= 3 ? 3 : 1;
+
+ is_rgb = z->s->img_n == 3 && (z->rgb == 3 || (z->app14_color_transform == 0 && !z->jfif));
+
+ if (z->s->img_n == 3 && n < 3 && !is_rgb)
+ decode_n = 1;
+ else
+ decode_n = z->s->img_n;
+
+ // nothing to do if no components requested; check this now to avoid
+ // accessing uninitialized coutput[0] later
+ if (decode_n <= 0) {
+ stbi__cleanup_jpeg(z);
+ return NULL;
+ }
+
+ // resample and color-convert
+ {
+ int k;
+ unsigned int i, j;
+ stbi_uc *output;
+ stbi_uc *coutput[4] = { NULL, NULL, NULL, NULL };
+
+ stbi__resample res_comp[4];
+
+ for (k = 0; k < decode_n; ++k) {
+ stbi__resample *r = &res_comp[k];
+
+ // allocate line buffer big enough for upsampling off the edges
+ // with upsample factor of 4
+ z->img_comp[k].linebuf = (stbi_uc *)stbi__malloc(z->s->img_x + 3);
+ if (!z->img_comp[k].linebuf) {
+ stbi__cleanup_jpeg(z);
+ return stbi__errpuc("outofmem", "Out of memory");
+ }
+
+ r->hs = z->img_h_max / z->img_comp[k].h;
+ r->vs = z->img_v_max / z->img_comp[k].v;
+ r->ystep = r->vs >> 1;
+ r->w_lores = (z->s->img_x + r->hs - 1) / r->hs;
+ r->ypos = 0;
+ r->line0 = r->line1 = z->img_comp[k].data;
+
+ if (r->hs == 1 && r->vs == 1)
+ r->resample = resample_row_1;
+ else if (r->hs == 1 && r->vs == 2)
+ r->resample = stbi__resample_row_v_2;
+ else if (r->hs == 2 && r->vs == 1)
+ r->resample = stbi__resample_row_h_2;
+ else if (r->hs == 2 && r->vs == 2)
+ r->resample = z->resample_row_hv_2_kernel;
+ else
+ r->resample = stbi__resample_row_generic;
+ }
+
+ // can't error after this so, this is safe
+ output = (stbi_uc *)stbi__malloc_mad3(n, z->s->img_x, z->s->img_y, 1);
+ if (!output) {
+ stbi__cleanup_jpeg(z);
+ return stbi__errpuc("outofmem", "Out of memory");
+ }
+
+ // now go ahead and resample
+ for (j = 0; j < z->s->img_y; ++j) {
+ stbi_uc *out = output + n * z->s->img_x * j;
+ for (k = 0; k < decode_n; ++k) {
+ stbi__resample *r = &res_comp[k];
+ int y_bot = r->ystep >= (r->vs >> 1);
+ coutput[k] = r->resample(z->img_comp[k].linebuf,
+ y_bot ? r->line1 : r->line0,
+ y_bot ? r->line0 : r->line1, r->w_lores,
+ r->hs);
+ if (++r->ystep >= r->vs) {
+ r->ystep = 0;
+ r->line0 = r->line1;
+ if (++r->ypos < z->img_comp[k].y)
+ r->line1 += z->img_comp[k].w2;
+ }
+ }
+ if (n >= 3) {
+ stbi_uc *y = coutput[0];
+ if (z->s->img_n == 3) {
+ if (is_rgb) {
+ for (i = 0; i < z->s->img_x; ++i) {
+ out[0] = y[i];
+ out[1] = coutput[1][i];
+ out[2] = coutput[2][i];
+ out[3] = 255;
+ out += n;
+ }
+ } else {
+ z->YCbCr_to_RGB_kernel(out, y, coutput[1],
+ coutput[2], z->s->img_x, n);
+ }
+ } else if (z->s->img_n == 4) {
+ if (z->app14_color_transform == 0) { // CMYK
+ for (i = 0; i < z->s->img_x; ++i) {
+ stbi_uc m = coutput[3][i];
+ out[0] = stbi__blinn_8x8(coutput[0][i], m);
+ out[1] = stbi__blinn_8x8(coutput[1][i], m);
+ out[2] = stbi__blinn_8x8(coutput[2][i], m);
+ out[3] = 255;
+ out += n;
+ }
+ } else if (z->app14_color_transform == 2) { // YCCK
+ z->YCbCr_to_RGB_kernel(out, y, coutput[1],
+ coutput[2], z->s->img_x, n);
+ for (i = 0; i < z->s->img_x; ++i) {
+ stbi_uc m = coutput[3][i];
+ out[0] = stbi__blinn_8x8(255 - out[0], m);
+ out[1] = stbi__blinn_8x8(255 - out[1], m);
+ out[2] = stbi__blinn_8x8(255 - out[2], m);
+ out += n;
+ }
+ } else { // YCbCr + alpha? Ignore the fourth channel for now
+ z->YCbCr_to_RGB_kernel(out, y, coutput[1],
+ coutput[2], z->s->img_x, n);
+ }
+ } else
+ for (i = 0; i < z->s->img_x; ++i) {
+ out[0] = out[1] = out[2] = y[i];
+ out[3] = 255; // not used if n==3
+ out += n;
+ }
+ } else {
+ if (is_rgb) {
+ if (n == 1)
+ for (i = 0; i < z->s->img_x; ++i)
+ *out++ = stbi__compute_y(coutput[0][i],
+ coutput[1][i],
+ coutput[2][i]);
+ else {
+ for (i = 0; i < z->s->img_x; ++i, out += 2) {
+ out[0] = stbi__compute_y(coutput[0][i],
+ coutput[1][i],
+ coutput[2][i]);
+ out[1] = 255;
+ }
+ }
+ } else if (z->s->img_n == 4 && z->app14_color_transform == 0) {
+ for (i = 0; i < z->s->img_x; ++i) {
+ stbi_uc m = coutput[3][i];
+ stbi_uc r = stbi__blinn_8x8(coutput[0][i], m);
+ stbi_uc g = stbi__blinn_8x8(coutput[1][i], m);
+ stbi_uc b = stbi__blinn_8x8(coutput[2][i], m);
+ out[0] = stbi__compute_y(r, g, b);
+ out[1] = 255;
+ out += n;
+ }
+ } else if (z->s->img_n == 4 && z->app14_color_transform == 2) {
+ for (i = 0; i < z->s->img_x; ++i) {
+ out[0] = stbi__blinn_8x8(255 - coutput[0][i],
+ coutput[3][i]);
+ out[1] = 255;
+ out += n;
+ }
+ } else {
+ stbi_uc *y = coutput[0];
+ if (n == 1)
+ for (i = 0; i < z->s->img_x; ++i)
+ out[i] = y[i];
+ else
+ for (i = 0; i < z->s->img_x; ++i) {
+ *out++ = y[i];
+ *out++ = 255;
+ }
+ }
+ }
+ }
+ stbi__cleanup_jpeg(z);
+ *out_x = z->s->img_x;
+ *out_y = z->s->img_y;
+ if (comp)
+ *comp = z->s->img_n >= 3 ? 3 : 1; // report original components, not output
+ return output;
+ }
+}
+
+static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri)
+{
+ unsigned char *result;
+ stbi__jpeg *j = (stbi__jpeg *)stbi__malloc(sizeof(stbi__jpeg));
+ if (!j)
+ return stbi__errpuc("outofmem", "Out of memory");
+ memset(j, 0, sizeof(stbi__jpeg));
+ STBI_NOTUSED(ri);
+ j->s = s;
+ stbi__setup_jpeg(j);
+ result = load_jpeg_image(j, x, y, comp, req_comp);
+ STBI_FREE(j);
+ return result;
+}
+
+static int stbi__jpeg_test(stbi__context *s)
+{
+ int r;
+ stbi__jpeg *j = (stbi__jpeg *)stbi__malloc(sizeof(stbi__jpeg));
+ if (!j)
+ return stbi__err("outofmem", "Out of memory");
+ memset(j, 0, sizeof(stbi__jpeg));
+ j->s = s;
+ stbi__setup_jpeg(j);
+ r = stbi__decode_jpeg_header(j, STBI__SCAN_type);
+ stbi__rewind(s);
+ STBI_FREE(j);
+ return r;
+}
+
+static int stbi__jpeg_info_raw(stbi__jpeg *j, int *x, int *y, int *comp)
+{
+ if (!stbi__decode_jpeg_header(j, STBI__SCAN_header)) {
+ stbi__rewind(j->s);
+ return 0;
+ }
+ if (x)
+ *x = j->s->img_x;
+ if (y)
+ *y = j->s->img_y;
+ if (comp)
+ *comp = j->s->img_n >= 3 ? 3 : 1;
+ return 1;
+}
+
+static int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp)
+{
+ int result;
+ stbi__jpeg *j = (stbi__jpeg *)(stbi__malloc(sizeof(stbi__jpeg)));
+ if (!j)
+ return stbi__err("outofmem", "Out of memory");
+ memset(j, 0, sizeof(stbi__jpeg));
+ j->s = s;
+ result = stbi__jpeg_info_raw(j, x, y, comp);
+ STBI_FREE(j);
+ return result;
+}
+#endif
+
+// public domain zlib decode v0.2 Sean Barrett 2006-11-18
+// simple implementation
+// - all input must be provided in an upfront buffer
+// - all output is written to a single output buffer (can malloc/realloc)
+// performance
+// - fast huffman
+
+#ifndef STBI_NO_ZLIB
+
+// fast-way is faster to check than jpeg huffman, but slow way is slower
+#define STBI__ZFAST_BITS 9 // accelerate all cases in default tables
+#define STBI__ZFAST_MASK ((1 << STBI__ZFAST_BITS) - 1)
+#define STBI__ZNSYMS 288 // number of symbols in literal/length alphabet
+
+// zlib-style huffman encoding
+// (jpegs packs from left, zlib from right, so can't share code)
+typedef struct {
+ stbi__uint16 fast[1 << STBI__ZFAST_BITS];
+ stbi__uint16 firstcode[16];
+ int maxcode[17];
+ stbi__uint16 firstsymbol[16];
+ stbi_uc size[STBI__ZNSYMS];
+ stbi__uint16 value[STBI__ZNSYMS];
+} stbi__zhuffman;
+
+stbi_inline static int stbi__bitreverse16(int n)
+{
+ n = ((n & 0xAAAA) >> 1) | ((n & 0x5555) << 1);
+ n = ((n & 0xCCCC) >> 2) | ((n & 0x3333) << 2);
+ n = ((n & 0xF0F0) >> 4) | ((n & 0x0F0F) << 4);
+ n = ((n & 0xFF00) >> 8) | ((n & 0x00FF) << 8);
+ return n;
+}
+
+stbi_inline static int stbi__bit_reverse(int v, int bits)
+{
+ STBI_ASSERT(bits <= 16);
+ // to bit reverse n bits, reverse 16 and shift
+ // e.g. 11 bits, bit reverse and shift away 5
+ return stbi__bitreverse16(v) >> (16 - bits);
+}
+
+static int stbi__zbuild_huffman(stbi__zhuffman *z, const stbi_uc *sizelist, int num)
+{
+ int i, k = 0;
+ int code, next_code[16], sizes[17];
+
+ // DEFLATE spec for generating codes
+ memset(sizes, 0, sizeof(sizes));
+ memset(z->fast, 0, sizeof(z->fast));
+ for (i = 0; i < num; ++i)
+ ++sizes[sizelist[i]];
+ sizes[0] = 0;
+ for (i = 1; i < 16; ++i)
+ if (sizes[i] > (1 << i))
+ return stbi__err("bad sizes", "Corrupt PNG");
+ code = 0;
+ for (i = 1; i < 16; ++i) {
+ next_code[i] = code;
+ z->firstcode[i] = (stbi__uint16)code;
+ z->firstsymbol[i] = (stbi__uint16)k;
+ code = (code + sizes[i]);
+ if (sizes[i])
+ if (code - 1 >= (1 << i))
+ return stbi__err("bad codelengths", "Corrupt PNG");
+ z->maxcode[i] = code << (16 - i); // preshift for inner loop
+ code <<= 1;
+ k += sizes[i];
+ }
+ z->maxcode[16] = 0x10000; // sentinel
+ for (i = 0; i < num; ++i) {
+ int s = sizelist[i];
+ if (s) {
+ int c = next_code[s] - z->firstcode[s] + z->firstsymbol[s];
+ stbi__uint16 fastv = (stbi__uint16)((s << 9) | i);
+ z->size[c] = (stbi_uc)s;
+ z->value[c] = (stbi__uint16)i;
+ if (s <= STBI__ZFAST_BITS) {
+ int j = stbi__bit_reverse(next_code[s], s);
+ while (j < (1 << STBI__ZFAST_BITS)) {
+ z->fast[j] = fastv;
+ j += (1 << s);
+ }
+ }
+ ++next_code[s];
+ }
+ }
+ return 1;
+}
+
+// zlib-from-memory implementation for PNG reading
+// because PNG allows splitting the zlib stream arbitrarily,
+// and it's annoying structurally to have PNG call ZLIB call PNG,
+// we require PNG read all the IDATs and combine them into a single
+// memory buffer
+
+typedef struct {
+ stbi_uc *zbuffer, *zbuffer_end;
+ int num_bits;
+ stbi__uint32 code_buffer;
+
+ char *zout;
+ char *zout_start;
+ char *zout_end;
+ int z_expandable;
+
+ stbi__zhuffman z_length, z_distance;
+} stbi__zbuf;
+
+stbi_inline static int stbi__zeof(stbi__zbuf *z)
+{
+ return (z->zbuffer >= z->zbuffer_end);
+}
+
+stbi_inline static stbi_uc stbi__zget8(stbi__zbuf *z)
+{
+ return stbi__zeof(z) ? 0 : *z->zbuffer++;
+}
+
+static void stbi__fill_bits(stbi__zbuf *z)
+{
+ do {
+ if (z->code_buffer >= (1U << z->num_bits)) {
+ z->zbuffer = z->zbuffer_end; /* treat this as EOF so we fail. */
+ return;
+ }
+ z->code_buffer |= (unsigned int)stbi__zget8(z) << z->num_bits;
+ z->num_bits += 8;
+ } while (z->num_bits <= 24);
+}
+
+stbi_inline static unsigned int stbi__zreceive(stbi__zbuf *z, int n)
+{
+ unsigned int k;
+ if (z->num_bits < n)
+ stbi__fill_bits(z);
+ k = z->code_buffer & ((1 << n) - 1);
+ z->code_buffer >>= n;
+ z->num_bits -= n;
+ return k;
+}
+
+static int stbi__zhuffman_decode_slowpath(stbi__zbuf *a, stbi__zhuffman *z)
+{
+ int b, s, k;
+ // not resolved by fast table, so compute it the slow way
+ // use jpeg approach, which requires MSbits at top
+ k = stbi__bit_reverse(a->code_buffer, 16);
+ for (s = STBI__ZFAST_BITS + 1;; ++s)
+ if (k < z->maxcode[s])
+ break;
+ if (s >= 16)
+ return -1; // invalid code!
+ // code size is s, so:
+ b = (k >> (16 - s)) - z->firstcode[s] + z->firstsymbol[s];
+ if (b >= STBI__ZNSYMS)
+ return -1; // some data was corrupt somewhere!
+ if (z->size[b] != s)
+ return -1; // was originally an assert, but report failure instead.
+ a->code_buffer >>= s;
+ a->num_bits -= s;
+ return z->value[b];
+}
+
+stbi_inline static int stbi__zhuffman_decode(stbi__zbuf *a, stbi__zhuffman *z)
+{
+ int b, s;
+ if (a->num_bits < 16) {
+ if (stbi__zeof(a)) {
+ return -1; /* report error for unexpected end of data. */
+ }
+ stbi__fill_bits(a);
+ }
+ b = z->fast[a->code_buffer & STBI__ZFAST_MASK];
+ if (b) {
+ s = b >> 9;
+ a->code_buffer >>= s;
+ a->num_bits -= s;
+ return b & 511;
+ }
+ return stbi__zhuffman_decode_slowpath(a, z);
+}
+
+static int stbi__zexpand(stbi__zbuf *z, char *zout,
+ int n) // need to make room for n bytes
+{
+ char *q;
+ unsigned int cur, limit, old_limit;
+ z->zout = zout;
+ if (!z->z_expandable)
+ return stbi__err("output buffer limit", "Corrupt PNG");
+ cur = (unsigned int)(z->zout - z->zout_start);
+ limit = old_limit = (unsigned)(z->zout_end - z->zout_start);
+ if (UINT_MAX - cur < (unsigned)n)
+ return stbi__err("outofmem", "Out of memory");
+ while (cur + n > limit) {
+ if (limit > UINT_MAX / 2)
+ return stbi__err("outofmem", "Out of memory");
+ limit *= 2;
+ }
+ q = (char *)STBI_REALLOC_SIZED(z->zout_start, old_limit, limit);
+ STBI_NOTUSED(old_limit);
+ if (q == NULL)
+ return stbi__err("outofmem", "Out of memory");
+ z->zout_start = q;
+ z->zout = q + cur;
+ z->zout_end = q + limit;
+ return 1;
+}
+
+static const int stbi__zlength_base[31] = { 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15,
+ 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83,
+ 99, 115, 131, 163, 195, 227, 258, 0, 0 };
+
+static const int stbi__zlength_extra[31] = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2,
+ 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0 };
+
+static const int stbi__zdist_base[32] = { 1, 2, 3, 4, 5, 7, 9, 13,
+ 17, 25, 33, 49, 65, 97, 129, 193,
+ 257, 385, 513, 769, 1025, 1537, 2049, 3073,
+ 4097, 6145, 8193, 12289, 16385, 24577, 0, 0 };
+
+static const int stbi__zdist_extra[32] = { 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6,
+ 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13 };
+
+static int stbi__parse_huffman_block(stbi__zbuf *a)
+{
+ char *zout = a->zout;
+ for (;;) {
+ int z = stbi__zhuffman_decode(a, &a->z_length);
+ if (z < 256) {
+ if (z < 0)
+ return stbi__err("bad huffman code",
+ "Corrupt PNG"); // error in huffman codes
+ if (zout >= a->zout_end) {
+ if (!stbi__zexpand(a, zout, 1))
+ return 0;
+ zout = a->zout;
+ }
+ *zout++ = (char)z;
+ } else {
+ stbi_uc *p;
+ int len, dist;
+ if (z == 256) {
+ a->zout = zout;
+ return 1;
+ }
+ if (z >= 286)
+ return stbi__err(
+ "bad huffman code",
+ "Corrupt PNG"); // per DEFLATE, length codes 286 and 287 must not appear in compressed data
+ z -= 257;
+ len = stbi__zlength_base[z];
+ if (stbi__zlength_extra[z])
+ len += stbi__zreceive(a, stbi__zlength_extra[z]);
+ z = stbi__zhuffman_decode(a, &a->z_distance);
+ if (z < 0 || z >= 30)
+ return stbi__err(
+ "bad huffman code",
+ "Corrupt PNG"); // per DEFLATE, distance codes 30 and 31 must not appear in compressed data
+ dist = stbi__zdist_base[z];
+ if (stbi__zdist_extra[z])
+ dist += stbi__zreceive(a, stbi__zdist_extra[z]);
+ if (zout - a->zout_start < dist)
+ return stbi__err("bad dist", "Corrupt PNG");
+ if (zout + len > a->zout_end) {
+ if (!stbi__zexpand(a, zout, len))
+ return 0;
+ zout = a->zout;
+ }
+ p = (stbi_uc *)(zout - dist);
+ if (dist == 1) { // run of one byte; common in images.
+ stbi_uc v = *p;
+ if (len) {
+ do
+ *zout++ = v;
+ while (--len);
+ }
+ } else {
+ if (len) {
+ do
+ *zout++ = *p++;
+ while (--len);
+ }
+ }
+ }
+ }
+}
+
+static int stbi__compute_huffman_codes(stbi__zbuf *a)
+{
+ static const stbi_uc length_dezigzag[19] = { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5,
+ 11, 4, 12, 3, 13, 2, 14, 1, 15 };
+ stbi__zhuffman z_codelength;
+ stbi_uc lencodes[286 + 32 + 137]; //padding for maximum single op
+ stbi_uc codelength_sizes[19];
+ int i, n;
+
+ int hlit = stbi__zreceive(a, 5) + 257;
+ int hdist = stbi__zreceive(a, 5) + 1;
+ int hclen = stbi__zreceive(a, 4) + 4;
+ int ntot = hlit + hdist;
+
+ memset(codelength_sizes, 0, sizeof(codelength_sizes));
+ for (i = 0; i < hclen; ++i) {
+ int s = stbi__zreceive(a, 3);
+ codelength_sizes[length_dezigzag[i]] = (stbi_uc)s;
+ }
+ if (!stbi__zbuild_huffman(&z_codelength, codelength_sizes, 19))
+ return 0;
+
+ n = 0;
+ while (n < ntot) {
+ int c = stbi__zhuffman_decode(a, &z_codelength);
+ if (c < 0 || c >= 19)
+ return stbi__err("bad codelengths", "Corrupt PNG");
+ if (c < 16)
+ lencodes[n++] = (stbi_uc)c;
+ else {
+ stbi_uc fill = 0;
+ if (c == 16) {
+ c = stbi__zreceive(a, 2) + 3;
+ if (n == 0)
+ return stbi__err("bad codelengths", "Corrupt PNG");
+ fill = lencodes[n - 1];
+ } else if (c == 17) {
+ c = stbi__zreceive(a, 3) + 3;
+ } else if (c == 18) {
+ c = stbi__zreceive(a, 7) + 11;
+ } else {
+ return stbi__err("bad codelengths", "Corrupt PNG");
+ }
+ if (ntot - n < c)
+ return stbi__err("bad codelengths", "Corrupt PNG");
+ memset(lencodes + n, fill, c);
+ n += c;
+ }
+ }
+ if (n != ntot)
+ return stbi__err("bad codelengths", "Corrupt PNG");
+ if (!stbi__zbuild_huffman(&a->z_length, lencodes, hlit))
+ return 0;
+ if (!stbi__zbuild_huffman(&a->z_distance, lencodes + hlit, hdist))
+ return 0;
+ return 1;
+}
+
+static int stbi__parse_uncompressed_block(stbi__zbuf *a)
+{
+ stbi_uc header[4];
+ int len, nlen, k;
+ if (a->num_bits & 7)
+ stbi__zreceive(a, a->num_bits & 7); // discard
+ // drain the bit-packed data into header
+ k = 0;
+ while (a->num_bits > 0) {
+ header[k++] = (stbi_uc)(a->code_buffer & 255); // suppress MSVC run-time check
+ a->code_buffer >>= 8;
+ a->num_bits -= 8;
+ }
+ if (a->num_bits < 0)
+ return stbi__err("zlib corrupt", "Corrupt PNG");
+ // now fill header the normal way
+ while (k < 4)
+ header[k++] = stbi__zget8(a);
+ len = header[1] * 256 + header[0];
+ nlen = header[3] * 256 + header[2];
+ if (nlen != (len ^ 0xffff))
+ return stbi__err("zlib corrupt", "Corrupt PNG");
+ if (a->zbuffer + len > a->zbuffer_end)
+ return stbi__err("read past buffer", "Corrupt PNG");
+ if (a->zout + len > a->zout_end)
+ if (!stbi__zexpand(a, a->zout, len))
+ return 0;
+ memcpy(a->zout, a->zbuffer, len);
+ a->zbuffer += len;
+ a->zout += len;
+ return 1;
+}
+
+static int stbi__parse_zlib_header(stbi__zbuf *a)
+{
+ int cmf = stbi__zget8(a);
+ int cm = cmf & 15;
+ /* int cinfo = cmf >> 4; */
+ int flg = stbi__zget8(a);
+ if (stbi__zeof(a))
+ return stbi__err("bad zlib header", "Corrupt PNG"); // zlib spec
+ if ((cmf * 256 + flg) % 31 != 0)
+ return stbi__err("bad zlib header", "Corrupt PNG"); // zlib spec
+ if (flg & 32)
+ return stbi__err("no preset dict",
+ "Corrupt PNG"); // preset dictionary not allowed in png
+ if (cm != 8)
+ return stbi__err("bad compression",
+ "Corrupt PNG"); // DEFLATE required for png
+ // window = 1 << (8 + cinfo)... but who cares, we fully buffer output
+ return 1;
+}
+
+static const stbi_uc stbi__zdefault_length[STBI__ZNSYMS] = {
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8
+};
+static const stbi_uc stbi__zdefault_distance[32] = {
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
+};
+/*
+Init algorithm:
+{
+ int i; // use <= to match clearly with spec
+ for (i=0; i <= 143; ++i) stbi__zdefault_length[i] = 8;
+ for ( ; i <= 255; ++i) stbi__zdefault_length[i] = 9;
+ for ( ; i <= 279; ++i) stbi__zdefault_length[i] = 7;
+ for ( ; i <= 287; ++i) stbi__zdefault_length[i] = 8;
+
+ for (i=0; i <= 31; ++i) stbi__zdefault_distance[i] = 5;
+}
+*/
+
+static int stbi__parse_zlib(stbi__zbuf *a, int parse_header)
+{
+ int final, type;
+ if (parse_header)
+ if (!stbi__parse_zlib_header(a))
+ return 0;
+ a->num_bits = 0;
+ a->code_buffer = 0;
+ do {
+ final = stbi__zreceive(a, 1);
+ type = stbi__zreceive(a, 2);
+ if (type == 0) {
+ if (!stbi__parse_uncompressed_block(a))
+ return 0;
+ } else if (type == 3) {
+ return 0;
+ } else {
+ if (type == 1) {
+ // use fixed code lengths
+ if (!stbi__zbuild_huffman(&a->z_length, stbi__zdefault_length,
+ STBI__ZNSYMS))
+ return 0;
+ if (!stbi__zbuild_huffman(&a->z_distance, stbi__zdefault_distance,
+ 32))
+ return 0;
+ } else {
+ if (!stbi__compute_huffman_codes(a))
+ return 0;
+ }
+ if (!stbi__parse_huffman_block(a))
+ return 0;
+ }
+ } while (!final);
+ return 1;
+}
+
+static int stbi__do_zlib(stbi__zbuf *a, char *obuf, int olen, int exp, int parse_header)
+{
+ a->zout_start = obuf;
+ a->zout = obuf;
+ a->zout_end = obuf + olen;
+ a->z_expandable = exp;
+
+ return stbi__parse_zlib(a, parse_header);
+}
+
+STBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size,
+ int *outlen)
+{
+ stbi__zbuf a;
+ char *p = (char *)stbi__malloc(initial_size);
+ if (p == NULL)
+ return NULL;
+ a.zbuffer = (stbi_uc *)buffer;
+ a.zbuffer_end = (stbi_uc *)buffer + len;
+ if (stbi__do_zlib(&a, p, initial_size, 1, 1)) {
+ if (outlen)
+ *outlen = (int)(a.zout - a.zout_start);
+ return a.zout_start;
+ } else {
+ STBI_FREE(a.zout_start);
+ return NULL;
+ }
+}
+
+STBIDEF char *stbi_zlib_decode_malloc(char const *buffer, int len, int *outlen)
+{
+ return stbi_zlib_decode_malloc_guesssize(buffer, len, 16384, outlen);
+}
+
+STBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *buffer, int len,
+ int initial_size, int *outlen,
+ int parse_header)
+{
+ stbi__zbuf a;
+ char *p = (char *)stbi__malloc(initial_size);
+ if (p == NULL)
+ return NULL;
+ a.zbuffer = (stbi_uc *)buffer;
+ a.zbuffer_end = (stbi_uc *)buffer + len;
+ if (stbi__do_zlib(&a, p, initial_size, 1, parse_header)) {
+ if (outlen)
+ *outlen = (int)(a.zout - a.zout_start);
+ return a.zout_start;
+ } else {
+ STBI_FREE(a.zout_start);
+ return NULL;
+ }
+}
+
+STBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, char const *ibuffer, int ilen)
+{
+ stbi__zbuf a;
+ a.zbuffer = (stbi_uc *)ibuffer;
+ a.zbuffer_end = (stbi_uc *)ibuffer + ilen;
+ if (stbi__do_zlib(&a, obuffer, olen, 0, 1))
+ return (int)(a.zout - a.zout_start);
+ else
+ return -1;
+}
+
+STBIDEF char *stbi_zlib_decode_noheader_malloc(char const *buffer, int len, int *outlen)
+{
+ stbi__zbuf a;
+ char *p = (char *)stbi__malloc(16384);
+ if (p == NULL)
+ return NULL;
+ a.zbuffer = (stbi_uc *)buffer;
+ a.zbuffer_end = (stbi_uc *)buffer + len;
+ if (stbi__do_zlib(&a, p, 16384, 1, 0)) {
+ if (outlen)
+ *outlen = (int)(a.zout - a.zout_start);
+ return a.zout_start;
+ } else {
+ STBI_FREE(a.zout_start);
+ return NULL;
+ }
+}
+
+STBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const char *ibuffer, int ilen)
+{
+ stbi__zbuf a;
+ a.zbuffer = (stbi_uc *)ibuffer;
+ a.zbuffer_end = (stbi_uc *)ibuffer + ilen;
+ if (stbi__do_zlib(&a, obuffer, olen, 0, 0))
+ return (int)(a.zout - a.zout_start);
+ else
+ return -1;
+}
+#endif
+
+// public domain "baseline" PNG decoder v0.10 Sean Barrett 2006-11-18
+// simple implementation
+// - only 8-bit samples
+// - no CRC checking
+// - allocates lots of intermediate memory
+// - avoids problem of streaming data between subsystems
+// - avoids explicit window management
+// performance
+// - uses stb_zlib, a PD zlib implementation with fast huffman decoding
+
+#ifndef STBI_NO_PNG
+typedef struct {
+ stbi__uint32 length;
+ stbi__uint32 type;
+} stbi__pngchunk;
+
+static stbi__pngchunk stbi__get_chunk_header(stbi__context *s)
+{
+ stbi__pngchunk c;
+ c.length = stbi__get32be(s);
+ c.type = stbi__get32be(s);
+ return c;
+}
+
+static int stbi__check_png_header(stbi__context *s)
+{
+ static const stbi_uc png_sig[8] = { 137, 80, 78, 71, 13, 10, 26, 10 };
+ int i;
+ for (i = 0; i < 8; ++i)
+ if (stbi__get8(s) != png_sig[i])
+ return stbi__err("bad png sig", "Not a PNG");
+ return 1;
+}
+
+typedef struct {
+ stbi__context *s;
+ stbi_uc *idata, *expanded, *out;
+ int depth;
+} stbi__png;
+
+enum {
+ STBI__F_none = 0,
+ STBI__F_sub = 1,
+ STBI__F_up = 2,
+ STBI__F_avg = 3,
+ STBI__F_paeth = 4,
+ // synthetic filters used for first scanline to avoid needing a dummy row of 0s
+ STBI__F_avg_first,
+ STBI__F_paeth_first
+};
+
+static stbi_uc first_row_filter[5] = { STBI__F_none, STBI__F_sub, STBI__F_none, STBI__F_avg_first,
+ STBI__F_paeth_first };
+
+static int stbi__paeth(int a, int b, int c)
+{
+ int p = a + b - c;
+ int pa = abs(p - a);
+ int pb = abs(p - b);
+ int pc = abs(p - c);
+ if (pa <= pb && pa <= pc)
+ return a;
+ if (pb <= pc)
+ return b;
+ return c;
+}
+
+static const stbi_uc stbi__depth_scale_table[9] = { 0, 0xff, 0x55, 0, 0x11, 0, 0, 0, 0x01 };
+
+// create the png data from post-deflated data
+static int stbi__create_png_image_raw(stbi__png *a, stbi_uc *raw, stbi__uint32 raw_len, int out_n,
+ stbi__uint32 x, stbi__uint32 y, int depth, int color)
+{
+ int bytes = (depth == 16 ? 2 : 1);
+ stbi__context *s = a->s;
+ stbi__uint32 i, j, stride = x * out_n * bytes;
+ stbi__uint32 img_len, img_width_bytes;
+ int k;
+ int img_n = s->img_n; // copy it into a local for later
+
+ int output_bytes = out_n * bytes;
+ int filter_bytes = img_n * bytes;
+ int width = x;
+
+ STBI_ASSERT(out_n == s->img_n || out_n == s->img_n + 1);
+ a->out = (stbi_uc *)stbi__malloc_mad3(x, y, output_bytes,
+ 0); // extra bytes to write off the end into
+ if (!a->out)
+ return stbi__err("outofmem", "Out of memory");
+
+ if (!stbi__mad3sizes_valid(img_n, x, depth, 7))
+ return stbi__err("too large", "Corrupt PNG");
+ img_width_bytes = (((img_n * x * depth) + 7) >> 3);
+ img_len = (img_width_bytes + 1) * y;
+
+ // we used to check for exact match between raw_len and img_len on non-interlaced PNGs,
+ // but issue #276 reported a PNG in the wild that had extra data at the end (all zeros),
+ // so just check for raw_len < img_len always.
+ if (raw_len < img_len)
+ return stbi__err("not enough pixels", "Corrupt PNG");
+
+ for (j = 0; j < y; ++j) {
+ stbi_uc *cur = a->out + stride * j;
+ stbi_uc *prior;
+ int filter = *raw++;
+
+ if (filter > 4)
+ return stbi__err("invalid filter", "Corrupt PNG");
+
+ if (depth < 8) {
+ if (img_width_bytes > x)
+ return stbi__err("invalid width", "Corrupt PNG");
+ cur += x * out_n -
+ img_width_bytes; // store output to the rightmost img_len bytes, so we can decode in place
+ filter_bytes = 1;
+ width = img_width_bytes;
+ }
+ prior = cur -
+ stride; // bugfix: need to compute this after 'cur +=' computation above
+
+ // if first row, use special filter that doesn't sample previous row
+ if (j == 0)
+ filter = first_row_filter[filter];
+
+ // handle first byte explicitly
+ for (k = 0; k < filter_bytes; ++k) {
+ switch (filter) {
+ case STBI__F_none:
+ cur[k] = raw[k];
+ break;
+ case STBI__F_sub:
+ cur[k] = raw[k];
+ break;
+ case STBI__F_up:
+ cur[k] = STBI__BYTECAST(raw[k] + prior[k]);
+ break;
+ case STBI__F_avg:
+ cur[k] = STBI__BYTECAST(raw[k] + (prior[k] >> 1));
+ break;
+ case STBI__F_paeth:
+ cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(0, prior[k], 0));
+ break;
+ case STBI__F_avg_first:
+ cur[k] = raw[k];
+ break;
+ case STBI__F_paeth_first:
+ cur[k] = raw[k];
+ break;
+ }
+ }
+
+ if (depth == 8) {
+ if (img_n != out_n)
+ cur[img_n] = 255; // first pixel
+ raw += img_n;
+ cur += out_n;
+ prior += out_n;
+ } else if (depth == 16) {
+ if (img_n != out_n) {
+ cur[filter_bytes] = 255; // first pixel top byte
+ cur[filter_bytes + 1] = 255; // first pixel bottom byte
+ }
+ raw += filter_bytes;
+ cur += output_bytes;
+ prior += output_bytes;
+ } else {
+ raw += 1;
+ cur += 1;
+ prior += 1;
+ }
+
+ // this is a little gross, so that we don't switch per-pixel or per-component
+ if (depth < 8 || img_n == out_n) {
+ int nk = (width - 1) * filter_bytes;
+#define STBI__CASE(f) \
+ case f: \
+ for (k = 0; k < nk; ++k)
+ switch (filter) {
+ // "none" filter turns into a memcpy here; make that explicit.
+ case STBI__F_none:
+ memcpy(cur, raw, nk);
+ break;
+ STBI__CASE(STBI__F_sub)
+ {
+ cur[k] = STBI__BYTECAST(raw[k] + cur[k - filter_bytes]);
+ }
+ break;
+ STBI__CASE(STBI__F_up)
+ {
+ cur[k] = STBI__BYTECAST(raw[k] + prior[k]);
+ }
+ break;
+ STBI__CASE(STBI__F_avg)
+ {
+ cur[k] = STBI__BYTECAST(
+ raw[k] + ((prior[k] + cur[k - filter_bytes]) >> 1));
+ }
+ break;
+ STBI__CASE(STBI__F_paeth)
+ {
+ cur[k] = STBI__BYTECAST(
+ raw[k] + stbi__paeth(cur[k - filter_bytes],
+ prior[k],
+ prior[k - filter_bytes]));
+ }
+ break;
+ STBI__CASE(STBI__F_avg_first)
+ {
+ cur[k] = STBI__BYTECAST(raw[k] +
+ (cur[k - filter_bytes] >> 1));
+ }
+ break;
+ STBI__CASE(STBI__F_paeth_first)
+ {
+ cur[k] = STBI__BYTECAST(
+ raw[k] + stbi__paeth(cur[k - filter_bytes], 0, 0));
+ }
+ break;
+ }
+#undef STBI__CASE
+ raw += nk;
+ } else {
+ STBI_ASSERT(img_n + 1 == out_n);
+#define STBI__CASE(f) \
+ case f: \
+ for (i = x - 1; i >= 1; --i, cur[filter_bytes] = 255, raw += filter_bytes, \
+ cur += output_bytes, prior += output_bytes) \
+ for (k = 0; k < filter_bytes; ++k)
+ switch (filter) {
+ STBI__CASE(STBI__F_none)
+ {
+ cur[k] = raw[k];
+ }
+ break;
+ STBI__CASE(STBI__F_sub)
+ {
+ cur[k] = STBI__BYTECAST(raw[k] + cur[k - output_bytes]);
+ }
+ break;
+ STBI__CASE(STBI__F_up)
+ {
+ cur[k] = STBI__BYTECAST(raw[k] + prior[k]);
+ }
+ break;
+ STBI__CASE(STBI__F_avg)
+ {
+ cur[k] = STBI__BYTECAST(
+ raw[k] + ((prior[k] + cur[k - output_bytes]) >> 1));
+ }
+ break;
+ STBI__CASE(STBI__F_paeth)
+ {
+ cur[k] = STBI__BYTECAST(
+ raw[k] + stbi__paeth(cur[k - output_bytes],
+ prior[k],
+ prior[k - output_bytes]));
+ }
+ break;
+ STBI__CASE(STBI__F_avg_first)
+ {
+ cur[k] = STBI__BYTECAST(raw[k] +
+ (cur[k - output_bytes] >> 1));
+ }
+ break;
+ STBI__CASE(STBI__F_paeth_first)
+ {
+ cur[k] = STBI__BYTECAST(
+ raw[k] + stbi__paeth(cur[k - output_bytes], 0, 0));
+ }
+ break;
+ }
+#undef STBI__CASE
+
+ // the loop above sets the high byte of the pixels' alpha, but for
+ // 16 bit png files we also need the low byte set. we'll do that here.
+ if (depth == 16) {
+ cur = a->out +
+ stride * j; // start at the beginning of the row again
+ for (i = 0; i < x; ++i, cur += output_bytes) {
+ cur[filter_bytes + 1] = 255;
+ }
+ }
+ }
+ }
+
+ // we make a separate pass to expand bits to pixels; for performance,
+ // this could run two scanlines behind the above code, so it won't
+ // intefere with filtering but will still be in the cache.
+ if (depth < 8) {
+ for (j = 0; j < y; ++j) {
+ stbi_uc *cur = a->out + stride * j;
+ stbi_uc *in = a->out + stride * j + x * out_n - img_width_bytes;
+ // unpack 1/2/4-bit into a 8-bit buffer. allows us to keep the common 8-bit path optimal at minimal cost for 1/2/4-bit
+ // png guarante byte alignment, if width is not multiple of 8/4/2 we'll decode dummy trailing data that will be skipped in the later loop
+ stbi_uc scale = (color == 0) ? stbi__depth_scale_table[depth] :
+ 1; // scale grayscale values to 0..255 range
+
+ // note that the final byte might overshoot and write more data than desired.
+ // we can allocate enough data that this never writes out of memory, but it
+ // could also overwrite the next scanline. can it overwrite non-empty data
+ // on the next scanline? yes, consider 1-pixel-wide scanlines with 1-bit-per-pixel.
+ // so we need to explicitly clamp the final ones
+
+ if (depth == 4) {
+ for (k = x * img_n; k >= 2; k -= 2, ++in) {
+ *cur++ = scale * ((*in >> 4));
+ *cur++ = scale * ((*in) & 0x0f);
+ }
+ if (k > 0)
+ *cur++ = scale * ((*in >> 4));
+ } else if (depth == 2) {
+ for (k = x * img_n; k >= 4; k -= 4, ++in) {
+ *cur++ = scale * ((*in >> 6));
+ *cur++ = scale * ((*in >> 4) & 0x03);
+ *cur++ = scale * ((*in >> 2) & 0x03);
+ *cur++ = scale * ((*in) & 0x03);
+ }
+ if (k > 0)
+ *cur++ = scale * ((*in >> 6));
+ if (k > 1)
+ *cur++ = scale * ((*in >> 4) & 0x03);
+ if (k > 2)
+ *cur++ = scale * ((*in >> 2) & 0x03);
+ } else if (depth == 1) {
+ for (k = x * img_n; k >= 8; k -= 8, ++in) {
+ *cur++ = scale * ((*in >> 7));
+ *cur++ = scale * ((*in >> 6) & 0x01);
+ *cur++ = scale * ((*in >> 5) & 0x01);
+ *cur++ = scale * ((*in >> 4) & 0x01);
+ *cur++ = scale * ((*in >> 3) & 0x01);
+ *cur++ = scale * ((*in >> 2) & 0x01);
+ *cur++ = scale * ((*in >> 1) & 0x01);
+ *cur++ = scale * ((*in) & 0x01);
+ }
+ if (k > 0)
+ *cur++ = scale * ((*in >> 7));
+ if (k > 1)
+ *cur++ = scale * ((*in >> 6) & 0x01);
+ if (k > 2)
+ *cur++ = scale * ((*in >> 5) & 0x01);
+ if (k > 3)
+ *cur++ = scale * ((*in >> 4) & 0x01);
+ if (k > 4)
+ *cur++ = scale * ((*in >> 3) & 0x01);
+ if (k > 5)
+ *cur++ = scale * ((*in >> 2) & 0x01);
+ if (k > 6)
+ *cur++ = scale * ((*in >> 1) & 0x01);
+ }
+ if (img_n != out_n) {
+ int q;
+ // insert alpha = 255
+ cur = a->out + stride * j;
+ if (img_n == 1) {
+ for (q = x - 1; q >= 0; --q) {
+ cur[q * 2 + 1] = 255;
+ cur[q * 2 + 0] = cur[q];
+ }
+ } else {
+ STBI_ASSERT(img_n == 3);
+ for (q = x - 1; q >= 0; --q) {
+ cur[q * 4 + 3] = 255;
+ cur[q * 4 + 2] = cur[q * 3 + 2];
+ cur[q * 4 + 1] = cur[q * 3 + 1];
+ cur[q * 4 + 0] = cur[q * 3 + 0];
+ }
+ }
+ }
+ }
+ } else if (depth == 16) {
+ // force the image data from big-endian to platform-native.
+ // this is done in a separate pass due to the decoding relying
+ // on the data being untouched, but could probably be done
+ // per-line during decode if care is taken.
+ stbi_uc *cur = a->out;
+ stbi__uint16 *cur16 = (stbi__uint16 *)cur;
+
+ for (i = 0; i < x * y * out_n; ++i, cur16++, cur += 2) {
+ *cur16 = (cur[0] << 8) | cur[1];
+ }
+ }
+
+ return 1;
+}
+
+static int stbi__create_png_image(stbi__png *a, stbi_uc *image_data, stbi__uint32 image_data_len,
+ int out_n, int depth, int color, int interlaced)
+{
+ int bytes = (depth == 16 ? 2 : 1);
+ int out_bytes = out_n * bytes;
+ stbi_uc *final;
+ int p;
+ if (!interlaced)
+ return stbi__create_png_image_raw(a, image_data, image_data_len, out_n, a->s->img_x,
+ a->s->img_y, depth, color);
+
+ // de-interlacing
+ final = (stbi_uc *)stbi__malloc_mad3(a->s->img_x, a->s->img_y, out_bytes, 0);
+ if (!final)
+ return stbi__err("outofmem", "Out of memory");
+ for (p = 0; p < 7; ++p) {
+ int xorig[] = { 0, 4, 0, 2, 0, 1, 0 };
+ int yorig[] = { 0, 0, 4, 0, 2, 0, 1 };
+ int xspc[] = { 8, 8, 4, 4, 2, 2, 1 };
+ int yspc[] = { 8, 8, 8, 4, 4, 2, 2 };
+ int i, j, x, y;
+ // pass1_x[4] = 0, pass1_x[5] = 1, pass1_x[12] = 1
+ x = (a->s->img_x - xorig[p] + xspc[p] - 1) / xspc[p];
+ y = (a->s->img_y - yorig[p] + yspc[p] - 1) / yspc[p];
+ if (x && y) {
+ stbi__uint32 img_len = ((((a->s->img_n * x * depth) + 7) >> 3) + 1) * y;
+ if (!stbi__create_png_image_raw(a, image_data, image_data_len, out_n, x, y,
+ depth, color)) {
+ STBI_FREE(final);
+ return 0;
+ }
+ for (j = 0; j < y; ++j) {
+ for (i = 0; i < x; ++i) {
+ int out_y = j * yspc[p] + yorig[p];
+ int out_x = i * xspc[p] + xorig[p];
+ memcpy(final + out_y * a->s->img_x * out_bytes +
+ out_x * out_bytes,
+ a->out + (j * x + i) * out_bytes, out_bytes);
+ }
+ }
+ STBI_FREE(a->out);
+ image_data += img_len;
+ image_data_len -= img_len;
+ }
+ }
+ a->out = final;
+
+ return 1;
+}
+
+static int stbi__compute_transparency(stbi__png *z, stbi_uc tc[3], int out_n)
+{
+ stbi__context *s = z->s;
+ stbi__uint32 i, pixel_count = s->img_x * s->img_y;
+ stbi_uc *p = z->out;
+
+ // compute color-based transparency, assuming we've
+ // already got 255 as the alpha value in the output
+ STBI_ASSERT(out_n == 2 || out_n == 4);
+
+ if (out_n == 2) {
+ for (i = 0; i < pixel_count; ++i) {
+ p[1] = (p[0] == tc[0] ? 0 : 255);
+ p += 2;
+ }
+ } else {
+ for (i = 0; i < pixel_count; ++i) {
+ if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2])
+ p[3] = 0;
+ p += 4;
+ }
+ }
+ return 1;
+}
+
+static int stbi__compute_transparency16(stbi__png *z, stbi__uint16 tc[3], int out_n)
+{
+ stbi__context *s = z->s;
+ stbi__uint32 i, pixel_count = s->img_x * s->img_y;
+ stbi__uint16 *p = (stbi__uint16 *)z->out;
+
+ // compute color-based transparency, assuming we've
+ // already got 65535 as the alpha value in the output
+ STBI_ASSERT(out_n == 2 || out_n == 4);
+
+ if (out_n == 2) {
+ for (i = 0; i < pixel_count; ++i) {
+ p[1] = (p[0] == tc[0] ? 0 : 65535);
+ p += 2;
+ }
+ } else {
+ for (i = 0; i < pixel_count; ++i) {
+ if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2])
+ p[3] = 0;
+ p += 4;
+ }
+ }
+ return 1;
+}
+
+static int stbi__expand_png_palette(stbi__png *a, stbi_uc *palette, int len, int pal_img_n)
+{
+ stbi__uint32 i, pixel_count = a->s->img_x * a->s->img_y;
+ stbi_uc *p, *temp_out, *orig = a->out;
+
+ p = (stbi_uc *)stbi__malloc_mad2(pixel_count, pal_img_n, 0);
+ if (p == NULL)
+ return stbi__err("outofmem", "Out of memory");
+
+ // between here and free(out) below, exitting would leak
+ temp_out = p;
+
+ if (pal_img_n == 3) {
+ for (i = 0; i < pixel_count; ++i) {
+ int n = orig[i] * 4;
+ p[0] = palette[n];
+ p[1] = palette[n + 1];
+ p[2] = palette[n + 2];
+ p += 3;
+ }
+ } else {
+ for (i = 0; i < pixel_count; ++i) {
+ int n = orig[i] * 4;
+ p[0] = palette[n];
+ p[1] = palette[n + 1];
+ p[2] = palette[n + 2];
+ p[3] = palette[n + 3];
+ p += 4;
+ }
+ }
+ STBI_FREE(a->out);
+ a->out = temp_out;
+
+ STBI_NOTUSED(len);
+
+ return 1;
+}
+
+static int stbi__unpremultiply_on_load_global = 0;
+static int stbi__de_iphone_flag_global = 0;
+
+STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply)
+{
+ stbi__unpremultiply_on_load_global = flag_true_if_should_unpremultiply;
+}
+
+STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert)
+{
+ stbi__de_iphone_flag_global = flag_true_if_should_convert;
+}
+
+#ifndef STBI_THREAD_LOCAL
+#define stbi__unpremultiply_on_load stbi__unpremultiply_on_load_global
+#define stbi__de_iphone_flag stbi__de_iphone_flag_global
+#else
+static STBI_THREAD_LOCAL int stbi__unpremultiply_on_load_local, stbi__unpremultiply_on_load_set;
+static STBI_THREAD_LOCAL int stbi__de_iphone_flag_local, stbi__de_iphone_flag_set;
+
+STBIDEF void stbi_set_unpremultiply_on_load_thread(int flag_true_if_should_unpremultiply)
+{
+ stbi__unpremultiply_on_load_local = flag_true_if_should_unpremultiply;
+ stbi__unpremultiply_on_load_set = 1;
+}
+
+STBIDEF void stbi_convert_iphone_png_to_rgb_thread(int flag_true_if_should_convert)
+{
+ stbi__de_iphone_flag_local = flag_true_if_should_convert;
+ stbi__de_iphone_flag_set = 1;
+}
+
+#define stbi__unpremultiply_on_load \
+ (stbi__unpremultiply_on_load_set ? stbi__unpremultiply_on_load_local : \
+ stbi__unpremultiply_on_load_global)
+#define stbi__de_iphone_flag \
+ (stbi__de_iphone_flag_set ? stbi__de_iphone_flag_local : stbi__de_iphone_flag_global)
+#endif // STBI_THREAD_LOCAL
+
+static void stbi__de_iphone(stbi__png *z)
+{
+ stbi__context *s = z->s;
+ stbi__uint32 i, pixel_count = s->img_x * s->img_y;
+ stbi_uc *p = z->out;
+
+ if (s->img_out_n == 3) { // convert bgr to rgb
+ for (i = 0; i < pixel_count; ++i) {
+ stbi_uc t = p[0];
+ p[0] = p[2];
+ p[2] = t;
+ p += 3;
+ }
+ } else {
+ STBI_ASSERT(s->img_out_n == 4);
+ if (stbi__unpremultiply_on_load) {
+ // convert bgr to rgb and unpremultiply
+ for (i = 0; i < pixel_count; ++i) {
+ stbi_uc a = p[3];
+ stbi_uc t = p[0];
+ if (a) {
+ stbi_uc half = a / 2;
+ p[0] = (p[2] * 255 + half) / a;
+ p[1] = (p[1] * 255 + half) / a;
+ p[2] = (t * 255 + half) / a;
+ } else {
+ p[0] = p[2];
+ p[2] = t;
+ }
+ p += 4;
+ }
+ } else {
+ // convert bgr to rgb
+ for (i = 0; i < pixel_count; ++i) {
+ stbi_uc t = p[0];
+ p[0] = p[2];
+ p[2] = t;
+ p += 4;
+ }
+ }
+ }
+}
+
+#define STBI__PNG_TYPE(a, b, c, d) \
+ (((unsigned)(a) << 24) + ((unsigned)(b) << 16) + ((unsigned)(c) << 8) + (unsigned)(d))
+
+static int stbi__parse_png_file(stbi__png *z, int scan, int req_comp)
+{
+ stbi_uc palette[1024], pal_img_n = 0;
+ stbi_uc has_trans = 0, tc[3] = { 0 };
+ stbi__uint16 tc16[3];
+ stbi__uint32 ioff = 0, idata_limit = 0, i, pal_len = 0;
+ int first = 1, k, interlace = 0, color = 0, is_iphone = 0;
+ stbi__context *s = z->s;
+
+ z->expanded = NULL;
+ z->idata = NULL;
+ z->out = NULL;
+
+ if (!stbi__check_png_header(s))
+ return 0;
+
+ if (scan == STBI__SCAN_type)
+ return 1;
+
+ for (;;) {
+ stbi__pngchunk c = stbi__get_chunk_header(s);
+ switch (c.type) {
+ case STBI__PNG_TYPE('C', 'g', 'B', 'I'):
+ is_iphone = 1;
+ stbi__skip(s, c.length);
+ break;
+ case STBI__PNG_TYPE('I', 'H', 'D', 'R'): {
+ int comp, filter;
+ if (!first)
+ return stbi__err("multiple IHDR", "Corrupt PNG");
+ first = 0;
+ if (c.length != 13)
+ return stbi__err("bad IHDR len", "Corrupt PNG");
+ s->img_x = stbi__get32be(s);
+ s->img_y = stbi__get32be(s);
+ if (s->img_y > STBI_MAX_DIMENSIONS)
+ return stbi__err("too large", "Very large image (corrupt?)");
+ if (s->img_x > STBI_MAX_DIMENSIONS)
+ return stbi__err("too large", "Very large image (corrupt?)");
+ z->depth = stbi__get8(s);
+ if (z->depth != 1 && z->depth != 2 && z->depth != 4 && z->depth != 8 &&
+ z->depth != 16)
+ return stbi__err("1/2/4/8/16-bit only",
+ "PNG not supported: 1/2/4/8/16-bit only");
+ color = stbi__get8(s);
+ if (color > 6)
+ return stbi__err("bad ctype", "Corrupt PNG");
+ if (color == 3 && z->depth == 16)
+ return stbi__err("bad ctype", "Corrupt PNG");
+ if (color == 3)
+ pal_img_n = 3;
+ else if (color & 1)
+ return stbi__err("bad ctype", "Corrupt PNG");
+ comp = stbi__get8(s);
+ if (comp)
+ return stbi__err("bad comp method", "Corrupt PNG");
+ filter = stbi__get8(s);
+ if (filter)
+ return stbi__err("bad filter method", "Corrupt PNG");
+ interlace = stbi__get8(s);
+ if (interlace > 1)
+ return stbi__err("bad interlace method", "Corrupt PNG");
+ if (!s->img_x || !s->img_y)
+ return stbi__err("0-pixel image", "Corrupt PNG");
+ if (!pal_img_n) {
+ s->img_n = (color & 2 ? 3 : 1) + (color & 4 ? 1 : 0);
+ if ((1 << 30) / s->img_x / s->img_n < s->img_y)
+ return stbi__err("too large", "Image too large to decode");
+ } else {
+ // if paletted, then pal_n is our final components, and
+ // img_n is # components to decompress/filter.
+ s->img_n = 1;
+ if ((1 << 30) / s->img_x / 4 < s->img_y)
+ return stbi__err("too large", "Corrupt PNG");
+ }
+ // even with SCAN_header, have to scan to see if we have a tRNS
+ break;
+ }
+
+ case STBI__PNG_TYPE('P', 'L', 'T', 'E'): {
+ if (first)
+ return stbi__err("first not IHDR", "Corrupt PNG");
+ if (c.length > 256 * 3)
+ return stbi__err("invalid PLTE", "Corrupt PNG");
+ pal_len = c.length / 3;
+ if (pal_len * 3 != c.length)
+ return stbi__err("invalid PLTE", "Corrupt PNG");
+ for (i = 0; i < pal_len; ++i) {
+ palette[i * 4 + 0] = stbi__get8(s);
+ palette[i * 4 + 1] = stbi__get8(s);
+ palette[i * 4 + 2] = stbi__get8(s);
+ palette[i * 4 + 3] = 255;
+ }
+ break;
+ }
+
+ case STBI__PNG_TYPE('t', 'R', 'N', 'S'): {
+ if (first)
+ return stbi__err("first not IHDR", "Corrupt PNG");
+ if (z->idata)
+ return stbi__err("tRNS after IDAT", "Corrupt PNG");
+ if (pal_img_n) {
+ if (scan == STBI__SCAN_header) {
+ s->img_n = 4;
+ return 1;
+ }
+ if (pal_len == 0)
+ return stbi__err("tRNS before PLTE", "Corrupt PNG");
+ if (c.length > pal_len)
+ return stbi__err("bad tRNS len", "Corrupt PNG");
+ pal_img_n = 4;
+ for (i = 0; i < c.length; ++i)
+ palette[i * 4 + 3] = stbi__get8(s);
+ } else {
+ if (!(s->img_n & 1))
+ return stbi__err("tRNS with alpha", "Corrupt PNG");
+ if (c.length != (stbi__uint32)s->img_n * 2)
+ return stbi__err("bad tRNS len", "Corrupt PNG");
+ has_trans = 1;
+ // non-paletted with tRNS = constant alpha. if header-scanning, we can stop now.
+ if (scan == STBI__SCAN_header) {
+ ++s->img_n;
+ return 1;
+ }
+ if (z->depth == 16) {
+ for (k = 0; k < s->img_n; ++k)
+ tc16[k] = (stbi__uint16)stbi__get16be(
+ s); // copy the values as-is
+ } else {
+ for (k = 0; k < s->img_n; ++k)
+ tc[k] = (stbi_uc)(stbi__get16be(s) & 255) *
+ stbi__depth_scale_table
+ [z->depth]; // non 8-bit images will be larger
+ }
+ }
+ break;
+ }
+
+ case STBI__PNG_TYPE('I', 'D', 'A', 'T'): {
+ if (first)
+ return stbi__err("first not IHDR", "Corrupt PNG");
+ if (pal_img_n && !pal_len)
+ return stbi__err("no PLTE", "Corrupt PNG");
+ if (scan == STBI__SCAN_header) {
+ // header scan definitely stops at first IDAT
+ if (pal_img_n)
+ s->img_n = pal_img_n;
+ return 1;
+ }
+ if (c.length > (1u << 30))
+ return stbi__err("IDAT size limit",
+ "IDAT section larger than 2^30 bytes");
+ if ((int)(ioff + c.length) < (int)ioff)
+ return 0;
+ if (ioff + c.length > idata_limit) {
+ stbi__uint32 idata_limit_old = idata_limit;
+ stbi_uc *p;
+ if (idata_limit == 0)
+ idata_limit = c.length > 4096 ? c.length : 4096;
+ while (ioff + c.length > idata_limit)
+ idata_limit *= 2;
+ STBI_NOTUSED(idata_limit_old);
+ p = (stbi_uc *)STBI_REALLOC_SIZED(z->idata, idata_limit_old,
+ idata_limit);
+ if (p == NULL)
+ return stbi__err("outofmem", "Out of memory");
+ z->idata = p;
+ }
+ if (!stbi__getn(s, z->idata + ioff, c.length))
+ return stbi__err("outofdata", "Corrupt PNG");
+ ioff += c.length;
+ break;
+ }
+
+ case STBI__PNG_TYPE('I', 'E', 'N', 'D'): {
+ stbi__uint32 raw_len, bpl;
+ if (first)
+ return stbi__err("first not IHDR", "Corrupt PNG");
+ if (scan != STBI__SCAN_load)
+ return 1;
+ if (z->idata == NULL)
+ return stbi__err("no IDAT", "Corrupt PNG");
+ // initial guess for decoded data size to avoid unnecessary reallocs
+ bpl = (s->img_x * z->depth + 7) / 8; // bytes per line, per component
+ raw_len = bpl * s->img_y * s->img_n /* pixels */ +
+ s->img_y /* filter mode per row */;
+ z->expanded = (stbi_uc *)stbi_zlib_decode_malloc_guesssize_headerflag(
+ (char *)z->idata, ioff, raw_len, (int *)&raw_len, !is_iphone);
+ if (z->expanded == NULL)
+ return 0; // zlib should set error
+ STBI_FREE(z->idata);
+ z->idata = NULL;
+ if ((req_comp == s->img_n + 1 && req_comp != 3 && !pal_img_n) || has_trans)
+ s->img_out_n = s->img_n + 1;
+ else
+ s->img_out_n = s->img_n;
+ if (!stbi__create_png_image(z, z->expanded, raw_len, s->img_out_n, z->depth,
+ color, interlace))
+ return 0;
+ if (has_trans) {
+ if (z->depth == 16) {
+ if (!stbi__compute_transparency16(z, tc16, s->img_out_n))
+ return 0;
+ } else {
+ if (!stbi__compute_transparency(z, tc, s->img_out_n))
+ return 0;
+ }
+ }
+ if (is_iphone && stbi__de_iphone_flag && s->img_out_n > 2)
+ stbi__de_iphone(z);
+ if (pal_img_n) {
+ // pal_img_n == 3 or 4
+ s->img_n = pal_img_n; // record the actual colors we had
+ s->img_out_n = pal_img_n;
+ if (req_comp >= 3)
+ s->img_out_n = req_comp;
+ if (!stbi__expand_png_palette(z, palette, pal_len, s->img_out_n))
+ return 0;
+ } else if (has_trans) {
+ // non-paletted image with tRNS -> source image has (constant) alpha
+ ++s->img_n;
+ }
+ STBI_FREE(z->expanded);
+ z->expanded = NULL;
+ // end of PNG chunk, read and skip CRC
+ stbi__get32be(s);
+ return 1;
+ }
+
+ default:
+ // if critical, fail
+ if (first)
+ return stbi__err("first not IHDR", "Corrupt PNG");
+ if ((c.type & (1 << 29)) == 0) {
+#ifndef STBI_NO_FAILURE_STRINGS
+ // not threadsafe
+ static char invalid_chunk[] = "XXXX PNG chunk not known";
+ invalid_chunk[0] = STBI__BYTECAST(c.type >> 24);
+ invalid_chunk[1] = STBI__BYTECAST(c.type >> 16);
+ invalid_chunk[2] = STBI__BYTECAST(c.type >> 8);
+ invalid_chunk[3] = STBI__BYTECAST(c.type >> 0);
+#endif
+ return stbi__err(invalid_chunk,
+ "PNG not supported: unknown PNG chunk type");
+ }
+ stbi__skip(s, c.length);
+ break;
+ }
+ // end of PNG chunk, read and skip CRC
+ stbi__get32be(s);
+ }
+}
+
+static void *stbi__do_png(stbi__png *p, int *x, int *y, int *n, int req_comp, stbi__result_info *ri)
+{
+ void *result = NULL;
+ if (req_comp < 0 || req_comp > 4)
+ return stbi__errpuc("bad req_comp", "Internal error");
+ if (stbi__parse_png_file(p, STBI__SCAN_load, req_comp)) {
+ if (p->depth <= 8)
+ ri->bits_per_channel = 8;
+ else if (p->depth == 16)
+ ri->bits_per_channel = 16;
+ else
+ return stbi__errpuc("bad bits_per_channel",
+ "PNG not supported: unsupported color depth");
+ result = p->out;
+ p->out = NULL;
+ if (req_comp && req_comp != p->s->img_out_n) {
+ if (ri->bits_per_channel == 8)
+ result = stbi__convert_format((unsigned char *)result,
+ p->s->img_out_n, req_comp,
+ p->s->img_x, p->s->img_y);
+ else
+ result = stbi__convert_format16((stbi__uint16 *)result,
+ p->s->img_out_n, req_comp,
+ p->s->img_x, p->s->img_y);
+ p->s->img_out_n = req_comp;
+ if (result == NULL)
+ return result;
+ }
+ *x = p->s->img_x;
+ *y = p->s->img_y;
+ if (n)
+ *n = p->s->img_n;
+ }
+ STBI_FREE(p->out);
+ p->out = NULL;
+ STBI_FREE(p->expanded);
+ p->expanded = NULL;
+ STBI_FREE(p->idata);
+ p->idata = NULL;
+
+ return result;
+}
+
+static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri)
+{
+ stbi__png p;
+ p.s = s;
+ return stbi__do_png(&p, x, y, comp, req_comp, ri);
+}
+
+static int stbi__png_test(stbi__context *s)
+{
+ int r;
+ r = stbi__check_png_header(s);
+ stbi__rewind(s);
+ return r;
+}
+
+static int stbi__png_info_raw(stbi__png *p, int *x, int *y, int *comp)
+{
+ if (!stbi__parse_png_file(p, STBI__SCAN_header, 0)) {
+ stbi__rewind(p->s);
+ return 0;
+ }
+ if (x)
+ *x = p->s->img_x;
+ if (y)
+ *y = p->s->img_y;
+ if (comp)
+ *comp = p->s->img_n;
+ return 1;
+}
+
+static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp)
+{
+ stbi__png p;
+ p.s = s;
+ return stbi__png_info_raw(&p, x, y, comp);
+}
+
+static int stbi__png_is16(stbi__context *s)
+{
+ stbi__png p;
+ p.s = s;
+ if (!stbi__png_info_raw(&p, NULL, NULL, NULL))
+ return 0;
+ if (p.depth != 16) {
+ stbi__rewind(p.s);
+ return 0;
+ }
+ return 1;
+}
+#endif
+
+// Microsoft/Windows BMP image
+
+#ifndef STBI_NO_BMP
+static int stbi__bmp_test_raw(stbi__context *s)
+{
+ int r;
+ int sz;
+ if (stbi__get8(s) != 'B')
+ return 0;
+ if (stbi__get8(s) != 'M')
+ return 0;
+ stbi__get32le(s); // discard filesize
+ stbi__get16le(s); // discard reserved
+ stbi__get16le(s); // discard reserved
+ stbi__get32le(s); // discard data offset
+ sz = stbi__get32le(s);
+ r = (sz == 12 || sz == 40 || sz == 56 || sz == 108 || sz == 124);
+ return r;
+}
+
+static int stbi__bmp_test(stbi__context *s)
+{
+ int r = stbi__bmp_test_raw(s);
+ stbi__rewind(s);
+ return r;
+}
+
+// returns 0..31 for the highest set bit
+static int stbi__high_bit(unsigned int z)
+{
+ int n = 0;
+ if (z == 0)
+ return -1;
+ if (z >= 0x10000) {
+ n += 16;
+ z >>= 16;
+ }
+ if (z >= 0x00100) {
+ n += 8;
+ z >>= 8;
+ }
+ if (z >= 0x00010) {
+ n += 4;
+ z >>= 4;
+ }
+ if (z >= 0x00004) {
+ n += 2;
+ z >>= 2;
+ }
+ if (z >= 0x00002) {
+ n += 1; /* >>= 1;*/
+ }
+ return n;
+}
+
+static int stbi__bitcount(unsigned int a)
+{
+ a = (a & 0x55555555) + ((a >> 1) & 0x55555555); // max 2
+ a = (a & 0x33333333) + ((a >> 2) & 0x33333333); // max 4
+ a = (a + (a >> 4)) & 0x0f0f0f0f; // max 8 per 4, now 8 bits
+ a = (a + (a >> 8)); // max 16 per 8 bits
+ a = (a + (a >> 16)); // max 32 per 8 bits
+ return a & 0xff;
+}
+
+// extract an arbitrarily-aligned N-bit value (N=bits)
+// from v, and then make it 8-bits long and fractionally
+// extend it to full full range.
+static int stbi__shiftsigned(unsigned int v, int shift, int bits)
+{
+ static unsigned int mul_table[9] = {
+ 0,
+ 0xff /*0b11111111*/,
+ 0x55 /*0b01010101*/,
+ 0x49 /*0b01001001*/,
+ 0x11 /*0b00010001*/,
+ 0x21 /*0b00100001*/,
+ 0x41 /*0b01000001*/,
+ 0x81 /*0b10000001*/,
+ 0x01 /*0b00000001*/,
+ };
+ static unsigned int shift_table[9] = {
+ 0, 0, 0, 1, 0, 2, 4, 6, 0,
+ };
+ if (shift < 0)
+ v <<= -shift;
+ else
+ v >>= shift;
+ STBI_ASSERT(v < 256);
+ v >>= (8 - bits);
+ STBI_ASSERT(bits >= 0 && bits <= 8);
+ return (int)((unsigned)v * mul_table[bits]) >> shift_table[bits];
+}
+
+typedef struct {
+ int bpp, offset, hsz;
+ unsigned int mr, mg, mb, ma, all_a;
+ int extra_read;
+} stbi__bmp_data;
+
+static int stbi__bmp_set_mask_defaults(stbi__bmp_data *info, int compress)
+{
+ // BI_BITFIELDS specifies masks explicitly, don't override
+ if (compress == 3)
+ return 1;
+
+ if (compress == 0) {
+ if (info->bpp == 16) {
+ info->mr = 31u << 10;
+ info->mg = 31u << 5;
+ info->mb = 31u << 0;
+ } else if (info->bpp == 32) {
+ info->mr = 0xffu << 16;
+ info->mg = 0xffu << 8;
+ info->mb = 0xffu << 0;
+ info->ma = 0xffu << 24;
+ info->all_a =
+ 0; // if all_a is 0 at end, then we loaded alpha channel but it was all 0
+ } else {
+ // otherwise, use defaults, which is all-0
+ info->mr = info->mg = info->mb = info->ma = 0;
+ }
+ return 1;
+ }
+ return 0; // error
+}
+
+static void *stbi__bmp_parse_header(stbi__context *s, stbi__bmp_data *info)
+{
+ int hsz;
+ if (stbi__get8(s) != 'B' || stbi__get8(s) != 'M')
+ return stbi__errpuc("not BMP", "Corrupt BMP");
+ stbi__get32le(s); // discard filesize
+ stbi__get16le(s); // discard reserved
+ stbi__get16le(s); // discard reserved
+ info->offset = stbi__get32le(s);
+ info->hsz = hsz = stbi__get32le(s);
+ info->mr = info->mg = info->mb = info->ma = 0;
+ info->extra_read = 14;
+
+ if (info->offset < 0)
+ return stbi__errpuc("bad BMP", "bad BMP");
+
+ if (hsz != 12 && hsz != 40 && hsz != 56 && hsz != 108 && hsz != 124)
+ return stbi__errpuc("unknown BMP", "BMP type not supported: unknown");
+ if (hsz == 12) {
+ s->img_x = stbi__get16le(s);
+ s->img_y = stbi__get16le(s);
+ } else {
+ s->img_x = stbi__get32le(s);
+ s->img_y = stbi__get32le(s);
+ }
+ if (stbi__get16le(s) != 1)
+ return stbi__errpuc("bad BMP", "bad BMP");
+ info->bpp = stbi__get16le(s);
+ if (hsz != 12) {
+ int compress = stbi__get32le(s);
+ if (compress == 1 || compress == 2)
+ return stbi__errpuc("BMP RLE", "BMP type not supported: RLE");
+ if (compress >= 4)
+ return stbi__errpuc(
+ "BMP JPEG/PNG",
+ "BMP type not supported: unsupported compression"); // this includes PNG/JPEG modes
+ if (compress == 3 && info->bpp != 16 && info->bpp != 32)
+ return stbi__errpuc("bad BMP",
+ "bad BMP"); // bitfields requires 16 or 32 bits/pixel
+ stbi__get32le(s); // discard sizeof
+ stbi__get32le(s); // discard hres
+ stbi__get32le(s); // discard vres
+ stbi__get32le(s); // discard colorsused
+ stbi__get32le(s); // discard max important
+ if (hsz == 40 || hsz == 56) {
+ if (hsz == 56) {
+ stbi__get32le(s);
+ stbi__get32le(s);
+ stbi__get32le(s);
+ stbi__get32le(s);
+ }
+ if (info->bpp == 16 || info->bpp == 32) {
+ if (compress == 0) {
+ stbi__bmp_set_mask_defaults(info, compress);
+ } else if (compress == 3) {
+ info->mr = stbi__get32le(s);
+ info->mg = stbi__get32le(s);
+ info->mb = stbi__get32le(s);
+ info->extra_read += 12;
+ // not documented, but generated by photoshop and handled by mspaint
+ if (info->mr == info->mg && info->mg == info->mb) {
+ // ?!?!?
+ return stbi__errpuc("bad BMP", "bad BMP");
+ }
+ } else
+ return stbi__errpuc("bad BMP", "bad BMP");
+ }
+ } else {
+ // V4/V5 header
+ int i;
+ if (hsz != 108 && hsz != 124)
+ return stbi__errpuc("bad BMP", "bad BMP");
+ info->mr = stbi__get32le(s);
+ info->mg = stbi__get32le(s);
+ info->mb = stbi__get32le(s);
+ info->ma = stbi__get32le(s);
+ if (compress !=
+ 3) // override mr/mg/mb unless in BI_BITFIELDS mode, as per docs
+ stbi__bmp_set_mask_defaults(info, compress);
+ stbi__get32le(s); // discard color space
+ for (i = 0; i < 12; ++i)
+ stbi__get32le(s); // discard color space parameters
+ if (hsz == 124) {
+ stbi__get32le(s); // discard rendering intent
+ stbi__get32le(s); // discard offset of profile data
+ stbi__get32le(s); // discard size of profile data
+ stbi__get32le(s); // discard reserved
+ }
+ }
+ }
+ return (void *)1;
+}
+
+static void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri)
+{
+ stbi_uc *out;
+ unsigned int mr = 0, mg = 0, mb = 0, ma = 0, all_a;
+ stbi_uc pal[256][4];
+ int psize = 0, i, j, width;
+ int flip_vertically, pad, target;
+ stbi__bmp_data info;
+ STBI_NOTUSED(ri);
+
+ info.all_a = 255;
+ if (stbi__bmp_parse_header(s, &info) == NULL)
+ return NULL; // error code already set
+
+ flip_vertically = ((int)s->img_y) > 0;
+ s->img_y = abs((int)s->img_y);
+
+ if (s->img_y > STBI_MAX_DIMENSIONS)
+ return stbi__errpuc("too large", "Very large image (corrupt?)");
+ if (s->img_x > STBI_MAX_DIMENSIONS)
+ return stbi__errpuc("too large", "Very large image (corrupt?)");
+
+ mr = info.mr;
+ mg = info.mg;
+ mb = info.mb;
+ ma = info.ma;
+ all_a = info.all_a;
+
+ if (info.hsz == 12) {
+ if (info.bpp < 24)
+ psize = (info.offset - info.extra_read - 24) / 3;
+ } else {
+ if (info.bpp < 16)
+ psize = (info.offset - info.extra_read - info.hsz) >> 2;
+ }
+ if (psize == 0) {
+ // accept some number of extra bytes after the header, but if the offset points either to before
+ // the header ends or implies a large amount of extra data, reject the file as malformed
+ int bytes_read_so_far =
+ s->callback_already_read + (int)(s->img_buffer - s->img_buffer_original);
+ int header_limit = 1024; // max we actually read is below 256 bytes currently.
+ int extra_data_limit =
+ 256 *
+ 4; // what ordinarily goes here is a palette; 256 entries*4 bytes is its max size.
+ if (bytes_read_so_far <= 0 || bytes_read_so_far > header_limit) {
+ return stbi__errpuc("bad header", "Corrupt BMP");
+ }
+ // we established that bytes_read_so_far is positive and sensible.
+ // the first half of this test rejects offsets that are either too small positives, or
+ // negative, and guarantees that info.offset >= bytes_read_so_far > 0. this in turn
+ // ensures the number computed in the second half of the test can't overflow.
+ if (info.offset < bytes_read_so_far ||
+ info.offset - bytes_read_so_far > extra_data_limit) {
+ return stbi__errpuc("bad offset", "Corrupt BMP");
+ } else {
+ stbi__skip(s, info.offset - bytes_read_so_far);
+ }
+ }
+
+ if (info.bpp == 24 && ma == 0xff000000)
+ s->img_n = 3;
+ else
+ s->img_n = ma ? 4 : 3;
+ if (req_comp && req_comp >= 3) // we can directly decode 3 or 4
+ target = req_comp;
+ else
+ target = s->img_n; // if they want monochrome, we'll post-convert
+
+ // sanity-check size
+ if (!stbi__mad3sizes_valid(target, s->img_x, s->img_y, 0))
+ return stbi__errpuc("too large", "Corrupt BMP");
+
+ out = (stbi_uc *)stbi__malloc_mad3(target, s->img_x, s->img_y, 0);
+ if (!out)
+ return stbi__errpuc("outofmem", "Out of memory");
+ if (info.bpp < 16) {
+ int z = 0;
+ if (psize == 0 || psize > 256) {
+ STBI_FREE(out);
+ return stbi__errpuc("invalid", "Corrupt BMP");
+ }
+ for (i = 0; i < psize; ++i) {
+ pal[i][2] = stbi__get8(s);
+ pal[i][1] = stbi__get8(s);
+ pal[i][0] = stbi__get8(s);
+ if (info.hsz != 12)
+ stbi__get8(s);
+ pal[i][3] = 255;
+ }
+ stbi__skip(s, info.offset - info.extra_read - info.hsz -
+ psize * (info.hsz == 12 ? 3 : 4));
+ if (info.bpp == 1)
+ width = (s->img_x + 7) >> 3;
+ else if (info.bpp == 4)
+ width = (s->img_x + 1) >> 1;
+ else if (info.bpp == 8)
+ width = s->img_x;
+ else {
+ STBI_FREE(out);
+ return stbi__errpuc("bad bpp", "Corrupt BMP");
+ }
+ pad = (-width) & 3;
+ if (info.bpp == 1) {
+ for (j = 0; j < (int)s->img_y; ++j) {
+ int bit_offset = 7, v = stbi__get8(s);
+ for (i = 0; i < (int)s->img_x; ++i) {
+ int color = (v >> bit_offset) & 0x1;
+ out[z++] = pal[color][0];
+ out[z++] = pal[color][1];
+ out[z++] = pal[color][2];
+ if (target == 4)
+ out[z++] = 255;
+ if (i + 1 == (int)s->img_x)
+ break;
+ if ((--bit_offset) < 0) {
+ bit_offset = 7;
+ v = stbi__get8(s);
+ }
+ }
+ stbi__skip(s, pad);
+ }
+ } else {
+ for (j = 0; j < (int)s->img_y; ++j) {
+ for (i = 0; i < (int)s->img_x; i += 2) {
+ int v = stbi__get8(s), v2 = 0;
+ if (info.bpp == 4) {
+ v2 = v & 15;
+ v >>= 4;
+ }
+ out[z++] = pal[v][0];
+ out[z++] = pal[v][1];
+ out[z++] = pal[v][2];
+ if (target == 4)
+ out[z++] = 255;
+ if (i + 1 == (int)s->img_x)
+ break;
+ v = (info.bpp == 8) ? stbi__get8(s) : v2;
+ out[z++] = pal[v][0];
+ out[z++] = pal[v][1];
+ out[z++] = pal[v][2];
+ if (target == 4)
+ out[z++] = 255;
+ }
+ stbi__skip(s, pad);
+ }
+ }
+ } else {
+ int rshift = 0, gshift = 0, bshift = 0, ashift = 0, rcount = 0, gcount = 0,
+ bcount = 0, acount = 0;
+ int z = 0;
+ int easy = 0;
+ stbi__skip(s, info.offset - info.extra_read - info.hsz);
+ if (info.bpp == 24)
+ width = 3 * s->img_x;
+ else if (info.bpp == 16)
+ width = 2 * s->img_x;
+ else /* bpp = 32 and pad = 0 */
+ width = 0;
+ pad = (-width) & 3;
+ if (info.bpp == 24) {
+ easy = 1;
+ } else if (info.bpp == 32) {
+ if (mb == 0xff && mg == 0xff00 && mr == 0x00ff0000 && ma == 0xff000000)
+ easy = 2;
+ }
+ if (!easy) {
+ if (!mr || !mg || !mb) {
+ STBI_FREE(out);
+ return stbi__errpuc("bad masks", "Corrupt BMP");
+ }
+ // right shift amt to put high bit in position #7
+ rshift = stbi__high_bit(mr) - 7;
+ rcount = stbi__bitcount(mr);
+ gshift = stbi__high_bit(mg) - 7;
+ gcount = stbi__bitcount(mg);
+ bshift = stbi__high_bit(mb) - 7;
+ bcount = stbi__bitcount(mb);
+ ashift = stbi__high_bit(ma) - 7;
+ acount = stbi__bitcount(ma);
+ if (rcount > 8 || gcount > 8 || bcount > 8 || acount > 8) {
+ STBI_FREE(out);
+ return stbi__errpuc("bad masks", "Corrupt BMP");
+ }
+ }
+ for (j = 0; j < (int)s->img_y; ++j) {
+ if (easy) {
+ for (i = 0; i < (int)s->img_x; ++i) {
+ unsigned char a;
+ out[z + 2] = stbi__get8(s);
+ out[z + 1] = stbi__get8(s);
+ out[z + 0] = stbi__get8(s);
+ z += 3;
+ a = (easy == 2 ? stbi__get8(s) : 255);
+ all_a |= a;
+ if (target == 4)
+ out[z++] = a;
+ }
+ } else {
+ int bpp = info.bpp;
+ for (i = 0; i < (int)s->img_x; ++i) {
+ stbi__uint32 v = (bpp == 16 ?
+ (stbi__uint32)stbi__get16le(s) :
+ stbi__get32le(s));
+ unsigned int a;
+ out[z++] = STBI__BYTECAST(
+ stbi__shiftsigned(v & mr, rshift, rcount));
+ out[z++] = STBI__BYTECAST(
+ stbi__shiftsigned(v & mg, gshift, gcount));
+ out[z++] = STBI__BYTECAST(
+ stbi__shiftsigned(v & mb, bshift, bcount));
+ a = (ma ? stbi__shiftsigned(v & ma, ashift, acount) : 255);
+ all_a |= a;
+ if (target == 4)
+ out[z++] = STBI__BYTECAST(a);
+ }
+ }
+ stbi__skip(s, pad);
+ }
+ }
+
+ // if alpha channel is all 0s, replace with all 255s
+ if (target == 4 && all_a == 0)
+ for (i = 4 * s->img_x * s->img_y - 1; i >= 0; i -= 4)
+ out[i] = 255;
+
+ if (flip_vertically) {
+ stbi_uc t;
+ for (j = 0; j < (int)s->img_y >> 1; ++j) {
+ stbi_uc *p1 = out + j * s->img_x * target;
+ stbi_uc *p2 = out + (s->img_y - 1 - j) * s->img_x * target;
+ for (i = 0; i < (int)s->img_x * target; ++i) {
+ t = p1[i];
+ p1[i] = p2[i];
+ p2[i] = t;
+ }
+ }
+ }
+
+ if (req_comp && req_comp != target) {
+ out = stbi__convert_format(out, target, req_comp, s->img_x, s->img_y);
+ if (out == NULL)
+ return out; // stbi__convert_format frees input on failure
+ }
+
+ *x = s->img_x;
+ *y = s->img_y;
+ if (comp)
+ *comp = s->img_n;
+ return out;
+}
+#endif
+
+// Targa Truevision - TGA
+// by Jonathan Dummer
+#ifndef STBI_NO_TGA
+// returns STBI_rgb or whatever, 0 on error
+static int stbi__tga_get_comp(int bits_per_pixel, int is_grey, int *is_rgb16)
+{
+ // only RGB or RGBA (incl. 16bit) or grey allowed
+ if (is_rgb16)
+ *is_rgb16 = 0;
+ switch (bits_per_pixel) {
+ case 8:
+ return STBI_grey;
+ case 16:
+ if (is_grey)
+ return STBI_grey_alpha;
+ // fallthrough
+ case 15:
+ if (is_rgb16)
+ *is_rgb16 = 1;
+ return STBI_rgb;
+ case 24: // fallthrough
+ case 32:
+ return bits_per_pixel / 8;
+ default:
+ return 0;
+ }
+}
+
+static int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp)
+{
+ int tga_w, tga_h, tga_comp, tga_image_type, tga_bits_per_pixel, tga_colormap_bpp;
+ int sz, tga_colormap_type;
+ stbi__get8(s); // discard Offset
+ tga_colormap_type = stbi__get8(s); // colormap type
+ if (tga_colormap_type > 1) {
+ stbi__rewind(s);
+ return 0; // only RGB or indexed allowed
+ }
+ tga_image_type = stbi__get8(s); // image type
+ if (tga_colormap_type == 1) { // colormapped (paletted) image
+ if (tga_image_type != 1 && tga_image_type != 9) {
+ stbi__rewind(s);
+ return 0;
+ }
+ stbi__skip(s,
+ 4); // skip index of first colormap entry and number of entries
+ sz = stbi__get8(s); // check bits per palette color entry
+ if ((sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32)) {
+ stbi__rewind(s);
+ return 0;
+ }
+ stbi__skip(s, 4); // skip image x and y origin
+ tga_colormap_bpp = sz;
+ } else { // "normal" image w/o colormap - only RGB or grey allowed, +/- RLE
+ if ((tga_image_type != 2) && (tga_image_type != 3) && (tga_image_type != 10) &&
+ (tga_image_type != 11)) {
+ stbi__rewind(s);
+ return 0; // only RGB or grey allowed, +/- RLE
+ }
+ stbi__skip(s,
+ 9); // skip colormap specification and image x/y origin
+ tga_colormap_bpp = 0;
+ }
+ tga_w = stbi__get16le(s);
+ if (tga_w < 1) {
+ stbi__rewind(s);
+ return 0; // test width
+ }
+ tga_h = stbi__get16le(s);
+ if (tga_h < 1) {
+ stbi__rewind(s);
+ return 0; // test height
+ }
+ tga_bits_per_pixel = stbi__get8(s); // bits per pixel
+ stbi__get8(s); // ignore alpha bits
+ if (tga_colormap_bpp != 0) {
+ if ((tga_bits_per_pixel != 8) && (tga_bits_per_pixel != 16)) {
+ // when using a colormap, tga_bits_per_pixel is the size of the indexes
+ // I don't think anything but 8 or 16bit indexes makes sense
+ stbi__rewind(s);
+ return 0;
+ }
+ tga_comp = stbi__tga_get_comp(tga_colormap_bpp, 0, NULL);
+ } else {
+ tga_comp = stbi__tga_get_comp(
+ tga_bits_per_pixel, (tga_image_type == 3) || (tga_image_type == 11), NULL);
+ }
+ if (!tga_comp) {
+ stbi__rewind(s);
+ return 0;
+ }
+ if (x)
+ *x = tga_w;
+ if (y)
+ *y = tga_h;
+ if (comp)
+ *comp = tga_comp;
+ return 1; // seems to have passed everything
+}
+
+static int stbi__tga_test(stbi__context *s)
+{
+ int res = 0;
+ int sz, tga_color_type;
+ stbi__get8(s); // discard Offset
+ tga_color_type = stbi__get8(s); // color type
+ if (tga_color_type > 1)
+ goto errorEnd; // only RGB or indexed allowed
+ sz = stbi__get8(s); // image type
+ if (tga_color_type == 1) { // colormapped (paletted) image
+ if (sz != 1 && sz != 9)
+ goto errorEnd; // colortype 1 demands image type 1 or 9
+ stbi__skip(s,
+ 4); // skip index of first colormap entry and number of entries
+ sz = stbi__get8(s); // check bits per palette color entry
+ if ((sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32))
+ goto errorEnd;
+ stbi__skip(s, 4); // skip image x and y origin
+ } else { // "normal" image w/o colormap
+ if ((sz != 2) && (sz != 3) && (sz != 10) && (sz != 11))
+ goto errorEnd; // only RGB or grey allowed, +/- RLE
+ stbi__skip(s,
+ 9); // skip colormap specification and image x/y origin
+ }
+ if (stbi__get16le(s) < 1)
+ goto errorEnd; // test width
+ if (stbi__get16le(s) < 1)
+ goto errorEnd; // test height
+ sz = stbi__get8(s); // bits per pixel
+ if ((tga_color_type == 1) && (sz != 8) && (sz != 16))
+ goto errorEnd; // for colormapped images, bpp is size of an index
+ if ((sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32))
+ goto errorEnd;
+
+ res = 1; // if we got this far, everything's good and we can return 1 instead of 0
+
+errorEnd:
+ stbi__rewind(s);
+ return res;
+}
+
+// read 16bit value and convert to 24bit RGB
+static void stbi__tga_read_rgb16(stbi__context *s, stbi_uc *out)
+{
+ stbi__uint16 px = (stbi__uint16)stbi__get16le(s);
+ stbi__uint16 fiveBitMask = 31;
+ // we have 3 channels with 5bits each
+ int r = (px >> 10) & fiveBitMask;
+ int g = (px >> 5) & fiveBitMask;
+ int b = px & fiveBitMask;
+ // Note that this saves the data in RGB(A) order, so it doesn't need to be swapped later
+ out[0] = (stbi_uc)((r * 255) / 31);
+ out[1] = (stbi_uc)((g * 255) / 31);
+ out[2] = (stbi_uc)((b * 255) / 31);
+
+ // some people claim that the most significant bit might be used for alpha
+ // (possibly if an alpha-bit is set in the "image descriptor byte")
+ // but that only made 16bit test images completely translucent..
+ // so let's treat all 15 and 16bit TGAs as RGB with no alpha.
+}
+
+static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri)
+{
+ // read in the TGA header stuff
+ int tga_offset = stbi__get8(s);
+ int tga_indexed = stbi__get8(s);
+ int tga_image_type = stbi__get8(s);
+ int tga_is_RLE = 0;
+ int tga_palette_start = stbi__get16le(s);
+ int tga_palette_len = stbi__get16le(s);
+ int tga_palette_bits = stbi__get8(s);
+ int tga_x_origin = stbi__get16le(s);
+ int tga_y_origin = stbi__get16le(s);
+ int tga_width = stbi__get16le(s);
+ int tga_height = stbi__get16le(s);
+ int tga_bits_per_pixel = stbi__get8(s);
+ int tga_comp, tga_rgb16 = 0;
+ int tga_inverted = stbi__get8(s);
+ // int tga_alpha_bits = tga_inverted & 15; // the 4 lowest bits - unused (useless?)
+ // image data
+ unsigned char *tga_data;
+ unsigned char *tga_palette = NULL;
+ int i, j;
+ unsigned char raw_data[4] = { 0 };
+ int RLE_count = 0;
+ int RLE_repeating = 0;
+ int read_next_pixel = 1;
+ STBI_NOTUSED(ri);
+ STBI_NOTUSED(tga_x_origin); // @TODO
+ STBI_NOTUSED(tga_y_origin); // @TODO
+
+ if (tga_height > STBI_MAX_DIMENSIONS)
+ return stbi__errpuc("too large", "Very large image (corrupt?)");
+ if (tga_width > STBI_MAX_DIMENSIONS)
+ return stbi__errpuc("too large", "Very large image (corrupt?)");
+
+ // do a tiny bit of precessing
+ if (tga_image_type >= 8) {
+ tga_image_type -= 8;
+ tga_is_RLE = 1;
+ }
+ tga_inverted = 1 - ((tga_inverted >> 5) & 1);
+
+ // If I'm paletted, then I'll use the number of bits from the palette
+ if (tga_indexed)
+ tga_comp = stbi__tga_get_comp(tga_palette_bits, 0, &tga_rgb16);
+ else
+ tga_comp =
+ stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3), &tga_rgb16);
+
+ if (!tga_comp) // shouldn't really happen, stbi__tga_test() should have ensured basic consistency
+ return stbi__errpuc("bad format", "Can't find out TGA pixelformat");
+
+ // tga info
+ *x = tga_width;
+ *y = tga_height;
+ if (comp)
+ *comp = tga_comp;
+
+ if (!stbi__mad3sizes_valid(tga_width, tga_height, tga_comp, 0))
+ return stbi__errpuc("too large", "Corrupt TGA");
+
+ tga_data = (unsigned char *)stbi__malloc_mad3(tga_width, tga_height, tga_comp, 0);
+ if (!tga_data)
+ return stbi__errpuc("outofmem", "Out of memory");
+
+ // skip to the data's starting position (offset usually = 0)
+ stbi__skip(s, tga_offset);
+
+ if (!tga_indexed && !tga_is_RLE && !tga_rgb16) {
+ for (i = 0; i < tga_height; ++i) {
+ int row = tga_inverted ? tga_height - i - 1 : i;
+ stbi_uc *tga_row = tga_data + row * tga_width * tga_comp;
+ stbi__getn(s, tga_row, tga_width * tga_comp);
+ }
+ } else {
+ // do I need to load a palette?
+ if (tga_indexed) {
+ if (tga_palette_len == 0) { /* you have to have at least one entry! */
+ STBI_FREE(tga_data);
+ return stbi__errpuc("bad palette", "Corrupt TGA");
+ }
+
+ // any data to skip? (offset usually = 0)
+ stbi__skip(s, tga_palette_start);
+ // load the palette
+ tga_palette =
+ (unsigned char *)stbi__malloc_mad2(tga_palette_len, tga_comp, 0);
+ if (!tga_palette) {
+ STBI_FREE(tga_data);
+ return stbi__errpuc("outofmem", "Out of memory");
+ }
+ if (tga_rgb16) {
+ stbi_uc *pal_entry = tga_palette;
+ STBI_ASSERT(tga_comp == STBI_rgb);
+ for (i = 0; i < tga_palette_len; ++i) {
+ stbi__tga_read_rgb16(s, pal_entry);
+ pal_entry += tga_comp;
+ }
+ } else if (!stbi__getn(s, tga_palette, tga_palette_len * tga_comp)) {
+ STBI_FREE(tga_data);
+ STBI_FREE(tga_palette);
+ return stbi__errpuc("bad palette", "Corrupt TGA");
+ }
+ }
+ // load the data
+ for (i = 0; i < tga_width * tga_height; ++i) {
+ // if I'm in RLE mode, do I need to get a RLE stbi__pngchunk?
+ if (tga_is_RLE) {
+ if (RLE_count == 0) {
+ // yep, get the next byte as a RLE command
+ int RLE_cmd = stbi__get8(s);
+ RLE_count = 1 + (RLE_cmd & 127);
+ RLE_repeating = RLE_cmd >> 7;
+ read_next_pixel = 1;
+ } else if (!RLE_repeating) {
+ read_next_pixel = 1;
+ }
+ } else {
+ read_next_pixel = 1;
+ }
+ // OK, if I need to read a pixel, do it now
+ if (read_next_pixel) {
+ // load however much data we did have
+ if (tga_indexed) {
+ // read in index, then perform the lookup
+ int pal_idx = (tga_bits_per_pixel == 8) ? stbi__get8(s) :
+ stbi__get16le(s);
+ if (pal_idx >= tga_palette_len) {
+ // invalid index
+ pal_idx = 0;
+ }
+ pal_idx *= tga_comp;
+ for (j = 0; j < tga_comp; ++j) {
+ raw_data[j] = tga_palette[pal_idx + j];
+ }
+ } else if (tga_rgb16) {
+ STBI_ASSERT(tga_comp == STBI_rgb);
+ stbi__tga_read_rgb16(s, raw_data);
+ } else {
+ // read in the data raw
+ for (j = 0; j < tga_comp; ++j) {
+ raw_data[j] = stbi__get8(s);
+ }
+ }
+ // clear the reading flag for the next pixel
+ read_next_pixel = 0;
+ } // end of reading a pixel
+
+ // copy data
+ for (j = 0; j < tga_comp; ++j)
+ tga_data[i * tga_comp + j] = raw_data[j];
+
+ // in case we're in RLE mode, keep counting down
+ --RLE_count;
+ }
+ // do I need to invert the image?
+ if (tga_inverted) {
+ for (j = 0; j * 2 < tga_height; ++j) {
+ int index1 = j * tga_width * tga_comp;
+ int index2 = (tga_height - 1 - j) * tga_width * tga_comp;
+ for (i = tga_width * tga_comp; i > 0; --i) {
+ unsigned char temp = tga_data[index1];
+ tga_data[index1] = tga_data[index2];
+ tga_data[index2] = temp;
+ ++index1;
+ ++index2;
+ }
+ }
+ }
+ // clear my palette, if I had one
+ if (tga_palette != NULL) {
+ STBI_FREE(tga_palette);
+ }
+ }
+
+ // swap RGB - if the source data was RGB16, it already is in the right order
+ if (tga_comp >= 3 && !tga_rgb16) {
+ unsigned char *tga_pixel = tga_data;
+ for (i = 0; i < tga_width * tga_height; ++i) {
+ unsigned char temp = tga_pixel[0];
+ tga_pixel[0] = tga_pixel[2];
+ tga_pixel[2] = temp;
+ tga_pixel += tga_comp;
+ }
+ }
+
+ // convert to target component count
+ if (req_comp && req_comp != tga_comp)
+ tga_data =
+ stbi__convert_format(tga_data, tga_comp, req_comp, tga_width, tga_height);
+
+ // the things I do to get rid of an error message, and yet keep
+ // Microsoft's C compilers happy... [8^(
+ tga_palette_start = tga_palette_len = tga_palette_bits = tga_x_origin = tga_y_origin = 0;
+ STBI_NOTUSED(tga_palette_start);
+ // OK, done
+ return tga_data;
+}
+#endif
+
+// *************************************************************************************************
+// Photoshop PSD loader -- PD by Thatcher Ulrich, integration by Nicolas Schulz, tweaked by STB
+
+#ifndef STBI_NO_PSD
+static int stbi__psd_test(stbi__context *s)
+{
+ int r = (stbi__get32be(s) == 0x38425053);
+ stbi__rewind(s);
+ return r;
+}
+
+static int stbi__psd_decode_rle(stbi__context *s, stbi_uc *p, int pixelCount)
+{
+ int count, nleft, len;
+
+ count = 0;
+ while ((nleft = pixelCount - count) > 0) {
+ len = stbi__get8(s);
+ if (len == 128) {
+ // No-op.
+ } else if (len < 128) {
+ // Copy next len+1 bytes literally.
+ len++;
+ if (len > nleft)
+ return 0; // corrupt data
+ count += len;
+ while (len) {
+ *p = stbi__get8(s);
+ p += 4;
+ len--;
+ }
+ } else if (len > 128) {
+ stbi_uc val;
+ // Next -len+1 bytes in the dest are replicated from next source byte.
+ // (Interpret len as a negative 8-bit int.)
+ len = 257 - len;
+ if (len > nleft)
+ return 0; // corrupt data
+ val = stbi__get8(s);
+ count += len;
+ while (len) {
+ *p = val;
+ p += 4;
+ len--;
+ }
+ }
+ }
+
+ return 1;
+}
+
+static void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri, int bpc)
+{
+ int pixelCount;
+ int channelCount, compression;
+ int channel, i;
+ int bitdepth;
+ int w, h;
+ stbi_uc *out;
+ STBI_NOTUSED(ri);
+
+ // Check identifier
+ if (stbi__get32be(s) != 0x38425053) // "8BPS"
+ return stbi__errpuc("not PSD", "Corrupt PSD image");
+
+ // Check file type version.
+ if (stbi__get16be(s) != 1)
+ return stbi__errpuc("wrong version", "Unsupported version of PSD image");
+
+ // Skip 6 reserved bytes.
+ stbi__skip(s, 6);
+
+ // Read the number of channels (R, G, B, A, etc).
+ channelCount = stbi__get16be(s);
+ if (channelCount < 0 || channelCount > 16)
+ return stbi__errpuc("wrong channel count",
+ "Unsupported number of channels in PSD image");
+
+ // Read the rows and columns of the image.
+ h = stbi__get32be(s);
+ w = stbi__get32be(s);
+
+ if (h > STBI_MAX_DIMENSIONS)
+ return stbi__errpuc("too large", "Very large image (corrupt?)");
+ if (w > STBI_MAX_DIMENSIONS)
+ return stbi__errpuc("too large", "Very large image (corrupt?)");
+
+ // Make sure the depth is 8 bits.
+ bitdepth = stbi__get16be(s);
+ if (bitdepth != 8 && bitdepth != 16)
+ return stbi__errpuc("unsupported bit depth", "PSD bit depth is not 8 or 16 bit");
+
+ // Make sure the color mode is RGB.
+ // Valid options are:
+ // 0: Bitmap
+ // 1: Grayscale
+ // 2: Indexed color
+ // 3: RGB color
+ // 4: CMYK color
+ // 7: Multichannel
+ // 8: Duotone
+ // 9: Lab color
+ if (stbi__get16be(s) != 3)
+ return stbi__errpuc("wrong color format", "PSD is not in RGB color format");
+
+ // Skip the Mode Data. (It's the palette for indexed color; other info for other modes.)
+ stbi__skip(s, stbi__get32be(s));
+
+ // Skip the image resources. (resolution, pen tool paths, etc)
+ stbi__skip(s, stbi__get32be(s));
+
+ // Skip the reserved data.
+ stbi__skip(s, stbi__get32be(s));
+
+ // Find out if the data is compressed.
+ // Known values:
+ // 0: no compression
+ // 1: RLE compressed
+ compression = stbi__get16be(s);
+ if (compression > 1)
+ return stbi__errpuc("bad compression", "PSD has an unknown compression format");
+
+ // Check size
+ if (!stbi__mad3sizes_valid(4, w, h, 0))
+ return stbi__errpuc("too large", "Corrupt PSD");
+
+ // Create the destination image.
+
+ if (!compression && bitdepth == 16 && bpc == 16) {
+ out = (stbi_uc *)stbi__malloc_mad3(8, w, h, 0);
+ ri->bits_per_channel = 16;
+ } else
+ out = (stbi_uc *)stbi__malloc(4 * w * h);
+
+ if (!out)
+ return stbi__errpuc("outofmem", "Out of memory");
+ pixelCount = w * h;
+
+ // Initialize the data to zero.
+ //memset( out, 0, pixelCount * 4 );
+
+ // Finally, the image data.
+ if (compression) {
+ // RLE as used by .PSD and .TIFF
+ // Loop until you get the number of unpacked bytes you are expecting:
+ // Read the next source byte into n.
+ // If n is between 0 and 127 inclusive, copy the next n+1 bytes literally.
+ // Else if n is between -127 and -1 inclusive, copy the next byte -n+1 times.
+ // Else if n is 128, noop.
+ // Endloop
+
+ // The RLE-compressed data is preceded by a 2-byte data count for each row in the data,
+ // which we're going to just skip.
+ stbi__skip(s, h * channelCount * 2);
+
+ // Read the RLE data by channel.
+ for (channel = 0; channel < 4; channel++) {
+ stbi_uc *p;
+
+ p = out + channel;
+ if (channel >= channelCount) {
+ // Fill this channel with default data.
+ for (i = 0; i < pixelCount; i++, p += 4)
+ *p = (channel == 3 ? 255 : 0);
+ } else {
+ // Read the RLE data.
+ if (!stbi__psd_decode_rle(s, p, pixelCount)) {
+ STBI_FREE(out);
+ return stbi__errpuc("corrupt", "bad RLE data");
+ }
+ }
+ }
+ } else {
+ // We're at the raw image data. It's each channel in order (Red, Green, Blue, Alpha, ...)
+ // where each channel consists of an 8-bit (or 16-bit) value for each pixel in the image.
+
+ // Read the data by channel.
+ for (channel = 0; channel < 4; channel++) {
+ if (channel >= channelCount) {
+ // Fill this channel with default data.
+ if (bitdepth == 16 && bpc == 16) {
+ stbi__uint16 *q = ((stbi__uint16 *)out) + channel;
+ stbi__uint16 val = channel == 3 ? 65535 : 0;
+ for (i = 0; i < pixelCount; i++, q += 4)
+ *q = val;
+ } else {
+ stbi_uc *p = out + channel;
+ stbi_uc val = channel == 3 ? 255 : 0;
+ for (i = 0; i < pixelCount; i++, p += 4)
+ *p = val;
+ }
+ } else {
+ if (ri->bits_per_channel == 16) { // output bpc
+ stbi__uint16 *q = ((stbi__uint16 *)out) + channel;
+ for (i = 0; i < pixelCount; i++, q += 4)
+ *q = (stbi__uint16)stbi__get16be(s);
+ } else {
+ stbi_uc *p = out + channel;
+ if (bitdepth == 16) { // input bpc
+ for (i = 0; i < pixelCount; i++, p += 4)
+ *p = (stbi_uc)(stbi__get16be(s) >> 8);
+ } else {
+ for (i = 0; i < pixelCount; i++, p += 4)
+ *p = stbi__get8(s);
+ }
+ }
+ }
+ }
+ }
+
+ // remove weird white matte from PSD
+ if (channelCount >= 4) {
+ if (ri->bits_per_channel == 16) {
+ for (i = 0; i < w * h; ++i) {
+ stbi__uint16 *pixel = (stbi__uint16 *)out + 4 * i;
+ if (pixel[3] != 0 && pixel[3] != 65535) {
+ float a = pixel[3] / 65535.0f;
+ float ra = 1.0f / a;
+ float inv_a = 65535.0f * (1 - ra);
+ pixel[0] = (stbi__uint16)(pixel[0] * ra + inv_a);
+ pixel[1] = (stbi__uint16)(pixel[1] * ra + inv_a);
+ pixel[2] = (stbi__uint16)(pixel[2] * ra + inv_a);
+ }
+ }
+ } else {
+ for (i = 0; i < w * h; ++i) {
+ unsigned char *pixel = out + 4 * i;
+ if (pixel[3] != 0 && pixel[3] != 255) {
+ float a = pixel[3] / 255.0f;
+ float ra = 1.0f / a;
+ float inv_a = 255.0f * (1 - ra);
+ pixel[0] = (unsigned char)(pixel[0] * ra + inv_a);
+ pixel[1] = (unsigned char)(pixel[1] * ra + inv_a);
+ pixel[2] = (unsigned char)(pixel[2] * ra + inv_a);
+ }
+ }
+ }
+ }
+
+ // convert to desired output format
+ if (req_comp && req_comp != 4) {
+ if (ri->bits_per_channel == 16)
+ out = (stbi_uc *)stbi__convert_format16((stbi__uint16 *)out, 4, req_comp, w,
+ h);
+ else
+ out = stbi__convert_format(out, 4, req_comp, w, h);
+ if (out == NULL)
+ return out; // stbi__convert_format frees input on failure
+ }
+
+ if (comp)
+ *comp = 4;
+ *y = h;
+ *x = w;
+
+ return out;
+}
+#endif
+
+// *************************************************************************************************
+// Softimage PIC loader
+// by Tom Seddon
+//
+// See http://softimage.wiki.softimage.com/index.php/INFO:_PIC_file_format
+// See http://ozviz.wasp.uwa.edu.au/~pbourke/dataformats/softimagepic/
+
+#ifndef STBI_NO_PIC
+static int stbi__pic_is4(stbi__context *s, const char *str)
+{
+ int i;
+ for (i = 0; i < 4; ++i)
+ if (stbi__get8(s) != (stbi_uc)str[i])
+ return 0;
+
+ return 1;
+}
+
+static int stbi__pic_test_core(stbi__context *s)
+{
+ int i;
+
+ if (!stbi__pic_is4(s, "\x53\x80\xF6\x34"))
+ return 0;
+
+ for (i = 0; i < 84; ++i)
+ stbi__get8(s);
+
+ if (!stbi__pic_is4(s, "PICT"))
+ return 0;
+
+ return 1;
+}
+
+typedef struct {
+ stbi_uc size, type, channel;
+} stbi__pic_packet;
+
+static stbi_uc *stbi__readval(stbi__context *s, int channel, stbi_uc *dest)
+{
+ int mask = 0x80, i;
+
+ for (i = 0; i < 4; ++i, mask >>= 1) {
+ if (channel & mask) {
+ if (stbi__at_eof(s))
+ return stbi__errpuc("bad file", "PIC file too short");
+ dest[i] = stbi__get8(s);
+ }
+ }
+
+ return dest;
+}
+
+static void stbi__copyval(int channel, stbi_uc *dest, const stbi_uc *src)
+{
+ int mask = 0x80, i;
+
+ for (i = 0; i < 4; ++i, mask >>= 1)
+ if (channel & mask)
+ dest[i] = src[i];
+}
+
+static stbi_uc *stbi__pic_load_core(stbi__context *s, int width, int height, int *comp,
+ stbi_uc *result)
+{
+ int act_comp = 0, num_packets = 0, y, chained;
+ stbi__pic_packet packets[10];
+
+ // this will (should...) cater for even some bizarre stuff like having data
+ // for the same channel in multiple packets.
+ do {
+ stbi__pic_packet *packet;
+
+ if (num_packets == sizeof(packets) / sizeof(packets[0]))
+ return stbi__errpuc("bad format", "too many packets");
+
+ packet = &packets[num_packets++];
+
+ chained = stbi__get8(s);
+ packet->size = stbi__get8(s);
+ packet->type = stbi__get8(s);
+ packet->channel = stbi__get8(s);
+
+ act_comp |= packet->channel;
+
+ if (stbi__at_eof(s))
+ return stbi__errpuc("bad file", "file too short (reading packets)");
+ if (packet->size != 8)
+ return stbi__errpuc("bad format", "packet isn't 8bpp");
+ } while (chained);
+
+ *comp = (act_comp & 0x10 ? 4 : 3); // has alpha channel?
+
+ for (y = 0; y < height; ++y) {
+ int packet_idx;
+
+ for (packet_idx = 0; packet_idx < num_packets; ++packet_idx) {
+ stbi__pic_packet *packet = &packets[packet_idx];
+ stbi_uc *dest = result + y * width * 4;
+
+ switch (packet->type) {
+ default:
+ return stbi__errpuc("bad format",
+ "packet has bad compression type");
+
+ case 0: { //uncompressed
+ int x;
+
+ for (x = 0; x < width; ++x, dest += 4)
+ if (!stbi__readval(s, packet->channel, dest))
+ return 0;
+ break;
+ }
+
+ case 1: //Pure RLE
+ {
+ int left = width, i;
+
+ while (left > 0) {
+ stbi_uc count, value[4];
+
+ count = stbi__get8(s);
+ if (stbi__at_eof(s))
+ return stbi__errpuc(
+ "bad file",
+ "file too short (pure read count)");
+
+ if (count > left)
+ count = (stbi_uc)left;
+
+ if (!stbi__readval(s, packet->channel, value))
+ return 0;
+
+ for (i = 0; i < count; ++i, dest += 4)
+ stbi__copyval(packet->channel, dest, value);
+ left -= count;
+ }
+ } break;
+
+ case 2: { //Mixed RLE
+ int left = width;
+ while (left > 0) {
+ int count = stbi__get8(s), i;
+ if (stbi__at_eof(s))
+ return stbi__errpuc(
+ "bad file",
+ "file too short (mixed read count)");
+
+ if (count >= 128) { // Repeated
+ stbi_uc value[4];
+
+ if (count == 128)
+ count = stbi__get16be(s);
+ else
+ count -= 127;
+ if (count > left)
+ return stbi__errpuc("bad file",
+ "scanline overrun");
+
+ if (!stbi__readval(s, packet->channel, value))
+ return 0;
+
+ for (i = 0; i < count; ++i, dest += 4)
+ stbi__copyval(packet->channel, dest, value);
+ } else { // Raw
+ ++count;
+ if (count > left)
+ return stbi__errpuc("bad file",
+ "scanline overrun");
+
+ for (i = 0; i < count; ++i, dest += 4)
+ if (!stbi__readval(s, packet->channel,
+ dest))
+ return 0;
+ }
+ left -= count;
+ }
+ break;
+ }
+ }
+ }
+ }
+
+ return result;
+}
+
+static void *stbi__pic_load(stbi__context *s, int *px, int *py, int *comp, int req_comp,
+ stbi__result_info *ri)
+{
+ stbi_uc *result;
+ int i, x, y, internal_comp;
+ STBI_NOTUSED(ri);
+
+ if (!comp)
+ comp = &internal_comp;
+
+ for (i = 0; i < 92; ++i)
+ stbi__get8(s);
+
+ x = stbi__get16be(s);
+ y = stbi__get16be(s);
+
+ if (y > STBI_MAX_DIMENSIONS)
+ return stbi__errpuc("too large", "Very large image (corrupt?)");
+ if (x > STBI_MAX_DIMENSIONS)
+ return stbi__errpuc("too large", "Very large image (corrupt?)");
+
+ if (stbi__at_eof(s))
+ return stbi__errpuc("bad file", "file too short (pic header)");
+ if (!stbi__mad3sizes_valid(x, y, 4, 0))
+ return stbi__errpuc("too large", "PIC image too large to decode");
+
+ stbi__get32be(s); //skip `ratio'
+ stbi__get16be(s); //skip `fields'
+ stbi__get16be(s); //skip `pad'
+
+ // intermediate buffer is RGBA
+ result = (stbi_uc *)stbi__malloc_mad3(x, y, 4, 0);
+ if (!result)
+ return stbi__errpuc("outofmem", "Out of memory");
+ memset(result, 0xff, x * y * 4);
+
+ if (!stbi__pic_load_core(s, x, y, comp, result)) {
+ STBI_FREE(result);
+ result = 0;
+ }
+ *px = x;
+ *py = y;
+ if (req_comp == 0)
+ req_comp = *comp;
+ result = stbi__convert_format(result, 4, req_comp, x, y);
+
+ return result;
+}
+
+static int stbi__pic_test(stbi__context *s)
+{
+ int r = stbi__pic_test_core(s);
+ stbi__rewind(s);
+ return r;
+}
+#endif
+
+// *************************************************************************************************
+// GIF loader -- public domain by Jean-Marc Lienher -- simplified/shrunk by stb
+
+#ifndef STBI_NO_GIF
+typedef struct {
+ stbi__int16 prefix;
+ stbi_uc first;
+ stbi_uc suffix;
+} stbi__gif_lzw;
+
+typedef struct {
+ int w, h;
+ stbi_uc *out; // output buffer (always 4 components)
+ stbi_uc *background; // The current "background" as far as a gif is concerned
+ stbi_uc *history;
+ int flags, bgindex, ratio, transparent, eflags;
+ stbi_uc pal[256][4];
+ stbi_uc lpal[256][4];
+ stbi__gif_lzw codes[8192];
+ stbi_uc *color_table;
+ int parse, step;
+ int lflags;
+ int start_x, start_y;
+ int max_x, max_y;
+ int cur_x, cur_y;
+ int line_size;
+ int delay;
+} stbi__gif;
+
+static int stbi__gif_test_raw(stbi__context *s)
+{
+ int sz;
+ if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' ||
+ stbi__get8(s) != '8')
+ return 0;
+ sz = stbi__get8(s);
+ if (sz != '9' && sz != '7')
+ return 0;
+ if (stbi__get8(s) != 'a')
+ return 0;
+ return 1;
+}
+
+static int stbi__gif_test(stbi__context *s)
+{
+ int r = stbi__gif_test_raw(s);
+ stbi__rewind(s);
+ return r;
+}
+
+static void stbi__gif_parse_colortable(stbi__context *s, stbi_uc pal[256][4], int num_entries,
+ int transp)
+{
+ int i;
+ for (i = 0; i < num_entries; ++i) {
+ pal[i][2] = stbi__get8(s);
+ pal[i][1] = stbi__get8(s);
+ pal[i][0] = stbi__get8(s);
+ pal[i][3] = transp == i ? 0 : 255;
+ }
+}
+
+static int stbi__gif_header(stbi__context *s, stbi__gif *g, int *comp, int is_info)
+{
+ stbi_uc version;
+ if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' ||
+ stbi__get8(s) != '8')
+ return stbi__err("not GIF", "Corrupt GIF");
+
+ version = stbi__get8(s);
+ if (version != '7' && version != '9')
+ return stbi__err("not GIF", "Corrupt GIF");
+ if (stbi__get8(s) != 'a')
+ return stbi__err("not GIF", "Corrupt GIF");
+
+ stbi__g_failure_reason = "";
+ g->w = stbi__get16le(s);
+ g->h = stbi__get16le(s);
+ g->flags = stbi__get8(s);
+ g->bgindex = stbi__get8(s);
+ g->ratio = stbi__get8(s);
+ g->transparent = -1;
+
+ if (g->w > STBI_MAX_DIMENSIONS)
+ return stbi__err("too large", "Very large image (corrupt?)");
+ if (g->h > STBI_MAX_DIMENSIONS)
+ return stbi__err("too large", "Very large image (corrupt?)");
+
+ if (comp != 0)
+ *comp = 4; // can't actually tell whether it's 3 or 4 until we parse the comments
+
+ if (is_info)
+ return 1;
+
+ if (g->flags & 0x80)
+ stbi__gif_parse_colortable(s, g->pal, 2 << (g->flags & 7), -1);
+
+ return 1;
+}
+
+static int stbi__gif_info_raw(stbi__context *s, int *x, int *y, int *comp)
+{
+ stbi__gif *g = (stbi__gif *)stbi__malloc(sizeof(stbi__gif));
+ if (!g)
+ return stbi__err("outofmem", "Out of memory");
+ if (!stbi__gif_header(s, g, comp, 1)) {
+ STBI_FREE(g);
+ stbi__rewind(s);
+ return 0;
+ }
+ if (x)
+ *x = g->w;
+ if (y)
+ *y = g->h;
+ STBI_FREE(g);
+ return 1;
+}
+
+static void stbi__out_gif_code(stbi__gif *g, stbi__uint16 code)
+{
+ stbi_uc *p, *c;
+ int idx;
+
+ // recurse to decode the prefixes, since the linked-list is backwards,
+ // and working backwards through an interleaved image would be nasty
+ if (g->codes[code].prefix >= 0)
+ stbi__out_gif_code(g, g->codes[code].prefix);
+
+ if (g->cur_y >= g->max_y)
+ return;
+
+ idx = g->cur_x + g->cur_y;
+ p = &g->out[idx];
+ g->history[idx / 4] = 1;
+
+ c = &g->color_table[g->codes[code].suffix * 4];
+ if (c[3] > 128) { // don't render transparent pixels;
+ p[0] = c[2];
+ p[1] = c[1];
+ p[2] = c[0];
+ p[3] = c[3];
+ }
+ g->cur_x += 4;
+
+ if (g->cur_x >= g->max_x) {
+ g->cur_x = g->start_x;
+ g->cur_y += g->step;
+
+ while (g->cur_y >= g->max_y && g->parse > 0) {
+ g->step = (1 << g->parse) * g->line_size;
+ g->cur_y = g->start_y + (g->step >> 1);
+ --g->parse;
+ }
+ }
+}
+
+static stbi_uc *stbi__process_gif_raster(stbi__context *s, stbi__gif *g)
+{
+ stbi_uc lzw_cs;
+ stbi__int32 len, init_code;
+ stbi__uint32 first;
+ stbi__int32 codesize, codemask, avail, oldcode, bits, valid_bits, clear;
+ stbi__gif_lzw *p;
+
+ lzw_cs = stbi__get8(s);
+ if (lzw_cs > 12)
+ return NULL;
+ clear = 1 << lzw_cs;
+ first = 1;
+ codesize = lzw_cs + 1;
+ codemask = (1 << codesize) - 1;
+ bits = 0;
+ valid_bits = 0;
+ for (init_code = 0; init_code < clear; init_code++) {
+ g->codes[init_code].prefix = -1;
+ g->codes[init_code].first = (stbi_uc)init_code;
+ g->codes[init_code].suffix = (stbi_uc)init_code;
+ }
+
+ // support no starting clear code
+ avail = clear + 2;
+ oldcode = -1;
+
+ len = 0;
+ for (;;) {
+ if (valid_bits < codesize) {
+ if (len == 0) {
+ len = stbi__get8(s); // start new block
+ if (len == 0)
+ return g->out;
+ }
+ --len;
+ bits |= (stbi__int32)stbi__get8(s) << valid_bits;
+ valid_bits += 8;
+ } else {
+ stbi__int32 code = bits & codemask;
+ bits >>= codesize;
+ valid_bits -= codesize;
+ // @OPTIMIZE: is there some way we can accelerate the non-clear path?
+ if (code == clear) { // clear code
+ codesize = lzw_cs + 1;
+ codemask = (1 << codesize) - 1;
+ avail = clear + 2;
+ oldcode = -1;
+ first = 0;
+ } else if (code == clear + 1) { // end of stream code
+ stbi__skip(s, len);
+ while ((len = stbi__get8(s)) > 0)
+ stbi__skip(s, len);
+ return g->out;
+ } else if (code <= avail) {
+ if (first) {
+ return stbi__errpuc("no clear code", "Corrupt GIF");
+ }
+
+ if (oldcode >= 0) {
+ p = &g->codes[avail++];
+ if (avail > 8192) {
+ return stbi__errpuc("too many codes",
+ "Corrupt GIF");
+ }
+
+ p->prefix = (stbi__int16)oldcode;
+ p->first = g->codes[oldcode].first;
+ p->suffix = (code == avail) ? p->first :
+ g->codes[code].first;
+ } else if (code == avail)
+ return stbi__errpuc("illegal code in raster",
+ "Corrupt GIF");
+
+ stbi__out_gif_code(g, (stbi__uint16)code);
+
+ if ((avail & codemask) == 0 && avail <= 0x0FFF) {
+ codesize++;
+ codemask = (1 << codesize) - 1;
+ }
+
+ oldcode = code;
+ } else {
+ return stbi__errpuc("illegal code in raster", "Corrupt GIF");
+ }
+ }
+ }
+}
+
+// this function is designed to support animated gifs, although stb_image doesn't support it
+// two back is the image from two frames ago, used for a very specific disposal format
+static stbi_uc *stbi__gif_load_next(stbi__context *s, stbi__gif *g, int *comp, int req_comp,
+ stbi_uc *two_back)
+{
+ int dispose;
+ int first_frame;
+ int pi;
+ int pcount;
+ STBI_NOTUSED(req_comp);
+
+ // on first frame, any non-written pixels get the background colour (non-transparent)
+ first_frame = 0;
+ if (g->out == 0) {
+ if (!stbi__gif_header(s, g, comp, 0))
+ return 0; // stbi__g_failure_reason set by stbi__gif_header
+ if (!stbi__mad3sizes_valid(4, g->w, g->h, 0))
+ return stbi__errpuc("too large", "GIF image is too large");
+ pcount = g->w * g->h;
+ g->out = (stbi_uc *)stbi__malloc(4 * pcount);
+ g->background = (stbi_uc *)stbi__malloc(4 * pcount);
+ g->history = (stbi_uc *)stbi__malloc(pcount);
+ if (!g->out || !g->background || !g->history)
+ return stbi__errpuc("outofmem", "Out of memory");
+
+ // image is treated as "transparent" at the start - ie, nothing overwrites the current background;
+ // background colour is only used for pixels that are not rendered first frame, after that "background"
+ // color refers to the color that was there the previous frame.
+ memset(g->out, 0x00, 4 * pcount);
+ memset(g->background, 0x00,
+ 4 * pcount); // state of the background (starts transparent)
+ memset(g->history, 0x00,
+ pcount); // pixels that were affected previous frame
+ first_frame = 1;
+ } else {
+ // second frame - how do we dispose of the previous one?
+ dispose = (g->eflags & 0x1C) >> 2;
+ pcount = g->w * g->h;
+
+ if ((dispose == 3) && (two_back == 0)) {
+ dispose =
+ 2; // if I don't have an image to revert back to, default to the old background
+ }
+
+ if (dispose == 3) { // use previous graphic
+ for (pi = 0; pi < pcount; ++pi) {
+ if (g->history[pi]) {
+ memcpy(&g->out[pi * 4], &two_back[pi * 4], 4);
+ }
+ }
+ } else if (dispose == 2) {
+ // restore what was changed last frame to background before that frame;
+ for (pi = 0; pi < pcount; ++pi) {
+ if (g->history[pi]) {
+ memcpy(&g->out[pi * 4], &g->background[pi * 4], 4);
+ }
+ }
+ } else {
+ // This is a non-disposal case eithe way, so just
+ // leave the pixels as is, and they will become the new background
+ // 1: do not dispose
+ // 0: not specified.
+ }
+
+ // background is what out is after the undoing of the previou frame;
+ memcpy(g->background, g->out, 4 * g->w * g->h);
+ }
+
+ // clear my history;
+ memset(g->history, 0x00,
+ g->w * g->h); // pixels that were affected previous frame
+
+ for (;;) {
+ int tag = stbi__get8(s);
+ switch (tag) {
+ case 0x2C: /* Image Descriptor */
+ {
+ stbi__int32 x, y, w, h;
+ stbi_uc *o;
+
+ x = stbi__get16le(s);
+ y = stbi__get16le(s);
+ w = stbi__get16le(s);
+ h = stbi__get16le(s);
+ if (((x + w) > (g->w)) || ((y + h) > (g->h)))
+ return stbi__errpuc("bad Image Descriptor", "Corrupt GIF");
+
+ g->line_size = g->w * 4;
+ g->start_x = x * 4;
+ g->start_y = y * g->line_size;
+ g->max_x = g->start_x + w * 4;
+ g->max_y = g->start_y + h * g->line_size;
+ g->cur_x = g->start_x;
+ g->cur_y = g->start_y;
+
+ // if the width of the specified rectangle is 0, that means
+ // we may not see *any* pixels or the image is malformed;
+ // to make sure this is caught, move the current y down to
+ // max_y (which is what out_gif_code checks).
+ if (w == 0)
+ g->cur_y = g->max_y;
+
+ g->lflags = stbi__get8(s);
+
+ if (g->lflags & 0x40) {
+ g->step = 8 * g->line_size; // first interlaced spacing
+ g->parse = 3;
+ } else {
+ g->step = g->line_size;
+ g->parse = 0;
+ }
+
+ if (g->lflags & 0x80) {
+ stbi__gif_parse_colortable(s, g->lpal, 2 << (g->lflags & 7),
+ g->eflags & 0x01 ? g->transparent : -1);
+ g->color_table = (stbi_uc *)g->lpal;
+ } else if (g->flags & 0x80) {
+ g->color_table = (stbi_uc *)g->pal;
+ } else
+ return stbi__errpuc("missing color table", "Corrupt GIF");
+
+ o = stbi__process_gif_raster(s, g);
+ if (!o)
+ return NULL;
+
+ // if this was the first frame,
+ pcount = g->w * g->h;
+ if (first_frame && (g->bgindex > 0)) {
+ // if first frame, any pixel not drawn to gets the background color
+ for (pi = 0; pi < pcount; ++pi) {
+ if (g->history[pi] == 0) {
+ g->pal[g->bgindex][3] =
+ 255; // just in case it was made transparent, undo that; It will be reset next frame if need be;
+ memcpy(&g->out[pi * 4], &g->pal[g->bgindex], 4);
+ }
+ }
+ }
+
+ return o;
+ }
+
+ case 0x21: // Comment Extension.
+ {
+ int len;
+ int ext = stbi__get8(s);
+ if (ext == 0xF9) { // Graphic Control Extension.
+ len = stbi__get8(s);
+ if (len == 4) {
+ g->eflags = stbi__get8(s);
+ g->delay =
+ 10 *
+ stbi__get16le(
+ s); // delay - 1/100th of a second, saving as 1/1000ths.
+
+ // unset old transparent
+ if (g->transparent >= 0) {
+ g->pal[g->transparent][3] = 255;
+ }
+ if (g->eflags & 0x01) {
+ g->transparent = stbi__get8(s);
+ if (g->transparent >= 0) {
+ g->pal[g->transparent][3] = 0;
+ }
+ } else {
+ // don't need transparent
+ stbi__skip(s, 1);
+ g->transparent = -1;
+ }
+ } else {
+ stbi__skip(s, len);
+ break;
+ }
+ }
+ while ((len = stbi__get8(s)) != 0) {
+ stbi__skip(s, len);
+ }
+ break;
+ }
+
+ case 0x3B: // gif stream termination code
+ return (stbi_uc *)s; // using '1' causes warning on some compilers
+
+ default:
+ return stbi__errpuc("unknown code", "Corrupt GIF");
+ }
+ }
+}
+
+static void *stbi__load_gif_main_outofmem(stbi__gif *g, stbi_uc *out, int **delays)
+{
+ STBI_FREE(g->out);
+ STBI_FREE(g->history);
+ STBI_FREE(g->background);
+
+ if (out)
+ STBI_FREE(out);
+ if (delays && *delays)
+ STBI_FREE(*delays);
+ return stbi__errpuc("outofmem", "Out of memory");
+}
+
+static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp,
+ int req_comp)
+{
+ if (stbi__gif_test(s)) {
+ int layers = 0;
+ stbi_uc *u = 0;
+ stbi_uc *out = 0;
+ stbi_uc *two_back = 0;
+ stbi__gif g;
+ int stride;
+ int out_size = 0;
+ int delays_size = 0;
+
+ STBI_NOTUSED(out_size);
+ STBI_NOTUSED(delays_size);
+
+ memset(&g, 0, sizeof(g));
+ if (delays) {
+ *delays = 0;
+ }
+
+ do {
+ u = stbi__gif_load_next(s, &g, comp, req_comp, two_back);
+ if (u == (stbi_uc *)s)
+ u = 0; // end of animated gif marker
+
+ if (u) {
+ *x = g.w;
+ *y = g.h;
+ ++layers;
+ stride = g.w * g.h * 4;
+
+ if (out) {
+ void *tmp = (stbi_uc *)STBI_REALLOC_SIZED(out, out_size,
+ layers * stride);
+ if (!tmp)
+ return stbi__load_gif_main_outofmem(&g, out,
+ delays);
+ else {
+ out = (stbi_uc *)tmp;
+ out_size = layers * stride;
+ }
+
+ if (delays) {
+ int *new_delays = (int *)STBI_REALLOC_SIZED(
+ *delays, delays_size, sizeof(int) * layers);
+ if (!new_delays)
+ return stbi__load_gif_main_outofmem(&g, out,
+ delays);
+ *delays = new_delays;
+ delays_size = layers * sizeof(int);
+ }
+ } else {
+ out = (stbi_uc *)stbi__malloc(layers * stride);
+ if (!out)
+ return stbi__load_gif_main_outofmem(&g, out,
+ delays);
+ out_size = layers * stride;
+ if (delays) {
+ *delays = (int *)stbi__malloc(layers * sizeof(int));
+ if (!*delays)
+ return stbi__load_gif_main_outofmem(&g, out,
+ delays);
+ delays_size = layers * sizeof(int);
+ }
+ }
+ memcpy(out + ((layers - 1) * stride), u, stride);
+ if (layers >= 2) {
+ two_back = out - 2 * stride;
+ }
+
+ if (delays) {
+ (*delays)[layers - 1U] = g.delay;
+ }
+ }
+ } while (u != 0);
+
+ // free temp buffer;
+ STBI_FREE(g.out);
+ STBI_FREE(g.history);
+ STBI_FREE(g.background);
+
+ // do the final conversion after loading everything;
+ if (req_comp && req_comp != 4)
+ out = stbi__convert_format(out, 4, req_comp, layers * g.w, g.h);
+
+ *z = layers;
+ return out;
+ } else {
+ return stbi__errpuc("not GIF", "Image was not as a gif type.");
+ }
+}
+
+static void *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri)
+{
+ stbi_uc *u = 0;
+ stbi__gif g;
+ memset(&g, 0, sizeof(g));
+ STBI_NOTUSED(ri);
+
+ u = stbi__gif_load_next(s, &g, comp, req_comp, 0);
+ if (u == (stbi_uc *)s)
+ u = 0; // end of animated gif marker
+ if (u) {
+ *x = g.w;
+ *y = g.h;
+
+ // moved conversion to after successful load so that the same
+ // can be done for multiple frames.
+ if (req_comp && req_comp != 4)
+ u = stbi__convert_format(u, 4, req_comp, g.w, g.h);
+ } else if (g.out) {
+ // if there was an error and we allocated an image buffer, free it!
+ STBI_FREE(g.out);
+ }
+
+ // free buffers needed for multiple frame loading;
+ STBI_FREE(g.history);
+ STBI_FREE(g.background);
+
+ return u;
+}
+
+static int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp)
+{
+ return stbi__gif_info_raw(s, x, y, comp);
+}
+#endif
+
+// *************************************************************************************************
+// Radiance RGBE HDR loader
+// originally by Nicolas Schulz
+#ifndef STBI_NO_HDR
+static int stbi__hdr_test_core(stbi__context *s, const char *signature)
+{
+ int i;
+ for (i = 0; signature[i]; ++i)
+ if (stbi__get8(s) != signature[i])
+ return 0;
+ stbi__rewind(s);
+ return 1;
+}
+
+static int stbi__hdr_test(stbi__context *s)
+{
+ int r = stbi__hdr_test_core(s, "#?RADIANCE\n");
+ stbi__rewind(s);
+ if (!r) {
+ r = stbi__hdr_test_core(s, "#?RGBE\n");
+ stbi__rewind(s);
+ }
+ return r;
+}
+
+#define STBI__HDR_BUFLEN 1024
+static char *stbi__hdr_gettoken(stbi__context *z, char *buffer)
+{
+ int len = 0;
+ char c = '\0';
+
+ c = (char)stbi__get8(z);
+
+ while (!stbi__at_eof(z) && c != '\n') {
+ buffer[len++] = c;
+ if (len == STBI__HDR_BUFLEN - 1) {
+ // flush to end of line
+ while (!stbi__at_eof(z) && stbi__get8(z) != '\n')
+ ;
+ break;
+ }
+ c = (char)stbi__get8(z);
+ }
+
+ buffer[len] = 0;
+ return buffer;
+}
+
+static void stbi__hdr_convert(float *output, stbi_uc *input, int req_comp)
+{
+ if (input[3] != 0) {
+ float f1;
+ // Exponent
+ f1 = (float)ldexp(1.0f, input[3] - (int)(128 + 8));
+ if (req_comp <= 2)
+ output[0] = (input[0] + input[1] + input[2]) * f1 / 3;
+ else {
+ output[0] = input[0] * f1;
+ output[1] = input[1] * f1;
+ output[2] = input[2] * f1;
+ }
+ if (req_comp == 2)
+ output[1] = 1;
+ if (req_comp == 4)
+ output[3] = 1;
+ } else {
+ switch (req_comp) {
+ case 4:
+ output[3] = 1; /* fallthrough */
+ case 3:
+ output[0] = output[1] = output[2] = 0;
+ break;
+ case 2:
+ output[1] = 1; /* fallthrough */
+ case 1:
+ output[0] = 0;
+ break;
+ }
+ }
+}
+
+static float *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri)
+{
+ char buffer[STBI__HDR_BUFLEN];
+ char *token;
+ int valid = 0;
+ int width, height;
+ stbi_uc *scanline;
+ float *hdr_data;
+ int len;
+ unsigned char count, value;
+ int i, j, k, c1, c2, z;
+ const char *headerToken;
+ STBI_NOTUSED(ri);
+
+ // Check identifier
+ headerToken = stbi__hdr_gettoken(s, buffer);
+ if (strcmp(headerToken, "#?RADIANCE") != 0 && strcmp(headerToken, "#?RGBE") != 0)
+ return stbi__errpf("not HDR", "Corrupt HDR image");
+
+ // Parse header
+ for (;;) {
+ token = stbi__hdr_gettoken(s, buffer);
+ if (token[0] == 0)
+ break;
+ if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0)
+ valid = 1;
+ }
+
+ if (!valid)
+ return stbi__errpf("unsupported format", "Unsupported HDR format");
+
+ // Parse width and height
+ // can't use sscanf() if we're not using stdio!
+ token = stbi__hdr_gettoken(s, buffer);
+ if (strncmp(token, "-Y ", 3))
+ return stbi__errpf("unsupported data layout", "Unsupported HDR format");
+ token += 3;
+ height = (int)strtol(token, &token, 10);
+ while (*token == ' ')
+ ++token;
+ if (strncmp(token, "+X ", 3))
+ return stbi__errpf("unsupported data layout", "Unsupported HDR format");
+ token += 3;
+ width = (int)strtol(token, NULL, 10);
+
+ if (height > STBI_MAX_DIMENSIONS)
+ return stbi__errpf("too large", "Very large image (corrupt?)");
+ if (width > STBI_MAX_DIMENSIONS)
+ return stbi__errpf("too large", "Very large image (corrupt?)");
+
+ *x = width;
+ *y = height;
+
+ if (comp)
+ *comp = 3;
+ if (req_comp == 0)
+ req_comp = 3;
+
+ if (!stbi__mad4sizes_valid(width, height, req_comp, sizeof(float), 0))
+ return stbi__errpf("too large", "HDR image is too large");
+
+ // Read data
+ hdr_data = (float *)stbi__malloc_mad4(width, height, req_comp, sizeof(float), 0);
+ if (!hdr_data)
+ return stbi__errpf("outofmem", "Out of memory");
+
+ // Load image data
+ // image data is stored as some number of sca
+ if (width < 8 || width >= 32768) {
+ // Read flat data
+ for (j = 0; j < height; ++j) {
+ for (i = 0; i < width; ++i) {
+ stbi_uc rgbe[4];
+main_decode_loop:
+ stbi__getn(s, rgbe, 4);
+ stbi__hdr_convert(hdr_data + j * width * req_comp + i * req_comp,
+ rgbe, req_comp);
+ }
+ }
+ } else {
+ // Read RLE-encoded data
+ scanline = NULL;
+
+ for (j = 0; j < height; ++j) {
+ c1 = stbi__get8(s);
+ c2 = stbi__get8(s);
+ len = stbi__get8(s);
+ if (c1 != 2 || c2 != 2 || (len & 0x80)) {
+ // not run-length encoded, so we have to actually use THIS data as a decoded
+ // pixel (note this can't be a valid pixel--one of RGB must be >= 128)
+ stbi_uc rgbe[4];
+ rgbe[0] = (stbi_uc)c1;
+ rgbe[1] = (stbi_uc)c2;
+ rgbe[2] = (stbi_uc)len;
+ rgbe[3] = (stbi_uc)stbi__get8(s);
+ stbi__hdr_convert(hdr_data, rgbe, req_comp);
+ i = 1;
+ j = 0;
+ STBI_FREE(scanline);
+ goto main_decode_loop; // yes, this makes no sense
+ }
+ len <<= 8;
+ len |= stbi__get8(s);
+ if (len != width) {
+ STBI_FREE(hdr_data);
+ STBI_FREE(scanline);
+ return stbi__errpf("invalid decoded scanline length",
+ "corrupt HDR");
+ }
+ if (scanline == NULL) {
+ scanline = (stbi_uc *)stbi__malloc_mad2(width, 4, 0);
+ if (!scanline) {
+ STBI_FREE(hdr_data);
+ return stbi__errpf("outofmem", "Out of memory");
+ }
+ }
+
+ for (k = 0; k < 4; ++k) {
+ int nleft;
+ i = 0;
+ while ((nleft = width - i) > 0) {
+ count = stbi__get8(s);
+ if (count > 128) {
+ // Run
+ value = stbi__get8(s);
+ count -= 128;
+ if ((count == 0) || (count > nleft)) {
+ STBI_FREE(hdr_data);
+ STBI_FREE(scanline);
+ return stbi__errpf("corrupt",
+ "bad RLE data in HDR");
+ }
+ for (z = 0; z < count; ++z)
+ scanline[i++ * 4 + k] = value;
+ } else {
+ // Dump
+ if ((count == 0) || (count > nleft)) {
+ STBI_FREE(hdr_data);
+ STBI_FREE(scanline);
+ return stbi__errpf("corrupt",
+ "bad RLE data in HDR");
+ }
+ for (z = 0; z < count; ++z)
+ scanline[i++ * 4 + k] = stbi__get8(s);
+ }
+ }
+ }
+ for (i = 0; i < width; ++i)
+ stbi__hdr_convert(hdr_data + (j * width + i) * req_comp,
+ scanline + i * 4, req_comp);
+ }
+ if (scanline)
+ STBI_FREE(scanline);
+ }
+
+ return hdr_data;
+}
+
+static int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp)
+{
+ char buffer[STBI__HDR_BUFLEN];
+ char *token;
+ int valid = 0;
+ int dummy;
+
+ if (!x)
+ x = &dummy;
+ if (!y)
+ y = &dummy;
+ if (!comp)
+ comp = &dummy;
+
+ if (stbi__hdr_test(s) == 0) {
+ stbi__rewind(s);
+ return 0;
+ }
+
+ for (;;) {
+ token = stbi__hdr_gettoken(s, buffer);
+ if (token[0] == 0)
+ break;
+ if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0)
+ valid = 1;
+ }
+
+ if (!valid) {
+ stbi__rewind(s);
+ return 0;
+ }
+ token = stbi__hdr_gettoken(s, buffer);
+ if (strncmp(token, "-Y ", 3)) {
+ stbi__rewind(s);
+ return 0;
+ }
+ token += 3;
+ *y = (int)strtol(token, &token, 10);
+ while (*token == ' ')
+ ++token;
+ if (strncmp(token, "+X ", 3)) {
+ stbi__rewind(s);
+ return 0;
+ }
+ token += 3;
+ *x = (int)strtol(token, NULL, 10);
+ *comp = 3;
+ return 1;
+}
+#endif // STBI_NO_HDR
+
+#ifndef STBI_NO_BMP
+static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp)
+{
+ void *p;
+ stbi__bmp_data info;
+
+ info.all_a = 255;
+ p = stbi__bmp_parse_header(s, &info);
+ if (p == NULL) {
+ stbi__rewind(s);
+ return 0;
+ }
+ if (x)
+ *x = s->img_x;
+ if (y)
+ *y = s->img_y;
+ if (comp) {
+ if (info.bpp == 24 && info.ma == 0xff000000)
+ *comp = 3;
+ else
+ *comp = info.ma ? 4 : 3;
+ }
+ return 1;
+}
+#endif
+
+#ifndef STBI_NO_PSD
+static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp)
+{
+ int channelCount, dummy, depth;
+ if (!x)
+ x = &dummy;
+ if (!y)
+ y = &dummy;
+ if (!comp)
+ comp = &dummy;
+ if (stbi__get32be(s) != 0x38425053) {
+ stbi__rewind(s);
+ return 0;
+ }
+ if (stbi__get16be(s) != 1) {
+ stbi__rewind(s);
+ return 0;
+ }
+ stbi__skip(s, 6);
+ channelCount = stbi__get16be(s);
+ if (channelCount < 0 || channelCount > 16) {
+ stbi__rewind(s);
+ return 0;
+ }
+ *y = stbi__get32be(s);
+ *x = stbi__get32be(s);
+ depth = stbi__get16be(s);
+ if (depth != 8 && depth != 16) {
+ stbi__rewind(s);
+ return 0;
+ }
+ if (stbi__get16be(s) != 3) {
+ stbi__rewind(s);
+ return 0;
+ }
+ *comp = 4;
+ return 1;
+}
+
+static int stbi__psd_is16(stbi__context *s)
+{
+ int channelCount, depth;
+ if (stbi__get32be(s) != 0x38425053) {
+ stbi__rewind(s);
+ return 0;
+ }
+ if (stbi__get16be(s) != 1) {
+ stbi__rewind(s);
+ return 0;
+ }
+ stbi__skip(s, 6);
+ channelCount = stbi__get16be(s);
+ if (channelCount < 0 || channelCount > 16) {
+ stbi__rewind(s);
+ return 0;
+ }
+ STBI_NOTUSED(stbi__get32be(s));
+ STBI_NOTUSED(stbi__get32be(s));
+ depth = stbi__get16be(s);
+ if (depth != 16) {
+ stbi__rewind(s);
+ return 0;
+ }
+ return 1;
+}
+#endif
+
+#ifndef STBI_NO_PIC
+static int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp)
+{
+ int act_comp = 0, num_packets = 0, chained, dummy;
+ stbi__pic_packet packets[10];
+
+ if (!x)
+ x = &dummy;
+ if (!y)
+ y = &dummy;
+ if (!comp)
+ comp = &dummy;
+
+ if (!stbi__pic_is4(s, "\x53\x80\xF6\x34")) {
+ stbi__rewind(s);
+ return 0;
+ }
+
+ stbi__skip(s, 88);
+
+ *x = stbi__get16be(s);
+ *y = stbi__get16be(s);
+ if (stbi__at_eof(s)) {
+ stbi__rewind(s);
+ return 0;
+ }
+ if ((*x) != 0 && (1 << 28) / (*x) < (*y)) {
+ stbi__rewind(s);
+ return 0;
+ }
+
+ stbi__skip(s, 8);
+
+ do {
+ stbi__pic_packet *packet;
+
+ if (num_packets == sizeof(packets) / sizeof(packets[0]))
+ return 0;
+
+ packet = &packets[num_packets++];
+ chained = stbi__get8(s);
+ packet->size = stbi__get8(s);
+ packet->type = stbi__get8(s);
+ packet->channel = stbi__get8(s);
+ act_comp |= packet->channel;
+
+ if (stbi__at_eof(s)) {
+ stbi__rewind(s);
+ return 0;
+ }
+ if (packet->size != 8) {
+ stbi__rewind(s);
+ return 0;
+ }
+ } while (chained);
+
+ *comp = (act_comp & 0x10 ? 4 : 3);
+
+ return 1;
+}
+#endif
+
+// *************************************************************************************************
+// Portable Gray Map and Portable Pixel Map loader
+// by Ken Miller
+//
+// PGM: http://netpbm.sourceforge.net/doc/pgm.html
+// PPM: http://netpbm.sourceforge.net/doc/ppm.html
+//
+// Known limitations:
+// Does not support comments in the header section
+// Does not support ASCII image data (formats P2 and P3)
+
+#ifndef STBI_NO_PNM
+
+static int stbi__pnm_test(stbi__context *s)
+{
+ char p, t;
+ p = (char)stbi__get8(s);
+ t = (char)stbi__get8(s);
+ if (p != 'P' || (t != '5' && t != '6')) {
+ stbi__rewind(s);
+ return 0;
+ }
+ return 1;
+}
+
+static void *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp,
+ stbi__result_info *ri)
+{
+ stbi_uc *out;
+ STBI_NOTUSED(ri);
+
+ ri->bits_per_channel =
+ stbi__pnm_info(s, (int *)&s->img_x, (int *)&s->img_y, (int *)&s->img_n);
+ if (ri->bits_per_channel == 0)
+ return 0;
+
+ if (s->img_y > STBI_MAX_DIMENSIONS)
+ return stbi__errpuc("too large", "Very large image (corrupt?)");
+ if (s->img_x > STBI_MAX_DIMENSIONS)
+ return stbi__errpuc("too large", "Very large image (corrupt?)");
+
+ *x = s->img_x;
+ *y = s->img_y;
+ if (comp)
+ *comp = s->img_n;
+
+ if (!stbi__mad4sizes_valid(s->img_n, s->img_x, s->img_y, ri->bits_per_channel / 8, 0))
+ return stbi__errpuc("too large", "PNM too large");
+
+ out = (stbi_uc *)stbi__malloc_mad4(s->img_n, s->img_x, s->img_y, ri->bits_per_channel / 8,
+ 0);
+ if (!out)
+ return stbi__errpuc("outofmem", "Out of memory");
+ if (!stbi__getn(s, out, s->img_n * s->img_x * s->img_y * (ri->bits_per_channel / 8))) {
+ STBI_FREE(out);
+ return stbi__errpuc("bad PNM", "PNM file truncated");
+ }
+
+ if (req_comp && req_comp != s->img_n) {
+ if (ri->bits_per_channel == 16) {
+ out = (stbi_uc *)stbi__convert_format16((stbi__uint16 *)out, s->img_n,
+ req_comp, s->img_x, s->img_y);
+ } else {
+ out = stbi__convert_format(out, s->img_n, req_comp, s->img_x, s->img_y);
+ }
+ if (out == NULL)
+ return out; // stbi__convert_format frees input on failure
+ }
+ return out;
+}
+
+static int stbi__pnm_isspace(char c)
+{
+ return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r';
+}
+
+static void stbi__pnm_skip_whitespace(stbi__context *s, char *c)
+{
+ for (;;) {
+ while (!stbi__at_eof(s) && stbi__pnm_isspace(*c))
+ *c = (char)stbi__get8(s);
+
+ if (stbi__at_eof(s) || *c != '#')
+ break;
+
+ while (!stbi__at_eof(s) && *c != '\n' && *c != '\r')
+ *c = (char)stbi__get8(s);
+ }
+}
+
+static int stbi__pnm_isdigit(char c)
+{
+ return c >= '0' && c <= '9';
+}
+
+static int stbi__pnm_getinteger(stbi__context *s, char *c)
+{
+ int value = 0;
+
+ while (!stbi__at_eof(s) && stbi__pnm_isdigit(*c)) {
+ value = value * 10 + (*c - '0');
+ *c = (char)stbi__get8(s);
+ if ((value > 214748364) || (value == 214748364 && *c > '7'))
+ return stbi__err(
+ "integer parse overflow",
+ "Parsing an integer in the PPM header overflowed a 32-bit int");
+ }
+
+ return value;
+}
+
+static int stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp)
+{
+ int maxv, dummy;
+ char c, p, t;
+
+ if (!x)
+ x = &dummy;
+ if (!y)
+ y = &dummy;
+ if (!comp)
+ comp = &dummy;
+
+ stbi__rewind(s);
+
+ // Get identifier
+ p = (char)stbi__get8(s);
+ t = (char)stbi__get8(s);
+ if (p != 'P' || (t != '5' && t != '6')) {
+ stbi__rewind(s);
+ return 0;
+ }
+
+ *comp = (t == '6') ? 3 : 1; // '5' is 1-component .pgm; '6' is 3-component .ppm
+
+ c = (char)stbi__get8(s);
+ stbi__pnm_skip_whitespace(s, &c);
+
+ *x = stbi__pnm_getinteger(s, &c); // read width
+ if (*x == 0)
+ return stbi__err("invalid width", "PPM image header had zero or overflowing width");
+ stbi__pnm_skip_whitespace(s, &c);
+
+ *y = stbi__pnm_getinteger(s, &c); // read height
+ if (*y == 0)
+ return stbi__err("invalid width", "PPM image header had zero or overflowing width");
+ stbi__pnm_skip_whitespace(s, &c);
+
+ maxv = stbi__pnm_getinteger(s, &c); // read max value
+ if (maxv > 65535)
+ return stbi__err("max value > 65535",
+ "PPM image supports only 8-bit and 16-bit images");
+ else if (maxv > 255)
+ return 16;
+ else
+ return 8;
+}
+
+static int stbi__pnm_is16(stbi__context *s)
+{
+ if (stbi__pnm_info(s, NULL, NULL, NULL) == 16)
+ return 1;
+ return 0;
+}
+#endif
+
+static int stbi__info_main(stbi__context *s, int *x, int *y, int *comp)
+{
+#ifndef STBI_NO_JPEG
+ if (stbi__jpeg_info(s, x, y, comp))
+ return 1;
+#endif
+
+#ifndef STBI_NO_PNG
+ if (stbi__png_info(s, x, y, comp))
+ return 1;
+#endif
+
+#ifndef STBI_NO_GIF
+ if (stbi__gif_info(s, x, y, comp))
+ return 1;
+#endif
+
+#ifndef STBI_NO_BMP
+ if (stbi__bmp_info(s, x, y, comp))
+ return 1;
+#endif
+
+#ifndef STBI_NO_PSD
+ if (stbi__psd_info(s, x, y, comp))
+ return 1;
+#endif
+
+#ifndef STBI_NO_PIC
+ if (stbi__pic_info(s, x, y, comp))
+ return 1;
+#endif
+
+#ifndef STBI_NO_PNM
+ if (stbi__pnm_info(s, x, y, comp))
+ return 1;
+#endif
+
+#ifndef STBI_NO_HDR
+ if (stbi__hdr_info(s, x, y, comp))
+ return 1;
+#endif
+
+ // test tga last because it's a crappy test!
+#ifndef STBI_NO_TGA
+ if (stbi__tga_info(s, x, y, comp))
+ return 1;
+#endif
+ return stbi__err("unknown image type", "Image not of any known type, or corrupt");
+}
+
+static int stbi__is_16_main(stbi__context *s)
+{
+#ifndef STBI_NO_PNG
+ if (stbi__png_is16(s))
+ return 1;
+#endif
+
+#ifndef STBI_NO_PSD
+ if (stbi__psd_is16(s))
+ return 1;
+#endif
+
+#ifndef STBI_NO_PNM
+ if (stbi__pnm_is16(s))
+ return 1;
+#endif
+ return 0;
+}
+
+#ifndef STBI_NO_STDIO
+STBIDEF int stbi_info(char const *filename, int *x, int *y, int *comp)
+{
+ FILE *f = stbi__fopen(filename, "rb");
+ int result;
+ if (!f)
+ return stbi__err("can't fopen", "Unable to open file");
+ result = stbi_info_from_file(f, x, y, comp);
+ fclose(f);
+ return result;
+}
+
+STBIDEF int stbi_info_from_file(FILE *f, int *x, int *y, int *comp)
+{
+ int r;
+ stbi__context s;
+ long pos = ftell(f);
+ stbi__start_file(&s, f);
+ r = stbi__info_main(&s, x, y, comp);
+ fseek(f, pos, SEEK_SET);
+ return r;
+}
+
+STBIDEF int stbi_is_16_bit(char const *filename)
+{
+ FILE *f = stbi__fopen(filename, "rb");
+ int result;
+ if (!f)
+ return stbi__err("can't fopen", "Unable to open file");
+ result = stbi_is_16_bit_from_file(f);
+ fclose(f);
+ return result;
+}
+
+STBIDEF int stbi_is_16_bit_from_file(FILE *f)
+{
+ int r;
+ stbi__context s;
+ long pos = ftell(f);
+ stbi__start_file(&s, f);
+ r = stbi__is_16_main(&s);
+ fseek(f, pos, SEEK_SET);
+ return r;
+}
+#endif // !STBI_NO_STDIO
+
+STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp)
+{
+ stbi__context s;
+ stbi__start_mem(&s, buffer, len);
+ return stbi__info_main(&s, x, y, comp);
+}
+
+STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *c, void *user, int *x, int *y,
+ int *comp)
+{
+ stbi__context s;
+ stbi__start_callbacks(&s, (stbi_io_callbacks *)c, user);
+ return stbi__info_main(&s, x, y, comp);
+}
+
+STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len)
+{
+ stbi__context s;
+ stbi__start_mem(&s, buffer, len);
+ return stbi__is_16_main(&s);
+}
+
+STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *c, void *user)
+{
+ stbi__context s;
+ stbi__start_callbacks(&s, (stbi_io_callbacks *)c, user);
+ return stbi__is_16_main(&s);
+}
+
+/*
+ revision history:
+ 2.20 (2019-02-07) support utf8 filenames in Windows; fix warnings and platform ifdefs
+ 2.19 (2018-02-11) fix warning
+ 2.18 (2018-01-30) fix warnings
+ 2.17 (2018-01-29) change sbti__shiftsigned to avoid clang -O2 bug
+ 1-bit BMP
+ *_is_16_bit api
+ avoid warnings
+ 2.16 (2017-07-23) all functions have 16-bit variants;
+ STBI_NO_STDIO works again;
+ compilation fixes;
+ fix rounding in unpremultiply;
+ optimize vertical flip;
+ disable raw_len validation;
+ documentation fixes
+ 2.15 (2017-03-18) fix png-1,2,4 bug; now all Imagenet JPGs decode;
+ warning fixes; disable run-time SSE detection on gcc;
+ uniform handling of optional "return" values;
+ thread-safe initialization of zlib tables
+ 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs
+ 2.13 (2016-11-29) add 16-bit API, only supported for PNG right now
+ 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes
+ 2.11 (2016-04-02) allocate large structures on the stack
+ remove white matting for transparent PSD
+ fix reported channel count for PNG & BMP
+ re-enable SSE2 in non-gcc 64-bit
+ support RGB-formatted JPEG
+ read 16-bit PNGs (only as 8-bit)
+ 2.10 (2016-01-22) avoid warning introduced in 2.09 by STBI_REALLOC_SIZED
+ 2.09 (2016-01-16) allow comments in PNM files
+ 16-bit-per-pixel TGA (not bit-per-component)
+ info() for TGA could break due to .hdr handling
+ info() for BMP to shares code instead of sloppy parse
+ can use STBI_REALLOC_SIZED if allocator doesn't support realloc
+ code cleanup
+ 2.08 (2015-09-13) fix to 2.07 cleanup, reading RGB PSD as RGBA
+ 2.07 (2015-09-13) fix compiler warnings
+ partial animated GIF support
+ limited 16-bpc PSD support
+ #ifdef unused functions
+ bug with < 92 byte PIC,PNM,HDR,TGA
+ 2.06 (2015-04-19) fix bug where PSD returns wrong '*comp' value
+ 2.05 (2015-04-19) fix bug in progressive JPEG handling, fix warning
+ 2.04 (2015-04-15) try to re-enable SIMD on MinGW 64-bit
+ 2.03 (2015-04-12) extra corruption checking (mmozeiko)
+ stbi_set_flip_vertically_on_load (nguillemot)
+ fix NEON support; fix mingw support
+ 2.02 (2015-01-19) fix incorrect assert, fix warning
+ 2.01 (2015-01-17) fix various warnings; suppress SIMD on gcc 32-bit without -msse2
+ 2.00b (2014-12-25) fix STBI_MALLOC in progressive JPEG
+ 2.00 (2014-12-25) optimize JPG, including x86 SSE2 & NEON SIMD (ryg)
+ progressive JPEG (stb)
+ PGM/PPM support (Ken Miller)
+ STBI_MALLOC,STBI_REALLOC,STBI_FREE
+ GIF bugfix -- seemingly never worked
+ STBI_NO_*, STBI_ONLY_*
+ 1.48 (2014-12-14) fix incorrectly-named assert()
+ 1.47 (2014-12-14) 1/2/4-bit PNG support, both direct and paletted (Omar Cornut & stb)
+ optimize PNG (ryg)
+ fix bug in interlaced PNG with user-specified channel count (stb)
+ 1.46 (2014-08-26)
+ fix broken tRNS chunk (colorkey-style transparency) in non-paletted PNG
+ 1.45 (2014-08-16)
+ fix MSVC-ARM internal compiler error by wrapping malloc
+ 1.44 (2014-08-07)
+ various warning fixes from Ronny Chevalier
+ 1.43 (2014-07-15)
+ fix MSVC-only compiler problem in code changed in 1.42
+ 1.42 (2014-07-09)
+ don't define _CRT_SECURE_NO_WARNINGS (affects user code)
+ fixes to stbi__cleanup_jpeg path
+ added STBI_ASSERT to avoid requiring assert.h
+ 1.41 (2014-06-25)
+ fix search&replace from 1.36 that messed up comments/error messages
+ 1.40 (2014-06-22)
+ fix gcc struct-initialization warning
+ 1.39 (2014-06-15)
+ fix to TGA optimization when req_comp != number of components in TGA;
+ fix to GIF loading because BMP wasn't rewinding (whoops, no GIFs in my test suite)
+ add support for BMP version 5 (more ignored fields)
+ 1.38 (2014-06-06)
+ suppress MSVC warnings on integer casts truncating values
+ fix accidental rename of 'skip' field of I/O
+ 1.37 (2014-06-04)
+ remove duplicate typedef
+ 1.36 (2014-06-03)
+ convert to header file single-file library
+ if de-iphone isn't set, load iphone images color-swapped instead of returning NULL
+ 1.35 (2014-05-27)
+ various warnings
+ fix broken STBI_SIMD path
+ fix bug where stbi_load_from_file no longer left file pointer in correct place
+ fix broken non-easy path for 32-bit BMP (possibly never used)
+ TGA optimization by Arseny Kapoulkine
+ 1.34 (unknown)
+ use STBI_NOTUSED in stbi__resample_row_generic(), fix one more leak in tga failure case
+ 1.33 (2011-07-14)
+ make stbi_is_hdr work in STBI_NO_HDR (as specified), minor compiler-friendly improvements
+ 1.32 (2011-07-13)
+ support for "info" function for all supported filetypes (SpartanJ)
+ 1.31 (2011-06-20)
+ a few more leak fixes, bug in PNG handling (SpartanJ)
+ 1.30 (2011-06-11)
+ added ability to load files via callbacks to accomidate custom input streams (Ben Wenger)
+ removed deprecated format-specific test/load functions
+ removed support for installable file formats (stbi_loader) -- would have been broken for IO callbacks anyway
+ error cases in bmp and tga give messages and don't leak (Raymond Barbiero, grisha)
+ fix inefficiency in decoding 32-bit BMP (David Woo)
+ 1.29 (2010-08-16)
+ various warning fixes from Aurelien Pocheville
+ 1.28 (2010-08-01)
+ fix bug in GIF palette transparency (SpartanJ)
+ 1.27 (2010-08-01)
+ cast-to-stbi_uc to fix warnings
+ 1.26 (2010-07-24)
+ fix bug in file buffering for PNG reported by SpartanJ
+ 1.25 (2010-07-17)
+ refix trans_data warning (Won Chun)
+ 1.24 (2010-07-12)
+ perf improvements reading from files on platforms with lock-heavy fgetc()
+ minor perf improvements for jpeg
+ deprecated type-specific functions so we'll get feedback if they're needed
+ attempt to fix trans_data warning (Won Chun)
+ 1.23 fixed bug in iPhone support
+ 1.22 (2010-07-10)
+ removed image *writing* support
+ stbi_info support from Jetro Lauha
+ GIF support from Jean-Marc Lienher
+ iPhone PNG-extensions from James Brown
+ warning-fixes from Nicolas Schulz and Janez Zemva (i.stbi__err. Janez (U+017D)emva)
+ 1.21 fix use of 'stbi_uc' in header (reported by jon blow)
+ 1.20 added support for Softimage PIC, by Tom Seddon
+ 1.19 bug in interlaced PNG corruption check (found by ryg)
+ 1.18 (2008-08-02)
+ fix a threading bug (local mutable static)
+ 1.17 support interlaced PNG
+ 1.16 major bugfix - stbi__convert_format converted one too many pixels
+ 1.15 initialize some fields for thread safety
+ 1.14 fix threadsafe conversion bug
+ header-file-only version (#define STBI_HEADER_FILE_ONLY before including)
+ 1.13 threadsafe
+ 1.12 const qualifiers in the API
+ 1.11 Support installable IDCT, colorspace conversion routines
+ 1.10 Fixes for 64-bit (don't use "unsigned long")
+ optimized upsampling by Fabian "ryg" Giesen
+ 1.09 Fix format-conversion for PSD code (bad global variables!)
+ 1.08 Thatcher Ulrich's PSD code integrated by Nicolas Schulz
+ 1.07 attempt to fix C++ warning/errors again
+ 1.06 attempt to fix C++ warning/errors again
+ 1.05 fix TGA loading to return correct *comp and use good luminance calc
+ 1.04 default float alpha is 1, not 255; use 'void *' for stbi_image_free
+ 1.03 bugfixes to STBI_NO_STDIO, STBI_NO_HDR
+ 1.02 support for (subset of) HDR files, float interface for preferred access to them
+ 1.01 fix bug: possible bug in handling right-side up bmps... not sure
+ fix bug: the stbi__bmp_load() and stbi__tga_load() functions didn't work at all
+ 1.00 interface to zlib that skips zlib header
+ 0.99 correct handling of alpha in palette
+ 0.98 TGA loader by lonesock; dynamically add loaders (untested)
+ 0.97 jpeg errors on too large a file; also catch another malloc failure
+ 0.96 fix detection of invalid v value - particleman@mollyrocket forum
+ 0.95 during header scan, seek to markers in case of padding
+ 0.94 STBI_NO_STDIO to disable stdio usage; rename all #defines the same
+ 0.93 handle jpegtran output; verbose errors
+ 0.92 read 4,8,16,24,32-bit BMP files of several formats
+ 0.91 output 24-bit Windows 3.0 BMP files
+ 0.90 fix a few more warnings; bump version number to approach 1.0
+ 0.61 bugfixes due to Marc LeBlanc, Christopher Lloyd
+ 0.60 fix compiling as c++
+ 0.59 fix warnings: merge Dave Moore's -Wall fixes
+ 0.58 fix bug: zlib uncompressed mode len/nlen was wrong endian
+ 0.57 fix bug: jpg last huffman symbol before marker was >9 bits but less than 16 available
+ 0.56 fix bug: zlib uncompressed mode len vs. nlen
+ 0.55 fix bug: restart_interval not initialized to 0
+ 0.54 allow NULL for 'int *comp'
+ 0.53 fix bug in png 3->4; speedup png decoding
+ 0.52 png handles req_comp=3,4 directly; minor cleanup; jpeg comments
+ 0.51 obey req_comp requests, 1-component jpegs return as 1-component,
+ on 'test' only check type, not whether we support this variant
+ 0.50 (2006-11-19)
+ first released version
+*/
+
+/*
+------------------------------------------------------------------------------
+This software is available under 2 licenses -- choose whichever you prefer.
+------------------------------------------------------------------------------
+ALTERNATIVE A - MIT License
+Copyright (c) 2017 Sean Barrett
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+------------------------------------------------------------------------------
+ALTERNATIVE B - Public Domain (www.unlicense.org)
+This is free and unencumbered software released into the public domain.
+Anyone is free to copy, modify, publish, use, compile, sell, or distribute this
+software, either in source code form or as a compiled binary, for any purpose,
+commercial or non-commercial, and by any means.
+In jurisdictions that recognize copyright laws, the author or authors of this
+software dedicate any and all copyright interest in the software to the public
+domain. We make this dedication for the benefit of the public at large and to
+the detriment of our heirs and successors. We intend this dedication to be an
+overt act of relinquishment in perpetuity of all present and future rights to
+this software under copyright law.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+------------------------------------------------------------------------------
+*/
diff --git a/内核源代码/StgSharp.C/stb_image.h b/内核源代码/StgSharp.C/stb_image.h
new file mode 100644
index 00000000..ae870bf6
--- /dev/null
+++ b/内核源代码/StgSharp.C/stb_image.h
@@ -0,0 +1,787 @@
+/* stb_image - v2.28 - public domain image loader - http://nothings.org/stb
+ no warranty implied; use at your own risk
+
+ Do this:
+ #define STB_IMAGE_IMPLEMENTATION
+ before you include this file in *one* C or C++ file to create the implementation.
+
+ // i.e. it should look like this:
+ #include ...
+ #include ...
+ #include ...
+ #define STB_IMAGE_IMPLEMENTATION
+ #include "stb_image.h"
+
+ You can #define STBI_ASSERT(x) before the #include to avoid using assert.h.
+ And #define STBI_MALLOC, STBI_REALLOC, and STBI_FREE to avoid using malloc,realloc,free
+
+
+ QUICK NOTES:
+ Primarily of interest to game developers and other people who can
+ avoid problematic images and only need the trivial interface
+
+ JPEG baseline & progressive (12 bpc/arithmetic not supported, same as stock IJG lib)
+ PNG 1/2/4/8/16-bit-per-channel
+
+ TGA (not sure what subset, if a subset)
+ BMP non-1bpp, non-RLE
+ PSD (composited view only, no extra channels, 8/16 bit-per-channel)
+
+ GIF (*comp always reports as 4-channel)
+ HDR (radiance rgbE format)
+ PIC (Softimage PIC)
+ PNM (PPM and PGM binary only)
+
+ Animated GIF still needs a proper API, but here's one way to do it:
+ http://gist.github.com/urraka/685d9a6340b26b830d49
+
+ - decode from memory or through FILE (define STBI_NO_STDIO to remove code)
+ - decode from arbitrary I/O callbacks
+ - SIMD acceleration on x86/x64 (SSE2) and ARM (NEON)
+
+ Full documentation under "DOCUMENTATION" below.
+
+
+LICENSE
+
+ See end of file for license information.
+
+RECENT REVISION HISTORY:
+
+ 2.28 (2023-01-29) many error fixes, security errors, just tons of stuff
+ 2.27 (2021-07-11) document stbi_info better, 16-bit PNM support, bug fixes
+ 2.26 (2020-07-13) many minor fixes
+ 2.25 (2020-02-02) fix warnings
+ 2.24 (2020-02-02) fix warnings; thread-local failure_reason and flip_vertically
+ 2.23 (2019-08-11) fix clang static analysis warning
+ 2.22 (2019-03-04) gif fixes, fix warnings
+ 2.21 (2019-02-25) fix typo in comment
+ 2.20 (2019-02-07) support utf8 filenames in Windows; fix warnings and platform ifdefs
+ 2.19 (2018-02-11) fix warning
+ 2.18 (2018-01-30) fix warnings
+ 2.17 (2018-01-29) bugfix, 1-bit BMP, 16-bitness query, fix warnings
+ 2.16 (2017-07-23) all functions have 16-bit variants; optimizations; bugfixes
+ 2.15 (2017-03-18) fix png-1,2,4; all Imagenet JPGs; no runtime SSE detection on GCC
+ 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs
+ 2.13 (2016-12-04) experimental 16-bit API, only for PNG so far; fixes
+ 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes
+ 2.11 (2016-04-02) 16-bit PNGS; enable SSE2 in non-gcc x64
+ RGB-format JPEG; remove white matting in PSD;
+ allocate large structures on the stack;
+ correct channel count for PNG & BMP
+ 2.10 (2016-01-22) avoid warning introduced in 2.09
+ 2.09 (2016-01-16) 16-bit TGA; comments in PNM files; STBI_REALLOC_SIZED
+
+ See end of file for full revision history.
+
+
+ ============================ Contributors =========================
+
+ Image formats Extensions, features
+ Sean Barrett (jpeg, png, bmp) Jetro Lauha (stbi_info)
+ Nicolas Schulz (hdr, psd) Martin "SpartanJ" Golini (stbi_info)
+ Jonathan Dummer (tga) James "moose2000" Brown (iPhone PNG)
+ Jean-Marc Lienher (gif) Ben "Disch" Wenger (io callbacks)
+ Tom Seddon (pic) Omar Cornut (1/2/4-bit PNG)
+ Thatcher Ulrich (psd) Nicolas Guillemot (vertical flip)
+ Ken Miller (pgm, ppm) Richard Mitton (16-bit PSD)
+ github:urraka (animated gif) Junggon Kim (PNM comments)
+ Christopher Forseth (animated gif) Daniel Gibson (16-bit TGA)
+ socks-the-fox (16-bit PNG)
+ Jeremy Sawicki (handle all ImageNet JPGs)
+ Optimizations & bugfixes Mikhail Morozov (1-bit BMP)
+ Fabian "ryg" Giesen Anael Seghezzi (is-16-bit query)
+ Arseny Kapoulkine Simon Breuss (16-bit PNM)
+ John-Mark Allen
+ Carmelo J Fdez-Aguera
+
+ Bug & warning fixes
+ Marc LeBlanc David Woo Guillaume George Martins Mozeiko
+ Christpher Lloyd Jerry Jansson Joseph Thomson Blazej Dariusz Roszkowski
+ Phil Jordan Dave Moore Roy Eltham
+ Hayaki Saito Nathan Reed Won Chun
+ Luke Graham Johan Duparc Nick Verigakis the Horde3D community
+ Thomas Ruf Ronny Chevalier github:rlyeh
+ Janez Zemva John Bartholomew Michal Cichon github:romigrou
+ Jonathan Blow Ken Hamada Tero Hanninen github:svdijk
+ Eugene Golushkov Laurent Gomila Cort Stratton github:snagar
+ Aruelien Pocheville Sergio Gonzalez Thibault Reuille github:Zelex
+ Cass Everitt Ryamond Barbiero github:grim210
+ Paul Du Bois Engin Manap Aldo Culquicondor github:sammyhw
+ Philipp Wiesemann Dale Weiler Oriol Ferrer Mesia github:phprus
+ Josh Tobin Neil Bickford Matthew Gregan github:poppolopoppo
+ Julian Raschke Gregory Mullen Christian Floisand github:darealshinji
+ Baldur Karlsson Kevin Schmidt JR Smith github:Michaelangel007
+ Brad Weinberger Matvey Cherevko github:mosra
+ Luca Sas Alexander Veselov Zack Middleton [reserved]
+ Ryan C. Gordon [reserved] [reserved]
+ DO NOT ADD YOUR NAME HERE
+
+ Jacko Dirks
+
+ To add your name to the credits, pick a random blank space in the middle and fill it.
+ 80% of merge conflicts on stb PRs are due to people adding their name at the end
+ of the credits.
+*/
+
+#pragma once
+
+#ifndef STBI_INCLUDE_STB_IMAGE_H
+#define STBI_INCLUDE_STB_IMAGE_H
+
+// DOCUMENTATION
+//
+// Limitations:
+// - no 12-bit-per-channel JPEG
+// - no JPEGs with arithmetic coding
+// - GIF always returns *comp=4
+//
+// Basic usage (see HDR discussion below for HDR usage):
+// int x,y,n;
+// unsigned char *data = stbi_load(filename, &x, &y, &n, 0);
+// // ... process data if not NULL ...
+// // ... x = width, y = height, n = # 8-bit components per pixel ...
+// // ... replace '0' with '1'..'4' to force that many components per pixel
+// // ... but 'n' will always be the number that it would have been if you said 0
+// stbi_image_free(data);
+//
+// Standard parameters:
+// int *x -- outputs image width in pixels
+// int *y -- outputs image height in pixels
+// int *channels_in_file -- outputs # of image components in image file
+// int desired_channels -- if non-zero, # of image components requested in result
+//
+// The return value from an image loader is an 'unsigned char *' which points
+// to the pixel data, or NULL on an allocation failure or if the image is
+// corrupt or invalid. The pixel data consists of *y scanlines of *x pixels,
+// with each pixel consisting of N interleaved 8-bit components; the first
+// pixel pointed to is top-left-most in the image. There is no padding between
+// image scanlines or between pixels, regardless of format. The number of
+// components N is 'desired_channels' if desired_channels is non-zero, or
+// *channels_in_file otherwise. If desired_channels is non-zero,
+// *channels_in_file has the number of components that _would_ have been
+// output otherwise. E.g. if you set desired_channels to 4, you will always
+// get RGBA output, but you can check *channels_in_file to see if it's trivially
+// opaque because e.g. there were only 3 channels in the source image.
+//
+// An output image with N components has the following components interleaved
+// in this order in each pixel:
+//
+// N=#comp components
+// 1 grey
+// 2 grey, alpha
+// 3 red, green, blue
+// 4 red, green, blue, alpha
+//
+// If image loading fails for any reason, the return value will be NULL,
+// and *x, *y, *channels_in_file will be unchanged. The function
+// stbi_failure_reason() can be queried for an extremely brief, end-user
+// unfriendly explanation of why the load failed. Define STBI_NO_FAILURE_STRINGS
+// to avoid compiling these strings at all, and STBI_FAILURE_USERMSG to get slightly
+// more user-friendly ones.
+//
+// Paletted PNG, BMP, GIF, and PIC images are automatically depalettized.
+//
+// To query the width, height and component count of an image without having to
+// decode the full file, you can use the stbi_info family of functions:
+//
+// int x,y,n,ok;
+// ok = stbi_info(filename, &x, &y, &n);
+// // returns ok=1 and sets x, y, n if image is a supported format,
+// // 0 otherwise.
+//
+// Note that stb_image pervasively uses ints in its public API for sizes,
+// including sizes of memory buffers. This is now part of the API and thus
+// hard to change without causing breakage. As a result, the various image
+// loaders all have certain limits on image size; these differ somewhat
+// by format but generally boil down to either just under 2GB or just under
+// 1GB. When the decoded image would be larger than this, stb_image decoding
+// will fail.
+//
+// Additionally, stb_image will reject image files that have any of their
+// dimensions set to a larger value than the configurable STBI_MAX_DIMENSIONS,
+// which defaults to 2**24 = 16777216 pixels. Due to the above memory limit,
+// the only way to have an image with such dimensions load correctly
+// is for it to have a rather extreme aspect ratio. Either way, the
+// assumption here is that such larger images are likely to be malformed
+// or malicious. If you do need to load an image with individual dimensions
+// larger than that, and it still fits in the overall size limit, you can
+// #define STBI_MAX_DIMENSIONS on your own to be something larger.
+//
+// ===========================================================================
+//
+// UNICODE:
+//
+// If compiling for Windows and you wish to use Unicode filenames, compile
+// with
+// #define STBI_WINDOWS_UTF8
+// and pass utf8-encoded filenames. Call stbi_convert_wchar_to_utf8 to convert
+// Windows wchar_t filenames to utf8.
+//
+// ===========================================================================
+//
+// Philosophy
+//
+// stb libraries are designed with the following priorities:
+//
+// 1. easy to use
+// 2. easy to maintain
+// 3. good performance
+//
+// Sometimes I let "good performance" creep up in priority over "easy to maintain",
+// and for best performance I may provide less-easy-to-use APIs that give higher
+// performance, in addition to the easy-to-use ones. Nevertheless, it's important
+// to keep in mind that from the standpoint of you, a client of this library,
+// all you care about is #1 and #3, and stb libraries DO NOT emphasize #3 above all.
+//
+// Some secondary priorities arise directly from the first two, some of which
+// provide more explicit reasons why performance can't be emphasized.
+//
+// - Portable ("ease of use")
+// - Small source code footprint ("easy to maintain")
+// - No dependencies ("ease of use")
+//
+// ===========================================================================
+//
+// I/O callbacks
+//
+// I/O callbacks allow you to read from arbitrary sources, like packaged
+// files or some other source. Data read from callbacks are processed
+// through a small internal buffer (currently 128 bytes) to try to reduce
+// overhead.
+//
+// The three functions you must define are "read" (reads some bytes of data),
+// "skip" (skips some bytes of data), "eof" (reports if the stream is at the end).
+//
+// ===========================================================================
+//
+// SIMD support
+//
+// The JPEG decoder will try to automatically use SIMD kernels on x86 when
+// supported by the compiler. For ARM Neon support, you must explicitly
+// request it.
+//
+// (The old do-it-yourself SIMD API is no longer supported in the current
+// code.)
+//
+// On x86, SSE2 will automatically be used when available based on a run-time
+// test; if not, the generic C versions are used as a fall-back. On ARM targets,
+// the typical path is to have separate builds for NEON and non-NEON devices
+// (at least this is true for iOS and Android). Therefore, the NEON support is
+// toggled by a build flag: define STBI_NEON to get NEON loops.
+//
+// If for some reason you do not want to use any of SIMD code, or if
+// you have issues compiling it, you can disable it entirely by
+// defining STBI_NO_SIMD.
+//
+// ===========================================================================
+//
+// HDR image support (disable by defining STBI_NO_HDR)
+//
+// stb_image supports loading HDR images in general, and currently the Radiance
+// .HDR file format specifically. You can still load any file through the existing
+// interface; if you attempt to load an HDR file, it will be automatically remapped
+// to LDR, assuming gamma 2.2 and an arbitrary scale factor defaulting to 1;
+// both of these constants can be reconfigured through this interface:
+//
+// stbi_hdr_to_ldr_gamma(2.2f);
+// stbi_hdr_to_ldr_scale(1.0f);
+//
+// (note, do not use _inverse_ constants; stbi_image will invert them
+// appropriately).
+//
+// Additionally, there is a new, parallel interface for loading files as
+// (linear) floats to preserve the full dynamic range:
+//
+// float *data = stbi_loadf(filename, &x, &y, &n, 0);
+//
+// If you load LDR images through this interface, those images will
+// be promoted to floating point values, run through the inverse of
+// constants corresponding to the above:
+//
+// stbi_ldr_to_hdr_scale(1.0f);
+// stbi_ldr_to_hdr_gamma(2.2f);
+//
+// Finally, given a filename (or an open file or memory block--see header
+// file for details) containing image data, you can query for the "most
+// appropriate" interface to use (that is, whether the image is HDR or
+// not), using:
+//
+// stbi_is_hdr(char *filename);
+//
+// ===========================================================================
+//
+// iPhone PNG support:
+//
+// We optionally support converting iPhone-formatted PNGs (which store
+// premultiplied BGRA) back to RGB, even though they're internally encoded
+// differently. To enable this conversion, call
+// stbi_convert_iphone_png_to_rgb(1).
+//
+// Call stbi_set_unpremultiply_on_load(1) as well to force a divide per
+// pixel to remove any premultiplied alpha *only* if the image file explicitly
+// says there's premultiplied data (currently only happens in iPhone images,
+// and only if iPhone convert-to-rgb processing is on).
+//
+// ===========================================================================
+//
+// ADDITIONAL CONFIGURATION
+//
+// - You can suppress implementation of any of the decoders to reduce
+// your code footprint by #defining one or more of the following
+// symbols before creating the implementation.
+//
+// STBI_NO_JPEG
+// STBI_NO_PNG
+// STBI_NO_BMP
+// STBI_NO_PSD
+// STBI_NO_TGA
+// STBI_NO_GIF
+// STBI_NO_HDR
+// STBI_NO_PIC
+// STBI_NO_PNM (.ppm and .pgm)
+//
+// - You can request *only* certain decoders and suppress all other ones
+// (this will be more forward-compatible, as addition of new decoders
+// doesn't require you to disable them explicitly):
+//
+// STBI_ONLY_JPEG
+// STBI_ONLY_PNG
+// STBI_ONLY_BMP
+// STBI_ONLY_PSD
+// STBI_ONLY_TGA
+// STBI_ONLY_GIF
+// STBI_ONLY_HDR
+// STBI_ONLY_PIC
+// STBI_ONLY_PNM (.ppm and .pgm)
+//
+// - If you use STBI_NO_PNG (or _ONLY_ without PNG), and you still
+// want the zlib decoder to be available, #define STBI_SUPPORT_ZLIB
+//
+// - If you define STBI_MAX_DIMENSIONS, stb_image will reject images greater
+// than that size (in either width or height) without further processing.
+// This is to let programs in the wild set an upper bound to prevent
+// denial-of-service attacks on untrusted data, as one could generate a
+// valid image of gigantic dimensions and force stb_image to allocate a
+// huge block of memory and spend disproportionate time decoding it. By
+// default this is set to (1 << 24), which is 16777216, but that's still
+// very big.
+
+#ifndef STBI_NO_STDIO
+#include
+#endif // STBI_NO_STDIO
+
+#define STBI_VERSION 1
+
+enum {
+ STBI_default = 0, // only used for desired_channels
+
+ STBI_grey = 1,
+ STBI_grey_alpha = 2,
+ STBI_rgb = 3,
+ STBI_rgb_alpha = 4
+};
+
+#include
+typedef unsigned char stbi_uc;
+typedef unsigned short stbi_us;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef STBIDEF
+#ifdef STB_IMAGE_STATIC
+#define STBIDEF static
+#else
+#define STBIDEF extern
+#endif
+#endif
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// PRIMARY API - works on images of any type
+//
+
+//
+// load image by filename, open file, or memory buffer
+//
+
+typedef struct {
+ int (*read)(
+ void *user, char *data,
+ int size); // fill 'data' with 'size' bytes. return number of bytes actually read
+ void (*skip)(void *user,
+ int n); // skip the next 'n' bytes, or 'unget' the last -n bytes if negative
+ int (*eof)(void *user); // returns nonzero if we are at end of file/data
+} stbi_io_callbacks;
+
+////////////////////////////////////
+//
+// 8-bits-per-channel interface
+//
+
+STBIDEF stbi_uc *stbi_load_from_memory(stbi_uc const *buffer, int len, int *x, int *y,
+ int *channels_in_file, int desired_channels);
+STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y,
+ int *channels_in_file, int desired_channels);
+
+#ifndef STBI_NO_STDIO
+STBIDEF stbi_uc *stbi_load(char const *filename, int *x, int *y, int *channels_in_file,
+ int desired_channels);
+STBIDEF void stbi_load_to_target(char const *filename, int *x, int *y, stbi_uc *target,
+ int *channels_in_file, int desired_channels);
+STBIDEF stbi_uc *stbi_load_from_file(FILE *f, int *x, int *y, int *channels_in_file,
+ int desired_channels);
+// for stbi_load_from_file, file pointer is left pointing immediately after image
+#endif
+
+#ifndef STBI_NO_GIF
+STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x,
+ int *y, int *z, int *comp, int req_comp);
+#endif
+
+#ifdef STBI_WINDOWS_UTF8
+STBIDEF int stbi_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t *input);
+#endif
+
+////////////////////////////////////
+//
+// 16-bits-per-channel interface
+//
+
+STBIDEF stbi_us *stbi_load_16_from_memory(stbi_uc const *buffer, int len, int *x, int *y,
+ int *channels_in_file, int desired_channels);
+STBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x,
+ int *y, int *channels_in_file, int desired_channels);
+
+#ifndef STBI_NO_STDIO
+STBIDEF stbi_us *stbi_load_16(char const *filename, int *x, int *y, int *channels_in_file,
+ int desired_channels);
+STBIDEF stbi_us *stbi_load_from_file_16(FILE *f, int *x, int *y, int *channels_in_file,
+ int desired_channels);
+#endif
+
+////////////////////////////////////
+//
+// float-per-channel interface
+//
+#ifndef STBI_NO_LINEAR
+STBIDEF float *stbi_loadf_from_memory(stbi_uc const *buffer, int len, int *x, int *y,
+ int *channels_in_file, int desired_channels);
+STBIDEF float *stbi_loadf_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y,
+ int *channels_in_file, int desired_channels);
+
+#ifndef STBI_NO_STDIO
+STBIDEF float *stbi_loadf(char const *filename, int *x, int *y, int *channels_in_file,
+ int desired_channels);
+STBIDEF float *stbi_loadf_from_file(FILE *f, int *x, int *y, int *channels_in_file,
+ int desired_channels);
+#endif
+#endif
+
+#ifndef STBI_NO_HDR
+STBIDEF void stbi_hdr_to_ldr_gamma(float gamma);
+STBIDEF void stbi_hdr_to_ldr_scale(float scale);
+#endif // STBI_NO_HDR
+
+#ifndef STBI_NO_LINEAR
+STBIDEF void stbi_ldr_to_hdr_gamma(float gamma);
+STBIDEF void stbi_ldr_to_hdr_scale(float scale);
+#endif // STBI_NO_LINEAR
+
+// stbi_is_hdr is always defined, but always returns false if STBI_NO_HDR
+STBIDEF int stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clbk, void *user);
+STBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len);
+#ifndef STBI_NO_STDIO
+STBIDEF int stbi_is_hdr(char const *filename);
+STBIDEF int stbi_is_hdr_from_file(FILE *f);
+#endif // STBI_NO_STDIO
+
+// get a VERY brief reason for failure
+// on most compilers (and ALL modern mainstream compilers) this is threadsafe
+STBIDEF const char *stbi_failure_reason(void);
+
+// free the loaded image -- this is just free()
+STBIDEF void stbi_image_free(void *retval_from_stbi_load);
+
+// get image dimensions & components without fully decoding
+STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp);
+STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y,
+ int *comp);
+STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len);
+STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *clbk, void *user);
+
+#ifndef STBI_NO_STDIO
+STBIDEF int stbi_info(char const *filename, int *x, int *y, int *comp);
+STBIDEF int stbi_info_from_file(FILE *f, int *x, int *y, int *comp);
+STBIDEF int stbi_is_16_bit(char const *filename);
+STBIDEF int stbi_is_16_bit_from_file(FILE *f);
+#endif
+
+// for image formats that explicitly notate that they have premultiplied alpha,
+// we just return the colors as stored in the file. set this flag to force
+// unpremultiplication. results are undefined if the unpremultiply overflow.
+STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply);
+
+// indicate whether we should process iphone images back to canonical format,
+// or just pass them through "as-is"
+STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert);
+
+// flip the image vertically, so the first pixel in the output array is the bottom left
+STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip);
+
+// as above, but only applies to images loaded on the thread that calls the function
+// this function is only available if your compiler supports thread-local variables;
+// calling it will fail to link if your compiler doesn't
+STBIDEF void stbi_set_unpremultiply_on_load_thread(int flag_true_if_should_unpremultiply);
+STBIDEF void stbi_convert_iphone_png_to_rgb_thread(int flag_true_if_should_convert);
+STBIDEF void stbi_set_flip_vertically_on_load_thread(int flag_true_if_should_flip);
+
+// ZLIB client - used by PNG, available for other purposes
+
+STBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size,
+ int *outlen);
+STBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *buffer, int len,
+ int initial_size, int *outlen,
+ int parse_header);
+STBIDEF char *stbi_zlib_decode_malloc(const char *buffer, int len, int *outlen);
+STBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, const char *ibuffer, int ilen);
+
+STBIDEF char *stbi_zlib_decode_noheader_malloc(const char *buffer, int len, int *outlen);
+STBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const char *ibuffer,
+ int ilen);
+
+#ifdef __cplusplus
+}
+#endif
+
+//
+//
+//// end header file /////////////////////////////////////////////////////
+#endif // STBI_INCLUDE_STB_IMAGE_H
+
+/*
+ revision history:
+ 2.20 (2019-02-07) support utf8 filenames in Windows; fix warnings and platform ifdefs
+ 2.19 (2018-02-11) fix warning
+ 2.18 (2018-01-30) fix warnings
+ 2.17 (2018-01-29) change sbti__shiftsigned to avoid clang -O2 bug
+ 1-bit BMP
+ *_is_16_bit api
+ avoid warnings
+ 2.16 (2017-07-23) all functions have 16-bit variants;
+ STBI_NO_STDIO works again;
+ compilation fixes;
+ fix rounding in unpremultiply;
+ optimize vertical flip;
+ disable raw_len validation;
+ documentation fixes
+ 2.15 (2017-03-18) fix png-1,2,4 bug; now all Imagenet JPGs decode;
+ warning fixes; disable run-time SSE detection on gcc;
+ uniform handling of optional "return" values;
+ thread-safe initialization of zlib tables
+ 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs
+ 2.13 (2016-11-29) add 16-bit API, only supported for PNG right now
+ 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes
+ 2.11 (2016-04-02) allocate large structures on the stack
+ remove white matting for transparent PSD
+ fix reported channel count for PNG & BMP
+ re-enable SSE2 in non-gcc 64-bit
+ support RGB-formatted JPEG
+ read 16-bit PNGs (only as 8-bit)
+ 2.10 (2016-01-22) avoid warning introduced in 2.09 by STBI_REALLOC_SIZED
+ 2.09 (2016-01-16) allow comments in PNM files
+ 16-bit-per-pixel TGA (not bit-per-component)
+ info() for TGA could break due to .hdr handling
+ info() for BMP to shares code instead of sloppy parse
+ can use STBI_REALLOC_SIZED if allocator doesn't support realloc
+ code cleanup
+ 2.08 (2015-09-13) fix to 2.07 cleanup, reading RGB PSD as RGBA
+ 2.07 (2015-09-13) fix compiler warnings
+ partial animated GIF support
+ limited 16-bpc PSD support
+ #ifdef unused functions
+ bug with < 92 byte PIC,PNM,HDR,TGA
+ 2.06 (2015-04-19) fix bug where PSD returns wrong '*comp' value
+ 2.05 (2015-04-19) fix bug in progressive JPEG handling, fix warning
+ 2.04 (2015-04-15) try to re-enable SIMD on MinGW 64-bit
+ 2.03 (2015-04-12) extra corruption checking (mmozeiko)
+ stbi_set_flip_vertically_on_load (nguillemot)
+ fix NEON support; fix mingw support
+ 2.02 (2015-01-19) fix incorrect assert, fix warning
+ 2.01 (2015-01-17) fix various warnings; suppress SIMD on gcc 32-bit without -msse2
+ 2.00b (2014-12-25) fix STBI_MALLOC in progressive JPEG
+ 2.00 (2014-12-25) optimize JPG, including x86 SSE2 & NEON SIMD (ryg)
+ progressive JPEG (stb)
+ PGM/PPM support (Ken Miller)
+ STBI_MALLOC,STBI_REALLOC,STBI_FREE
+ GIF bugfix -- seemingly never worked
+ STBI_NO_*, STBI_ONLY_*
+ 1.48 (2014-12-14) fix incorrectly-named assert()
+ 1.47 (2014-12-14) 1/2/4-bit PNG support, both direct and paletted (Omar Cornut & stb)
+ optimize PNG (ryg)
+ fix bug in interlaced PNG with user-specified channel count (stb)
+ 1.46 (2014-08-26)
+ fix broken tRNS chunk (colorkey-style transparency) in non-paletted PNG
+ 1.45 (2014-08-16)
+ fix MSVC-ARM internal compiler error by wrapping malloc
+ 1.44 (2014-08-07)
+ various warning fixes from Ronny Chevalier
+ 1.43 (2014-07-15)
+ fix MSVC-only compiler problem in code changed in 1.42
+ 1.42 (2014-07-09)
+ don't define _CRT_SECURE_NO_WARNINGS (affects user code)
+ fixes to stbi__cleanup_jpeg path
+ added STBI_ASSERT to avoid requiring assert.h
+ 1.41 (2014-06-25)
+ fix search&replace from 1.36 that messed up comments/error messages
+ 1.40 (2014-06-22)
+ fix gcc struct-initialization warning
+ 1.39 (2014-06-15)
+ fix to TGA optimization when req_comp != number of components in TGA;
+ fix to GIF loading because BMP wasn't rewinding (whoops, no GIFs in my test suite)
+ add support for BMP version 5 (more ignored fields)
+ 1.38 (2014-06-06)
+ suppress MSVC warnings on integer casts truncating values
+ fix accidental rename of 'skip' field of I/O
+ 1.37 (2014-06-04)
+ remove duplicate typedef
+ 1.36 (2014-06-03)
+ convert to header file single-file library
+ if de-iphone isn't set, load iphone images color-swapped instead of returning NULL
+ 1.35 (2014-05-27)
+ various warnings
+ fix broken STBI_SIMD path
+ fix bug where stbi_load_from_file no longer left file pointer in correct place
+ fix broken non-easy path for 32-bit BMP (possibly never used)
+ TGA optimization by Arseny Kapoulkine
+ 1.34 (unknown)
+ use STBI_NOTUSED in stbi__resample_row_generic(), fix one more leak in tga failure case
+ 1.33 (2011-07-14)
+ make stbi_is_hdr work in STBI_NO_HDR (as specified), minor compiler-friendly improvements
+ 1.32 (2011-07-13)
+ support for "info" function for all supported filetypes (SpartanJ)
+ 1.31 (2011-06-20)
+ a few more leak fixes, bug in PNG handling (SpartanJ)
+ 1.30 (2011-06-11)
+ added ability to load files via callbacks to accomidate custom input streams (Ben Wenger)
+ removed deprecated format-specific test/load functions
+ removed support for installable file formats (stbi_loader) -- would have been broken for IO callbacks anyway
+ error cases in bmp and tga give messages and don't leak (Raymond Barbiero, grisha)
+ fix inefficiency in decoding 32-bit BMP (David Woo)
+ 1.29 (2010-08-16)
+ various warning fixes from Aurelien Pocheville
+ 1.28 (2010-08-01)
+ fix bug in GIF palette transparency (SpartanJ)
+ 1.27 (2010-08-01)
+ cast-to-stbi_uc to fix warnings
+ 1.26 (2010-07-24)
+ fix bug in file buffering for PNG reported by SpartanJ
+ 1.25 (2010-07-17)
+ refix trans_data warning (Won Chun)
+ 1.24 (2010-07-12)
+ perf improvements reading from files on platforms with lock-heavy fgetc()
+ minor perf improvements for jpeg
+ deprecated type-specific functions so we'll get feedback if they're needed
+ attempt to fix trans_data warning (Won Chun)
+ 1.23 fixed bug in iPhone support
+ 1.22 (2010-07-10)
+ removed image *writing* support
+ stbi_info support from Jetro Lauha
+ GIF support from Jean-Marc Lienher
+ iPhone PNG-extensions from James Brown
+ warning-fixes from Nicolas Schulz and Janez Zemva (i.stbi__err. Janez (U+017D)emva)
+ 1.21 fix use of 'stbi_uc' in header (reported by jon blow)
+ 1.20 added support for Softimage PIC, by Tom Seddon
+ 1.19 bug in interlaced PNG corruption check (found by ryg)
+ 1.18 (2008-08-02)
+ fix a threading bug (local mutable static)
+ 1.17 support interlaced PNG
+ 1.16 major bugfix - stbi__convert_format converted one too many pixels
+ 1.15 initialize some fields for thread safety
+ 1.14 fix threadsafe conversion bug
+ header-file-only version (#define STBI_HEADER_FILE_ONLY before including)
+ 1.13 threadsafe
+ 1.12 const qualifiers in the API
+ 1.11 Support installable IDCT, colorspace conversion routines
+ 1.10 Fixes for 64-bit (don't use "unsigned long")
+ optimized upsampling by Fabian "ryg" Giesen
+ 1.09 Fix format-conversion for PSD code (bad global variables!)
+ 1.08 Thatcher Ulrich's PSD code integrated by Nicolas Schulz
+ 1.07 attempt to fix C++ warning/errors again
+ 1.06 attempt to fix C++ warning/errors again
+ 1.05 fix TGA loading to return correct *comp and use good luminance calc
+ 1.04 default float alpha is 1, not 255; use 'void *' for stbi_image_free
+ 1.03 bugfixes to STBI_NO_STDIO, STBI_NO_HDR
+ 1.02 support for (subset of) HDR files, float interface for preferred access to them
+ 1.01 fix bug: possible bug in handling right-side up bmps... not sure
+ fix bug: the stbi__bmp_load() and stbi__tga_load() functions didn't work at all
+ 1.00 interface to zlib that skips zlib header
+ 0.99 correct handling of alpha in palette
+ 0.98 TGA loader by lonesock; dynamically add loaders (untested)
+ 0.97 jpeg errors on too large a file; also catch another malloc failure
+ 0.96 fix detection of invalid v value - particleman@mollyrocket forum
+ 0.95 during header scan, seek to markers in case of padding
+ 0.94 STBI_NO_STDIO to disable stdio usage; rename all #defines the same
+ 0.93 handle jpegtran output; verbose errors
+ 0.92 read 4,8,16,24,32-bit BMP files of several formats
+ 0.91 output 24-bit Windows 3.0 BMP files
+ 0.90 fix a few more warnings; bump version number to approach 1.0
+ 0.61 bugfixes due to Marc LeBlanc, Christopher Lloyd
+ 0.60 fix compiling as c++
+ 0.59 fix warnings: merge Dave Moore's -Wall fixes
+ 0.58 fix bug: zlib uncompressed mode len/nlen was wrong endian
+ 0.57 fix bug: jpg last huffman symbol before marker was >9 bits but less than 16 available
+ 0.56 fix bug: zlib uncompressed mode len vs. nlen
+ 0.55 fix bug: restart_interval not initialized to 0
+ 0.54 allow NULL for 'int *comp'
+ 0.53 fix bug in png 3->4; speedup png decoding
+ 0.52 png handles req_comp=3,4 directly; minor cleanup; jpeg comments
+ 0.51 obey req_comp requests, 1-component jpegs return as 1-component,
+ on 'test' only check type, not whether we support this variant
+ 0.50 (2006-11-19)
+ first released version
+*/
+
+/*
+------------------------------------------------------------------------------
+This software is available under 2 licenses -- choose whichever you prefer.
+------------------------------------------------------------------------------
+ALTERNATIVE A - MIT License
+Copyright (c) 2017 Sean Barrett
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+------------------------------------------------------------------------------
+ALTERNATIVE B - Public Domain (www.unlicense.org)
+This is free and unencumbered software released into the public domain.
+Anyone is free to copy, modify, publish, use, compile, sell, or distribute this
+software, either in source code form or as a compiled binary, for any purpose,
+commercial or non-commercial, and by any means.
+In jurisdictions that recognize copyright laws, the author or authors of this
+software dedicate any and all copyright interest in the software to the public
+domain. We make this dedication for the benefit of the public at large and to
+the detriment of our heirs and successors. We intend this dedication to be an
+overt act of relinquishment in perpetuity of all present and future rights to
+this software under copyright law.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+------------------------------------------------------------------------------
+*/
diff --git a/内核源代码/StgSharp.C/vector.c b/内核源代码/StgSharp.C/vector.c
new file mode 100644
index 00000000..c534bae7
--- /dev/null
+++ b/内核源代码/StgSharp.C/vector.c
@@ -0,0 +1,31 @@
+#include "StgSharpC.h"
+#include "ssc_internal.h"
+
+SSCAPI void SSCDECL normalize(__m128 *source, __m128 *target)
+{
+ __m128 a_length_sq = _mm_mul_ps(*source, *source);
+ a_length_sq = _mm_add_ps(a_length_sq,
+ _mm_shuffle_ps(a_length_sq, a_length_sq, _MM_SHUFFLE(2, 3, 0, 1)));
+ a_length_sq = _mm_add_ss(a_length_sq,
+ _mm_shuffle_ps(a_length_sq, a_length_sq, _MM_SHUFFLE(0, 0, 3, 2)));
+
+ __m128 a_inv_length = _mm_rsqrt_ps(a_length_sq);
+ *source = _mm_mul_ps(*source, a_inv_length);
+
+ __m128 dot_product = _mm_mul_ps(*target, *source);
+ dot_product = _mm_add_ps(dot_product,
+ _mm_shuffle_ps(dot_product, dot_product, _MM_SHUFFLE(2, 3, 0, 1)));
+ dot_product = _mm_add_ss(dot_product,
+ _mm_shuffle_ps(dot_product, dot_product, _MM_SHUFFLE(0, 0, 3, 2)));
+
+ __m128 b_orthogonal = _mm_sub_ps(*target, _mm_mul_ps(*source, dot_product));
+
+ __m128 b_length_sq = _mm_mul_ps(b_orthogonal, b_orthogonal);
+ b_length_sq = _mm_add_ps(b_length_sq,
+ _mm_shuffle_ps(b_length_sq, b_length_sq, _MM_SHUFFLE(2, 3, 0, 1)));
+ b_length_sq = _mm_add_ss(b_length_sq,
+ _mm_shuffle_ps(b_length_sq, b_length_sq, _MM_SHUFFLE(0, 0, 3, 2)));
+
+ __m128 b_inv_length = _mm_rsqrt_ps(b_length_sq);
+ *target = _mm_mul_ps(b_orthogonal, b_inv_length);
+}
diff --git a/内核源代码/StgSharp.C/vector_dot.c b/内核源代码/StgSharp.C/vector_dot.c
new file mode 100644
index 00000000..a6152e89
--- /dev/null
+++ b/内核源代码/StgSharp.C/vector_dot.c
@@ -0,0 +1,147 @@
+#include "ssc_intrinsic.h"
+#include "SSC_internal.h"
+
+static const int avxdot_indices[] = { 0, 4, 1, 5, 2, 3, 6, 7 };
+
+INTERNAL void FORCEINLINE SSCDECL dot_41_sse(__4_columnset *transpose, __m128 *vector, __m128 *ans)
+{
+ *ans = _mm_dp_ps(transpose->column[0], *vector, 0B11110001);
+ *ans = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[1], *vector, 0B11110001),
+ SSE_INSERT_SIMPLE(1, 1));
+ *ans = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[2], *vector, 0B11110001),
+ SSE_INSERT_SIMPLE(1, 3));
+ *ans = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[3], *vector, 0B11110001),
+ SSE_INSERT_SIMPLE(1, 4));
+}
+
+INTERNAL void SSCDECL dot_41_avx(__4_columnset *transpose, __m128 *vector, __m128 *ans)
+{
+ __m256 _double = _mm256_set_m128(vector[0], vector[0]);
+ __m256 tmp = _mm256_dp_ps(transpose->half[0], _double, 0B11110001);
+ tmp = _mm256_blend_ps(tmp, _mm256_dp_ps(transpose->half[0], _double, 0B11110010),
+ 0B00100010);
+ *ans = _mm256_castps256_ps128(
+ _mm256_permutevar8x32_ps(tmp, _mm256_loadu_epi32(avxdot_indices)));
+}
+
+INTERNAL void FORCEINLINE SSCDECL dot_31_sse(__3_columnset *transpose, __m128 *vector, __m128 *ans)
+{
+ *ans = _mm_dp_ps(transpose->column[0], *vector, 0B11110001);
+ *ans = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[1], *vector, 0B11110001),
+ SSE_INSERT_SIMPLE(1, 2));
+ *ans = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[2], *vector, 0B11110001),
+ SSE_INSERT_SIMPLE(1, 3));
+}
+
+INTERNAL void FORCEINLINE SSCDECL dot_31_avx(__3_columnset *transpose, __m128 *vector, __m128 *ans)
+{
+ __m256 _double = _mm256_set_m128(vector[0], vector[0]);
+ __m256 tmp = _mm256_dp_ps(transpose->part, _double, 0B11110001);
+ *ans = _mm256_castps256_ps128(
+ _mm256_permutevar8x32_ps(tmp, _mm256_loadu_epi32(avxdot_indices)));
+ *ans = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[2], *vector, 0B11110001),
+ SSE_INSERT_SIMPLE(1, 3));
+}
+
+INTERNAL void SSCDECL dot_42_sse(__4_columnset *transpose, __m128 *vector, __m128 *ans)
+{
+ ans[0] = _mm_dp_ps(transpose->column[0], vector[0], 0B11110001);
+ ans[0] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[1], vector[0], 0B11110001),
+ SSE_INSERT_SIMPLE(1, 2));
+ ans[0] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[2], vector[0], 0B11110001),
+ SSE_INSERT_SIMPLE(1, 3));
+ ans[0] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[3], vector[0], 0B11110001),
+ SSE_INSERT_SIMPLE(1, 4));
+
+ ans[1] = _mm_dp_ps(transpose->column[0], vector[1], 0B11110001);
+ ans[1] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[1], vector[1], 0B11110001),
+ SSE_INSERT_SIMPLE(1, 2));
+ ans[1] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[2], vector[1], 0B11110001),
+ SSE_INSERT_SIMPLE(1, 3));
+ ans[1] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[3], vector[1], 0B11110001),
+ SSE_INSERT_SIMPLE(1, 4));
+}
+
+INTERNAL void SSCDECL dot_32_sse(__3_columnset *transpose, __m128 *vector, __m128 *ans)
+{
+ ans[0] = _mm_dp_ps(transpose->column[0], vector[0], 0B11110001);
+ ans[0] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[1], vector[0], 0B11110001),
+ SSE_INSERT_SIMPLE(1, 2));
+ ans[0] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[2], vector[0], 0B11110001),
+ SSE_INSERT_SIMPLE(1, 3));
+
+ ans[1] = _mm_dp_ps(transpose->column[0], vector[1], 0B11110001);
+ ans[1] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[1], vector[1], 0B11110001),
+ SSE_INSERT_SIMPLE(1, 2));
+ ans[1] = _mm_insert_ps(*ans, _mm_dp_ps(transpose->column[2], vector[1], 0B11110001),
+ SSE_INSERT_SIMPLE(1, 3));
+}
+
+INTERNAL void SSCDECL dot_42_avx(__4_columnset *transpose, __m128 *vector, __m128 *ans)
+{
+ __2_columnset *ans_ptr = (__2_columnset *)ans, *right_ptr = (__2_columnset *)vector;
+ __m256 temp = ALIGN256(transpose->half[0]);
+
+ ans_ptr->stream = _mm256_dp_ps(temp, right_ptr->stream, 0B11110001);
+ temp = _mm256_permute2f128_ps(temp, temp, 0B00000001);
+ ans_ptr->stream = _mm256_blend_ps(
+ ans_ptr->stream, _mm256_dp_ps(temp, right_ptr->stream, 0B11110010), 0B00100010);
+
+ temp = ALIGN256(transpose->half[1]);
+ ans_ptr->stream = _mm256_blend_ps(
+ ans_ptr->stream, _mm256_dp_ps(temp, right_ptr->stream, 0B11110100), 0B01000100);
+ temp = _mm256_permute2f128_ps(temp, temp, 0B00000001);
+ ans_ptr->stream = _mm256_blend_ps(
+ ans_ptr->stream, _mm256_dp_ps(temp, right_ptr->stream, 0B11111000), 0B10001000);
+
+ ans[1] = _mm_shuffle_ps(ALIGN(ans[1]), ALIGN(ans[1]), _MM_SHUFFLE(2, 3, 0, 1));
+}
+
+INTERNAL void SSCDECL dot_32_avx(__3_columnset *transpose, __m128 *vector, __m128 *ans)
+{
+ __2_columnset *ans_ptr = (__2_columnset *)ans, *right_ptr = (__2_columnset *)vector;
+ __m256 temp = transpose->part;
+
+ ans_ptr->stream = _mm256_dp_ps(temp, right_ptr->stream, 0B11110001);
+ temp = _mm256_permute2f128_ps(temp, temp, 0B00000001);
+ ans_ptr->stream = _mm256_blend_ps(
+ ans_ptr->stream, _mm256_dp_ps(temp, right_ptr->stream, 0B11110010), 0B00100010);
+
+ temp = _mm256_set_m128(transpose->column[2], transpose->column[2]);
+ ans_ptr->stream = _mm256_blend_ps(
+ ans_ptr->stream, _mm256_dp_ps(temp, right_ptr->stream, 0B11110100), 0B01000100);
+
+ ans[1] = _mm_shuffle_ps(ALIGN(ans[1]), ALIGN(ans[1]), _MM_SHUFFLE(2, 2, 0, 1));
+}
+
+INTERNAL void SSCDECL dot_43_sse(__4_columnset *transpose, __m128 *vector, __m128 *ans)
+{
+ dot_41_sse(transpose, vector, ans);
+ dot_41_sse(transpose, vector + 1, ans + 1);
+ dot_41_sse(transpose, vector + 2, ans + 2);
+}
+
+INTERNAL void SSCDECL dot_43_avx(__4_columnset *transpose, __m128 *vector, __m128 *ans)
+{
+ __3_columnset *ans_ptr = (__3_columnset *)ans, *right_ptr = (__3_columnset *)vector;
+ __m256 temp = ALIGN256(transpose->half[0]);
+ __m256 third = _mm256_set_m128(right_ptr->column[2], right_ptr->column[2]);
+
+ ans_ptr->part = _mm256_dp_ps(temp, right_ptr->part, 0B11110001);
+ __m256 ans_third = _mm256_dp_ps(temp, third, 0B11110001);
+ temp = _mm256_permute2f128_ps(temp, temp, 0B00000001);
+ ans_ptr->part = _mm256_blend_ps(
+ ans_ptr->part, _mm256_dp_ps(temp, right_ptr->part, 0B11110010), 0B00100010);
+
+ temp = ALIGN256(transpose->half[1]);
+ ans_ptr->part = _mm256_blend_ps(
+ ans_ptr->part, _mm256_dp_ps(temp, right_ptr->part, 0B11110100), 0B01000100);
+ ans_third = _mm256_blend_ps(ans_third, _mm256_dp_ps(temp, third, 0B11110010), 0B00100010);
+ temp = _mm256_permute2f128_ps(temp, temp, 0B00000001);
+ ans_ptr->part = _mm256_blend_ps(
+ ans_ptr->part, _mm256_dp_ps(temp, right_ptr->part, 0B11111000), 0B10001000);
+
+ ans[1] = _mm_shuffle_ps(ALIGN(ans[1]), ALIGN(ans[1]), _MM_SHUFFLE(2, 3, 0, 1));
+ ans[2] = _mm256_castps256_ps128(
+ _mm256_permutevar8x32_ps(ans_third, _mm256_loadu_epi32(avxdot_indices)));
+}
diff --git a/内核源代码/StgSharp.C/wgl.h b/内核源代码/StgSharp.C/wgl.h
new file mode 100644
index 00000000..a48052de
--- /dev/null
+++ b/内核源代码/StgSharp.C/wgl.h
@@ -0,0 +1,1076 @@
+/**
+ * Loader generated by glad 2.0.5 on Fri Feb 16 00:51:03 2024
+ *
+ * SPDX-License-Identifier: (WTFPL OR CC0-1.0) AND Apache-2.0
+ *
+ * Generator: C/C++
+ * Specification: wgl
+ * Extensions: 57
+ *
+ * APIs:
+ * - wgl=1.0
+ *
+ * Options:
+ * - ALIAS = False
+ * - DEBUG = False
+ * - HEADER_ONLY = False
+ * - LOADER = False
+ * - MX = True
+ * - ON_DEMAND = False
+ *
+ * Commandline:
+ * --api='wgl=1.0' --extensions='WGL_3DFX_multisample,WGL_3DL_stereo_control,WGL_AMD_gpu_association,WGL_ARB_buffer_region,WGL_ARB_context_flush_control,WGL_ARB_create_context,WGL_ARB_create_context_no_error,WGL_ARB_create_context_profile,WGL_ARB_create_context_robustness,WGL_ARB_extensions_string,WGL_ARB_framebuffer_sRGB,WGL_ARB_make_current_read,WGL_ARB_multisample,WGL_ARB_pbuffer,WGL_ARB_pixel_format,WGL_ARB_pixel_format_float,WGL_ARB_render_texture,WGL_ARB_robustness_application_isolation,WGL_ARB_robustness_share_group_isolation,WGL_ATI_pixel_format_float,WGL_ATI_render_texture_rectangle,WGL_EXT_colorspace,WGL_EXT_create_context_es2_profile,WGL_EXT_create_context_es_profile,WGL_EXT_depth_float,WGL_EXT_display_color_table,WGL_EXT_extensions_string,WGL_EXT_framebuffer_sRGB,WGL_EXT_make_current_read,WGL_EXT_multisample,WGL_EXT_pbuffer,WGL_EXT_pixel_format,WGL_EXT_pixel_format_packed_float,WGL_EXT_swap_control,WGL_EXT_swap_control_tear,WGL_I3D_digital_video_control,WGL_I3D_gamma,WGL_I3D_genlock,WGL_I3D_image_buffer,WGL_I3D_swap_frame_lock,WGL_I3D_swap_frame_usage,WGL_NV_DX_interop,WGL_NV_DX_interop2,WGL_NV_copy_image,WGL_NV_delay_before_swap,WGL_NV_float_buffer,WGL_NV_gpu_affinity,WGL_NV_multigpu_context,WGL_NV_multisample_coverage,WGL_NV_present_video,WGL_NV_render_depth_texture,WGL_NV_render_texture_rectangle,WGL_NV_swap_group,WGL_NV_vertex_array_range,WGL_NV_video_capture,WGL_NV_video_output,WGL_OML_sync_control' c --mx
+ *
+ * Online:
+ * http://glad.sh/#api=wgl%3D1.0&extensions=WGL_3DFX_multisample%2CWGL_3DL_stereo_control%2CWGL_AMD_gpu_association%2CWGL_ARB_buffer_region%2CWGL_ARB_context_flush_control%2CWGL_ARB_create_context%2CWGL_ARB_create_context_no_error%2CWGL_ARB_create_context_profile%2CWGL_ARB_create_context_robustness%2CWGL_ARB_extensions_string%2CWGL_ARB_framebuffer_sRGB%2CWGL_ARB_make_current_read%2CWGL_ARB_multisample%2CWGL_ARB_pbuffer%2CWGL_ARB_pixel_format%2CWGL_ARB_pixel_format_float%2CWGL_ARB_render_texture%2CWGL_ARB_robustness_application_isolation%2CWGL_ARB_robustness_share_group_isolation%2CWGL_ATI_pixel_format_float%2CWGL_ATI_render_texture_rectangle%2CWGL_EXT_colorspace%2CWGL_EXT_create_context_es2_profile%2CWGL_EXT_create_context_es_profile%2CWGL_EXT_depth_float%2CWGL_EXT_display_color_table%2CWGL_EXT_extensions_string%2CWGL_EXT_framebuffer_sRGB%2CWGL_EXT_make_current_read%2CWGL_EXT_multisample%2CWGL_EXT_pbuffer%2CWGL_EXT_pixel_format%2CWGL_EXT_pixel_format_packed_float%2CWGL_EXT_swap_control%2CWGL_EXT_swap_control_tear%2CWGL_I3D_digital_video_control%2CWGL_I3D_gamma%2CWGL_I3D_genlock%2CWGL_I3D_image_buffer%2CWGL_I3D_swap_frame_lock%2CWGL_I3D_swap_frame_usage%2CWGL_NV_DX_interop%2CWGL_NV_DX_interop2%2CWGL_NV_copy_image%2CWGL_NV_delay_before_swap%2CWGL_NV_float_buffer%2CWGL_NV_gpu_affinity%2CWGL_NV_multigpu_context%2CWGL_NV_multisample_coverage%2CWGL_NV_present_video%2CWGL_NV_render_depth_texture%2CWGL_NV_render_texture_rectangle%2CWGL_NV_swap_group%2CWGL_NV_vertex_array_range%2CWGL_NV_video_capture%2CWGL_NV_video_output%2CWGL_OML_sync_control&generator=c&options=MX
+ *
+ */
+
+#ifndef GLAD_WGL_H_
+#define GLAD_WGL_H_
+
+#include
+#include "gl.h"
+
+#define GLAD_WGL
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef GLAD_PLATFORM_H_
+#define GLAD_PLATFORM_H_
+
+#ifndef GLAD_PLATFORM_WIN32
+#if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__)
+#define GLAD_PLATFORM_WIN32 1
+#else
+#define GLAD_PLATFORM_WIN32 0
+#endif
+#endif
+
+#ifndef GLAD_PLATFORM_APPLE
+#ifdef __APPLE__
+#define GLAD_PLATFORM_APPLE 1
+#else
+#define GLAD_PLATFORM_APPLE 0
+#endif
+#endif
+
+#ifndef GLAD_PLATFORM_EMSCRIPTEN
+#ifdef __EMSCRIPTEN__
+#define GLAD_PLATFORM_EMSCRIPTEN 1
+#else
+#define GLAD_PLATFORM_EMSCRIPTEN 0
+#endif
+#endif
+
+#ifndef GLAD_PLATFORM_UWP
+#if defined(_MSC_VER) && !defined(GLAD_INTERNAL_HAVE_WINAPIFAMILY)
+#ifdef __has_include
+#if __has_include()
+#define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
+#endif
+#elif _MSC_VER >= 1700 && !_USING_V110_SDK71_
+#define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
+#endif
+#endif
+
+#ifdef GLAD_INTERNAL_HAVE_WINAPIFAMILY
+#include
+#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && \
+ WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+#define GLAD_PLATFORM_UWP 1
+#endif
+#endif
+
+#ifndef GLAD_PLATFORM_UWP
+#define GLAD_PLATFORM_UWP 0
+#endif
+#endif
+
+#ifdef __GNUC__
+#define GLAD_GNUC_EXTENSION __extension__
+#else
+#define GLAD_GNUC_EXTENSION
+#endif
+
+#define GLAD_UNUSED(x) (void)(x)
+
+#ifndef GLAD_API_CALL
+#if defined(GLAD_API_CALL_EXPORT)
+#if GLAD_PLATFORM_WIN32 || defined(__CYGWIN__)
+#if defined(GLAD_API_CALL_EXPORT_BUILD)
+#if defined(__GNUC__)
+#define GLAD_API_CALL __attribute__((dllexport)) extern
+#else
+#define GLAD_API_CALL __declspec(dllexport) extern
+#endif
+#else
+#if defined(__GNUC__)
+#define GLAD_API_CALL __attribute__((dllimport)) extern
+#else
+#define GLAD_API_CALL __declspec(dllimport) extern
+#endif
+#endif
+#elif defined(__GNUC__) && defined(GLAD_API_CALL_EXPORT_BUILD)
+#define GLAD_API_CALL __attribute__((visibility("default"))) extern
+#else
+#define GLAD_API_CALL extern
+#endif
+#else
+#define GLAD_API_CALL extern
+#endif
+#endif
+
+#ifdef APIENTRY
+#define GLAD_API_PTR APIENTRY
+#elif GLAD_PLATFORM_WIN32
+#define GLAD_API_PTR __stdcall
+#else
+#define GLAD_API_PTR
+#endif
+
+#ifndef GLAPI
+#define GLAPI GLAD_API_CALL
+#endif
+
+#ifndef GLAPIENTRY
+#define GLAPIENTRY GLAD_API_PTR
+#endif
+
+#define GLAD_MAKE_VERSION(major, minor) (major * 10000 + minor)
+#define GLAD_VERSION_MAJOR(version) (version / 10000)
+#define GLAD_VERSION_MINOR(version) (version % 10000)
+
+#define GLAD_GENERATOR_VERSION "2.0.5"
+
+typedef void (*GLADapiproc)(void);
+
+typedef GLADapiproc (*GLADloadfunc)(const char *name);
+typedef GLADapiproc (*GLADuserptrloadfunc)(void *userptr, const char *name);
+
+typedef void (*GLADprecallback)(const char *name, GLADapiproc apiproc, int len_args, ...);
+typedef void (*GLADpostcallback)(void *ret, const char *name, GLADapiproc apiproc, int len_args,
+ ...);
+
+#endif /* GLAD_PLATFORM_H_ */
+
+#define ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0
+#define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054
+#define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043
+#define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043
+#define ERROR_INVALID_PROFILE_ARB 0x2096
+#define ERROR_INVALID_VERSION_ARB 0x2095
+#define ERROR_MISSING_AFFINITY_MASK_NV 0x20D1
+#define WGL_ACCELERATION_ARB 0x2003
+#define WGL_ACCELERATION_EXT 0x2003
+#define WGL_ACCESS_READ_ONLY_NV 0x00000000
+#define WGL_ACCESS_READ_WRITE_NV 0x00000001
+#define WGL_ACCESS_WRITE_DISCARD_NV 0x00000002
+#define WGL_ACCUM_ALPHA_BITS_ARB 0x2021
+#define WGL_ACCUM_ALPHA_BITS_EXT 0x2021
+#define WGL_ACCUM_BITS_ARB 0x201D
+#define WGL_ACCUM_BITS_EXT 0x201D
+#define WGL_ACCUM_BLUE_BITS_ARB 0x2020
+#define WGL_ACCUM_BLUE_BITS_EXT 0x2020
+#define WGL_ACCUM_GREEN_BITS_ARB 0x201F
+#define WGL_ACCUM_GREEN_BITS_EXT 0x201F
+#define WGL_ACCUM_RED_BITS_ARB 0x201E
+#define WGL_ACCUM_RED_BITS_EXT 0x201E
+#define WGL_ALPHA_BITS_ARB 0x201B
+#define WGL_ALPHA_BITS_EXT 0x201B
+#define WGL_ALPHA_SHIFT_ARB 0x201C
+#define WGL_ALPHA_SHIFT_EXT 0x201C
+#define WGL_AUX0_ARB 0x2087
+#define WGL_AUX1_ARB 0x2088
+#define WGL_AUX2_ARB 0x2089
+#define WGL_AUX3_ARB 0x208A
+#define WGL_AUX4_ARB 0x208B
+#define WGL_AUX5_ARB 0x208C
+#define WGL_AUX6_ARB 0x208D
+#define WGL_AUX7_ARB 0x208E
+#define WGL_AUX8_ARB 0x208F
+#define WGL_AUX9_ARB 0x2090
+#define WGL_AUX_BUFFERS_ARB 0x2024
+#define WGL_AUX_BUFFERS_EXT 0x2024
+#define WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002
+#define WGL_BACK_LEFT_ARB 0x2085
+#define WGL_BACK_RIGHT_ARB 0x2086
+#define WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0
+#define WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071
+#define WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070
+#define WGL_BIND_TO_VIDEO_RGBA_NV 0x20C1
+#define WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV 0x20C2
+#define WGL_BIND_TO_VIDEO_RGB_NV 0x20C0
+#define WGL_BLUE_BITS_ARB 0x2019
+#define WGL_BLUE_BITS_EXT 0x2019
+#define WGL_BLUE_SHIFT_ARB 0x201A
+#define WGL_BLUE_SHIFT_EXT 0x201A
+#define WGL_COLORSPACE_EXT 0x309D
+#define WGL_COLORSPACE_LINEAR_EXT 0x308A
+#define WGL_COLORSPACE_SRGB_EXT 0x3089
+#define WGL_COLOR_BITS_ARB 0x2014
+#define WGL_COLOR_BITS_EXT 0x2014
+#define WGL_COLOR_SAMPLES_NV 0x20B9
+#define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
+#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
+#define WGL_CONTEXT_DEBUG_BIT_ARB 0x00000001
+#define WGL_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004
+#define WGL_CONTEXT_ES_PROFILE_BIT_EXT 0x00000004
+#define WGL_CONTEXT_FLAGS_ARB 0x2094
+#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002
+#define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093
+#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091
+#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092
+#define WGL_CONTEXT_MULTIGPU_ATTRIB_AFR_NV 0x20AC
+#define WGL_CONTEXT_MULTIGPU_ATTRIB_MULTICAST_NV 0x20AD
+#define WGL_CONTEXT_MULTIGPU_ATTRIB_MULTI_DISPLAY_MULTICAST_NV 0x20AE
+#define WGL_CONTEXT_MULTIGPU_ATTRIB_NV 0x20AA
+#define WGL_CONTEXT_MULTIGPU_ATTRIB_SINGLE_NV 0x20AB
+#define WGL_CONTEXT_OPENGL_NO_ERROR_ARB 0x31B3
+#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126
+#define WGL_CONTEXT_RELEASE_BEHAVIOR_ARB 0x2097
+#define WGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB 0x2098
+#define WGL_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB 0
+#define WGL_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008
+#define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
+#define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004
+#define WGL_COVERAGE_SAMPLES_NV 0x2042
+#define WGL_CUBE_MAP_FACE_ARB 0x207C
+#define WGL_DEPTH_BITS_ARB 0x2022
+#define WGL_DEPTH_BITS_EXT 0x2022
+#define WGL_DEPTH_BUFFER_BIT_ARB 0x00000004
+#define WGL_DEPTH_COMPONENT_NV 0x20A7
+#define WGL_DEPTH_FLOAT_EXT 0x2040
+#define WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5
+#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050
+#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051
+#define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052
+#define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053
+#define WGL_DOUBLE_BUFFER_ARB 0x2011
+#define WGL_DOUBLE_BUFFER_EXT 0x2011
+#define WGL_DRAW_TO_BITMAP_ARB 0x2002
+#define WGL_DRAW_TO_BITMAP_EXT 0x2002
+#define WGL_DRAW_TO_PBUFFER_ARB 0x202D
+#define WGL_DRAW_TO_PBUFFER_EXT 0x202D
+#define WGL_DRAW_TO_WINDOW_ARB 0x2001
+#define WGL_DRAW_TO_WINDOW_EXT 0x2001
+#define WGL_FLOAT_COMPONENTS_NV 0x20B0
+#define WGL_FONT_LINES 0
+#define WGL_FONT_POLYGONS 1
+#define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20A9
+#define WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20A9
+#define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001
+#define WGL_FRONT_LEFT_ARB 0x2083
+#define WGL_FRONT_RIGHT_ARB 0x2084
+#define WGL_FULL_ACCELERATION_ARB 0x2027
+#define WGL_FULL_ACCELERATION_EXT 0x2027
+#define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F
+#define WGL_GAMMA_TABLE_SIZE_I3D 0x204E
+#define WGL_GENERIC_ACCELERATION_ARB 0x2026
+#define WGL_GENERIC_ACCELERATION_EXT 0x2026
+#define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049
+#define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048
+#define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C
+#define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A
+#define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B
+#define WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D 0x2046
+#define WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D 0x2045
+#define WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D 0x2047
+#define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044
+#define WGL_GPU_CLOCK_AMD 0x21A4
+#define WGL_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2
+#define WGL_GPU_NUM_PIPES_AMD 0x21A5
+#define WGL_GPU_NUM_RB_AMD 0x21A7
+#define WGL_GPU_NUM_SIMD_AMD 0x21A6
+#define WGL_GPU_NUM_SPI_AMD 0x21A8
+#define WGL_GPU_OPENGL_VERSION_STRING_AMD 0x1F02
+#define WGL_GPU_RAM_AMD 0x21A3
+#define WGL_GPU_RENDERER_STRING_AMD 0x1F01
+#define WGL_GPU_VENDOR_AMD 0x1F00
+#define WGL_GREEN_BITS_ARB 0x2017
+#define WGL_GREEN_BITS_EXT 0x2017
+#define WGL_GREEN_SHIFT_ARB 0x2018
+#define WGL_GREEN_SHIFT_EXT 0x2018
+#define WGL_IMAGE_BUFFER_LOCK_I3D 0x00000002
+#define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001
+#define WGL_LOSE_CONTEXT_ON_RESET_ARB 0x8252
+#define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030
+#define WGL_MAX_PBUFFER_HEIGHT_EXT 0x2030
+#define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E
+#define WGL_MAX_PBUFFER_PIXELS_EXT 0x202E
+#define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F
+#define WGL_MAX_PBUFFER_WIDTH_EXT 0x202F
+#define WGL_MIPMAP_LEVEL_ARB 0x207B
+#define WGL_MIPMAP_TEXTURE_ARB 0x2074
+#define WGL_NEED_PALETTE_ARB 0x2004
+#define WGL_NEED_PALETTE_EXT 0x2004
+#define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005
+#define WGL_NEED_SYSTEM_PALETTE_EXT 0x2005
+#define WGL_NO_ACCELERATION_ARB 0x2025
+#define WGL_NO_ACCELERATION_EXT 0x2025
+#define WGL_NO_RESET_NOTIFICATION_ARB 0x8261
+#define WGL_NO_TEXTURE_ARB 0x2077
+#define WGL_NUMBER_OVERLAYS_ARB 0x2008
+#define WGL_NUMBER_OVERLAYS_EXT 0x2008
+#define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000
+#define WGL_NUMBER_PIXEL_FORMATS_EXT 0x2000
+#define WGL_NUMBER_UNDERLAYS_ARB 0x2009
+#define WGL_NUMBER_UNDERLAYS_EXT 0x2009
+#define WGL_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF
+#define WGL_NUM_VIDEO_SLOTS_NV 0x20F0
+#define WGL_OPTIMAL_PBUFFER_HEIGHT_EXT 0x2032
+#define WGL_OPTIMAL_PBUFFER_WIDTH_EXT 0x2031
+#define WGL_PBUFFER_HEIGHT_ARB 0x2035
+#define WGL_PBUFFER_HEIGHT_EXT 0x2035
+#define WGL_PBUFFER_LARGEST_ARB 0x2033
+#define WGL_PBUFFER_LARGEST_EXT 0x2033
+#define WGL_PBUFFER_LOST_ARB 0x2036
+#define WGL_PBUFFER_WIDTH_ARB 0x2034
+#define WGL_PBUFFER_WIDTH_EXT 0x2034
+#define WGL_PIXEL_TYPE_ARB 0x2013
+#define WGL_PIXEL_TYPE_EXT 0x2013
+#define WGL_RED_BITS_ARB 0x2015
+#define WGL_RED_BITS_EXT 0x2015
+#define WGL_RED_SHIFT_ARB 0x2016
+#define WGL_RED_SHIFT_EXT 0x2016
+#define WGL_SAMPLES_3DFX 0x2061
+#define WGL_SAMPLES_ARB 0x2042
+#define WGL_SAMPLES_EXT 0x2042
+#define WGL_SAMPLE_BUFFERS_3DFX 0x2060
+#define WGL_SAMPLE_BUFFERS_ARB 0x2041
+#define WGL_SAMPLE_BUFFERS_EXT 0x2041
+#define WGL_SHARE_ACCUM_ARB 0x200E
+#define WGL_SHARE_ACCUM_EXT 0x200E
+#define WGL_SHARE_DEPTH_ARB 0x200C
+#define WGL_SHARE_DEPTH_EXT 0x200C
+#define WGL_SHARE_STENCIL_ARB 0x200D
+#define WGL_SHARE_STENCIL_EXT 0x200D
+#define WGL_STENCIL_BITS_ARB 0x2023
+#define WGL_STENCIL_BITS_EXT 0x2023
+#define WGL_STENCIL_BUFFER_BIT_ARB 0x00000008
+#define WGL_STEREO_ARB 0x2012
+#define WGL_STEREO_EMITTER_DISABLE_3DL 0x2056
+#define WGL_STEREO_EMITTER_ENABLE_3DL 0x2055
+#define WGL_STEREO_EXT 0x2012
+#define WGL_STEREO_POLARITY_INVERT_3DL 0x2058
+#define WGL_STEREO_POLARITY_NORMAL_3DL 0x2057
+#define WGL_SUPPORT_GDI_ARB 0x200F
+#define WGL_SUPPORT_GDI_EXT 0x200F
+#define WGL_SUPPORT_OPENGL_ARB 0x2010
+#define WGL_SUPPORT_OPENGL_EXT 0x2010
+#define WGL_SWAP_COPY_ARB 0x2029
+#define WGL_SWAP_COPY_EXT 0x2029
+#define WGL_SWAP_EXCHANGE_ARB 0x2028
+#define WGL_SWAP_EXCHANGE_EXT 0x2028
+#define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006
+#define WGL_SWAP_LAYER_BUFFERS_EXT 0x2006
+#define WGL_SWAP_MAIN_PLANE 0x00000001
+#define WGL_SWAP_METHOD_ARB 0x2007
+#define WGL_SWAP_METHOD_EXT 0x2007
+#define WGL_SWAP_OVERLAY1 0x00000002
+#define WGL_SWAP_OVERLAY10 0x00000400
+#define WGL_SWAP_OVERLAY11 0x00000800
+#define WGL_SWAP_OVERLAY12 0x00001000
+#define WGL_SWAP_OVERLAY13 0x00002000
+#define WGL_SWAP_OVERLAY14 0x00004000
+#define WGL_SWAP_OVERLAY15 0x00008000
+#define WGL_SWAP_OVERLAY2 0x00000004
+#define WGL_SWAP_OVERLAY3 0x00000008
+#define WGL_SWAP_OVERLAY4 0x00000010
+#define WGL_SWAP_OVERLAY5 0x00000020
+#define WGL_SWAP_OVERLAY6 0x00000040
+#define WGL_SWAP_OVERLAY7 0x00000080
+#define WGL_SWAP_OVERLAY8 0x00000100
+#define WGL_SWAP_OVERLAY9 0x00000200
+#define WGL_SWAP_UNDEFINED_ARB 0x202A
+#define WGL_SWAP_UNDEFINED_EXT 0x202A
+#define WGL_SWAP_UNDERLAY1 0x00010000
+#define WGL_SWAP_UNDERLAY10 0x02000000
+#define WGL_SWAP_UNDERLAY11 0x04000000
+#define WGL_SWAP_UNDERLAY12 0x08000000
+#define WGL_SWAP_UNDERLAY13 0x10000000
+#define WGL_SWAP_UNDERLAY14 0x20000000
+#define WGL_SWAP_UNDERLAY15 0x40000000
+#define WGL_SWAP_UNDERLAY2 0x00020000
+#define WGL_SWAP_UNDERLAY3 0x00040000
+#define WGL_SWAP_UNDERLAY4 0x00080000
+#define WGL_SWAP_UNDERLAY5 0x00100000
+#define WGL_SWAP_UNDERLAY6 0x00200000
+#define WGL_SWAP_UNDERLAY7 0x00400000
+#define WGL_SWAP_UNDERLAY8 0x00800000
+#define WGL_SWAP_UNDERLAY9 0x01000000
+#define WGL_TEXTURE_1D_ARB 0x2079
+#define WGL_TEXTURE_2D_ARB 0x207A
+#define WGL_TEXTURE_CUBE_MAP_ARB 0x2078
+#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E
+#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080
+#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082
+#define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D
+#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F
+#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081
+#define WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6
+#define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8
+#define WGL_TEXTURE_FLOAT_RGB_NV 0x20B7
+#define WGL_TEXTURE_FLOAT_RG_NV 0x20B6
+#define WGL_TEXTURE_FLOAT_R_NV 0x20B5
+#define WGL_TEXTURE_FORMAT_ARB 0x2072
+#define WGL_TEXTURE_RECTANGLE_ATI 0x21A5
+#define WGL_TEXTURE_RECTANGLE_NV 0x20A2
+#define WGL_TEXTURE_RGBA_ARB 0x2076
+#define WGL_TEXTURE_RGB_ARB 0x2075
+#define WGL_TEXTURE_TARGET_ARB 0x2073
+#define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A
+#define WGL_TRANSPARENT_ARB 0x200A
+#define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039
+#define WGL_TRANSPARENT_EXT 0x200A
+#define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038
+#define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B
+#define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037
+#define WGL_TRANSPARENT_VALUE_EXT 0x200B
+#define WGL_TYPE_COLORINDEX_ARB 0x202C
+#define WGL_TYPE_COLORINDEX_EXT 0x202C
+#define WGL_TYPE_RGBA_ARB 0x202B
+#define WGL_TYPE_RGBA_EXT 0x202B
+#define WGL_TYPE_RGBA_FLOAT_ARB 0x21A0
+#define WGL_TYPE_RGBA_FLOAT_ATI 0x21A0
+#define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20A8
+#define WGL_UNIQUE_ID_NV 0x20CE
+#define WGL_VIDEO_OUT_ALPHA_NV 0x20C4
+#define WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6
+#define WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7
+#define WGL_VIDEO_OUT_COLOR_NV 0x20C3
+#define WGL_VIDEO_OUT_DEPTH_NV 0x20C5
+#define WGL_VIDEO_OUT_FIELD_1 0x20C9
+#define WGL_VIDEO_OUT_FIELD_2 0x20CA
+#define WGL_VIDEO_OUT_FRAME 0x20C8
+#define WGL_VIDEO_OUT_STACKED_FIELDS_1_2 0x20CB
+#define WGL_VIDEO_OUT_STACKED_FIELDS_2_1 0x20CC
+
+struct _GPU_DEVICE {
+ DWORD cb;
+ CHAR DeviceName[32];
+ CHAR DeviceString[128];
+ DWORD Flags;
+ RECT rcVirtualScreen;
+};
+DECLARE_HANDLE(HPBUFFERARB);
+DECLARE_HANDLE(HPBUFFEREXT);
+DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV);
+DECLARE_HANDLE(HPVIDEODEV);
+DECLARE_HANDLE(HPGPUNV);
+DECLARE_HANDLE(HGPUNV);
+DECLARE_HANDLE(HVIDEOINPUTDEVICENV);
+typedef struct _GPU_DEVICE GPU_DEVICE;
+typedef struct _GPU_DEVICE *PGPU_DEVICE;
+
+#define WGL_VERSION_1_0 1
+GLAD_API_CALL int GLAD_WGL_VERSION_1_0;
+#define WGL_3DFX_multisample 1
+GLAD_API_CALL int GLAD_WGL_3DFX_multisample;
+#define WGL_3DL_stereo_control 1
+GLAD_API_CALL int GLAD_WGL_3DL_stereo_control;
+#define WGL_AMD_gpu_association 1
+GLAD_API_CALL int GLAD_WGL_AMD_gpu_association;
+#define WGL_ARB_buffer_region 1
+GLAD_API_CALL int GLAD_WGL_ARB_buffer_region;
+#define WGL_ARB_context_flush_control 1
+GLAD_API_CALL int GLAD_WGL_ARB_context_flush_control;
+#define WGL_ARB_create_context 1
+GLAD_API_CALL int GLAD_WGL_ARB_create_context;
+#define WGL_ARB_create_context_no_error 1
+GLAD_API_CALL int GLAD_WGL_ARB_create_context_no_error;
+#define WGL_ARB_create_context_profile 1
+GLAD_API_CALL int GLAD_WGL_ARB_create_context_profile;
+#define WGL_ARB_create_context_robustness 1
+GLAD_API_CALL int GLAD_WGL_ARB_create_context_robustness;
+#define WGL_ARB_extensions_string 1
+GLAD_API_CALL int GLAD_WGL_ARB_extensions_string;
+#define WGL_ARB_framebuffer_sRGB 1
+GLAD_API_CALL int GLAD_WGL_ARB_framebuffer_sRGB;
+#define WGL_ARB_make_current_read 1
+GLAD_API_CALL int GLAD_WGL_ARB_make_current_read;
+#define WGL_ARB_multisample 1
+GLAD_API_CALL int GLAD_WGL_ARB_multisample;
+#define WGL_ARB_pbuffer 1
+GLAD_API_CALL int GLAD_WGL_ARB_pbuffer;
+#define WGL_ARB_pixel_format 1
+GLAD_API_CALL int GLAD_WGL_ARB_pixel_format;
+#define WGL_ARB_pixel_format_float 1
+GLAD_API_CALL int GLAD_WGL_ARB_pixel_format_float;
+#define WGL_ARB_render_texture 1
+GLAD_API_CALL int GLAD_WGL_ARB_render_texture;
+#define WGL_ARB_robustness_application_isolation 1
+GLAD_API_CALL int GLAD_WGL_ARB_robustness_application_isolation;
+#define WGL_ARB_robustness_share_group_isolation 1
+GLAD_API_CALL int GLAD_WGL_ARB_robustness_share_group_isolation;
+#define WGL_ATI_pixel_format_float 1
+GLAD_API_CALL int GLAD_WGL_ATI_pixel_format_float;
+#define WGL_ATI_render_texture_rectangle 1
+GLAD_API_CALL int GLAD_WGL_ATI_render_texture_rectangle;
+#define WGL_EXT_colorspace 1
+GLAD_API_CALL int GLAD_WGL_EXT_colorspace;
+#define WGL_EXT_create_context_es2_profile 1
+GLAD_API_CALL int GLAD_WGL_EXT_create_context_es2_profile;
+#define WGL_EXT_create_context_es_profile 1
+GLAD_API_CALL int GLAD_WGL_EXT_create_context_es_profile;
+#define WGL_EXT_depth_float 1
+GLAD_API_CALL int GLAD_WGL_EXT_depth_float;
+#define WGL_EXT_display_color_table 1
+GLAD_API_CALL int GLAD_WGL_EXT_display_color_table;
+#define WGL_EXT_extensions_string 1
+GLAD_API_CALL int GLAD_WGL_EXT_extensions_string;
+#define WGL_EXT_framebuffer_sRGB 1
+GLAD_API_CALL int GLAD_WGL_EXT_framebuffer_sRGB;
+#define WGL_EXT_make_current_read 1
+GLAD_API_CALL int GLAD_WGL_EXT_make_current_read;
+#define WGL_EXT_multisample 1
+GLAD_API_CALL int GLAD_WGL_EXT_multisample;
+#define WGL_EXT_pbuffer 1
+GLAD_API_CALL int GLAD_WGL_EXT_pbuffer;
+#define WGL_EXT_pixel_format 1
+GLAD_API_CALL int GLAD_WGL_EXT_pixel_format;
+#define WGL_EXT_pixel_format_packed_float 1
+GLAD_API_CALL int GLAD_WGL_EXT_pixel_format_packed_float;
+#define WGL_EXT_swap_control 1
+GLAD_API_CALL int GLAD_WGL_EXT_swap_control;
+#define WGL_EXT_swap_control_tear 1
+GLAD_API_CALL int GLAD_WGL_EXT_swap_control_tear;
+#define WGL_I3D_digital_video_control 1
+GLAD_API_CALL int GLAD_WGL_I3D_digital_video_control;
+#define WGL_I3D_gamma 1
+GLAD_API_CALL int GLAD_WGL_I3D_gamma;
+#define WGL_I3D_genlock 1
+GLAD_API_CALL int GLAD_WGL_I3D_genlock;
+#define WGL_I3D_image_buffer 1
+GLAD_API_CALL int GLAD_WGL_I3D_image_buffer;
+#define WGL_I3D_swap_frame_lock 1
+GLAD_API_CALL int GLAD_WGL_I3D_swap_frame_lock;
+#define WGL_I3D_swap_frame_usage 1
+GLAD_API_CALL int GLAD_WGL_I3D_swap_frame_usage;
+#define WGL_NV_DX_interop 1
+GLAD_API_CALL int GLAD_WGL_NV_DX_interop;
+#define WGL_NV_DX_interop2 1
+GLAD_API_CALL int GLAD_WGL_NV_DX_interop2;
+#define WGL_NV_copy_image 1
+GLAD_API_CALL int GLAD_WGL_NV_copy_image;
+#define WGL_NV_delay_before_swap 1
+GLAD_API_CALL int GLAD_WGL_NV_delay_before_swap;
+#define WGL_NV_float_buffer 1
+GLAD_API_CALL int GLAD_WGL_NV_float_buffer;
+#define WGL_NV_gpu_affinity 1
+GLAD_API_CALL int GLAD_WGL_NV_gpu_affinity;
+#define WGL_NV_multigpu_context 1
+GLAD_API_CALL int GLAD_WGL_NV_multigpu_context;
+#define WGL_NV_multisample_coverage 1
+GLAD_API_CALL int GLAD_WGL_NV_multisample_coverage;
+#define WGL_NV_present_video 1
+GLAD_API_CALL int GLAD_WGL_NV_present_video;
+#define WGL_NV_render_depth_texture 1
+GLAD_API_CALL int GLAD_WGL_NV_render_depth_texture;
+#define WGL_NV_render_texture_rectangle 1
+GLAD_API_CALL int GLAD_WGL_NV_render_texture_rectangle;
+#define WGL_NV_swap_group 1
+GLAD_API_CALL int GLAD_WGL_NV_swap_group;
+#define WGL_NV_vertex_array_range 1
+GLAD_API_CALL int GLAD_WGL_NV_vertex_array_range;
+#define WGL_NV_video_capture 1
+GLAD_API_CALL int GLAD_WGL_NV_video_capture;
+#define WGL_NV_video_output 1
+GLAD_API_CALL int GLAD_WGL_NV_video_output;
+#define WGL_OML_sync_control 1
+GLAD_API_CALL int GLAD_WGL_OML_sync_control;
+
+typedef int(GLAD_API_PTR *PFNCHOOSEPIXELFORMATPROC)(HDC hDc, const PIXELFORMATDESCRIPTOR *pPfd);
+typedef int(GLAD_API_PTR *PFNDESCRIBEPIXELFORMATPROC)(HDC hdc, int ipfd, UINT cjpfd,
+ PIXELFORMATDESCRIPTOR *ppfd);
+typedef UINT(GLAD_API_PTR *PFNGETENHMETAFILEPIXELFORMATPROC)(HENHMETAFILE hemf, UINT cbBuffer,
+ PIXELFORMATDESCRIPTOR *ppfd);
+typedef int(GLAD_API_PTR *PFNGETPIXELFORMATPROC)(HDC hdc);
+typedef BOOL(GLAD_API_PTR *PFNSETPIXELFORMATPROC)(HDC hdc, int ipfd,
+ const PIXELFORMATDESCRIPTOR *ppfd);
+typedef BOOL(GLAD_API_PTR *PFNSWAPBUFFERSPROC)(HDC hdc);
+typedef void *(GLAD_API_PTR *PFNWGLALLOCATEMEMORYNVPROC)(GLsizei size, GLfloat readfreq,
+ GLfloat writefreq, GLfloat priority);
+typedef BOOL(GLAD_API_PTR *PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC)(HDC hDC, const HANDLE *pEvent,
+ const LPVOID *pAddress,
+ const DWORD *pSize, UINT count);
+typedef BOOL(GLAD_API_PTR *PFNWGLBEGINFRAMETRACKINGI3DPROC)(void);
+typedef GLboolean(GLAD_API_PTR *PFNWGLBINDDISPLAYCOLORTABLEEXTPROC)(GLushort id);
+typedef BOOL(GLAD_API_PTR *PFNWGLBINDSWAPBARRIERNVPROC)(GLuint group, GLuint barrier);
+typedef BOOL(GLAD_API_PTR *PFNWGLBINDTEXIMAGEARBPROC)(HPBUFFERARB hPbuffer, int iBuffer);
+typedef BOOL(GLAD_API_PTR *PFNWGLBINDVIDEOCAPTUREDEVICENVPROC)(UINT uVideoSlot,
+ HVIDEOINPUTDEVICENV hDevice);
+typedef BOOL(GLAD_API_PTR *PFNWGLBINDVIDEODEVICENVPROC)(HDC hDc, unsigned int uVideoSlot,
+ HVIDEOOUTPUTDEVICENV hVideoDevice,
+ const int *piAttribList);
+typedef BOOL(GLAD_API_PTR *PFNWGLBINDVIDEOIMAGENVPROC)(HPVIDEODEV hVideoDevice,
+ HPBUFFERARB hPbuffer, int iVideoBuffer);
+typedef VOID(GLAD_API_PTR *PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC)(
+ HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0,
+ GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+typedef BOOL(GLAD_API_PTR *PFNWGLCHOOSEPIXELFORMATARBPROC)(HDC hdc, const int *piAttribIList,
+ const FLOAT *pfAttribFList,
+ UINT nMaxFormats, int *piFormats,
+ UINT *nNumFormats);
+typedef BOOL(GLAD_API_PTR *PFNWGLCHOOSEPIXELFORMATEXTPROC)(HDC hdc, const int *piAttribIList,
+ const FLOAT *pfAttribFList,
+ UINT nMaxFormats, int *piFormats,
+ UINT *nNumFormats);
+typedef BOOL(GLAD_API_PTR *PFNWGLCOPYCONTEXTPROC)(HGLRC hglrcSrc, HGLRC hglrcDst, UINT mask);
+typedef BOOL(GLAD_API_PTR *PFNWGLCOPYIMAGESUBDATANVPROC)(
+ HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY,
+ GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX,
+ GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
+typedef HDC(GLAD_API_PTR *PFNWGLCREATEAFFINITYDCNVPROC)(const HGPUNV *phGpuList);
+typedef HGLRC(GLAD_API_PTR *PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC)(UINT id);
+typedef HGLRC(GLAD_API_PTR *PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC)(UINT id,
+ HGLRC hShareContext,
+ const int *attribList);
+typedef HANDLE(GLAD_API_PTR *PFNWGLCREATEBUFFERREGIONARBPROC)(HDC hDC, int iLayerPlane, UINT uType);
+typedef HGLRC(GLAD_API_PTR *PFNWGLCREATECONTEXTPROC)(HDC hDc);
+typedef HGLRC(GLAD_API_PTR *PFNWGLCREATECONTEXTATTRIBSARBPROC)(HDC hDC, HGLRC hShareContext,
+ const int *attribList);
+typedef GLboolean(GLAD_API_PTR *PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC)(GLushort id);
+typedef LPVOID(GLAD_API_PTR *PFNWGLCREATEIMAGEBUFFERI3DPROC)(HDC hDC, DWORD dwSize, UINT uFlags);
+typedef HGLRC(GLAD_API_PTR *PFNWGLCREATELAYERCONTEXTPROC)(HDC hDc, int level);
+typedef HPBUFFERARB(GLAD_API_PTR *PFNWGLCREATEPBUFFERARBPROC)(HDC hDC, int iPixelFormat, int iWidth,
+ int iHeight, const int *piAttribList);
+typedef HPBUFFEREXT(GLAD_API_PTR *PFNWGLCREATEPBUFFEREXTPROC)(HDC hDC, int iPixelFormat, int iWidth,
+ int iHeight, const int *piAttribList);
+typedef BOOL(GLAD_API_PTR *PFNWGLDXCLOSEDEVICENVPROC)(HANDLE hDevice);
+typedef BOOL(GLAD_API_PTR *PFNWGLDXLOCKOBJECTSNVPROC)(HANDLE hDevice, GLint count,
+ HANDLE *hObjects);
+typedef BOOL(GLAD_API_PTR *PFNWGLDXOBJECTACCESSNVPROC)(HANDLE hObject, GLenum access);
+typedef HANDLE(GLAD_API_PTR *PFNWGLDXOPENDEVICENVPROC)(void *dxDevice);
+typedef HANDLE(GLAD_API_PTR *PFNWGLDXREGISTEROBJECTNVPROC)(HANDLE hDevice, void *dxObject,
+ GLuint name, GLenum type, GLenum access);
+typedef BOOL(GLAD_API_PTR *PFNWGLDXSETRESOURCESHAREHANDLENVPROC)(void *dxObject,
+ HANDLE shareHandle);
+typedef BOOL(GLAD_API_PTR *PFNWGLDXUNLOCKOBJECTSNVPROC)(HANDLE hDevice, GLint count,
+ HANDLE *hObjects);
+typedef BOOL(GLAD_API_PTR *PFNWGLDXUNREGISTEROBJECTNVPROC)(HANDLE hDevice, HANDLE hObject);
+typedef BOOL(GLAD_API_PTR *PFNWGLDELAYBEFORESWAPNVPROC)(HDC hDC, GLfloat seconds);
+typedef BOOL(GLAD_API_PTR *PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC)(HGLRC hglrc);
+typedef VOID(GLAD_API_PTR *PFNWGLDELETEBUFFERREGIONARBPROC)(HANDLE hRegion);
+typedef BOOL(GLAD_API_PTR *PFNWGLDELETECONTEXTPROC)(HGLRC oldContext);
+typedef BOOL(GLAD_API_PTR *PFNWGLDELETEDCNVPROC)(HDC hdc);
+typedef BOOL(GLAD_API_PTR *PFNWGLDESCRIBELAYERPLANEPROC)(HDC hDc, int pixelFormat, int layerPlane,
+ UINT nBytes, LAYERPLANEDESCRIPTOR *plpd);
+typedef VOID(GLAD_API_PTR *PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC)(GLushort id);
+typedef BOOL(GLAD_API_PTR *PFNWGLDESTROYIMAGEBUFFERI3DPROC)(HDC hDC, LPVOID pAddress);
+typedef BOOL(GLAD_API_PTR *PFNWGLDESTROYPBUFFERARBPROC)(HPBUFFERARB hPbuffer);
+typedef BOOL(GLAD_API_PTR *PFNWGLDESTROYPBUFFEREXTPROC)(HPBUFFEREXT hPbuffer);
+typedef BOOL(GLAD_API_PTR *PFNWGLDISABLEFRAMELOCKI3DPROC)(void);
+typedef BOOL(GLAD_API_PTR *PFNWGLDISABLEGENLOCKI3DPROC)(HDC hDC);
+typedef BOOL(GLAD_API_PTR *PFNWGLENABLEFRAMELOCKI3DPROC)(void);
+typedef BOOL(GLAD_API_PTR *PFNWGLENABLEGENLOCKI3DPROC)(HDC hDC);
+typedef BOOL(GLAD_API_PTR *PFNWGLENDFRAMETRACKINGI3DPROC)(void);
+typedef BOOL(GLAD_API_PTR *PFNWGLENUMGPUDEVICESNVPROC)(HGPUNV hGpu, UINT iDeviceIndex,
+ PGPU_DEVICE lpGpuDevice);
+typedef BOOL(GLAD_API_PTR *PFNWGLENUMGPUSFROMAFFINITYDCNVPROC)(HDC hAffinityDC, UINT iGpuIndex,
+ HGPUNV *hGpu);
+typedef BOOL(GLAD_API_PTR *PFNWGLENUMGPUSNVPROC)(UINT iGpuIndex, HGPUNV *phGpu);
+typedef UINT(GLAD_API_PTR *PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC)(
+ HDC hDc, HVIDEOINPUTDEVICENV *phDeviceList);
+typedef int(GLAD_API_PTR *PFNWGLENUMERATEVIDEODEVICESNVPROC)(HDC hDc,
+ HVIDEOOUTPUTDEVICENV *phDeviceList);
+typedef void(GLAD_API_PTR *PFNWGLFREEMEMORYNVPROC)(void *pointer);
+typedef BOOL(GLAD_API_PTR *PFNWGLGENLOCKSAMPLERATEI3DPROC)(HDC hDC, UINT uRate);
+typedef BOOL(GLAD_API_PTR *PFNWGLGENLOCKSOURCEDELAYI3DPROC)(HDC hDC, UINT uDelay);
+typedef BOOL(GLAD_API_PTR *PFNWGLGENLOCKSOURCEEDGEI3DPROC)(HDC hDC, UINT uEdge);
+typedef BOOL(GLAD_API_PTR *PFNWGLGENLOCKSOURCEI3DPROC)(HDC hDC, UINT uSource);
+typedef UINT(GLAD_API_PTR *PFNWGLGETCONTEXTGPUIDAMDPROC)(HGLRC hglrc);
+typedef HGLRC(GLAD_API_PTR *PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC)(void);
+typedef HGLRC(GLAD_API_PTR *PFNWGLGETCURRENTCONTEXTPROC)(void);
+typedef HDC(GLAD_API_PTR *PFNWGLGETCURRENTDCPROC)(void);
+typedef HDC(GLAD_API_PTR *PFNWGLGETCURRENTREADDCARBPROC)(void);
+typedef HDC(GLAD_API_PTR *PFNWGLGETCURRENTREADDCEXTPROC)(void);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC)(HDC hDC, int iAttribute,
+ int *piValue);
+typedef const char *(GLAD_API_PTR *PFNWGLGETEXTENSIONSSTRINGARBPROC)(HDC hdc);
+typedef const char *(GLAD_API_PTR *PFNWGLGETEXTENSIONSSTRINGEXTPROC)(void);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETFRAMEUSAGEI3DPROC)(float *pUsage);
+typedef UINT(GLAD_API_PTR *PFNWGLGETGPUIDSAMDPROC)(UINT maxCount, UINT *ids);
+typedef INT(GLAD_API_PTR *PFNWGLGETGPUINFOAMDPROC)(UINT id, INT property, GLenum dataType,
+ UINT size, void *data);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETGAMMATABLEI3DPROC)(HDC hDC, int iEntries, USHORT *puRed,
+ USHORT *puGreen, USHORT *puBlue);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETGAMMATABLEPARAMETERSI3DPROC)(HDC hDC, int iAttribute,
+ int *piValue);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETGENLOCKSAMPLERATEI3DPROC)(HDC hDC, UINT *uRate);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETGENLOCKSOURCEDELAYI3DPROC)(HDC hDC, UINT *uDelay);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETGENLOCKSOURCEEDGEI3DPROC)(HDC hDC, UINT *uEdge);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETGENLOCKSOURCEI3DPROC)(HDC hDC, UINT *uSource);
+typedef int(GLAD_API_PTR *PFNWGLGETLAYERPALETTEENTRIESPROC)(HDC hdc, int iLayerPlane, int iStart,
+ int cEntries, COLORREF *pcr);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETMSCRATEOMLPROC)(HDC hdc, INT32 *numerator, INT32 *denominator);
+typedef HDC(GLAD_API_PTR *PFNWGLGETPBUFFERDCARBPROC)(HPBUFFERARB hPbuffer);
+typedef HDC(GLAD_API_PTR *PFNWGLGETPBUFFERDCEXTPROC)(HPBUFFEREXT hPbuffer);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETPIXELFORMATATTRIBFVARBPROC)(HDC hdc, int iPixelFormat,
+ int iLayerPlane, UINT nAttributes,
+ const int *piAttributes,
+ FLOAT *pfValues);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETPIXELFORMATATTRIBFVEXTPROC)(HDC hdc, int iPixelFormat,
+ int iLayerPlane, UINT nAttributes,
+ int *piAttributes, FLOAT *pfValues);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETPIXELFORMATATTRIBIVARBPROC)(HDC hdc, int iPixelFormat,
+ int iLayerPlane, UINT nAttributes,
+ const int *piAttributes,
+ int *piValues);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETPIXELFORMATATTRIBIVEXTPROC)(HDC hdc, int iPixelFormat,
+ int iLayerPlane, UINT nAttributes,
+ int *piAttributes, int *piValues);
+typedef PROC(GLAD_API_PTR *PFNWGLGETPROCADDRESSPROC)(LPCSTR lpszProc);
+typedef int(GLAD_API_PTR *PFNWGLGETSWAPINTERVALEXTPROC)(void);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETSYNCVALUESOMLPROC)(HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETVIDEODEVICENVPROC)(HDC hDC, int numDevices,
+ HPVIDEODEV *hVideoDevice);
+typedef BOOL(GLAD_API_PTR *PFNWGLGETVIDEOINFONVPROC)(HPVIDEODEV hpVideoDevice,
+ unsigned long *pulCounterOutputPbuffer,
+ unsigned long *pulCounterOutputVideo);
+typedef BOOL(GLAD_API_PTR *PFNWGLISENABLEDFRAMELOCKI3DPROC)(BOOL *pFlag);
+typedef BOOL(GLAD_API_PTR *PFNWGLISENABLEDGENLOCKI3DPROC)(HDC hDC, BOOL *pFlag);
+typedef BOOL(GLAD_API_PTR *PFNWGLJOINSWAPGROUPNVPROC)(HDC hDC, GLuint group);
+typedef GLboolean(GLAD_API_PTR *PFNWGLLOADDISPLAYCOLORTABLEEXTPROC)(const GLushort *table,
+ GLuint length);
+typedef BOOL(GLAD_API_PTR *PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC)(HDC hDc,
+ HVIDEOINPUTDEVICENV hDevice);
+typedef BOOL(GLAD_API_PTR *PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC)(HGLRC hglrc);
+typedef BOOL(GLAD_API_PTR *PFNWGLMAKECONTEXTCURRENTARBPROC)(HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
+typedef BOOL(GLAD_API_PTR *PFNWGLMAKECONTEXTCURRENTEXTPROC)(HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
+typedef BOOL(GLAD_API_PTR *PFNWGLMAKECURRENTPROC)(HDC hDc, HGLRC newContext);
+typedef BOOL(GLAD_API_PTR *PFNWGLQUERYCURRENTCONTEXTNVPROC)(int iAttribute, int *piValue);
+typedef BOOL(GLAD_API_PTR *PFNWGLQUERYFRAMECOUNTNVPROC)(HDC hDC, GLuint *count);
+typedef BOOL(GLAD_API_PTR *PFNWGLQUERYFRAMELOCKMASTERI3DPROC)(BOOL *pFlag);
+typedef BOOL(GLAD_API_PTR *PFNWGLQUERYFRAMETRACKINGI3DPROC)(DWORD *pFrameCount,
+ DWORD *pMissedFrames,
+ float *pLastMissedUsage);
+typedef BOOL(GLAD_API_PTR *PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC)(HDC hDC, UINT *uMaxLineDelay,
+ UINT *uMaxPixelDelay);
+typedef BOOL(GLAD_API_PTR *PFNWGLQUERYMAXSWAPGROUPSNVPROC)(HDC hDC, GLuint *maxGroups,
+ GLuint *maxBarriers);
+typedef BOOL(GLAD_API_PTR *PFNWGLQUERYPBUFFERARBPROC)(HPBUFFERARB hPbuffer, int iAttribute,
+ int *piValue);
+typedef BOOL(GLAD_API_PTR *PFNWGLQUERYPBUFFEREXTPROC)(HPBUFFEREXT hPbuffer, int iAttribute,
+ int *piValue);
+typedef BOOL(GLAD_API_PTR *PFNWGLQUERYSWAPGROUPNVPROC)(HDC hDC, GLuint *group, GLuint *barrier);
+typedef BOOL(GLAD_API_PTR *PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC)(HDC hDc,
+ HVIDEOINPUTDEVICENV hDevice,
+ int iAttribute, int *piValue);
+typedef BOOL(GLAD_API_PTR *PFNWGLREALIZELAYERPALETTEPROC)(HDC hdc, int iLayerPlane, BOOL bRealize);
+typedef BOOL(GLAD_API_PTR *PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC)(HDC hDC, const LPVOID *pAddress,
+ UINT count);
+typedef int(GLAD_API_PTR *PFNWGLRELEASEPBUFFERDCARBPROC)(HPBUFFERARB hPbuffer, HDC hDC);
+typedef int(GLAD_API_PTR *PFNWGLRELEASEPBUFFERDCEXTPROC)(HPBUFFEREXT hPbuffer, HDC hDC);
+typedef BOOL(GLAD_API_PTR *PFNWGLRELEASETEXIMAGEARBPROC)(HPBUFFERARB hPbuffer, int iBuffer);
+typedef BOOL(GLAD_API_PTR *PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC)(HDC hDc,
+ HVIDEOINPUTDEVICENV hDevice);
+typedef BOOL(GLAD_API_PTR *PFNWGLRELEASEVIDEODEVICENVPROC)(HPVIDEODEV hVideoDevice);
+typedef BOOL(GLAD_API_PTR *PFNWGLRELEASEVIDEOIMAGENVPROC)(HPBUFFERARB hPbuffer, int iVideoBuffer);
+typedef BOOL(GLAD_API_PTR *PFNWGLRESETFRAMECOUNTNVPROC)(HDC hDC);
+typedef BOOL(GLAD_API_PTR *PFNWGLRESTOREBUFFERREGIONARBPROC)(HANDLE hRegion, int x, int y,
+ int width, int height, int xSrc,
+ int ySrc);
+typedef BOOL(GLAD_API_PTR *PFNWGLSAVEBUFFERREGIONARBPROC)(HANDLE hRegion, int x, int y, int width,
+ int height);
+typedef BOOL(GLAD_API_PTR *PFNWGLSENDPBUFFERTOVIDEONVPROC)(HPBUFFERARB hPbuffer, int iBufferType,
+ unsigned long *pulCounterPbuffer,
+ BOOL bBlock);
+typedef BOOL(GLAD_API_PTR *PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC)(HDC hDC, int iAttribute,
+ const int *piValue);
+typedef BOOL(GLAD_API_PTR *PFNWGLSETGAMMATABLEI3DPROC)(HDC hDC, int iEntries, const USHORT *puRed,
+ const USHORT *puGreen, const USHORT *puBlue);
+typedef BOOL(GLAD_API_PTR *PFNWGLSETGAMMATABLEPARAMETERSI3DPROC)(HDC hDC, int iAttribute,
+ const int *piValue);
+typedef int(GLAD_API_PTR *PFNWGLSETLAYERPALETTEENTRIESPROC)(HDC hdc, int iLayerPlane, int iStart,
+ int cEntries, const COLORREF *pcr);
+typedef BOOL(GLAD_API_PTR *PFNWGLSETPBUFFERATTRIBARBPROC)(HPBUFFERARB hPbuffer,
+ const int *piAttribList);
+typedef BOOL(GLAD_API_PTR *PFNWGLSETSTEREOEMITTERSTATE3DLPROC)(HDC hDC, UINT uState);
+typedef BOOL(GLAD_API_PTR *PFNWGLSHARELISTSPROC)(HGLRC hrcSrvShare, HGLRC hrcSrvSource);
+typedef INT64(GLAD_API_PTR *PFNWGLSWAPBUFFERSMSCOMLPROC)(HDC hdc, INT64 target_msc, INT64 divisor,
+ INT64 remainder);
+typedef BOOL(GLAD_API_PTR *PFNWGLSWAPINTERVALEXTPROC)(int interval);
+typedef BOOL(GLAD_API_PTR *PFNWGLSWAPLAYERBUFFERSPROC)(HDC hdc, UINT fuFlags);
+typedef INT64(GLAD_API_PTR *PFNWGLSWAPLAYERBUFFERSMSCOMLPROC)(HDC hdc, INT fuPlanes,
+ INT64 target_msc, INT64 divisor,
+ INT64 remainder);
+typedef BOOL(GLAD_API_PTR *PFNWGLUSEFONTBITMAPSPROC)(HDC hDC, DWORD first, DWORD count,
+ DWORD listBase);
+typedef BOOL(GLAD_API_PTR *PFNWGLUSEFONTBITMAPSAPROC)(HDC hDC, DWORD first, DWORD count,
+ DWORD listBase);
+typedef BOOL(GLAD_API_PTR *PFNWGLUSEFONTBITMAPSWPROC)(HDC hDC, DWORD first, DWORD count,
+ DWORD listBase);
+typedef BOOL(GLAD_API_PTR *PFNWGLUSEFONTOUTLINESPROC)(HDC hDC, DWORD first, DWORD count,
+ DWORD listBase, FLOAT deviation,
+ FLOAT extrusion, int format,
+ LPGLYPHMETRICSFLOAT lpgmf);
+typedef BOOL(GLAD_API_PTR *PFNWGLUSEFONTOUTLINESAPROC)(HDC hDC, DWORD first, DWORD count,
+ DWORD listBase, FLOAT deviation,
+ FLOAT extrusion, int format,
+ LPGLYPHMETRICSFLOAT lpgmf);
+typedef BOOL(GLAD_API_PTR *PFNWGLUSEFONTOUTLINESWPROC)(HDC hDC, DWORD first, DWORD count,
+ DWORD listBase, FLOAT deviation,
+ FLOAT extrusion, int format,
+ LPGLYPHMETRICSFLOAT lpgmf);
+typedef BOOL(GLAD_API_PTR *PFNWGLWAITFORMSCOMLPROC)(HDC hdc, INT64 target_msc, INT64 divisor,
+ INT64 remainder, INT64 *ust, INT64 *msc,
+ INT64 *sbc);
+typedef BOOL(GLAD_API_PTR *PFNWGLWAITFORSBCOMLPROC)(HDC hdc, INT64 target_sbc, INT64 *ust,
+ INT64 *msc, INT64 *sbc);
+
+GLAD_API_CALL PFNWGLALLOCATEMEMORYNVPROC glad_wglAllocateMemoryNV;
+#define wglAllocateMemoryNV glad_wglAllocateMemoryNV
+GLAD_API_CALL PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC glad_wglAssociateImageBufferEventsI3D;
+#define wglAssociateImageBufferEventsI3D glad_wglAssociateImageBufferEventsI3D
+GLAD_API_CALL PFNWGLBEGINFRAMETRACKINGI3DPROC glad_wglBeginFrameTrackingI3D;
+#define wglBeginFrameTrackingI3D glad_wglBeginFrameTrackingI3D
+GLAD_API_CALL PFNWGLBINDDISPLAYCOLORTABLEEXTPROC glad_wglBindDisplayColorTableEXT;
+#define wglBindDisplayColorTableEXT glad_wglBindDisplayColorTableEXT
+GLAD_API_CALL PFNWGLBINDSWAPBARRIERNVPROC glad_wglBindSwapBarrierNV;
+#define wglBindSwapBarrierNV glad_wglBindSwapBarrierNV
+GLAD_API_CALL PFNWGLBINDTEXIMAGEARBPROC glad_wglBindTexImageARB;
+#define wglBindTexImageARB glad_wglBindTexImageARB
+GLAD_API_CALL PFNWGLBINDVIDEOCAPTUREDEVICENVPROC glad_wglBindVideoCaptureDeviceNV;
+#define wglBindVideoCaptureDeviceNV glad_wglBindVideoCaptureDeviceNV
+GLAD_API_CALL PFNWGLBINDVIDEODEVICENVPROC glad_wglBindVideoDeviceNV;
+#define wglBindVideoDeviceNV glad_wglBindVideoDeviceNV
+GLAD_API_CALL PFNWGLBINDVIDEOIMAGENVPROC glad_wglBindVideoImageNV;
+#define wglBindVideoImageNV glad_wglBindVideoImageNV
+GLAD_API_CALL PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC glad_wglBlitContextFramebufferAMD;
+#define wglBlitContextFramebufferAMD glad_wglBlitContextFramebufferAMD
+GLAD_API_CALL PFNWGLCHOOSEPIXELFORMATARBPROC glad_wglChoosePixelFormatARB;
+#define wglChoosePixelFormatARB glad_wglChoosePixelFormatARB
+GLAD_API_CALL PFNWGLCHOOSEPIXELFORMATEXTPROC glad_wglChoosePixelFormatEXT;
+#define wglChoosePixelFormatEXT glad_wglChoosePixelFormatEXT
+GLAD_API_CALL PFNWGLCOPYIMAGESUBDATANVPROC glad_wglCopyImageSubDataNV;
+#define wglCopyImageSubDataNV glad_wglCopyImageSubDataNV
+GLAD_API_CALL PFNWGLCREATEAFFINITYDCNVPROC glad_wglCreateAffinityDCNV;
+#define wglCreateAffinityDCNV glad_wglCreateAffinityDCNV
+GLAD_API_CALL PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC glad_wglCreateAssociatedContextAMD;
+#define wglCreateAssociatedContextAMD glad_wglCreateAssociatedContextAMD
+GLAD_API_CALL PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC glad_wglCreateAssociatedContextAttribsAMD;
+#define wglCreateAssociatedContextAttribsAMD glad_wglCreateAssociatedContextAttribsAMD
+GLAD_API_CALL PFNWGLCREATEBUFFERREGIONARBPROC glad_wglCreateBufferRegionARB;
+#define wglCreateBufferRegionARB glad_wglCreateBufferRegionARB
+GLAD_API_CALL PFNWGLCREATECONTEXTATTRIBSARBPROC glad_wglCreateContextAttribsARB;
+#define wglCreateContextAttribsARB glad_wglCreateContextAttribsARB
+GLAD_API_CALL PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC glad_wglCreateDisplayColorTableEXT;
+#define wglCreateDisplayColorTableEXT glad_wglCreateDisplayColorTableEXT
+GLAD_API_CALL PFNWGLCREATEIMAGEBUFFERI3DPROC glad_wglCreateImageBufferI3D;
+#define wglCreateImageBufferI3D glad_wglCreateImageBufferI3D
+GLAD_API_CALL PFNWGLCREATEPBUFFERARBPROC glad_wglCreatePbufferARB;
+#define wglCreatePbufferARB glad_wglCreatePbufferARB
+GLAD_API_CALL PFNWGLCREATEPBUFFEREXTPROC glad_wglCreatePbufferEXT;
+#define wglCreatePbufferEXT glad_wglCreatePbufferEXT
+GLAD_API_CALL PFNWGLDXCLOSEDEVICENVPROC glad_wglDXCloseDeviceNV;
+#define wglDXCloseDeviceNV glad_wglDXCloseDeviceNV
+GLAD_API_CALL PFNWGLDXLOCKOBJECTSNVPROC glad_wglDXLockObjectsNV;
+#define wglDXLockObjectsNV glad_wglDXLockObjectsNV
+GLAD_API_CALL PFNWGLDXOBJECTACCESSNVPROC glad_wglDXObjectAccessNV;
+#define wglDXObjectAccessNV glad_wglDXObjectAccessNV
+GLAD_API_CALL PFNWGLDXOPENDEVICENVPROC glad_wglDXOpenDeviceNV;
+#define wglDXOpenDeviceNV glad_wglDXOpenDeviceNV
+GLAD_API_CALL PFNWGLDXREGISTEROBJECTNVPROC glad_wglDXRegisterObjectNV;
+#define wglDXRegisterObjectNV glad_wglDXRegisterObjectNV
+GLAD_API_CALL PFNWGLDXSETRESOURCESHAREHANDLENVPROC glad_wglDXSetResourceShareHandleNV;
+#define wglDXSetResourceShareHandleNV glad_wglDXSetResourceShareHandleNV
+GLAD_API_CALL PFNWGLDXUNLOCKOBJECTSNVPROC glad_wglDXUnlockObjectsNV;
+#define wglDXUnlockObjectsNV glad_wglDXUnlockObjectsNV
+GLAD_API_CALL PFNWGLDXUNREGISTEROBJECTNVPROC glad_wglDXUnregisterObjectNV;
+#define wglDXUnregisterObjectNV glad_wglDXUnregisterObjectNV
+GLAD_API_CALL PFNWGLDELAYBEFORESWAPNVPROC glad_wglDelayBeforeSwapNV;
+#define wglDelayBeforeSwapNV glad_wglDelayBeforeSwapNV
+GLAD_API_CALL PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC glad_wglDeleteAssociatedContextAMD;
+#define wglDeleteAssociatedContextAMD glad_wglDeleteAssociatedContextAMD
+GLAD_API_CALL PFNWGLDELETEBUFFERREGIONARBPROC glad_wglDeleteBufferRegionARB;
+#define wglDeleteBufferRegionARB glad_wglDeleteBufferRegionARB
+GLAD_API_CALL PFNWGLDELETEDCNVPROC glad_wglDeleteDCNV;
+#define wglDeleteDCNV glad_wglDeleteDCNV
+GLAD_API_CALL PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC glad_wglDestroyDisplayColorTableEXT;
+#define wglDestroyDisplayColorTableEXT glad_wglDestroyDisplayColorTableEXT
+GLAD_API_CALL PFNWGLDESTROYIMAGEBUFFERI3DPROC glad_wglDestroyImageBufferI3D;
+#define wglDestroyImageBufferI3D glad_wglDestroyImageBufferI3D
+GLAD_API_CALL PFNWGLDESTROYPBUFFERARBPROC glad_wglDestroyPbufferARB;
+#define wglDestroyPbufferARB glad_wglDestroyPbufferARB
+GLAD_API_CALL PFNWGLDESTROYPBUFFEREXTPROC glad_wglDestroyPbufferEXT;
+#define wglDestroyPbufferEXT glad_wglDestroyPbufferEXT
+GLAD_API_CALL PFNWGLDISABLEFRAMELOCKI3DPROC glad_wglDisableFrameLockI3D;
+#define wglDisableFrameLockI3D glad_wglDisableFrameLockI3D
+GLAD_API_CALL PFNWGLDISABLEGENLOCKI3DPROC glad_wglDisableGenlockI3D;
+#define wglDisableGenlockI3D glad_wglDisableGenlockI3D
+GLAD_API_CALL PFNWGLENABLEFRAMELOCKI3DPROC glad_wglEnableFrameLockI3D;
+#define wglEnableFrameLockI3D glad_wglEnableFrameLockI3D
+GLAD_API_CALL PFNWGLENABLEGENLOCKI3DPROC glad_wglEnableGenlockI3D;
+#define wglEnableGenlockI3D glad_wglEnableGenlockI3D
+GLAD_API_CALL PFNWGLENDFRAMETRACKINGI3DPROC glad_wglEndFrameTrackingI3D;
+#define wglEndFrameTrackingI3D glad_wglEndFrameTrackingI3D
+GLAD_API_CALL PFNWGLENUMGPUDEVICESNVPROC glad_wglEnumGpuDevicesNV;
+#define wglEnumGpuDevicesNV glad_wglEnumGpuDevicesNV
+GLAD_API_CALL PFNWGLENUMGPUSFROMAFFINITYDCNVPROC glad_wglEnumGpusFromAffinityDCNV;
+#define wglEnumGpusFromAffinityDCNV glad_wglEnumGpusFromAffinityDCNV
+GLAD_API_CALL PFNWGLENUMGPUSNVPROC glad_wglEnumGpusNV;
+#define wglEnumGpusNV glad_wglEnumGpusNV
+GLAD_API_CALL PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC glad_wglEnumerateVideoCaptureDevicesNV;
+#define wglEnumerateVideoCaptureDevicesNV glad_wglEnumerateVideoCaptureDevicesNV
+GLAD_API_CALL PFNWGLENUMERATEVIDEODEVICESNVPROC glad_wglEnumerateVideoDevicesNV;
+#define wglEnumerateVideoDevicesNV glad_wglEnumerateVideoDevicesNV
+GLAD_API_CALL PFNWGLFREEMEMORYNVPROC glad_wglFreeMemoryNV;
+#define wglFreeMemoryNV glad_wglFreeMemoryNV
+GLAD_API_CALL PFNWGLGENLOCKSAMPLERATEI3DPROC glad_wglGenlockSampleRateI3D;
+#define wglGenlockSampleRateI3D glad_wglGenlockSampleRateI3D
+GLAD_API_CALL PFNWGLGENLOCKSOURCEDELAYI3DPROC glad_wglGenlockSourceDelayI3D;
+#define wglGenlockSourceDelayI3D glad_wglGenlockSourceDelayI3D
+GLAD_API_CALL PFNWGLGENLOCKSOURCEEDGEI3DPROC glad_wglGenlockSourceEdgeI3D;
+#define wglGenlockSourceEdgeI3D glad_wglGenlockSourceEdgeI3D
+GLAD_API_CALL PFNWGLGENLOCKSOURCEI3DPROC glad_wglGenlockSourceI3D;
+#define wglGenlockSourceI3D glad_wglGenlockSourceI3D
+GLAD_API_CALL PFNWGLGETCONTEXTGPUIDAMDPROC glad_wglGetContextGPUIDAMD;
+#define wglGetContextGPUIDAMD glad_wglGetContextGPUIDAMD
+GLAD_API_CALL PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC glad_wglGetCurrentAssociatedContextAMD;
+#define wglGetCurrentAssociatedContextAMD glad_wglGetCurrentAssociatedContextAMD
+GLAD_API_CALL PFNWGLGETCURRENTREADDCARBPROC glad_wglGetCurrentReadDCARB;
+#define wglGetCurrentReadDCARB glad_wglGetCurrentReadDCARB
+GLAD_API_CALL PFNWGLGETCURRENTREADDCEXTPROC glad_wglGetCurrentReadDCEXT;
+#define wglGetCurrentReadDCEXT glad_wglGetCurrentReadDCEXT
+GLAD_API_CALL PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC glad_wglGetDigitalVideoParametersI3D;
+#define wglGetDigitalVideoParametersI3D glad_wglGetDigitalVideoParametersI3D
+GLAD_API_CALL PFNWGLGETEXTENSIONSSTRINGARBPROC glad_wglGetExtensionsStringARB;
+#define wglGetExtensionsStringARB glad_wglGetExtensionsStringARB
+GLAD_API_CALL PFNWGLGETEXTENSIONSSTRINGEXTPROC glad_wglGetExtensionsStringEXT;
+#define wglGetExtensionsStringEXT glad_wglGetExtensionsStringEXT
+GLAD_API_CALL PFNWGLGETFRAMEUSAGEI3DPROC glad_wglGetFrameUsageI3D;
+#define wglGetFrameUsageI3D glad_wglGetFrameUsageI3D
+GLAD_API_CALL PFNWGLGETGPUIDSAMDPROC glad_wglGetGPUIDsAMD;
+#define wglGetGPUIDsAMD glad_wglGetGPUIDsAMD
+GLAD_API_CALL PFNWGLGETGPUINFOAMDPROC glad_wglGetGPUInfoAMD;
+#define wglGetGPUInfoAMD glad_wglGetGPUInfoAMD
+GLAD_API_CALL PFNWGLGETGAMMATABLEI3DPROC glad_wglGetGammaTableI3D;
+#define wglGetGammaTableI3D glad_wglGetGammaTableI3D
+GLAD_API_CALL PFNWGLGETGAMMATABLEPARAMETERSI3DPROC glad_wglGetGammaTableParametersI3D;
+#define wglGetGammaTableParametersI3D glad_wglGetGammaTableParametersI3D
+GLAD_API_CALL PFNWGLGETGENLOCKSAMPLERATEI3DPROC glad_wglGetGenlockSampleRateI3D;
+#define wglGetGenlockSampleRateI3D glad_wglGetGenlockSampleRateI3D
+GLAD_API_CALL PFNWGLGETGENLOCKSOURCEDELAYI3DPROC glad_wglGetGenlockSourceDelayI3D;
+#define wglGetGenlockSourceDelayI3D glad_wglGetGenlockSourceDelayI3D
+GLAD_API_CALL PFNWGLGETGENLOCKSOURCEEDGEI3DPROC glad_wglGetGenlockSourceEdgeI3D;
+#define wglGetGenlockSourceEdgeI3D glad_wglGetGenlockSourceEdgeI3D
+GLAD_API_CALL PFNWGLGETGENLOCKSOURCEI3DPROC glad_wglGetGenlockSourceI3D;
+#define wglGetGenlockSourceI3D glad_wglGetGenlockSourceI3D
+GLAD_API_CALL PFNWGLGETMSCRATEOMLPROC glad_wglGetMscRateOML;
+#define wglGetMscRateOML glad_wglGetMscRateOML
+GLAD_API_CALL PFNWGLGETPBUFFERDCARBPROC glad_wglGetPbufferDCARB;
+#define wglGetPbufferDCARB glad_wglGetPbufferDCARB
+GLAD_API_CALL PFNWGLGETPBUFFERDCEXTPROC glad_wglGetPbufferDCEXT;
+#define wglGetPbufferDCEXT glad_wglGetPbufferDCEXT
+GLAD_API_CALL PFNWGLGETPIXELFORMATATTRIBFVARBPROC glad_wglGetPixelFormatAttribfvARB;
+#define wglGetPixelFormatAttribfvARB glad_wglGetPixelFormatAttribfvARB
+GLAD_API_CALL PFNWGLGETPIXELFORMATATTRIBFVEXTPROC glad_wglGetPixelFormatAttribfvEXT;
+#define wglGetPixelFormatAttribfvEXT glad_wglGetPixelFormatAttribfvEXT
+GLAD_API_CALL PFNWGLGETPIXELFORMATATTRIBIVARBPROC glad_wglGetPixelFormatAttribivARB;
+#define wglGetPixelFormatAttribivARB glad_wglGetPixelFormatAttribivARB
+GLAD_API_CALL PFNWGLGETPIXELFORMATATTRIBIVEXTPROC glad_wglGetPixelFormatAttribivEXT;
+#define wglGetPixelFormatAttribivEXT glad_wglGetPixelFormatAttribivEXT
+GLAD_API_CALL PFNWGLGETSWAPINTERVALEXTPROC glad_wglGetSwapIntervalEXT;
+#define wglGetSwapIntervalEXT glad_wglGetSwapIntervalEXT
+GLAD_API_CALL PFNWGLGETSYNCVALUESOMLPROC glad_wglGetSyncValuesOML;
+#define wglGetSyncValuesOML glad_wglGetSyncValuesOML
+GLAD_API_CALL PFNWGLGETVIDEODEVICENVPROC glad_wglGetVideoDeviceNV;
+#define wglGetVideoDeviceNV glad_wglGetVideoDeviceNV
+GLAD_API_CALL PFNWGLGETVIDEOINFONVPROC glad_wglGetVideoInfoNV;
+#define wglGetVideoInfoNV glad_wglGetVideoInfoNV
+GLAD_API_CALL PFNWGLISENABLEDFRAMELOCKI3DPROC glad_wglIsEnabledFrameLockI3D;
+#define wglIsEnabledFrameLockI3D glad_wglIsEnabledFrameLockI3D
+GLAD_API_CALL PFNWGLISENABLEDGENLOCKI3DPROC glad_wglIsEnabledGenlockI3D;
+#define wglIsEnabledGenlockI3D glad_wglIsEnabledGenlockI3D
+GLAD_API_CALL PFNWGLJOINSWAPGROUPNVPROC glad_wglJoinSwapGroupNV;
+#define wglJoinSwapGroupNV glad_wglJoinSwapGroupNV
+GLAD_API_CALL PFNWGLLOADDISPLAYCOLORTABLEEXTPROC glad_wglLoadDisplayColorTableEXT;
+#define wglLoadDisplayColorTableEXT glad_wglLoadDisplayColorTableEXT
+GLAD_API_CALL PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC glad_wglLockVideoCaptureDeviceNV;
+#define wglLockVideoCaptureDeviceNV glad_wglLockVideoCaptureDeviceNV
+GLAD_API_CALL PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC glad_wglMakeAssociatedContextCurrentAMD;
+#define wglMakeAssociatedContextCurrentAMD glad_wglMakeAssociatedContextCurrentAMD
+GLAD_API_CALL PFNWGLMAKECONTEXTCURRENTARBPROC glad_wglMakeContextCurrentARB;
+#define wglMakeContextCurrentARB glad_wglMakeContextCurrentARB
+GLAD_API_CALL PFNWGLMAKECONTEXTCURRENTEXTPROC glad_wglMakeContextCurrentEXT;
+#define wglMakeContextCurrentEXT glad_wglMakeContextCurrentEXT
+GLAD_API_CALL PFNWGLQUERYCURRENTCONTEXTNVPROC glad_wglQueryCurrentContextNV;
+#define wglQueryCurrentContextNV glad_wglQueryCurrentContextNV
+GLAD_API_CALL PFNWGLQUERYFRAMECOUNTNVPROC glad_wglQueryFrameCountNV;
+#define wglQueryFrameCountNV glad_wglQueryFrameCountNV
+GLAD_API_CALL PFNWGLQUERYFRAMELOCKMASTERI3DPROC glad_wglQueryFrameLockMasterI3D;
+#define wglQueryFrameLockMasterI3D glad_wglQueryFrameLockMasterI3D
+GLAD_API_CALL PFNWGLQUERYFRAMETRACKINGI3DPROC glad_wglQueryFrameTrackingI3D;
+#define wglQueryFrameTrackingI3D glad_wglQueryFrameTrackingI3D
+GLAD_API_CALL PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC glad_wglQueryGenlockMaxSourceDelayI3D;
+#define wglQueryGenlockMaxSourceDelayI3D glad_wglQueryGenlockMaxSourceDelayI3D
+GLAD_API_CALL PFNWGLQUERYMAXSWAPGROUPSNVPROC glad_wglQueryMaxSwapGroupsNV;
+#define wglQueryMaxSwapGroupsNV glad_wglQueryMaxSwapGroupsNV
+GLAD_API_CALL PFNWGLQUERYPBUFFERARBPROC glad_wglQueryPbufferARB;
+#define wglQueryPbufferARB glad_wglQueryPbufferARB
+GLAD_API_CALL PFNWGLQUERYPBUFFEREXTPROC glad_wglQueryPbufferEXT;
+#define wglQueryPbufferEXT glad_wglQueryPbufferEXT
+GLAD_API_CALL PFNWGLQUERYSWAPGROUPNVPROC glad_wglQuerySwapGroupNV;
+#define wglQuerySwapGroupNV glad_wglQuerySwapGroupNV
+GLAD_API_CALL PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC glad_wglQueryVideoCaptureDeviceNV;
+#define wglQueryVideoCaptureDeviceNV glad_wglQueryVideoCaptureDeviceNV
+GLAD_API_CALL PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC glad_wglReleaseImageBufferEventsI3D;
+#define wglReleaseImageBufferEventsI3D glad_wglReleaseImageBufferEventsI3D
+GLAD_API_CALL PFNWGLRELEASEPBUFFERDCARBPROC glad_wglReleasePbufferDCARB;
+#define wglReleasePbufferDCARB glad_wglReleasePbufferDCARB
+GLAD_API_CALL PFNWGLRELEASEPBUFFERDCEXTPROC glad_wglReleasePbufferDCEXT;
+#define wglReleasePbufferDCEXT glad_wglReleasePbufferDCEXT
+GLAD_API_CALL PFNWGLRELEASETEXIMAGEARBPROC glad_wglReleaseTexImageARB;
+#define wglReleaseTexImageARB glad_wglReleaseTexImageARB
+GLAD_API_CALL PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC glad_wglReleaseVideoCaptureDeviceNV;
+#define wglReleaseVideoCaptureDeviceNV glad_wglReleaseVideoCaptureDeviceNV
+GLAD_API_CALL PFNWGLRELEASEVIDEODEVICENVPROC glad_wglReleaseVideoDeviceNV;
+#define wglReleaseVideoDeviceNV glad_wglReleaseVideoDeviceNV
+GLAD_API_CALL PFNWGLRELEASEVIDEOIMAGENVPROC glad_wglReleaseVideoImageNV;
+#define wglReleaseVideoImageNV glad_wglReleaseVideoImageNV
+GLAD_API_CALL PFNWGLRESETFRAMECOUNTNVPROC glad_wglResetFrameCountNV;
+#define wglResetFrameCountNV glad_wglResetFrameCountNV
+GLAD_API_CALL PFNWGLRESTOREBUFFERREGIONARBPROC glad_wglRestoreBufferRegionARB;
+#define wglRestoreBufferRegionARB glad_wglRestoreBufferRegionARB
+GLAD_API_CALL PFNWGLSAVEBUFFERREGIONARBPROC glad_wglSaveBufferRegionARB;
+#define wglSaveBufferRegionARB glad_wglSaveBufferRegionARB
+GLAD_API_CALL PFNWGLSENDPBUFFERTOVIDEONVPROC glad_wglSendPbufferToVideoNV;
+#define wglSendPbufferToVideoNV glad_wglSendPbufferToVideoNV
+GLAD_API_CALL PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC glad_wglSetDigitalVideoParametersI3D;
+#define wglSetDigitalVideoParametersI3D glad_wglSetDigitalVideoParametersI3D
+GLAD_API_CALL PFNWGLSETGAMMATABLEI3DPROC glad_wglSetGammaTableI3D;
+#define wglSetGammaTableI3D glad_wglSetGammaTableI3D
+GLAD_API_CALL PFNWGLSETGAMMATABLEPARAMETERSI3DPROC glad_wglSetGammaTableParametersI3D;
+#define wglSetGammaTableParametersI3D glad_wglSetGammaTableParametersI3D
+GLAD_API_CALL PFNWGLSETPBUFFERATTRIBARBPROC glad_wglSetPbufferAttribARB;
+#define wglSetPbufferAttribARB glad_wglSetPbufferAttribARB
+GLAD_API_CALL PFNWGLSETSTEREOEMITTERSTATE3DLPROC glad_wglSetStereoEmitterState3DL;
+#define wglSetStereoEmitterState3DL glad_wglSetStereoEmitterState3DL
+GLAD_API_CALL PFNWGLSWAPBUFFERSMSCOMLPROC glad_wglSwapBuffersMscOML;
+#define wglSwapBuffersMscOML glad_wglSwapBuffersMscOML
+GLAD_API_CALL PFNWGLSWAPINTERVALEXTPROC glad_wglSwapIntervalEXT;
+#define wglSwapIntervalEXT glad_wglSwapIntervalEXT
+GLAD_API_CALL PFNWGLSWAPLAYERBUFFERSMSCOMLPROC glad_wglSwapLayerBuffersMscOML;
+#define wglSwapLayerBuffersMscOML glad_wglSwapLayerBuffersMscOML
+GLAD_API_CALL PFNWGLWAITFORMSCOMLPROC glad_wglWaitForMscOML;
+#define wglWaitForMscOML glad_wglWaitForMscOML
+GLAD_API_CALL PFNWGLWAITFORSBCOMLPROC glad_wglWaitForSbcOML;
+#define wglWaitForSbcOML glad_wglWaitForSbcOML
+
+GLAD_API_CALL int gladLoadWGLUserPtr(HDC hdc, GLADuserptrloadfunc load, void *userptr);
+GLAD_API_CALL int gladLoadWGL(HDC hdc, GLADloadfunc load);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/内核源代码/StgSharp.C/x64/Debug/StgSharpC.vcxproj.FileListAbsolute.txt b/内核源代码/StgSharp.C/x64/Debug/StgSharpC.vcxproj.FileListAbsolute.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/内核源代码/StgSharp.Common/.vs/ProjectEvaluation/stgsharp.metadata.v9.bin b/内核源代码/StgSharp.Common/.vs/ProjectEvaluation/stgsharp.metadata.v9.bin
new file mode 100644
index 00000000..a6c8b397
Binary files /dev/null and b/内核源代码/StgSharp.Common/.vs/ProjectEvaluation/stgsharp.metadata.v9.bin differ
diff --git a/内核源代码/StgSharp.Common/.vs/ProjectEvaluation/stgsharp.projects.v9.bin b/内核源代码/StgSharp.Common/.vs/ProjectEvaluation/stgsharp.projects.v9.bin
new file mode 100644
index 00000000..aa31d652
Binary files /dev/null and b/内核源代码/StgSharp.Common/.vs/ProjectEvaluation/stgsharp.projects.v9.bin differ
diff --git a/内核源代码/StgSharp.Common/.vs/ProjectEvaluation/stgsharp.strings.v9.bin b/内核源代码/StgSharp.Common/.vs/ProjectEvaluation/stgsharp.strings.v9.bin
new file mode 100644
index 00000000..3d6ca935
Binary files /dev/null and b/内核源代码/StgSharp.Common/.vs/ProjectEvaluation/stgsharp.strings.v9.bin differ
diff --git a/内核源代码/StgSharp.Common/.vs/StgSharp/CopilotIndices/0.2.1634.3922/CodeChunks.db b/内核源代码/StgSharp.Common/.vs/StgSharp/CopilotIndices/0.2.1634.3922/CodeChunks.db
new file mode 100644
index 00000000..c1bb6030
Binary files /dev/null and b/内核源代码/StgSharp.Common/.vs/StgSharp/CopilotIndices/0.2.1634.3922/CodeChunks.db differ
diff --git a/内核源代码/StgSharp.Common/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db b/内核源代码/StgSharp.Common/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db
new file mode 100644
index 00000000..e5d4c7bd
Binary files /dev/null and b/内核源代码/StgSharp.Common/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db differ
diff --git a/内核源代码/StgSharp.Common/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-shm b/内核源代码/StgSharp.Common/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-shm
new file mode 100644
index 00000000..be0ea137
Binary files /dev/null and b/内核源代码/StgSharp.Common/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-shm differ
diff --git a/内核源代码/StgSharp.Common/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-wal b/内核源代码/StgSharp.Common/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-wal
new file mode 100644
index 00000000..fabd6f58
Binary files /dev/null and b/内核源代码/StgSharp.Common/.vs/StgSharp/CopilotIndices/0.2.1634.3922/SemanticSymbols.db-wal differ
diff --git a/内核源代码/StgSharp.Common/.vs/StgSharp/DesignTimeBuild/.dtbcache.v2 b/内核源代码/StgSharp.Common/.vs/StgSharp/DesignTimeBuild/.dtbcache.v2
new file mode 100644
index 00000000..584637d9
Binary files /dev/null and b/内核源代码/StgSharp.Common/.vs/StgSharp/DesignTimeBuild/.dtbcache.v2 differ
diff --git a/内核源代码/StgSharp.Common/.vs/StgSharp/FileContentIndex/92be5d18-8537-44c7-935e-adcc6dd8469c.vsidx b/内核源代码/StgSharp.Common/.vs/StgSharp/FileContentIndex/92be5d18-8537-44c7-935e-adcc6dd8469c.vsidx
new file mode 100644
index 00000000..2a8d9877
Binary files /dev/null and b/内核源代码/StgSharp.Common/.vs/StgSharp/FileContentIndex/92be5d18-8537-44c7-935e-adcc6dd8469c.vsidx differ
diff --git a/内核源代码/StgSharp.Common/.vs/StgSharp/v17/.futdcache.v2 b/内核源代码/StgSharp.Common/.vs/StgSharp/v17/.futdcache.v2
new file mode 100644
index 00000000..86aed3d4
Binary files /dev/null and b/内核源代码/StgSharp.Common/.vs/StgSharp/v17/.futdcache.v2 differ
diff --git a/内核源代码/StgSharp.Common/.vs/StgSharp/v17/.suo b/内核源代码/StgSharp.Common/.vs/StgSharp/v17/.suo
new file mode 100644
index 00000000..016d83df
Binary files /dev/null and b/内核源代码/StgSharp.Common/.vs/StgSharp/v17/.suo differ
diff --git a/内核源代码/StgSharp.Common/.vs/StgSharp/v17/DocumentLayout.backup.json b/内核源代码/StgSharp.Common/.vs/StgSharp/v17/DocumentLayout.backup.json
new file mode 100644
index 00000000..9d96a1d9
--- /dev/null
+++ b/内核源代码/StgSharp.Common/.vs/StgSharp/v17/DocumentLayout.backup.json
@@ -0,0 +1,12 @@
+{
+ "Version": 1,
+ "WorkspaceRootPath": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\",
+ "Documents": [],
+ "DocumentGroupContainers": [
+ {
+ "Orientation": 0,
+ "VerticalTabListWidth": 256,
+ "DocumentGroups": []
+ }
+ ]
+}
\ No newline at end of file
diff --git a/内核源代码/StgSharp.Common/.vs/StgSharp/v17/DocumentLayout.json b/内核源代码/StgSharp.Common/.vs/StgSharp/v17/DocumentLayout.json
new file mode 100644
index 00000000..9d96a1d9
--- /dev/null
+++ b/内核源代码/StgSharp.Common/.vs/StgSharp/v17/DocumentLayout.json
@@ -0,0 +1,12 @@
+{
+ "Version": 1,
+ "WorkspaceRootPath": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u5185\u6838\u6E90\u4EE3\u7801\\StgSharp\\",
+ "Documents": [],
+ "DocumentGroupContainers": [
+ {
+ "Orientation": 0,
+ "VerticalTabListWidth": 256,
+ "DocumentGroups": []
+ }
+ ]
+}
\ No newline at end of file
diff --git a/内核源代码/StgSharp.Common/Collections/BidirectionalDictionary.cs b/内核源代码/StgSharp.Common/Collections/BidirectionalDictionary.cs
new file mode 100644
index 00000000..407fe313
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Collections/BidirectionalDictionary.cs
@@ -0,0 +1,223 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="BidirectionalDictionary.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Diagnostics.CodeAnalysis;
+using System.Linq;
+
+namespace StgSharp.Commom.Collections
+{
+ public sealed class BidirectionalDictionary : IBidirectionalDictionary
+ {
+
+ private readonly Dictionary _forward;
+ private readonly Dictionary _reverse;
+
+ public BidirectionalDictionary()
+ {
+ _forward = new Dictionary();
+ _reverse = new Dictionary();
+ }
+
+ public TFirst this[TSecond key]
+ {
+ get
+ {
+ if (_reverse.TryGetValue(key, out TFirst value))
+ {
+ return value;
+ }
+ throw new ArgumentException(
+ $"Cannot find key {key!.ToString()} in dictionary.");
+ }
+ set
+ {
+ if (_reverse.TryGetValue(key, out TFirst origin))
+ {
+ _reverse[key] = value;
+ _forward.Remove(origin);
+ }
+ else
+ {
+ _reverse.Add(key, value);
+ }
+ _forward.Add(value, key);
+ }
+ }
+
+ public TSecond this[TFirst key]
+ {
+ get
+ {
+ if (_forward.TryGetValue(key, out TSecond value))
+ {
+ return value;
+ }
+ throw new ArgumentException(
+ $"Cannot find key {key!.ToString()} in dictionary.");
+ }
+ set
+ {
+ if (_forward.TryGetValue(key, out TSecond origin))
+ {
+ _forward[key] = value;
+ _reverse.Remove(origin);
+ }
+ else
+ {
+ _forward.Add(key, value);
+ }
+ _reverse.Add(value, key);
+ }
+ }
+
+ public bool IsReadOnly => false;
+
+ public ICollection FirstIndex => _forward.Keys;
+
+ public ICollection SecondIndex => _reverse.Keys;
+
+ public int Count => _forward.Count;
+
+ public IReadOnlyDictionary Forward => new ReadOnlyDictionary(
+ _forward);
+
+ public IReadOnlyDictionary Reverse => new ReadOnlyDictionary(
+ _reverse);
+
+ public void Add(KeyValuePair item)
+ {
+ if (_forward.ContainsKey(item.Key) || _reverse.ContainsKey(
+ item.Value))
+ {
+ throw new ArgumentException("Duplicate key or value.");
+ }
+ _forward.Add(item.Key, item.Value);
+ _reverse.Add(item.Value, item.Key);
+ }
+
+ public void Add(TFirst key, TSecond value)
+ {
+ if (_forward.ContainsKey(key) || _reverse.ContainsKey(value))
+ {
+ throw new ArgumentException("Duplicate key or value.");
+ }
+ _forward.Add(key, value);
+ _reverse.Add(value, key);
+ }
+
+ public void Clear()
+ {
+ _forward.Clear();
+ _reverse.Clear();
+ }
+
+ public bool Contains(KeyValuePair item)
+ {
+ return _forward.Contains(item) && _reverse.TryGetValue(
+ item.Value, out TFirst var) && var!.Equals(item.Key);
+ }
+
+ public bool Contains(TSecond key)
+ {
+ return _reverse.ContainsKey(key);
+ }
+
+ public bool Contains(TFirst key)
+ {
+ return _forward.ContainsKey(key);
+ }
+
+ public void CopyTo(
+ KeyValuePair[] array,
+ int arrayIndex)
+ {
+ if (array == null)
+ {
+ throw new ArgumentNullException(nameof(array));
+ }
+ if (arrayIndex < 0 || arrayIndex > array.Length)
+ {
+ throw new ArgumentOutOfRangeException(nameof(arrayIndex));
+ }
+ if (array.Length - arrayIndex < _forward.Count)
+ {
+ throw new ArgumentException(
+ "The array is too small to copy the elements.");
+ }
+
+ foreach (KeyValuePair pair in _forward)
+ {
+ array[arrayIndex++] = pair;
+ }
+ }
+
+ public IEnumerator> GetEnumerator()
+ {
+ foreach (KeyValuePair pair in _forward)
+ {
+ yield return pair;
+ }
+ }
+
+ public bool Remove(TFirst key)
+ {
+ throw new NotImplementedException();
+ }
+
+ public bool Remove(KeyValuePair item)
+ {
+ if (_forward.Remove(item.Key))
+ {
+ return _reverse.Remove(item.Value);
+ }
+ return false;
+ }
+
+ public bool TryGetValue(TFirst key, out TSecond value)
+ {
+ return _forward.TryGetValue(key, out value);
+ }
+
+ public bool TryGetValue(TSecond key, out TFirst value)
+ {
+ return _reverse.TryGetValue(key, out value);
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/内核源代码/StgSharp.Common/Collections/CachePool.cs b/内核源代码/StgSharp.Common/Collections/CachePool.cs
new file mode 100644
index 00000000..7b857bfe
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Collections/CachePool.cs
@@ -0,0 +1,59 @@
+using StgSharp.Graphics.OpenGL;
+
+using System;
+using System.Collections;
+using System.Collections.Concurrent;
+using System.Collections.Generic;
+using System.Text;
+
+namespace StgSharp.Commom.Collections
+{
+ public interface IPoolable
+ {
+ public int ID { get; }
+ }
+
+ public class CacheIndexPool : IEnumerable where T : IPoolable
+ {
+ private ConcurrentDictionary _cache;
+ private Func _defaultCreater;
+
+ public CacheIndexPool(Func defaultCreater)
+ {
+ _cache = new ConcurrentDictionary();
+ _defaultCreater = defaultCreater;
+ }
+
+ public T this[int index]
+ {
+ get
+ {
+ if (_cache.TryGetValue(index, out T value))
+ {
+ return value;
+ }
+ T newValue = _defaultCreater();
+ _cache.TryAdd(index, newValue);
+ return newValue;
+ }
+ }
+
+ public IEnumerator GetEnumerator()
+ {
+ return _cache.Values.GetEnumerator();
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+
+ public T CreateObject()
+ {
+ T _new = _defaultCreater();
+ _cache.AddOrUpdate(1, _new,static (_,origin)=>origin);
+ throw new NotImplementedException();
+ return _new;
+ }
+ }
+}
diff --git a/内核源代码/StgSharp.Common/Collections/CapacityFixedList.cs b/内核源代码/StgSharp.Common/Collections/CapacityFixedList.cs
new file mode 100644
index 00000000..2452ab4f
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Collections/CapacityFixedList.cs
@@ -0,0 +1,176 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="CapacityFixedList.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Reflection;
+using System.Text;
+
+namespace StgSharp.Commom.Collections
+{
+ internal class CapacityFixedList : IList
+ {
+ private T[] values;
+ private int capacity, _index;
+
+ public CapacityFixedList(int size)
+ {
+ values = new T[size];
+ }
+
+ public T this[int index]
+ {
+ get => index < _index ?
+ values[index] : throw new ArgumentOutOfRangeException(
+ nameof(index));
+ set
+ {
+ if (index < _index)
+ {
+ values[index] = value;
+ }
+ else
+ {
+ throw new ArgumentOutOfRangeException(nameof(index));
+ }
+ }
+ }
+
+ public bool IsReadOnly => false;
+
+ public int Count => _index + 1;
+
+ public void Add(T item)
+ {
+ if (_index < capacity - 1)
+ {
+ _index++;
+ this[_index] = item;
+ }
+ }
+
+ public void Clear()
+ {
+ values = new T[capacity];
+ _index = 0;
+ }
+
+ public bool Contains(T item)
+ {
+ for (int i = 0; i <= _index; i++)
+ {
+ if (item.Equals(values[i]))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public void CopyTo(T[] array, int arrayIndex)
+ {
+ values.CopyTo(array, arrayIndex);
+ }
+
+ public IEnumerator GetEnumerator()
+ {
+ for (int i = 0; i <= _index; i++)
+ {
+ yield return values[i];
+ }
+ }
+
+ public int IndexOf(T item)
+ {
+ T v;
+ for (int i = 0; i <= _index; i++)
+ {
+ if ((v = values[i]) != null && v.Equals(item))
+ {
+ return i;
+ }
+ }
+ return -1;
+ }
+
+ public bool Remove(T item)
+ {
+ T v;
+ for (int i = 0; i <= _index; i++)
+ {
+ if ((v = values[i]) != null && v.Equals(item))
+ {
+ values[i] = values[_index];
+ _index--;
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public void RemoveAll(Predicate predicate)
+ {
+ for (int i = _index; i > 0; i--)
+ {
+ if (predicate(values[i]))
+ {
+ values[i] = values[_index];
+ _index--;
+ }
+ }
+ }
+
+ public void RemoveAt(int index)
+ {
+ if (index <= _index)
+ {
+ values[index] = values[_index];
+ _index--;
+ }
+ }
+
+ public void Resize(int newSize)
+ {
+ Array.Resize(ref values, newSize);
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ yield return GetEnumerator();
+ }
+
+ void IList.Insert(int index, T item)
+ {
+ throw new NotSupportedException();
+ }
+
+ }//------------------------------------- End of Class ------------------------------------------
+}
diff --git a/内核源代码/StgSharp.Common/Collections/IBidrirectionalDictionary.cs b/内核源代码/StgSharp.Common/Collections/IBidrirectionalDictionary.cs
new file mode 100644
index 00000000..dba1214b
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Collections/IBidrirectionalDictionary.cs
@@ -0,0 +1,100 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="IBidrirectionalDictionary.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the ¡°Software¡±), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED ¡°AS IS¡±,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+
+namespace StgSharp.Commom.Collections
+{
+ public interface IBidirectionalDictionary : IDictionary
+ {
+
+ public TFirst this[TSecond key]
+ {
+ get;
+ set;
+ }
+
+ public ICollection FirstIndex
+ {
+ get;
+ }
+
+ public ICollection SecondIndex
+ {
+ get;
+ }
+
+ public IReadOnlyDictionary Forward
+ {
+ get;
+ }
+
+ public IReadOnlyDictionary Reverse
+ {
+ get;
+ }
+
+ ///
+ /// Determines whether the contains
+ /// the specified key.
+ ///
+ /// The value to locate in the .
+ ///
+ /// true if the contains an element
+ /// with the specified key; otherwise, false.
+ ///
+ public bool Contains(TSecond key);
+
+ ///
+ /// Determines whether the contains
+ /// the specified key.
+ ///
+ /// The value to locate in the .
+ ///
+ /// true if the contains an element
+ /// with the specified key; otherwise, false.
+ ///
+ public bool Contains(TFirst key);
+
+ public bool TryGetValue(TSecond key, out TFirst value);
+
+#pragma warning disable CA1033
+ ICollection IDictionary.Keys => FirstIndex;
+
+ ICollection IDictionary.Values => SecondIndex;
+
+ bool IDictionary.ContainsKey(TFirst key) => Contains(
+ key);
+#pragma warning restore CA1033
+ }
+}
\ No newline at end of file
diff --git a/内核源代码/StgSharp.Common/Collections/IStringHashMultiplexer.cs b/内核源代码/StgSharp.Common/Collections/IStringHashMultiplexer.cs
new file mode 100644
index 00000000..9b53a0de
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Collections/IStringHashMultiplexer.cs
@@ -0,0 +1,12 @@
+using System.Diagnostics.CodeAnalysis;
+
+namespace StgSharp.Collections
+{
+ public interface IStringHashMultiplexer
+ {
+ int RemainedMultiplexCount { get; set; }
+ void CacheHash(string obj, int count);
+ void ExtendCache(int count);
+ int ForceComputeHash([NotNull] string obj);
+ }
+}
\ No newline at end of file
diff --git a/内核源代码/StgSharp.Common/Collections/KeyMultiplexer.cs b/内核源代码/StgSharp.Common/Collections/KeyMultiplexer.cs
new file mode 100644
index 00000000..b505240e
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Collections/KeyMultiplexer.cs
@@ -0,0 +1,110 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
+using System.Globalization;
+using System.Runtime.CompilerServices;
+using System.Text;
+using System.Threading;
+
+namespace StgSharp.Collections
+{
+ public class StringHashMultiplexer : IEqualityComparer, IStringHashMultiplexer
+ {
+ private string _source, _sourceLast;
+ private int _initCount, _remainedCount, _hashCache, _hashLast;
+
+ public int RemainedMultiplexCount
+ {
+ get => _remainedCount;
+ set => _initCount = value;
+ }
+
+ public bool Equals(string x, string y)
+ {
+ return x == y;
+ }
+
+ public int GetHashCode(string obj)
+ {
+ if (_remainedCount > 0 && ReferenceEquals(_source, obj))
+ {
+ _remainedCount--;
+ return _hashCache;
+ }
+ if (ReferenceEquals(_sourceLast, obj))
+ {
+ return _hashLast;
+ }
+ _sourceLast = obj;
+ _hashLast = ForceComputeHash(obj);
+ return _hashLast;
+ }
+
+ public void CacheHash(string obj, int count)
+ {
+ _hashCache = ForceComputeHash(obj);
+ _initCount = count;
+ _remainedCount = _initCount;
+ _source = obj;
+ }
+
+ public void ExtendCache(int count)
+ {
+ _initCount += count;
+ _remainedCount += count;
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public unsafe int ForceComputeHash([NotNull] string obj)
+ {
+ int hash;
+ fixed (char* cPtr = obj.AsSpan())
+ {
+ hash = InternalIO.Intrinsic.cityhash_simplify(cPtr, obj.Length);
+ }
+ return hash;
+ }
+ }
+
+ public class ConcurrentStringHashMultiplexer : IEqualityComparer, IStringHashMultiplexer
+ {
+ private readonly ThreadLocal multiplexers =
+ new ();
+
+ public int RemainedMultiplexCount
+ {
+ get => multiplexers.Value.RemainedMultiplexCount;
+ set => multiplexers.Value.RemainedMultiplexCount = value;
+ }
+
+ public void CacheHash(string obj, int count)
+ {
+ throw new NotImplementedException();
+ }
+
+ public bool Equals(string x, string y)
+ {
+ return x == y;
+ }
+
+ public void ExtendCache(int count)
+ {
+ multiplexers.Value.ExtendCache(count);
+ }
+
+ public unsafe int ForceComputeHash([NotNull] string obj)
+ {
+ int hash;
+ fixed (char* cPtr = obj.AsSpan())
+ {
+ hash = InternalIO.Intrinsic.cityhash_simplify(cPtr, obj.Length);
+ }
+ return hash;
+ }
+
+ public int GetHashCode(string obj)
+ {
+ return multiplexers.Value.GetHashCode(obj);
+ }
+ }
+}
diff --git a/内核源代码/StgSharp.Common/Collections/PartialDictionary.cs b/内核源代码/StgSharp.Common/Collections/PartialDictionary.cs
new file mode 100644
index 00000000..bf3f5c8b
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Collections/PartialDictionary.cs
@@ -0,0 +1,165 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="PartialDictionary.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace StgSharp.Collections
+{
+ public partial class PartialDictionary : IDictionary
+ {
+
+ private readonly Dictionary _source;
+ private readonly HashSet _keys;
+ private readonly PartialDictionaryValues _values;
+
+ public PartialDictionary(
+ Dictionary source,
+ TKey[] index )
+ {
+ _source = source;
+ _keys = new HashSet( index );
+ foreach( TKey item in _keys ) {
+ if( !_source.ContainsKey( item ) ) {
+ _source.Add( item, default! );
+ }
+ }
+ _values = new PartialDictionaryValues( this );
+ }
+
+ public PartialDictionary(
+ Dictionary source,
+ HashSet keys )
+ {
+ _source = source;
+ _keys = keys;
+ foreach( TKey item in _keys ) {
+ if( !_source.ContainsKey( item ) ) {
+ _source.Add( item, default! );
+ }
+ }
+ _values = new PartialDictionaryValues( this );
+ }
+
+ public TValue this[ TKey key ]
+ {
+ get
+ {
+ if( _keys.Contains( key ) ) {
+ return _source[ key ];
+ }
+ throw new KeyNotFoundException();
+ }
+ set
+ {
+ if( _keys.Contains( key ) ) {
+ _source[ key ] = value;
+ }
+ throw new KeyNotFoundException();
+ }
+ }
+
+ public ICollection Keys => _keys;
+
+ public ICollection Values => _values;
+
+ public int Count => _keys.Count;
+
+ public bool Contains( KeyValuePair item )
+ {
+ return _keys.Contains( item.Key ) && _source.Contains( item );
+ }
+
+ public bool ContainsKey( TKey key )
+ {
+ return _keys.Contains( key );
+ }
+
+ public void CopyTo( KeyValuePair[] array, int arrayIndex )
+ {
+ throw new NotImplementedException();
+ }
+
+ public IEnumerator> GetEnumerator()
+ {
+ foreach( TKey item in _keys ) {
+ yield return new KeyValuePair(item, _source[item]);
+ }
+ }
+
+ public bool TryGetValue( TKey key, out TValue value )
+ {
+ if( _keys.Contains( key ) ) {
+ value = _source[ key ];
+ return true;
+ }
+ value = default!;
+ return false;
+ }
+
+ void ICollection>.Add(
+ KeyValuePair item )
+ {
+ return;
+ }
+
+ void ICollection>.Clear()
+ {
+ throw new NotSupportedException();
+ }
+
+ bool ICollection>.IsReadOnly => true;
+
+ bool ICollection>.Remove(
+ KeyValuePair item )
+ {
+ throw new NotSupportedException();
+ }
+
+ void IDictionary.Add( TKey key, TValue value )
+ {
+ return;
+ }
+
+ bool IDictionary.Remove( TKey key )
+ {
+ throw new NotSupportedException();
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+
+ }
+}
diff --git a/内核源代码/StgSharp.Common/Collections/PartialDictionaryValues.cs b/内核源代码/StgSharp.Common/Collections/PartialDictionaryValues.cs
new file mode 100644
index 00000000..e429cd73
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Collections/PartialDictionaryValues.cs
@@ -0,0 +1,108 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="PartialDictionaryValues.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text;
+
+namespace StgSharp.Collections
+{
+ public partial class PartialDictionary
+ {
+
+ internal sealed class PartialDictionaryValues : ICollection
+ {
+
+ private readonly PartialDictionary _values;
+
+ public PartialDictionaryValues(
+ PartialDictionary value )
+ {
+ _values = value;
+ }
+
+ public bool IsReadOnly => true;
+
+ public int Count => _values.Count;
+
+ void ICollection.Add( TValue item )
+ {
+ return;
+ }
+
+ void ICollection.Clear()
+ {
+ return;
+ }
+
+ public bool Contains( TValue item )
+ {
+ foreach (var kvp in _values)
+ {
+ if (kvp.Value != null && kvp.Value.Equals(item))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public void CopyTo( TValue[] array, int arrayIndex )
+ {
+ foreach (var kvp in _values)
+ {
+ array[arrayIndex] = kvp.Value;
+ arrayIndex++;
+ }
+ }
+
+ public IEnumerator GetEnumerator()
+ {
+ foreach (var key in _values._keys)
+ {
+ yield return _values._source[key];
+ }
+ }
+
+ bool ICollection.Remove( TValue item )
+ {
+ throw new NotSupportedException();
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+
+ }
+
+ }
+}
diff --git a/内核源代码/StgSharp.Common/Controlling/Controls/BattleField.cs b/内核源代码/StgSharp.Common/Controlling/Controls/BattleField.cs
new file mode 100644
index 00000000..3f0d2d59
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Controlling/Controls/BattleField.cs
@@ -0,0 +1,72 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="BattleField.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Geometries;
+using StgSharp.Graphics;
+
+using StgSharp.Math;
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+//TODO 这玩意如何加载一个渲染流程以获得各个图元还没搞清楚
+
+namespace StgSharp.Controls
+{
+ public class BattleField : ControllingItem
+ {
+
+ public bool IsEntity => true;
+
+ public ReadOnlySpan TextureBox
+ {
+ get => throw new NotImplementedException();
+ }
+
+ public Rectangle BoundingBox
+ {
+ get;
+ set;
+ }
+
+ public Vec2 Position
+ {
+ get;
+ set;
+ }
+
+ public IEnumerator GetEnumerator()
+ {
+ throw new NotImplementedException();
+ }
+
+ }
+}
diff --git a/内核源代码/StgSharp.Common/Controlling/Controls/ButtonGroup.cs b/内核源代码/StgSharp.Common/Controlling/Controls/ButtonGroup.cs
new file mode 100644
index 00000000..a02a98d8
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Controlling/Controls/ButtonGroup.cs
@@ -0,0 +1,159 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="ButtonGroup.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Geometries;
+using StgSharp.Graphics;
+using StgSharp.Math;
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Security.Cryptography.X509Certificates;
+using System.Text;
+using System.Transactions;
+
+namespace StgSharp.Controls
+{
+ public abstract class KeyboardButtonGroup : ControllingItem
+ {
+
+ private List buttonList;
+ private TriggerButton current;
+
+ public KeyboardButtonGroup()
+ {
+ buttonList = new List();
+ }
+
+ public bool IsEntity
+ {
+ get => false;
+ }
+
+ public ReadOnlySpan TextureBox
+ {
+ get => throw new NotSupportedException();
+ }
+
+ public Rectangle BoundingBox
+ {
+ get;
+ set;
+ }
+
+ public TriggerButton CurrentButton
+ {
+ get => current;
+ }
+
+ public Vec2 Position
+ {
+ get;
+ set;
+ }
+
+ protected List AllButton
+ {
+ get => buttonList;
+ }
+
+ public void AddButton( TriggerButton button )
+ {
+ buttonList.Add( button );
+ }
+
+ public abstract void Confirm();
+
+ public IEnumerator GetEnumerator()
+ {
+ foreach( TriggerButton item in buttonList ) {
+ yield return item.Single();
+ }
+ }
+
+ public void MoveDown()
+ {
+ TriggerButton button = current;
+ while( ( button.Down != null ) && button.Down.IsDisabled ) {
+ button = button.Right;
+ }
+ if( current == button ) {
+ return;
+ }
+ current.DeHighlight();
+ button.Enable();
+ current = button;
+ }
+
+ public void MoveLeft()
+ {
+ TriggerButton button = current;
+ while( ( button.Left != null ) && button.Left.IsDisabled ) {
+ button = button.Left;
+ }
+ if( current == button ) {
+ return;
+ }
+ current.DeHighlight();
+ button.Enable();
+ current = button;
+ }
+
+ public void MoveRight()
+ {
+ TriggerButton button = current;
+ while( ( button.Right != null ) && button.Right.IsDisabled ) {
+ button = button.Right;
+ }
+ if( current == button ) {
+ return;
+ }
+ current.DeHighlight();
+ button.Enable();
+ current = button;
+ }
+
+ public void MoveUp()
+ {
+ TriggerButton button = current;
+ while( ( button.Up != null ) && button.Up.IsDisabled ) {
+ button = button.Right;
+ }
+ if( current == button ) {
+ return;
+ }
+ current.DeHighlight();
+ button.Enable();
+ current = button;
+ }
+
+ }
+}
diff --git a/内核源代码/StgSharp.Common/Controlling/Controls/CharacterIndexImage.cs b/内核源代码/StgSharp.Common/Controlling/Controls/CharacterIndexImage.cs
new file mode 100644
index 00000000..326b01b0
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Controlling/Controls/CharacterIndexImage.cs
@@ -0,0 +1,111 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="CharacterIndexImage.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Geometries;
+using StgSharp.Graphics;
+using StgSharp.Math;
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Diagnostics.Contracts;
+using System.Linq;
+using System.Text;
+
+namespace StgSharp.Controls
+{
+ public class CharacterLineIndexImage : ControllingItem
+ {
+
+ private char[] displayIndex;
+ private char defaultChar;
+
+ private Dictionary texIndex;
+ private int length;
+ private PlainGeometryMesh _tittleMesh;
+
+ public CharacterLineIndexImage(
+ int length,
+ char defaultChar,
+ PlainGeometryMesh tittleMesh,
+ IEnumerable<(char, PlainGeometryMesh)> indexEnumeration )
+ {
+ this.length = length;
+ displayIndex = new char[length];
+ _tittleMesh = tittleMesh;
+ texIndex = indexEnumeration.ToDictionary(
+ item => item.Item1, item => item.Item2 );
+ }
+
+ public bool IsEntity
+ {
+ get => true;
+ }
+
+ public ReadOnlySpan TextureBox
+ {
+ get => throw new NotSupportedException();
+ }
+
+ public Rectangle BoundingBox
+ {
+ get => throw new NotImplementedException();
+ set => throw new NotImplementedException();
+ }
+
+ public Vec2 Position
+ {
+ get => throw new NotImplementedException();
+ set => throw new NotImplementedException();
+ }
+
+ public void Display( string message )
+ {
+ if( string.IsNullOrEmpty( message ) ) {
+ message = string.Empty;
+ }
+
+ string result = ( message.Length >= length ) ?
+ message.Substring( message.Length - displayIndex.Length ) : message.PadLeft(
+ length, defaultChar );
+
+ displayIndex = result.ToCharArray();
+ }
+
+ public IEnumerator GetEnumerator()
+ {
+ yield return _tittleMesh;
+ foreach( char item in displayIndex ) {
+ yield return texIndex[ item ];
+ }
+ }
+
+ }
+}
diff --git a/内核源代码/StgSharp.Common/Controlling/Controls/ControllingIntem.cs b/内核源代码/StgSharp.Common/Controlling/Controls/ControllingIntem.cs
new file mode 100644
index 00000000..32c7b151
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Controlling/Controls/ControllingIntem.cs
@@ -0,0 +1,73 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="ControllingIntem.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Geometries;
+using StgSharp.Graphics;
+using StgSharp.Math;
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text;
+
+namespace StgSharp.Controls
+{
+ public interface ControllingItem : IEnumerable
+ {
+
+ public abstract bool IsEntity
+ {
+ get;
+ }
+
+ public abstract ReadOnlySpan TextureBox
+ {
+ get;
+ }
+
+ public abstract Rectangle BoundingBox
+ {
+ get;
+ set;
+ }
+
+ public abstract Vec2 Position
+ {
+ get;
+ set;
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+
+ }
+}
diff --git a/内核源代码/StgSharp.Common/Controlling/Controls/DecorationBox.cs b/内核源代码/StgSharp.Common/Controlling/Controls/DecorationBox.cs
new file mode 100644
index 00000000..b9c906d2
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Controlling/Controls/DecorationBox.cs
@@ -0,0 +1,78 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="DecorationBox.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Controls;
+using StgSharp.Geometries;
+using StgSharp.Graphics;
+using StgSharp.Math;
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace StgSharp.Controls
+{
+ public class DecorationBox : ControllingItem
+ {
+
+ private PlainGeometryMesh renderMesh;
+
+ public DecorationBox( Rectangle bound, Image texture, Vec2[] texCoord )
+ {
+ renderMesh = new PlainGeometryMesh(
+ BoundingBox, new TextureProvider( texture, texCoord ) );
+ }
+
+ public bool IsEntity => true;
+
+ public ReadOnlySpan TextureBox
+ {
+ get => renderMesh.TextureCoord;
+ }
+
+ public Rectangle BoundingBox
+ {
+ get;
+ set;
+ }
+
+ public Vec2 Position
+ {
+ get;
+ set;
+ }
+
+ public IEnumerator GetEnumerator()
+ {
+ yield return renderMesh;
+ }
+
+ }
+}
diff --git a/内核源代码/StgSharp.Common/Controlling/Controls/MarkingLable.cs b/内核源代码/StgSharp.Common/Controlling/Controls/MarkingLable.cs
new file mode 100644
index 00000000..b334e9e3
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Controlling/Controls/MarkingLable.cs
@@ -0,0 +1,96 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="MarkingLable.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Controls;
+using StgSharp.Geometries;
+using StgSharp.Graphics;
+using StgSharp.Math;
+using StgSharp.Timing;
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Text;
+
+namespace StgSharp.Controls
+{
+ public class MarkingLabel : ControllingItem
+ {
+
+ private PlainGeometryMesh marker;
+
+ private TimeFunction _movement;
+
+ private Vec2 _currentPosition, _movementVec;
+
+ public MarkingLabel( PlainGeometryMesh marker, TimeFunction movement )
+ {
+ this.marker = marker;
+ _movement = movement;
+ }
+
+ public bool IsEntity => true;
+
+ public ReadOnlySpan TextureBox
+ {
+ get => marker.TextureCoord;
+ }
+
+ public Rectangle BoundingBox
+ {
+ get;
+ set;
+ }
+
+ public Vec2 Position
+ {
+ get;
+ set;
+ }
+
+ public IEnumerator GetEnumerator()
+ {
+ yield return marker;
+ }
+
+ public void Move( Vec2 movement )
+ {
+ if( !_movement.IsComplete ) {
+ Position = _currentPosition + ( _movement.Calculate() * _movementVec );
+ }
+ }
+
+ public void MoveTo( Vec2 target )
+ {
+ Move( target - Position );
+ }
+
+ }
+}
diff --git a/内核源代码/StgSharp.Common/Controlling/Controls/TriggerButton.cs b/内核源代码/StgSharp.Common/Controlling/Controls/TriggerButton.cs
new file mode 100644
index 00000000..b135005f
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Controlling/Controls/TriggerButton.cs
@@ -0,0 +1,248 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="TriggerButton.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Controls;
+using StgSharp.Geometries;
+using StgSharp.Graphics;
+using StgSharp.Math;
+
+using System;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+using System.Text;
+
+namespace StgSharp.Controls
+{
+ public delegate void RenderButtonTextureCallback(
+ ButtonStatus status,
+ float beginTime,
+ in TextureProvider texture );
+
+ public enum ButtonStatus
+ {
+
+ Error = 0b0,
+ Disable = 0b1,
+ Enable = 0b10,
+ Highlight = 0b100,
+ Confirm = 0b1000,
+
+ DisableToEnable = Disable | Enable,
+ EnableToDisable = -( Enable | DisableToEnable ),
+
+ EnableToHighlight = Enable | Highlight,
+ HighlightToEnable = -( Enable | Highlight ),
+
+ HighlightToDisable = -( Highlight | Disable ),
+
+ }
+
+ public class TriggerButton : ControllingItem
+ {
+
+ private Action? confirmCallback;
+ private Action? disableCallback;
+
+ #nullable enable
+ private Action? enableCallback;
+ private float _statusBeginTime;
+
+ private RenderButtonTextureCallback _renderButton;
+ private TextureProvider _texture;
+
+ #nullable restore
+
+ public TriggerButton()
+ {
+ CurrentStatus = ButtonStatus.Disable;
+ }
+
+ public event Action ConfirmEvent
+ {
+ add { confirmCallback += value; }
+ remove { confirmCallback -= value; }
+ }
+
+ public event Action DisableEvent
+ {
+ add { disableCallback += value; }
+ remove { disableCallback -= value; }
+ }
+
+ public event Action EnableEvent
+ {
+ add { enableCallback += value; }
+ remove { enableCallback -= value; }
+ }
+
+ public event RenderButtonTextureCallback RenderButtonTexture
+ {
+ add
+ {
+ if( _renderButton == null ) {
+ _renderButton = value;
+ } else {
+ _renderButton += value;
+ }
+ }
+ remove
+ {
+ if( _renderButton != null ) {
+ _renderButton -= value;
+ }
+ }
+ }
+
+ public bool IsHighLighted
+ {
+ get;
+ internal set;
+ }
+
+ public bool IsDisabled
+ {
+ get;
+ internal set;
+ }
+
+ public bool IsEntity => true;
+
+ public ReadOnlySpan TextureBox
+ {
+ get => MemoryMarshal.Cast( _texture.TextureCoordinate );
+ }
+
+ public Rectangle BoundingBox
+ {
+ get;
+ set;
+ }
+
+ public TriggerButton Left
+ {
+ get;
+ internal set;
+ }
+
+ public TriggerButton Right
+ {
+ get;
+ internal set;
+ }
+
+ public TriggerButton Up
+ {
+ get;
+ internal set;
+ }
+
+ public TriggerButton Down
+ {
+ get;
+ internal set;
+ }
+
+ public Vec2 Position
+ {
+ get;
+ set;
+ }
+
+ internal TextureProvider Texture
+ {
+ get => _texture;
+ set => _texture = value;
+ }
+
+ protected ButtonStatus CurrentStatus
+ {
+ get;
+ set;
+ }
+
+ public void DeHighlight()
+ {
+ if( CurrentStatus == ButtonStatus.Highlight ) {
+ CurrentStatus = ButtonStatus.HighlightToEnable;
+ }
+ }
+
+ public void Disable()
+ {
+ CurrentStatus = CurrentStatus switch
+ {
+ ButtonStatus.Enable => ButtonStatus.EnableToDisable,
+ ButtonStatus.Highlight => ButtonStatus.HighlightToDisable,
+ _ => CurrentStatus,
+ };
+ if( disableCallback != null ) {
+ disableCallback();
+ }
+ }
+
+ public void Enable()
+ {
+ if( CurrentStatus == ButtonStatus.Disable ) {
+ CurrentStatus = ButtonStatus.DisableToEnable;
+ } else {
+ return;
+ }
+ if( enableCallback != null ) {
+ enableCallback();
+ }
+ }
+
+ public IEnumerator GetEnumerator()
+ {
+ _renderButton( CurrentStatus, _statusBeginTime, in _texture );
+ yield return new PlainGeometryMesh( this.BoundingBox, _texture );
+ }
+
+ public void Highlight()
+ {
+ if( CurrentStatus == ButtonStatus.Enable ) {
+ CurrentStatus |= ButtonStatus.EnableToHighlight;
+ } else {
+ return;
+ }
+ if( confirmCallback != null ) {
+ confirmCallback();
+ }
+ }
+
+ internal void Init( ButtonStatus status )
+ {
+ if( CurrentStatus == ButtonStatus.Error ) {
+ CurrentStatus = status;
+ }
+ }
+
+ }//----------------------------------- End of class --------------------------------------------
+}
diff --git a/内核源代码/StgSharp.Common/Controlling/KeyEnum.cs b/内核源代码/StgSharp.Common/Controlling/KeyEnum.cs
new file mode 100644
index 00000000..24f75d92
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Controlling/KeyEnum.cs
@@ -0,0 +1,238 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="KeyEnum.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Graphics;
+using StgSharp.Graphics.OpenGL;
+using StgSharp.Internal.OpenGL;
+
+using System;
+
+namespace StgSharp
+{
+ public enum KeyboardKey : int
+ {
+
+ UNKNOWN = -1,
+ None = 0,
+ Space = 32,
+ Apostrophe = 39/*'*/,
+ Comma = 44/*,*/,
+ Minus = 45/*-*/,
+ Period = 46/*.*/,
+ Slash = 47/*/*/,
+ Zero = 48,
+ One = 49,
+ Two = 50,
+ Three = 51,
+ Four = 52,
+ Five = 53,
+ Six = 54,
+ Seven = 55,
+ Eight = 56,
+ Nine = 57,
+ Semicolon = 59/*,*/,
+ Equal = 61/*=*/,
+ A = 65,
+ B = 66,
+ C = 67,
+ D = 68,
+ E = 69,
+ F = 70,
+ G = 71,
+ H = 72,
+ I = 73,
+ J = 74,
+ K = 75,
+ L = 76,
+ M = 77,
+ N = 78,
+ O = 79,
+ P = 80,
+ Q = 81,
+ R = 82,
+ S = 83,
+ T = 84,
+ U = 85,
+ V = 86,
+ W = 87,
+ X = 88,
+ Y = 89,
+ Z = 90,
+ LeftBracket = 91/*[*/,
+ BACKSLASH = 92/*\*/,
+ RightBracket = 93/*]*/,
+ GraveAccent = 96/*`*/,
+ World1 = 161/*non-US#1*/,
+ World2 = 162/*non-US#2*/,
+ Esc = 256,
+ Enter = 257,
+ Tab = 258,
+ Backspace = 259,
+ Insert = 260,
+ Delete = 261,
+ Right = 262,
+ Left = 263,
+ Down = 264,
+ Up = 265,
+ PgUp = 266,
+ PgDown = 267,
+ Home = 268,
+ End = 269,
+ CapsLock = 280,
+ ScrollLock = 281,
+ NumLock = 282,
+ PrintScreen = 283,
+ Pause = 284,
+ F1 = 290,
+ F2 = 291,
+ F3 = 292,
+ F4 = 293,
+ F5 = 294,
+ F6 = 295,
+ F7 = 296,
+ F8 = 297,
+ F9 = 298,
+ F10 = 299,
+ F11 = 300,
+ F12 = 301,
+ F13 = 302,
+ F14 = 303,
+ F15 = 304,
+ F16 = 305,
+ F17 = 306,
+ F18 = 307,
+ F19 = 308,
+ F20 = 309,
+ F21 = 310,
+ F22 = 311,
+ F23 = 312,
+ F24 = 313,
+ F25 = 314,
+ NumPad0 = 320,
+ NumPad1 = 321,
+ NumPad2 = 322,
+ NumPad3 = 323,
+ NumPad4 = 324,
+ NumPad5 = 325,
+ NumPad6 = 326,
+ NumPad7 = 327,
+ NumPad8 = 328,
+ NumPad9 = 329,
+ NumPadDec = 330,
+ NumPadDiv = 331,
+ NumPadMul = 332,
+ NumPadSub = 333,
+ NumPadAdd = 334,
+ NumPadAnter = 335,
+ NumPadEqual = 336,
+ LeftShift = 340,
+ LeftControl = 341,
+ LeftAlt = 342,
+ LeftSuper = 343,
+ RightShift = 344,
+ RightControl = 345,
+ RightAlt = 346,
+ RightSuper = 347,
+ Menu = 348,
+ First = Space,
+ Last = Menu,
+
+ }
+
+ #pragma warning disable CA1707
+ #pragma warning disable CA1712
+ #pragma warning disable CA1008
+ #pragma warning disable CA1027
+ public enum Joystick : int
+ #pragma warning restore CA1027
+ {
+
+ Joystick_1 = glConst.GLFW_JOYSTICK_1,
+ Joystick_2 = glConst.GLFW_JOYSTICK_2,
+ Joystick_3 = glConst.GLFW_JOYSTICK_3,
+ Joystick_4 = glConst.GLFW_JOYSTICK_4,
+ Joystick_5 = glConst.GLFW_JOYSTICK_5,
+ Joystick_6 = glConst.GLFW_JOYSTICK_6,
+ Joystick_7 = glConst.GLFW_JOYSTICK_7,
+ Joystick_8 = glConst.GLFW_JOYSTICK_8,
+ Joystick_9 = glConst.GLFW_JOYSTICK_9,
+ Joystick_10 = glConst.GLFW_JOYSTICK_10,
+ Joystick_11 = glConst.GLFW_JOYSTICK_11,
+ Joystick_12 = glConst.GLFW_JOYSTICK_12,
+ Joystick_13 = glConst.GLFW_JOYSTICK_13,
+ Joystick_14 = glConst.GLFW_JOYSTICK_14,
+ Joystick_15 = glConst.GLFW_JOYSTICK_15,
+ Joystick_16 = glConst.GLFW_JOYSTICK_16,
+ First = Joystick_1,
+ Last = Joystick_16
+
+ }
+
+ [System.Flags]
+ public enum Mouse : int
+ {
+
+ Button1 = 0,
+ Button2 = 1,
+ Button3 = 2,
+ Button4 = 3,
+ Button5 = 4,
+ Button6 = 5,
+ Button7 = 6,
+ Button8 = 7,
+ First = Button1,
+ Last = Button8,
+ Left = Button1,
+ Right = Button2,
+ Middle = Button3
+
+ }
+
+ #pragma warning restore CA1707
+ #pragma warning restore CA1712
+ #pragma warning restore CA7008
+
+ internal enum InputEquipment
+ {
+
+ Keyboard,
+ Mouse,
+ Joystick
+
+ }
+
+ public enum KeyStatus : int
+ {
+
+ RELEASE = 0,
+ PRESS = 1
+
+ }
+}
diff --git a/内核源代码/StgSharp.Common/Controlling/KeyEventAttribute.cs b/内核源代码/StgSharp.Common/Controlling/KeyEventAttribute.cs
new file mode 100644
index 00000000..d56ee7b1
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Controlling/KeyEventAttribute.cs
@@ -0,0 +1,69 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="KeyEventAttribute.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace StgSharp
+{
+ [AttributeUsage( AttributeTargets.Method )]
+ public class KeyEventAttribute : Attribute
+ {
+
+ internal int _equipment;
+ internal int _keyStat;
+ internal int _keyTarget;
+
+ public KeyEventAttribute( KeyboardKey key, KeyStatus status )
+ {
+ _equipment = ( int )InputEquipment.Keyboard;
+ _keyTarget = ( int )key;
+ _keyStat = ( int )status;
+ }
+
+ public KeyEventAttribute( Joystick joystick, KeyStatus status )
+ {
+ _equipment = ( int )InputEquipment.Keyboard;
+ _keyTarget = ( int )joystick;
+ _keyStat = ( int )status;
+ }
+
+ public KeyEventAttribute( Mouse mouse, KeyStatus status )
+ {
+ _equipment = ( int )InputEquipment.Keyboard;
+ _keyTarget = ( int )mouse;
+ _keyStat = ( int )status;
+ }
+
+ }
+}
diff --git a/内核源代码/StgSharp.Common/Controlling/UsrActivity/IClickTrigger.cs b/内核源代码/StgSharp.Common/Controlling/UsrActivity/IClickTrigger.cs
new file mode 100644
index 00000000..327b8a32
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Controlling/UsrActivity/IClickTrigger.cs
@@ -0,0 +1,51 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="IClickTrigger.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace StgSharp.Controlling.UsrActivity
+{
+ public interface IClickTrigger
+ {
+
+ public int TargetKeyOrButtonID
+ {
+ get;
+ }
+
+ public KeyStatus TriggeredStatus
+ {
+ get;
+ }
+
+ }
+}
diff --git a/内核源代码/StgSharp.Common/Controlling/UsrActivity/JoystickTrigger.cs b/内核源代码/StgSharp.Common/Controlling/UsrActivity/JoystickTrigger.cs
new file mode 100644
index 00000000..a8d76f10
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Controlling/UsrActivity/JoystickTrigger.cs
@@ -0,0 +1,93 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="JoystickTrigger.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace StgSharp.Controlling.UsrActivity
+{
+ public readonly struct JoystickTrigger : IClickTrigger, IEquatable
+ {
+
+ private readonly Joystick _stick;
+ private readonly KeyStatus _status;
+
+ public JoystickTrigger( Joystick targetKey, KeyStatus status )
+ {
+ this._stick = targetKey;
+ _status = status;
+ }
+
+ public int TargetKeyOrButtonID => ( int )_stick;
+
+ public Joystick Stick
+ {
+ get => _stick;
+ }
+
+ public KeyStatus TriggeredStatus => _status;
+
+ public override bool Equals( object obj )
+ {
+ return base.Equals( obj );
+ }
+
+ public override int GetHashCode()
+ {
+ return ( ( int )_stick ) + ( 17 * ( ( int )_status ) );
+ }
+
+ public override string ToString()
+ {
+ return $"Key {_stick} triggered when {_status}";
+ }
+
+ public static bool operator !=(
+ JoystickTrigger left,
+ JoystickTrigger right )
+ {
+ return !( left == right );
+ }
+
+ public static bool operator ==(
+ JoystickTrigger left,
+ JoystickTrigger right )
+ {
+ return ( left._status == right._status ) && ( left._stick == right._stick );
+ }
+
+ bool IEquatable.Equals( JoystickTrigger other )
+ {
+ return other == this;
+ }
+
+ }
+}
diff --git a/内核源代码/StgSharp.Common/Controlling/UsrActivity/KeyTrigger.cs b/内核源代码/StgSharp.Common/Controlling/UsrActivity/KeyTrigger.cs
new file mode 100644
index 00000000..3988d883
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Controlling/UsrActivity/KeyTrigger.cs
@@ -0,0 +1,85 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="KeyTrigger.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using System;
+using System.Collections.Generic;
+using System.Data.Common;
+using System.Text;
+
+namespace StgSharp.Controlling.UsrActivity
+{
+ public readonly struct KeyTrigger : IClickTrigger, IEquatable
+ {
+
+ private readonly KeyboardKey _targetKey;
+ private readonly KeyStatus _triggerStat;
+
+ public KeyTrigger( KeyboardKey targetKey, KeyStatus targetStat )
+ {
+ this._targetKey = targetKey;
+ this._triggerStat = targetStat;
+ }
+
+ public int TargetKeyOrButtonID => ( int )_targetKey;
+
+ public KeyStatus TriggeredStatus => _triggerStat;
+
+ public override bool Equals( object obj )
+ {
+ return base.Equals( obj );
+ }
+
+ public override int GetHashCode()
+ {
+ return ( ( int )_targetKey ) + ( 17 * ( ( int )_triggerStat ) );
+ }
+
+ public override string ToString()
+ {
+ return $"Key {_targetKey} triggered when {_triggerStat}";
+ }
+
+ public static bool operator !=( KeyTrigger left, KeyTrigger right )
+ {
+ return !( left == right );
+ }
+
+ public static bool operator ==( KeyTrigger left, KeyTrigger right )
+ {
+ return ( left._triggerStat == right._triggerStat ) && ( left._targetKey == right._targetKey );
+ }
+
+ bool IEquatable.Equals( KeyTrigger other )
+ {
+ return other == this;
+ }
+
+ }
+}
diff --git a/内核源代码/StgSharp.Common/Controlling/UsrActivity/MouseTrigger.cs b/内核源代码/StgSharp.Common/Controlling/UsrActivity/MouseTrigger.cs
new file mode 100644
index 00000000..9e9adbb3
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Controlling/UsrActivity/MouseTrigger.cs
@@ -0,0 +1,72 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="MouseTrigger.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Math;
+
+using System;
+using System.Collections.Generic;
+using System.Diagnostics.SymbolStore;
+using System.Text;
+
+namespace StgSharp.Controlling.UsrActivity
+{
+ public readonly struct MouseTrigger : IClickTrigger, IEquatable
+ {
+
+ private readonly KeyStatus _status;
+ private readonly Mouse _mouse;
+
+ public MouseTrigger( Mouse mouse, KeyStatus status )
+ {
+ _mouse = mouse;
+ _status = status;
+ }
+
+ public int TargetKeyOrButtonID => ( int )_mouse;
+
+ public KeyStatus TriggeredStatus => _status;
+
+ public bool Equals( MouseTrigger other )
+ {
+ return this == other;
+ }
+
+ public static bool operator !=( MouseTrigger left, MouseTrigger right )
+ {
+ return left._mouse != right._mouse || left._status != right._status;
+ }
+
+ public static bool operator ==( MouseTrigger left, MouseTrigger right )
+ {
+ return left._mouse == right._mouse && left._status == right._status;
+ }
+
+ }
+}
diff --git a/内核源代码/StgSharp.Common/Controlling/UsrActivity/TriggetFactory.cs b/内核源代码/StgSharp.Common/Controlling/UsrActivity/TriggetFactory.cs
new file mode 100644
index 00000000..fc377378
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Controlling/UsrActivity/TriggetFactory.cs
@@ -0,0 +1,102 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="TriggetFactory.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Math;
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace StgSharp.Controlling.UsrActivity
+{
+ public static class TriggetBuilder
+ {
+
+ private const int JoystickMax = ( int )Joystick.Last + 1;
+ private const int JoystickMin = ( int )Joystick.First - 1;
+ private const int KeyboardMax = ( int )KeyboardKey.Last + 1;
+ private const int KeyboardMin = ( int )KeyboardKey.First - 1;
+ private const int MouseMax = ( int )Mouse.Last + 1;
+ private const int MouseMin = ( int )Mouse.First - 1;
+
+ private static KeyTrigger keyboardtemp;
+ private static MouseTrigger mousetemp;
+
+ public static JoystickTrigger BuildJoystickClickTrigger(
+ int keyCode,
+ KeyStatus status )
+ {
+ if( keyCode > MouseMin && keyCode < MouseMax ) {
+ return new JoystickTrigger( ( Joystick )keyCode, status );
+ }
+ throw new InvalidOperationException(
+ "Known key code or key is not on joystick." );
+ }
+
+ public static KeyTrigger BuildKeyboardClickTrigger(
+ int keyCode,
+ KeyStatus status )
+ {
+ if( keyCode > KeyboardMin && keyCode < KeyboardMax ) {
+ return new KeyTrigger( ( KeyboardKey )keyCode, status );
+ }
+ throw new InvalidOperationException(
+ "Known key code or kay is not on keyboard." );
+ }
+
+ public static MouseTrigger BuildMouseClickTrigger(
+ int keyCode,
+ KeyStatus status )
+ {
+ if( keyCode >= MouseMin && keyCode <= MouseMax ) {
+ return new MouseTrigger( ( Mouse )keyCode, status );
+ }
+ throw new InvalidOperationException(
+ "Known key code or key is not on mouse." );
+ }
+
+ public static IClickTrigger BuildTrigger(
+ int keyCode,
+ KeyStatus status )
+ {
+ if( keyCode > KeyboardMin && keyCode < KeyboardMax ) {
+ return new KeyTrigger( ( KeyboardKey )keyCode, status );
+ }
+ if( keyCode > JoystickMin && keyCode < JoystickMax ) {
+ return new JoystickTrigger( ( Joystick )keyCode, status );
+ }
+ if( keyCode >= MouseMin && keyCode <= MouseMax ) {
+ return new MouseTrigger( ( Mouse )keyCode, status );
+ }
+ throw new InvalidOperationException( "Known key code." );
+ }
+
+ }
+}
diff --git a/内核源代码/StgSharp.Common/Data/GlobalData/root.cs b/内核源代码/StgSharp.Common/Data/GlobalData/root.cs
new file mode 100644
index 00000000..1b2b9795
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Data/GlobalData/root.cs
@@ -0,0 +1,56 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="root.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Internal;
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace StgSharp
+{
+ public static unsafe partial class StgSharp
+ {
+
+ private static byte leastUnusedArea;
+ private static List root = new List();
+ private static SSD defaultIdProvider = new SSD();
+
+ public static byte NewArea()
+ {
+ byte ret = leastUnusedArea;
+ leastUnusedArea++;
+ return ret;
+ }
+
+ }//------------------ end of class ---------------------
+}
diff --git a/内核源代码/StgSharp.Common/Data/Lable.cs b/内核源代码/StgSharp.Common/Data/Lable.cs
new file mode 100644
index 00000000..77ace841
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Data/Lable.cs
@@ -0,0 +1,70 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="Lable.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the ¡°Software¡±), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED ¡°AS IS¡±,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp;
+
+using System;
+using System.Runtime.CompilerServices;
+
+namespace StgSharp.Internal
+{
+ public class DataLabel
+ {
+ private readonly string _name;
+
+ public DataLabel( string lableName )
+ {
+ _name = lableName;
+ }
+
+ public string Name
+ {
+ get => _name;
+ }
+
+ public override unsafe int GetHashCode()
+ {
+ ReadOnlySpan nameSpan = _name.AsSpan();
+ fixed( char* cptr = nameSpan ) {
+ return InternalIO.Intrinsic
+ .cityhash_simplify( cptr, _name.Length );
+ }
+ }
+
+ }
+
+ public static class DataLabelBuilder
+ {
+ public static DataLabel AsLabel(this string name)
+ {
+ return new DataLabel(name);
+ }
+ }
+}
\ No newline at end of file
diff --git a/内核源代码/StgSharp.Common/Data/RandomGenerator.cs b/内核源代码/StgSharp.Common/Data/RandomGenerator.cs
new file mode 100644
index 00000000..369c17a7
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Data/RandomGenerator.cs
@@ -0,0 +1,173 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="RandomGenerator.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Common.Internal.Intrinsic;
+using StgSharp.Internal.Intrinsic;
+
+using System;
+using System.IO;
+using System.Numerics;
+using System.Security.Cryptography;
+using System.Text;
+using System.Transactions;
+using System.Xml;
+using System.Xml.Serialization;
+
+namespace StgSharp.Internal
+{
+ public class RandomGenerator
+ {
+
+ private byte[] currentKey;
+
+ private readonly byte[] originKey;
+ private int cycleCount;
+ private SHA512 hash;
+
+ public RandomGenerator() : this( DateTime.UtcNow.ToBinary() ) { }
+
+ public RandomGenerator( object source )
+ {
+ try {
+ if( source == null ) {
+ throw new ArgumentNullException( nameof( source ) );
+ }
+ XmlSerializer s = new XmlSerializer( source.GetType() );
+ using( StringWriter sw = new StringWriter() ) {
+ s.Serialize( sw, source );
+ string data = sw.ToString();
+ originKey = Encoding.UTF8.GetBytes( data );
+ }
+ }
+ catch( Exception ) {
+ throw;
+ }
+ hash = SHA512.Create();
+ originKey = hash.ComputeHash( originKey );
+ currentKey = originKey;
+ cycleCount = 0;
+ }
+
+ public int TotalGeneratedRandom
+ {
+ get => cycleCount;
+ }
+
+ public unsafe int GenRandomInt()
+ {
+ M128 source = PrivateRand();
+ cycleCount++;
+
+ /*
+ float d0 = MathF.Sin(1 / source.Read(0));
+ float d1 = MathF.Sin(1 / source.Read(1));
+ float d2 = MathF.Sin(1 / source.Read(2));
+ float d3 = MathF.Sin(1 / source.Read(3));
+
+ source.Write(0, *( short*)&d3);
+ source.Write(2, *((short*)&d2+1));
+ source.Write(4, *( short*)&d1);
+ source.Write(6, *((short*)&d0+1));
+
+ /**/
+
+ return source.Read( cycleCount % 4 );
+ }
+
+ public byte GenRandomInt8()
+ {
+ cycleCount++;
+ if( cycleCount % 64 == 0 ) {
+ PrivateRand();
+ }
+ return currentKey[ cycleCount % 64 ];
+ }
+
+ public float GenRandomSingle()
+ {
+ cycleCount++;
+
+ while( true ) {
+ M128 source = PrivateRand();
+
+ uint
+ temp0 = source.Read( 0 ),
+ temp1 = source.Read( 2 );
+
+ if( temp0 * temp1 != 0 ) {
+ float ret = ( ( temp0 % temp1 ) * 1.0f ) / temp1;
+ if( ret < 0.335f ) {
+ ret = ret * ( ( ret * ( -0.7811934f ) ) + 1.4489113f );
+ } else {
+ ret = ( ret * ( ( ret * ( -0.1158368f ) ) + 1.0580600f ) ) + 0.0590584f;
+ }
+ if( ret > 1 ) {
+ continue;
+ }
+ return ret;
+ }
+ }
+ }
+
+ public void Reset()
+ {
+ currentKey = originKey;
+ cycleCount = 0;
+ }
+
+ private unsafe M128 PrivateRand()
+ {
+ currentKey = hash.ComputeHash( currentKey );
+ M128 ret;
+ fixed( byte* bptr = currentKey ) {
+ switch( ( cycleCount % 16 ) / 4 ) {
+ case 0:
+ ret = *( ( ( M128* )bptr ) + 0 );
+ break;
+ case 1:
+ ret = *( ( ( M128* )bptr ) + 1 );
+ break;
+ case 2:
+ ret = *( ( ( M128* )bptr ) + 2 );
+ break;
+ case 3:
+ ret = *( ( ( M128* )bptr ) + 3 );
+ break;
+ default:
+ throw new InvalidOperationException();
+ }
+ }
+
+ //Console.WriteLine(ret.ToString(16));
+ return ret;
+ }
+
+ }
+}
diff --git a/内核源代码/StgSharp.Common/Data/SSD/Area.cs b/内核源代码/StgSharp.Common/Data/SSD/Area.cs
new file mode 100644
index 00000000..0a3a8a36
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Data/SSD/Area.cs
@@ -0,0 +1,47 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="Area.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Internal.FileIO;
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace StgSharp.Internal
+{
+ ///
+ /// An independent storage area, used as the only folder type in root folder. Contains several
+ /// files reference as virtual disc. Data is actually stored in s in certain RAID mode.
+ ///
+ public partial class Area { }
+}
diff --git a/内核源代码/StgSharp.Common/Data/SSD/DataHead.cs b/内核源代码/StgSharp.Common/Data/SSD/DataHead.cs
new file mode 100644
index 00000000..d0901964
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Data/SSD/DataHead.cs
@@ -0,0 +1,84 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="DataHead.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Common.Internal.Intrinsic;
+using StgSharp.Internal.Intrinsic;
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Numerics;
+using System.Runtime.InteropServices;
+using System.Security.Cryptography;
+using System.Text;
+
+namespace StgSharp.Internal
+{
+ [StructLayout( LayoutKind.Explicit, Size = 16 )]
+ public struct SSDSegmentHead
+ {
+
+ [FieldOffset( 12 )] internal byte size;
+
+ [FieldOffset( 0 )] internal M128 data;
+ [FieldOffset( 13 )] public byte selfDefine_1;
+ [FieldOffset( 14 )] public byte selfDefine_2;
+ [FieldOffset( 15 )] public byte selfDefine_3;
+
+ [FieldOffset( 0 )] public int globalID;
+ [FieldOffset( 4 )] public int nextID;
+ [FieldOffset( 8 )] public int previousHash;
+
+ public int Size
+ {
+ get => ( ( int )size ) + 1;
+ set
+ {
+ if( ( value > 256 ) || ( value < 0 ) ) {
+ throw new ArgumentOutOfRangeException();
+ }
+ size = ( byte )( value - 1 );
+ }
+ }
+
+ public unsafe byte[] GetBytes()
+ {
+ byte[] ret = new byte[16];
+ fixed( Vector4* vptr = &data.vec ) {
+ byte* bptr = ( byte* )vptr;
+ for( int i = 0; i < 15; i++ ) {
+ ret[ i ] = *bptr;
+ }
+ }
+ return ret;
+ }
+
+ }
+}
diff --git a/内核源代码/StgSharp.Common/Data/SSD/DataSegment.cs b/内核源代码/StgSharp.Common/Data/SSD/DataSegment.cs
new file mode 100644
index 00000000..d78a39bd
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Data/SSD/DataSegment.cs
@@ -0,0 +1,182 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="DataSegment.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Common.Internal.Intrinsic;
+using StgSharp.Internal.Intrinsic;
+using StgSharp.Math;
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Numerics;
+using System.Runtime.InteropServices;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace StgSharp.Internal
+{
+ [StructLayout( LayoutKind.Explicit, Size = StgSharp.ssdSegmentLength * 16 )]
+ public unsafe struct SSDSegment : IComparable, IComparable
+ {
+
+ [FieldOffset( 16 )] public fixed byte Data[
+ 16 * ( StgSharp.ssdSegmentLength - 1 ) ];
+ [FieldOffset( 12 )] public int DataHash;
+ [FieldOffset( 8 )] public int PreviousHash;
+ [FieldOffset( 0 * 16 )] public SSDSegmentHead Head;
+
+ public SSDSegment( int previousHash )
+ {
+ this.PreviousHash = previousHash;
+ }
+
+ public byte this[ int index ]
+ {
+ get
+ {
+ if( index > ( 16 * ( StgSharp.ssdSegmentLength - 1 ) ) - 1 ) {
+ throw new IndexOutOfRangeException();
+ }
+ return Data[ index ];
+ }
+
+ set
+ {
+ if( index > ( 16 * ( StgSharp.ssdSegmentLength - 1 ) ) - 1 ) {
+ throw new IndexOutOfRangeException();
+ }
+ Data[ index ] = value;
+ }
+ }
+
+ public int ID
+ {
+ get { return Head.globalID; }
+ set { Head.globalID = value; }
+ }
+
+ public short Size => Head.size;
+
+ public void FillRandomBytes( int begin )
+ {
+ if( begin > 255 ) {
+ return;
+ }
+ for( int i = begin; i < 255; i++ ) {
+ Data[ i ] = Scaler.Random(); //TODO: 使用STGSHARP内部随机数工具处理它
+ }
+ }
+
+ public static SSDSegment FromStream( byte[] stream )
+ {
+ if( stream.Length != 16 * StgSharp.ssdSegmentLength ) {
+ throw new ArgumentException();
+ }
+ SSDSegment ret = new SSDSegment();
+ fixed( byte* bptr = stream ) {
+ ret.Head.data = *( M128* )bptr;
+ for( int i = 1; i < StgSharp.ssdSegmentLength; i++ ) {
+ ret.WriteData(
+ i - 1, *( M128* )( bptr + ( 16 * i ) ) );
+ }
+ }
+ return ret;
+ }
+
+ public byte[] GetBytes()
+ {
+ byte[] ret = new byte[16 * StgSharp.ssdSegmentLength];
+ fixed( M128* mptr = &Head.data ) {
+ fixed( byte* aptr = ret ) {
+ Vector4* vsptr = ( Vector4* )mptr;
+ Vector4* vtptr = ( Vector4* )aptr;
+ for( int i = 0; i < 18; i++ ) {
+ *( vtptr + i ) = *( vsptr + i );
+ }
+ }
+ }
+
+ return ret;
+ }
+
+ public int GetDataHash()
+ {
+ Vector4 v = Vector4.One;
+ fixed( M128* mptr = &Head.data ) {
+ Vector4* vptr = ( Vector4* )mptr;
+ for( int i = 0; i < StgSharp.ssdSegmentLength - 1; i += 1 ) {
+ v += ( *vptr ) * 31;
+ }
+ }
+ M128 m = new M128( v );
+ DataHash = m.vec.GetHashCode();
+ return DataHash;
+ }
+
+ public override int GetHashCode()
+ {
+ int ret = 17;
+ fixed( M128* mptr = &Head.data ) {
+ Vector4* vptr = ( Vector4* )mptr;
+ for( int i = 0; i < StgSharp.ssdSegmentLength; i++ ) {
+ ret = ( ret + ( *vptr ).GetHashCode() ) * 31;
+ }
+ }
+ return ret;
+ }
+
+ public unsafe T ReadData( int index ) where T: struct
+ {
+ fixed( byte* bptr = Data ) {
+ T* tptr = ( T* )bptr;
+ return *( tptr + index );
+ }
+ }
+
+ public unsafe void WriteData( int index, T value ) where T: struct
+ {
+ fixed( byte* bptr = Data ) {
+ T* tptr = ( T* )bptr;
+ *( tptr + index ) = value;
+ }
+ }
+
+ int IComparable.CompareTo( int other )
+ {
+ return ID.CompareTo( other );
+ }
+
+ int IComparable.CompareTo( SSDSegment other )
+ {
+ return ID.CompareTo( other.ID );
+ }
+
+ }
+}
diff --git a/内核源代码/StgSharp.Common/Data/SSD/SSD.cs b/内核源代码/StgSharp.Common/Data/SSD/SSD.cs
new file mode 100644
index 00000000..ce6a5ca4
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Data/SSD/SSD.cs
@@ -0,0 +1,68 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="SSD.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Internal.FileIO;
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+
+namespace StgSharp.Internal
+{
+ public partial class SSD
+ {
+
+ private Dictionary fileList;
+
+ private FileStream file;
+ private SSDrawHead head;
+
+ public SSD()
+ {
+ fileList = new Dictionary();
+ }
+
+ public SSD( FileStream fileStream )
+ {
+ fileList = new Dictionary();
+ file = fileStream;
+ }
+
+ public static SSD FromFile( string fileRoute )
+ {
+ return new SSD(
+ new FileStream( fileRoute, FileMode.Open, FileAccess.Read ) )
+ {
+ };
+ }
+
+ }
+}
diff --git a/内核源代码/StgSharp.Common/Data/SSD/SSDVirtualFolder.cs b/内核源代码/StgSharp.Common/Data/SSD/SSDVirtualFolder.cs
new file mode 100644
index 00000000..68dbb1d6
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Data/SSD/SSDVirtualFolder.cs
@@ -0,0 +1,80 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="SSDVirtualFolder.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Internal.FileIO;
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text;
+
+namespace StgSharp.Internal
+{
+ public class SSDFolder : ISSDSerializable
+ {
+
+ internal Dictionary folders;
+ internal int _folderID;
+ internal string _name;
+
+ internal SSDFolder()
+ {
+ folders = new Dictionary();
+ }
+
+ internal SSDFolder( string name )
+ {
+ if( name == "root" ) {
+ throw new ArgumentException(
+ "Name cannot be root," + "it is preserved for root file indexer." );
+ }
+ if( name == "default" ) {
+ throw new ArgumentException(
+ "Name cannot be default," + "it is preserved for default file id provider." );
+ }
+ _name = name;
+ folders = new Dictionary();
+ }
+
+ public SerializableTypeCode SSDTypeCode => SerializableTypeCode.VirtualFolder;
+
+ public void FromBytes( byte[] stream )
+ {
+ throw new NotImplementedException();
+ }
+
+ //TODO 虚拟文件夹的GetBytes好难写
+ public byte[] GetBytes()
+ {
+ throw new NotImplementedException();
+ }
+
+ }
+}
diff --git a/内核源代码/StgSharp.Common/Data/SSD/SSDraw.cs b/内核源代码/StgSharp.Common/Data/SSD/SSDraw.cs
new file mode 100644
index 00000000..409d9b05
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Data/SSD/SSDraw.cs
@@ -0,0 +1,79 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="SSDraw.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Graphics.ShaderEdit;
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Globalization;
+using System.IO;
+using System.Linq;
+using System.Numerics;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Security.Cryptography;
+using System.Text;
+using System.Xml.Serialization;
+
+namespace StgSharp.Internal.FileIO
+{
+ public class SSDraw
+ {
+
+ private byte[] data;
+
+ public SSDraw( string name, Stream streamSource )
+ {
+ if( ( streamSource == null ) || ( streamSource.Length == 0 ) ) {
+ throw new ArgumentNullException( nameof( streamSource ) );
+ }
+ Name = name;
+ data = new byte[streamSource.Length];
+ streamSource.Read( data.AsSpan() );
+ }
+
+ public SSDrawHead Head
+ {
+ get;
+ set;
+ }
+
+ public string Name
+ {
+ get;
+ set;
+ }
+
+ }
+
+ [StructLayout( LayoutKind.Explicit, Size = 32 * 16 )]
+ public unsafe struct SSDrawHead { }
+}
diff --git a/内核源代码/StgSharp.Common/Data/Serialize/Define.cs b/内核源代码/StgSharp.Common/Data/Serialize/Define.cs
new file mode 100644
index 00000000..dce0b6d3
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Data/Serialize/Define.cs
@@ -0,0 +1,41 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="Define.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace StgSharp.Internal
+{
+ ///
+ /// A class contains a sets of methods to serialize several types
+ ///
+ public static partial class Serializer { }
+}
diff --git a/内核源代码/StgSharp.Common/Data/Serialize/ISSDSerializable.cs b/内核源代码/StgSharp.Common/Data/Serialize/ISSDSerializable.cs
new file mode 100644
index 00000000..1067586e
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Data/Serialize/ISSDSerializable.cs
@@ -0,0 +1,109 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="ISSDSerializable.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace StgSharp.Internal
+{
+ public interface ISSDSerializable
+ {
+
+ public SerializableTypeCode SSDTypeCode
+ {
+ get;
+ }
+
+ public byte[] GetBytes();
+
+ internal void FromBytes( byte[] stream );
+
+ }
+
+ public enum SerializableTypeCode
+ {
+
+ Unknown = 0,
+ IndexTable = 1,
+ PixelImage = 2,
+ VectorImage = 3,
+ Audio = 4,
+ Shader = 5,
+ Text = 6,
+ RawData = 7,
+ VirtualFolder = int.MaxValue,
+
+ }
+
+ public static partial class Serializer
+ {
+
+ public static T Deserialize( byte[] stream )
+ where T: ISSDSerializable
+ {
+ T serializableObject = Activator.CreateInstance();
+ serializableObject.FromBytes( stream );
+ return serializableObject;
+ }
+
+ public static string GetNameTail( SerializableTypeCode typeCode )
+ {
+ switch( typeCode ) {
+ case SerializableTypeCode.IndexTable:
+ return "_idt";
+ case SerializableTypeCode.PixelImage:
+ return "_pim";
+ case SerializableTypeCode.VectorImage:
+ return "_vim";
+ case SerializableTypeCode.Audio:
+ return "_wav";
+ case SerializableTypeCode.Shader:
+ return "_gls";
+ case SerializableTypeCode.Text:
+ return "_txt";
+ case SerializableTypeCode.RawData:
+ return "_raw";
+ case SerializableTypeCode.VirtualFolder:
+ return "_fod";
+ default:
+ throw new ArgumentException( "Unknown file type" );
+ }
+ }
+
+ public static byte[] Serialize( ISSDSerializable serializableObject )
+ {
+ return serializableObject.GetBytes();
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/内核源代码/StgSharp.Common/Entities/BehaviorArgs.cs b/内核源代码/StgSharp.Common/Entities/BehaviorArgs.cs
new file mode 100644
index 00000000..01cc4e09
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Entities/BehaviorArgs.cs
@@ -0,0 +1,34 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="BehaviorArgs.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+namespace StgSharp.Entities
+{
+ public abstract class BehaviorArgs { }
+}
diff --git a/内核源代码/StgSharp.Common/Entities/Enemy.cs b/内核源代码/StgSharp.Common/Entities/Enemy.cs
new file mode 100644
index 00000000..6b5a48cc
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Entities/Enemy.cs
@@ -0,0 +1,66 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="Enemy.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+
+namespace StgSharp.Entities
+{
+ public class Enemy : IEntity
+ {
+
+ internal Launcher _awardLauncher;
+ internal Launcher _commonBulletLauncher;
+ internal Launcher _dieBulletLauncher;
+ public bool _selectalbe;
+
+ public Launcher AwardLauncher
+ {
+ get;
+ set;
+ }
+
+ public Launcher CommonBulletLauncher
+ {
+ get;
+ set;
+ }
+
+ public Launcher DieBulletLauncher
+ {
+ get;
+ set;
+ }
+
+ public override void OnRenderFrame()
+ {
+ CommonBulletLauncher.Launch();
+ }
+
+ }
+}
diff --git a/内核源代码/StgSharp.Common/Entities/EntityPartical.cs b/内核源代码/StgSharp.Common/Entities/EntityPartical.cs
new file mode 100644
index 00000000..9b654c1a
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Entities/EntityPartical.cs
@@ -0,0 +1,34 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="EntityPartical.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+namespace StgSharp.Entities
+{
+ public abstract class EntityPartical : IEntity { }
+}
diff --git a/内核源代码/StgSharp.Common/Entities/IEntity.cs b/内核源代码/StgSharp.Common/Entities/IEntity.cs
new file mode 100644
index 00000000..9ed41485
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Entities/IEntity.cs
@@ -0,0 +1,107 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="IEntity.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Geometries;
+using StgSharp.Math;
+
+using System;
+using System.Collections.Generic;
+
+namespace StgSharp
+{
+ public abstract class IEntity
+ {
+
+ protected uint _bornTick;
+ internal Func _movHandler;
+ internal LinkedList _collisionBox;
+ internal Point _basePoint;
+ internal Point _pos;
+ internal Point _position;
+ internal PlainGeometryCollisionSensor _collisionSensor;
+ internal string _texture;
+
+ ///
+ /// X position of an enenmy entity
+ ///
+ public float X
+ {
+ get;
+ set;
+ }
+
+ ///
+ /// Y position of an enemy entity
+ ///
+ public float Y
+ {
+ get;
+ set;
+ }
+
+ public LinkedList CollisionBox
+ {
+ get => _collisionBox;
+ set => _collisionBox = value;
+ }
+
+ ///
+ /// A sensor used for checking out if a bullet hit a player or something else
+ ///
+ public PlainGeometryCollisionSensor CollisionSensor
+ {
+ get => _collisionSensor;
+ set => _collisionSensor = value;
+ }
+
+ public string TextureGL
+ {
+ get;
+ set;
+ }
+
+ ///
+ /// A 2D vector presenting the position of an enemy entity, position can also be visited by
+ /// X, Y
+ ///
+ public Vec2 Location
+ {
+ get;
+ }
+
+ public abstract void OnRenderFrame();
+
+ public void SetLocation( Point p )
+ {
+ _pos = p;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/内核源代码/StgSharp.Common/Entities/Launcher.cs b/内核源代码/StgSharp.Common/Entities/Launcher.cs
new file mode 100644
index 00000000..1a1073ee
--- /dev/null
+++ b/内核源代码/StgSharp.Common/Entities/Launcher.cs
@@ -0,0 +1,58 @@
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+// file="Launcher.cs"
+// Project: StgSharp
+// AuthorGroup: Nitload Space
+// Copyright (c) Nitload Space. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the “Software”), to deal in the Software without restriction,
+// including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software,
+// and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and
+// this permission notice shall be included in all copies
+// or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”,
+// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH
+// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//-----------------------------------------------------------------------
+//-----------------------------------------------------------------------
+using StgSharp.Entities;
+using StgSharp.Math;
+
+namespace StgSharp
+{
+ public class Launcher where T: IEntity
+ {
+
+ internal uint[] launchtick; //发射子弹的内部计时
+ internal Counter