diff --git a/源代码/.vs/ProjectEvaluation/stgsharpdevelop.metadata.v7.bin b/源代码/.vs/ProjectEvaluation/stgsharpdevelop.metadata.v7.bin
index 84cfd75b..6ee1f22d 100644
Binary files a/源代码/.vs/ProjectEvaluation/stgsharpdevelop.metadata.v7.bin and b/源代码/.vs/ProjectEvaluation/stgsharpdevelop.metadata.v7.bin differ
diff --git a/源代码/.vs/ProjectEvaluation/stgsharpdevelop.projects.v7.bin b/源代码/.vs/ProjectEvaluation/stgsharpdevelop.projects.v7.bin
index 37575c80..119b54c6 100644
Binary files a/源代码/.vs/ProjectEvaluation/stgsharpdevelop.projects.v7.bin and b/源代码/.vs/ProjectEvaluation/stgsharpdevelop.projects.v7.bin differ
diff --git a/源代码/.vs/StgSharpDevelop/DesignTimeBuild/.dtbcache.v2 b/源代码/.vs/StgSharpDevelop/DesignTimeBuild/.dtbcache.v2
index 19d67be6..a7a1beae 100644
Binary files a/源代码/.vs/StgSharpDevelop/DesignTimeBuild/.dtbcache.v2 and b/源代码/.vs/StgSharpDevelop/DesignTimeBuild/.dtbcache.v2 differ
diff --git a/源代码/.vs/StgSharpDevelop/FileContentIndex/00a5ef33-dbdf-4c2e-ab2a-d0f68fc0f456.vsidx b/源代码/.vs/StgSharpDevelop/FileContentIndex/00a5ef33-dbdf-4c2e-ab2a-d0f68fc0f456.vsidx
new file mode 100644
index 00000000..3f9e6982
Binary files /dev/null and b/源代码/.vs/StgSharpDevelop/FileContentIndex/00a5ef33-dbdf-4c2e-ab2a-d0f68fc0f456.vsidx differ
diff --git a/源代码/.vs/StgSharpDevelop/FileContentIndex/05c9435c-ad3d-4e00-b6e9-b93178287677.vsidx b/源代码/.vs/StgSharpDevelop/FileContentIndex/05c9435c-ad3d-4e00-b6e9-b93178287677.vsidx
new file mode 100644
index 00000000..c53cbe8e
Binary files /dev/null and b/源代码/.vs/StgSharpDevelop/FileContentIndex/05c9435c-ad3d-4e00-b6e9-b93178287677.vsidx differ
diff --git a/源代码/.vs/StgSharpDevelop/FileContentIndex/110dff21-e224-45ee-a44e-efbdc019449e.vsidx b/源代码/.vs/StgSharpDevelop/FileContentIndex/110dff21-e224-45ee-a44e-efbdc019449e.vsidx
deleted file mode 100644
index ec57c40f..00000000
Binary files a/源代码/.vs/StgSharpDevelop/FileContentIndex/110dff21-e224-45ee-a44e-efbdc019449e.vsidx and /dev/null differ
diff --git a/源代码/.vs/StgSharpDevelop/FileContentIndex/368e47a5-acd9-414f-926e-3528e1566102.vsidx b/源代码/.vs/StgSharpDevelop/FileContentIndex/368e47a5-acd9-414f-926e-3528e1566102.vsidx
new file mode 100644
index 00000000..dbae854b
Binary files /dev/null and b/源代码/.vs/StgSharpDevelop/FileContentIndex/368e47a5-acd9-414f-926e-3528e1566102.vsidx differ
diff --git a/源代码/.vs/StgSharpDevelop/FileContentIndex/3adc9943-2e66-4eeb-a066-70cd0ac6f760.vsidx b/源代码/.vs/StgSharpDevelop/FileContentIndex/3adc9943-2e66-4eeb-a066-70cd0ac6f760.vsidx
deleted file mode 100644
index d2521c8b..00000000
Binary files a/源代码/.vs/StgSharpDevelop/FileContentIndex/3adc9943-2e66-4eeb-a066-70cd0ac6f760.vsidx and /dev/null differ
diff --git a/源代码/.vs/StgSharpDevelop/FileContentIndex/56799a36-5f12-4eae-814f-b3fe0985fbe9.vsidx b/源代码/.vs/StgSharpDevelop/FileContentIndex/56799a36-5f12-4eae-814f-b3fe0985fbe9.vsidx
deleted file mode 100644
index 39bd1177..00000000
Binary files a/源代码/.vs/StgSharpDevelop/FileContentIndex/56799a36-5f12-4eae-814f-b3fe0985fbe9.vsidx and /dev/null differ
diff --git a/源代码/.vs/StgSharpDevelop/FileContentIndex/b31cb35f-8840-4a8c-8a19-10c6a117080a.vsidx b/源代码/.vs/StgSharpDevelop/FileContentIndex/b31cb35f-8840-4a8c-8a19-10c6a117080a.vsidx
new file mode 100644
index 00000000..ec117e75
Binary files /dev/null and b/源代码/.vs/StgSharpDevelop/FileContentIndex/b31cb35f-8840-4a8c-8a19-10c6a117080a.vsidx differ
diff --git a/源代码/.vs/StgSharpDevelop/FileContentIndex/ca9f8530-2372-4369-a7d1-3cb4fa31feb4.vsidx b/源代码/.vs/StgSharpDevelop/FileContentIndex/ca9f8530-2372-4369-a7d1-3cb4fa31feb4.vsidx
deleted file mode 100644
index d4572e33..00000000
Binary files a/源代码/.vs/StgSharpDevelop/FileContentIndex/ca9f8530-2372-4369-a7d1-3cb4fa31feb4.vsidx and /dev/null differ
diff --git a/源代码/.vs/StgSharpDevelop/FileContentIndex/cb6d0dfc-9a08-4a67-ac92-6d01e74e84c6.vsidx b/源代码/.vs/StgSharpDevelop/FileContentIndex/cb6d0dfc-9a08-4a67-ac92-6d01e74e84c6.vsidx
new file mode 100644
index 00000000..0c77be06
Binary files /dev/null and b/源代码/.vs/StgSharpDevelop/FileContentIndex/cb6d0dfc-9a08-4a67-ac92-6d01e74e84c6.vsidx differ
diff --git a/源代码/.vs/StgSharpDevelop/FileContentIndex/cc3984f3-c83a-4399-90dc-1254767f471b.vsidx b/源代码/.vs/StgSharpDevelop/FileContentIndex/cc3984f3-c83a-4399-90dc-1254767f471b.vsidx
deleted file mode 100644
index c4ebb117..00000000
Binary files a/源代码/.vs/StgSharpDevelop/FileContentIndex/cc3984f3-c83a-4399-90dc-1254767f471b.vsidx and /dev/null differ
diff --git a/源代码/.vs/StgSharpDevelop/v17/.futdcache.v2 b/源代码/.vs/StgSharpDevelop/v17/.futdcache.v2
index c63b0d64..5a1201d7 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 0ebd6c9f..8956df32 100644
Binary files a/源代码/.vs/StgSharpDevelop/v17/.suo and b/源代码/.vs/StgSharpDevelop/v17/.suo differ
diff --git a/源代码/.vs/StgSharpDevelop/v17/DocumentLayout.json b/源代码/.vs/StgSharpDevelop/v17/DocumentLayout.json
index 8c1cebcc..6f8da6e9 100644
--- a/源代码/.vs/StgSharpDevelop/v17/DocumentLayout.json
+++ b/源代码/.vs/StgSharpDevelop/v17/DocumentLayout.json
@@ -2,14 +2,54 @@
"Version": 1,
"WorkspaceRootPath": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\",
"Documents": [
+ {
+ "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharpdebug\\data\\ssd\\datahead.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\data\\ssd\\datahead.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\\\u6E90\u4EE3\u7801\\stgsharpdebug\\data\\ssd\\datasegment.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\data\\ssd\\datasegment.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\\\u6E90\u4EE3\u7801\\stgsharpdebug\\data\\ssd\\ssd.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\data\\ssd\\ssd.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\\\u6E90\u4EE3\u7801\\stgsharpdebug\\data\\ssd\\area.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\data\\ssd\\area.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\\\u6E90\u4EE3\u7801\\stgsharpdebug\\data\\globaldata\\idprovider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\data\\globaldata\\idprovider.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\\\u6E90\u4EE3\u7801\\stgsharpdebug\\data\\ssd\\ssdraw.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\data\\ssd\\ssdraw.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\\\u6E90\u4EE3\u7801\\stgsharpdebug\\data\\globaldata\\root.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\data\\globaldata\\root.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\\\u6E90\u4EE3\u7801\\stgsharpdebug\\data\\ssd\\ssdvirtualfolder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\data\\ssd\\ssdvirtualfolder.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\\\u6E90\u4EE3\u7801\\stgsharpdebug\\data\\serialize\\issdserializable.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\data\\serialize\\issdserializable.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\\\u6E90\u4EE3\u7801\\stgsharpdebug\\data\\encode\\encoder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\data\\encode\\encoder.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\\\u6E90\u4EE3\u7801\\stgsharpdebug\\data\\encode\\encodstream.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\data\\encode\\encodstream.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\\\u6E90\u4EE3\u7801\\stgsharpdebug\\environment\\globalsetting.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\environment\\globalsetting.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\\\u6E90\u4EE3\u7801\\stgsharpdebug\\graphics\\image.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\graphics\\image.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
@@ -18,18 +58,6 @@
"AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharpdebug\\graphics\\gl\\shaderedit\\shader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\graphics\\gl\\shaderedit\\shader.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\\\u6E90\u4EE3\u7801\\stgsharpdebug\\data\\serialize\\issdserializable.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\data\\serialize\\issdserializable.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\\\u6E90\u4EE3\u7801\\stgsharpdebug\\data\\ssd\\ssd.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\data\\ssd\\ssd.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\\\u6E90\u4EE3\u7801\\stgsharpdebug\\environment\\globalsetting.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\environment\\globalsetting.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\\\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}"
@@ -142,67 +170,150 @@
"DocumentGroups": [
{
"DockedWidth": 197,
- "SelectedChildIndex": 0,
+ "SelectedChildIndex": 4,
"Children": [
{
"$type": "Document",
- "DocumentIndex": 0,
- "Title": "SSDraw.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\SSD\\SSDraw.cs",
- "RelativeDocumentMoniker": "StgSharpDebug\\Data\\SSD\\SSDraw.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\SSD\\SSDraw.cs",
- "RelativeToolTip": "StgSharpDebug\\Data\\SSD\\SSDraw.cs",
- "ViewState": "AQIAACwAAAAAAAAAAAApwDsAAAAwAAAA",
+ "DocumentIndex": 1,
+ "Title": "DataSegment.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\SSD\\DataSegment.cs",
+ "RelativeDocumentMoniker": "StgSharpDebug\\Data\\SSD\\DataSegment.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\SSD\\DataSegment.cs",
+ "RelativeToolTip": "StgSharpDebug\\Data\\SSD\\DataSegment.cs",
+ "ViewState": "AQIAAAwAAAAAAAAAAAAAABAAAAAvAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2024-04-19T17:49:43.784Z",
+ "WhenOpened": "2024-04-21T17:51:51.737Z",
"EditorCaption": ""
},
{
- "$type": "Bookmark",
- "Name": "ST:0:0:{e1b7d1f8-9b3c-49b1-8f4f-bfc63a88835d}"
+ "$type": "Document",
+ "DocumentIndex": 9,
+ "Title": "Encoder.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\Encode\\Encoder.cs",
+ "RelativeDocumentMoniker": "StgSharpDebug\\Data\\Encode\\Encoder.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\Encode\\Encoder.cs",
+ "RelativeToolTip": "StgSharpDebug\\Data\\Encode\\Encoder.cs",
+ "ViewState": "AQIAAA4AAAAAAAAAAAAhwB4AAAAPAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2024-04-20T19:19:20.61Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 10,
+ "Title": "EncodStream.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\Encode\\EncodStream.cs",
+ "RelativeDocumentMoniker": "StgSharpDebug\\Data\\Encode\\EncodStream.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\Encode\\EncodStream.cs",
+ "RelativeToolTip": "StgSharpDebug\\Data\\Encode\\EncodStream.cs",
+ "ViewState": "AQIAABUAAAAAAAAAAAAhwCUAAAATAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2024-04-20T19:19:13.846Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 3,
+ "Title": "Area.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\SSD\\Area.cs",
+ "RelativeDocumentMoniker": "StgSharpDebug\\Data\\SSD\\Area.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\SSD\\Area.cs",
+ "RelativeToolTip": "StgSharpDebug\\Data\\SSD\\Area.cs",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAuwAsAAAAWAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2024-04-20T17:57:11.986Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 0,
+ "Title": "DataHead.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\SSD\\DataHead.cs",
+ "RelativeDocumentMoniker": "StgSharpDebug\\Data\\SSD\\DataHead.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\SSD\\DataHead.cs",
+ "RelativeToolTip": "StgSharpDebug\\Data\\SSD\\DataHead.cs",
+ "ViewState": "AQIAAB4AAAAAAAAAAAApwCoAAAAgAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2024-04-20T08:36:31.196Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 4,
+ "Title": "idProvider.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\GlobalData\\idProvider.cs",
+ "RelativeDocumentMoniker": "StgSharpDebug\\Data\\GlobalData\\idProvider.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\GlobalData\\idProvider.cs",
+ "RelativeToolTip": "StgSharpDebug\\Data\\GlobalData\\idProvider.cs",
+ "ViewState": "AQIAAAYAAAAAAAAAAAAAABcAAAAJAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2024-04-20T01:08:27.928Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 6,
- "Title": "GlobalSetting.cs",
- "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Environment\\GlobalSetting.cs",
- "RelativeDocumentMoniker": "StgSharpDebug\\Environment\\GlobalSetting.cs",
- "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Environment\\GlobalSetting.cs",
- "RelativeToolTip": "StgSharpDebug\\Environment\\GlobalSetting.cs",
- "ViewState": "AQIAAAkAAAAAAAAAAAAAADAAAAAwAAAA",
+ "Title": "root.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\GlobalData\\root.cs",
+ "RelativeDocumentMoniker": "StgSharpDebug\\Data\\GlobalData\\root.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\GlobalData\\root.cs",
+ "RelativeToolTip": "StgSharpDebug\\Data\\GlobalData\\root.cs",
+ "ViewState": "AQIAAAYAAAAAAAAAAAAAABgAAAAAAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2024-04-19T17:36:01.877Z",
+ "WhenOpened": "2024-04-20T01:05:20.18Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 5,
+ "Title": "SSDraw.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\SSD\\SSDraw.cs",
+ "RelativeDocumentMoniker": "StgSharpDebug\\Data\\SSD\\SSDraw.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\SSD\\SSDraw.cs",
+ "RelativeToolTip": "StgSharpDebug\\Data\\SSD\\SSDraw.cs",
+ "ViewState": "AQIAAC4AAAAAAAAAAAAiwDUAAAARAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2024-04-19T17:49:43.784Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 11,
+ "Title": "GlobalSetting.cs",
+ "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Environment\\GlobalSetting.cs",
+ "RelativeDocumentMoniker": "StgSharpDebug\\Environment\\GlobalSetting.cs",
+ "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Environment\\GlobalSetting.cs",
+ "RelativeToolTip": "StgSharpDebug\\Environment\\GlobalSetting.cs",
+ "ViewState": "AQIAACQAAAAAAAAAAAAAACkAAAAEAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2024-04-19T17:36:01.877Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 2,
"Title": "SSD.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\SSD\\SSD.cs",
"RelativeDocumentMoniker": "StgSharpDebug\\Data\\SSD\\SSD.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\SSD\\SSD.cs",
"RelativeToolTip": "StgSharpDebug\\Data\\SSD\\SSD.cs",
- "ViewState": "AQIAABgAAAAAAAAAAAAAACkAAAAfAAAA",
+ "ViewState": "AQIAACAAAAAAAAAAAAApwDUAAAARAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-04-19T17:27:58.8Z",
"EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 1,
+ "DocumentIndex": 7,
"Title": "SSDVirtualFolder.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\SSD\\SSDVirtualFolder.cs",
"RelativeDocumentMoniker": "StgSharpDebug\\Data\\SSD\\SSDVirtualFolder.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\SSD\\SSDVirtualFolder.cs",
"RelativeToolTip": "StgSharpDebug\\Data\\SSD\\SSDVirtualFolder.cs",
- "ViewState": "AQIAACUAAAAAAAAAAAAhwCoAAAAZAAAA",
+ "ViewState": "AQIAABgAAAAAAAAAAAAQwCkAAAASAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2024-04-19T17:18:48.003Z",
- "EditorCaption": ""
+ "WhenOpened": "2024-04-19T17:18:48.003Z"
},
{
"$type": "Document",
- "DocumentIndex": 3,
+ "DocumentIndex": 13,
"Title": "Shader.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Graphics\\GL\\ShaderEdit\\Shader.cs",
"RelativeDocumentMoniker": "StgSharpDebug\\Graphics\\GL\\ShaderEdit\\Shader.cs",
@@ -210,12 +321,11 @@
"RelativeToolTip": "StgSharpDebug\\Graphics\\GL\\ShaderEdit\\Shader.cs",
"ViewState": "AQIAADcAAAAAAAAAAAAvwEUAAAAJAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2024-04-19T16:42:46.136Z",
- "EditorCaption": ""
+ "WhenOpened": "2024-04-19T16:42:46.136Z"
},
{
"$type": "Document",
- "DocumentIndex": 8,
+ "DocumentIndex": 15,
"Title": "Image.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Image.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\Image.cs",
@@ -223,12 +333,11 @@
"RelativeToolTip": "StgSharp\\Graphics\\Image.cs",
"ViewState": "AQIAAEsAAAAAAAAAAAApwGEAAAAVAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2024-04-19T16:24:37.077Z",
- "EditorCaption": ""
+ "WhenOpened": "2024-04-19T16:24:37.077Z"
},
{
"$type": "Document",
- "DocumentIndex": 10,
+ "DocumentIndex": 17,
"Title": "vec3d.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Math\\Linear\\vec3d.cs",
"RelativeDocumentMoniker": "StgSharpDebug\\Math\\Linear\\vec3d.cs",
@@ -236,12 +345,11 @@
"RelativeToolTip": "StgSharpDebug\\Math\\Linear\\vec3d.cs",
"ViewState": "AQIAACIAAAAAAAAAAIAzwDIAAAAVAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2024-04-19T14:35:47.517Z",
- "EditorCaption": ""
+ "WhenOpened": "2024-04-19T14:35:47.517Z"
},
{
"$type": "Document",
- "DocumentIndex": 12,
+ "DocumentIndex": 19,
"Title": "Vec4d.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Math\\Linear\\Vec4d.cs",
"RelativeDocumentMoniker": "StgSharpDebug\\Math\\Linear\\Vec4d.cs",
@@ -249,12 +357,11 @@
"RelativeToolTip": "StgSharpDebug\\Math\\Linear\\Vec4d.cs",
"ViewState": "AQIAADgAAAAAAAAAAIAzwEgAAAASAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2024-04-19T14:35:41.902Z",
- "EditorCaption": ""
+ "WhenOpened": "2024-04-19T14:35:41.902Z"
},
{
"$type": "Document",
- "DocumentIndex": 13,
+ "DocumentIndex": 20,
"Title": "Vector.Normalize.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Math\\Linear\\Vector.Normalize.cs",
"RelativeDocumentMoniker": "StgSharpDebug\\Math\\Linear\\Vector.Normalize.cs",
@@ -262,12 +369,11 @@
"RelativeToolTip": "StgSharpDebug\\Math\\Linear\\Vector.Normalize.cs",
"ViewState": "AQIAAAIAAAAAAAAAAIAzwBIAAAAfAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2024-04-19T14:35:38.1Z",
- "EditorCaption": ""
+ "WhenOpened": "2024-04-19T14:35:38.1Z"
},
{
"$type": "Document",
- "DocumentIndex": 11,
+ "DocumentIndex": 18,
"Title": "FrameAsyncThread.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Graphics\\Form\\FrameAsyncThread.cs",
"RelativeDocumentMoniker": "StgSharpDebug\\Graphics\\Form\\FrameAsyncThread.cs",
@@ -275,12 +381,11 @@
"RelativeToolTip": "StgSharpDebug\\Graphics\\Form\\FrameAsyncThread.cs",
"ViewState": "AQIAAEYAAAAAAAAAAAAWwFQAAAAfAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2024-04-19T14:35:34.378Z",
- "EditorCaption": ""
+ "WhenOpened": "2024-04-19T14:35:34.378Z"
},
{
"$type": "Document",
- "DocumentIndex": 14,
+ "DocumentIndex": 21,
"Title": "glParamQueue.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Logic\\glParamQueue.cs",
"RelativeDocumentMoniker": "StgSharpDebug\\Logic\\glParamQueue.cs",
@@ -288,25 +393,23 @@
"RelativeToolTip": "StgSharpDebug\\Logic\\glParamQueue.cs",
"ViewState": "AQIAAEMAAAAAAAAAAEBBwFMAAAABAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2024-04-19T14:35:29.302Z",
- "EditorCaption": ""
+ "WhenOpened": "2024-04-19T14:35:29.302Z"
},
{
"$type": "Document",
- "DocumentIndex": 4,
+ "DocumentIndex": 8,
"Title": "ISSDSerializable.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\Serialize\\ISSDSerializable.cs",
"RelativeDocumentMoniker": "StgSharpDebug\\Data\\Serialize\\ISSDSerializable.cs",
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\Serialize\\ISSDSerializable.cs",
"RelativeToolTip": "StgSharpDebug\\Data\\Serialize\\ISSDSerializable.cs",
- "ViewState": "AQIAAAQAAAAAAAAAAIA1wAsAAAAiAAAA",
+ "ViewState": "AQIAAAgAAAAAAAAAAIA1wB8AAAAVAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2024-04-19T14:31:36.733Z",
- "EditorCaption": ""
+ "WhenOpened": "2024-04-19T14:31:36.733Z"
},
{
"$type": "Document",
- "DocumentIndex": 15,
+ "DocumentIndex": 22,
"Title": "Define.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\Serialize\\Define.cs",
"RelativeDocumentMoniker": "StgSharpDebug\\Data\\Serialize\\Define.cs",
@@ -314,12 +417,11 @@
"RelativeToolTip": "StgSharpDebug\\Data\\Serialize\\Define.cs",
"ViewState": "AQIAABsAAAAAAAAAAAAAACMAAAABAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2024-04-19T14:23:08.581Z",
- "EditorCaption": ""
+ "WhenOpened": "2024-04-19T14:23:08.581Z"
},
{
"$type": "Document",
- "DocumentIndex": 16,
+ "DocumentIndex": 23,
"Title": "M128.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharp\\Data\\M128.cs",
"RelativeDocumentMoniker": "StgSharp\\Data\\M128.cs",
@@ -327,12 +429,11 @@
"RelativeToolTip": "StgSharp\\Data\\M128.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAACUAAAAGAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2024-04-19T14:19:31.288Z",
- "EditorCaption": ""
+ "WhenOpened": "2024-04-19T14:19:31.288Z"
},
{
"$type": "Document",
- "DocumentIndex": 9,
+ "DocumentIndex": 16,
"Title": "M128.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\M128.cs",
"RelativeDocumentMoniker": "StgSharpDebug\\Data\\M128.cs",
@@ -340,12 +441,11 @@
"RelativeToolTip": "StgSharpDebug\\Data\\M128.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAACwAAAAFAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2024-04-19T14:17:33.781Z",
- "EditorCaption": ""
+ "WhenOpened": "2024-04-19T14:17:33.781Z"
},
{
"$type": "Document",
- "DocumentIndex": 17,
+ "DocumentIndex": 24,
"Title": "Vector.Normalize.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Vector.Normalize.cs",
"RelativeDocumentMoniker": "StgSharp\\Math\\Linear\\Vector.Normalize.cs",
@@ -353,12 +453,11 @@
"RelativeToolTip": "StgSharp\\Math\\Linear\\Vector.Normalize.cs",
"ViewState": "AQIAADUAAAAAAAAAAAAqwBMAAAAAAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2024-04-19T13:55:13.408Z",
- "EditorCaption": ""
+ "WhenOpened": "2024-04-19T13:55:13.408Z"
},
{
"$type": "Document",
- "DocumentIndex": 19,
+ "DocumentIndex": 26,
"Title": "Vec4d.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Vec4d.cs",
"RelativeDocumentMoniker": "StgSharp\\Math\\Linear\\Vec4d.cs",
@@ -366,12 +465,11 @@
"RelativeToolTip": "StgSharp\\Math\\Linear\\Vec4d.cs",
"ViewState": "AQIAADgAAAAAAAAAAIAzwEgAAAAoAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2024-04-19T13:55:02.059Z",
- "EditorCaption": ""
+ "WhenOpened": "2024-04-19T13:55:02.059Z"
},
{
"$type": "Document",
- "DocumentIndex": 20,
+ "DocumentIndex": 27,
"Title": "glParamQueue.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharp\\Logic\\glParamQueue.cs",
"RelativeDocumentMoniker": "StgSharp\\Logic\\glParamQueue.cs",
@@ -379,12 +477,11 @@
"RelativeToolTip": "StgSharp\\Logic\\glParamQueue.cs",
"ViewState": "AQIAABUAAAAAAAAAAAAAALIAAAAMAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2024-04-19T13:54:10.105Z",
- "EditorCaption": ""
+ "WhenOpened": "2024-04-19T13:54:10.105Z"
},
{
"$type": "Document",
- "DocumentIndex": 18,
+ "DocumentIndex": 25,
"Title": "FrameAsyncThread.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Form\\FrameAsyncThread.cs",
"RelativeDocumentMoniker": "StgSharp\\Graphics\\Form\\FrameAsyncThread.cs",
@@ -392,12 +489,11 @@
"RelativeToolTip": "StgSharp\\Graphics\\Form\\FrameAsyncThread.cs",
"ViewState": "AQIAAEYAAAAAAAAAAAAWwFQAAAAfAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2024-04-19T13:53:27.533Z",
- "EditorCaption": ""
+ "WhenOpened": "2024-04-19T13:53:27.533Z"
},
{
"$type": "Document",
- "DocumentIndex": 21,
+ "DocumentIndex": 28,
"Title": "vec3d.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\vec3d.cs",
"RelativeDocumentMoniker": "StgSharp\\Math\\Linear\\vec3d.cs",
@@ -405,12 +501,11 @@
"RelativeToolTip": "StgSharp\\Math\\Linear\\vec3d.cs",
"ViewState": "AQIAACMAAAAAAAAAAIAzwDMAAAASAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2024-04-19T13:53:17.8Z",
- "EditorCaption": ""
+ "WhenOpened": "2024-04-19T13:53:17.8Z"
},
{
"$type": "Document",
- "DocumentIndex": 22,
+ "DocumentIndex": 29,
"Title": "ShowForm.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Graphics\\Form\\ShowForm.cs",
"RelativeDocumentMoniker": "StgSharpDebug\\Graphics\\Form\\ShowForm.cs",
@@ -418,12 +513,11 @@
"RelativeToolTip": "StgSharpDebug\\Graphics\\Form\\ShowForm.cs",
"ViewState": "AQIAAAYAAAAAAAAAAAAAABkAAAAAAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2024-04-15T03:54:31.223Z",
- "EditorCaption": ""
+ "WhenOpened": "2024-04-15T03:54:31.223Z"
},
{
"$type": "Document",
- "DocumentIndex": 23,
+ "DocumentIndex": 30,
"Title": "Form.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Graphics\\Form\\Form.cs",
"RelativeDocumentMoniker": "StgSharpDebug\\Graphics\\Form\\Form.cs",
@@ -435,7 +529,7 @@
},
{
"$type": "Document",
- "DocumentIndex": 26,
+ "DocumentIndex": 33,
"Title": "TimeSpanProvider.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Logic\\TimeSpanProvider.cs",
"RelativeDocumentMoniker": "StgSharpDebug\\Logic\\TimeSpanProvider.cs",
@@ -447,7 +541,7 @@
},
{
"$type": "Document",
- "DocumentIndex": 27,
+ "DocumentIndex": 34,
"Title": "launchSettings.json",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Properties\\launchSettings.json",
"RelativeDocumentMoniker": "StgSharpDebug\\Properties\\launchSettings.json",
@@ -459,7 +553,7 @@
},
{
"$type": "Document",
- "DocumentIndex": 24,
+ "DocumentIndex": 31,
"Title": "TimeProvider.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Environment\\TimeProvider.cs",
"RelativeDocumentMoniker": "StgSharpDebug\\Environment\\TimeProvider.cs",
@@ -471,7 +565,7 @@
},
{
"$type": "Document",
- "DocumentIndex": 25,
+ "DocumentIndex": 32,
"Title": "TimeSourceProvider.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Logic\\TimeSourceProvider.cs",
"RelativeDocumentMoniker": "StgSharpDebug\\Logic\\TimeSourceProvider.cs",
@@ -483,7 +577,7 @@
},
{
"$type": "Document",
- "DocumentIndex": 2,
+ "DocumentIndex": 12,
"Title": "Image.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Graphics\\Image.cs",
"RelativeDocumentMoniker": "StgSharpDebug\\Graphics\\Image.cs",
@@ -491,12 +585,11 @@
"RelativeToolTip": "StgSharpDebug\\Graphics\\Image.cs",
"ViewState": "AQIAADoAAAAAAAAAAAD4v0MAAAAcAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2024-04-15T03:52:36.477Z",
- "EditorCaption": ""
+ "WhenOpened": "2024-04-15T03:52:36.477Z"
},
{
"$type": "Document",
- "DocumentIndex": 29,
+ "DocumentIndex": 36,
"Title": "MainForm.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\OEM\\MainForm.cs",
"RelativeDocumentMoniker": "OEM\\MainForm.cs",
@@ -508,7 +601,7 @@
},
{
"$type": "Document",
- "DocumentIndex": 28,
+ "DocumentIndex": 35,
"Title": "Program.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\OEM\\Program.cs",
"RelativeDocumentMoniker": "OEM\\Program.cs",
@@ -520,7 +613,7 @@
},
{
"$type": "Document",
- "DocumentIndex": 32,
+ "DocumentIndex": 39,
"Title": "StgSharpC.c",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpC\\StgSharpC.c",
"RelativeDocumentMoniker": "StgSharpC\\StgSharpC.c",
@@ -532,7 +625,7 @@
},
{
"$type": "Document",
- "DocumentIndex": 31,
+ "DocumentIndex": 38,
"Title": "glEnum.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Graphics\\Define\\glEnum.cs",
"RelativeDocumentMoniker": "StgSharpDebug\\Graphics\\Define\\glEnum.cs",
@@ -544,7 +637,7 @@
},
{
"$type": "Document",
- "DocumentIndex": 30,
+ "DocumentIndex": 37,
"Title": "GLpack.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Graphics\\GL\\GLpack.cs",
"RelativeDocumentMoniker": "StgSharpDebug\\Graphics\\GL\\GLpack.cs",
@@ -556,7 +649,7 @@
},
{
"$type": "Document",
- "DocumentIndex": 7,
+ "DocumentIndex": 14,
"Title": "Program.cs",
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Program.cs",
"RelativeDocumentMoniker": "StgSharpDebug\\Program.cs",
@@ -564,8 +657,7 @@
"RelativeToolTip": "StgSharpDebug\\Program.cs",
"ViewState": "AQIAAC0AAAAAAAAAAAAYwAgAAAAPAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2024-04-15T03:13:55.379Z",
- "EditorCaption": ""
+ "WhenOpened": "2024-04-15T03:13:55.379Z"
}
]
}
diff --git a/源代码/.vs/StgSharpDevelop/v17/fileList.bin b/源代码/.vs/StgSharpDevelop/v17/fileList.bin
index 63d46774..8e64747c 100644
Binary files a/源代码/.vs/StgSharpDevelop/v17/fileList.bin and b/源代码/.vs/StgSharpDevelop/v17/fileList.bin differ
diff --git a/源代码/StgSharp/Data/Encode/EncodStream.cs b/源代码/StgSharp/Data/Encode/EncodStream.cs
index 66ff9e1d..7e99739e 100644
--- a/源代码/StgSharp/Data/Encode/EncodStream.cs
+++ b/源代码/StgSharp/Data/Encode/EncodStream.cs
@@ -35,7 +35,7 @@ using System.Collections;
using System.Collections.Generic;
using System.Text;
-namespace StgSharpData
+namespace StgSharp.Data
{
public class EncodeStream
{
diff --git a/源代码/StgSharp/Data/Encode/Encoder.cs b/源代码/StgSharp/Data/Encode/Encoder.cs
index 29978746..b1bc0634 100644
--- a/源代码/StgSharp/Data/Encode/Encoder.cs
+++ b/源代码/StgSharp/Data/Encode/Encoder.cs
@@ -28,7 +28,7 @@
//
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
-using StgSharpData;
+using StgSharp.Data;
using System;
using System.Collections;
diff --git a/源代码/StgSharp/Data/GlobalData/idProvider.cs b/源代码/StgSharp/Data/GlobalData/idProvider.cs
new file mode 100644
index 00000000..4232fa56
--- /dev/null
+++ b/源代码/StgSharp/Data/GlobalData/idProvider.cs
@@ -0,0 +1,46 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace StgSharp.Data
+{
+
+ public partial class Area
+ {
+ private static byte leastUnusedDisc;
+
+ public byte NewDisc(byte raidWith)
+ {
+ byte ret = leastUnusedDisc;
+ leastUnusedDisc++;
+ return ret;
+ }
+
+ public void ClearDiscIDBuffer()
+ {
+ leastUnusedDisc = 0;
+ }
+
+ private static int leastUnusedID;
+
+ public static int NewID()
+ {
+ int ret = leastUnusedID;
+ if (ret == int.MaxValue)
+ {
+ throw new ArgumentOutOfRangeException("Reaches max IDs that one ssd file can provide.");
+ }
+ leastUnusedID++;
+ return ret;
+ }
+
+ public static void ClearIDBuffer()
+ {
+ leastUnusedID = 1;
+ }
+
+ }
+
+}
diff --git a/源代码/StgSharp/Data/GlobalData/root.cs b/源代码/StgSharp/Data/GlobalData/root.cs
new file mode 100644
index 00000000..3e78efc6
--- /dev/null
+++ b/源代码/StgSharp/Data/GlobalData/root.cs
@@ -0,0 +1,27 @@
+using StgSharp.Data;
+
+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 SSD defaultIdProvider = new SSD();
+ private static List root = new List();
+
+ private static byte leastUnusedArea;
+
+ public static byte NewArea()
+ {
+ byte ret = leastUnusedArea;
+ leastUnusedArea++;
+ return ret;
+ }
+
+
+ }//------------------ end of class ---------------------
+}
diff --git a/源代码/StgSharp/Data/SSD/Area.cs b/源代码/StgSharp/Data/SSD/Area.cs
new file mode 100644
index 00000000..8cb7333d
--- /dev/null
+++ b/源代码/StgSharp/Data/SSD/Area.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace StgSharp.Data
+{
+ public partial class Area
+ {
+ private byte _id;
+ private List discList;
+
+
+ public Area()
+ {
+ _id = StgSharp.NewArea();
+ }
+
+ public SSDSegment FindSegment(int id, byte SSD)
+ {
+
+ }
+ }
+}
diff --git a/源代码/StgSharp/Data/SSD/DataHead.cs b/源代码/StgSharp/Data/SSD/DataHead.cs
index 51bb36e6..03a7378c 100644
--- a/源代码/StgSharp/Data/SSD/DataHead.cs
+++ b/源代码/StgSharp/Data/SSD/DataHead.cs
@@ -44,13 +44,13 @@ namespace StgSharp.Data
{
[FieldOffset(0)] internal M128 data;
- [FieldOffset(12)] internal byte size;
[FieldOffset(0)] public int globalID;
[FieldOffset(4)] public int nextID;
-
-
[FieldOffset(8)] public int previousHash;
+
+
+ [FieldOffset(12)] internal byte size;
[FieldOffset(13)] public byte selfDefine_1;
[FieldOffset(14)] public byte selfDefine_2;
[FieldOffset(15)] public byte selfDefine_3;
@@ -85,115 +85,4 @@ namespace StgSharp.Data
}
- public unsafe class SSDrawHead : IEnumerable
- {
-
- private List freeSegments;
- private string name;
-
- private List<(int, int)> segmentRange;
- internal SSDSegmentHead _head;
-
- internal SSDrawHead(string name)
- {
- int hash;
- this.name = name;
- using (SHA256 sha256Hash = SHA256.Create())
- {
- byte[] bytes = sha256Hash.ComputeHash(Encoding.UTF8.GetBytes(name));
-
- hash = BitConverter.ToInt32(bytes, 0);
- }
- _head.previousHash = hash;
- segmentRange = new List<(int, int)>();
- freeSegments = new List();
- }
-
- public SSDrawHead()
- {
- segmentRange = new List<(int, int)>();
- freeSegments = new List();
- }
-
- public void AddSingleSegment(int id)
- {
- freeSegments.Add(id);
- }
-
- public unsafe byte[] GetBytes(out int size)
- {
- byte[] namecode = Encoding.UTF8.GetBytes(name);
- size = 16 + 4 +
- (segmentRange.Count * 8) +
- (freeSegments.Count * 4) +
- namecode.Length;
- byte[] ret = new byte[size];
- fixed (byte* bptr = ret)
- {
- *(SSDSegmentHead*)bptr = _head;
- *(bptr + 16) = (byte)segmentRange.Count;
- *(bptr + 17) = (byte)namecode.Length;
- *(bptr + 18) = (byte)freeSegments.Count;
- int t = 20;
- for (int i = 0; i < segmentRange.Count; i++, t += 8)
- {
- *(int*)(bptr + t) = segmentRange[i].Item1;
- *(int*)(bptr + t + 4) = segmentRange[i].Item2;
- }
- for (int i = 0; i < freeSegments.Count; i++, t += 4)
- {
- *(int*)(bptr + t) = freeSegments[i];
- }
- for (int i = 0; i < namecode.Length; i++, t++)
- {
- *(bptr + t) = namecode[i];
- }
- }
- return ret;
- }
-
- public void WriteRange(int begin, int end)
- {
- segmentRange.Add((begin, end));
- }
-
- internal void MarkSegment(int id)
- {
- freeSegments.Add(id);
- }
-
- IEnumerator IEnumerable.GetEnumerator()
- {
- foreach (var tuple in segmentRange)
- {
- for (int i = tuple.Item1; i <= tuple.Item2; i++)
- {
- yield return i;
- }
- }
-
- foreach (var item in freeSegments)
- {
- yield return item;
- }
- }
-
- IEnumerator IEnumerable.GetEnumerator()
- {
- foreach (var tuple in segmentRange)
- {
- for (int i = tuple.Item1; i <= tuple.Item2; i++)
- {
- yield return i;
- }
- }
-
- foreach (var item in freeSegments)
- {
- yield return item;
- }
- }
-
- }
-
}
diff --git a/源代码/StgSharp/Data/SSD/DataSegment.cs b/源代码/StgSharp/Data/SSD/DataSegment.cs
new file mode 100644
index 00000000..c9656335
--- /dev/null
+++ b/源代码/StgSharp/Data/SSD/DataSegment.cs
@@ -0,0 +1,134 @@
+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.Data
+{
+ [StructLayout(LayoutKind.Explicit)]
+ public unsafe struct SSDSegment
+ {
+
+ [FieldOffset(16)] public fixed byte Data[16 * 16];
+ [FieldOffset(12)] public int DataHash;
+ [FieldOffset(0 * 16)] public SSDSegmentHead Head;
+ [FieldOffset(8)] public int PreviousHash;
+
+ public SSDSegment(int previousHash)
+ {
+ this.PreviousHash = previousHash;
+ }
+
+ public int ID
+ {
+ get { return Head.globalID; }
+ set { Head.globalID = value; }
+ }
+
+ public byte this[int index]
+ {
+ get
+ {
+ if (index > (16 * 14) - 1)
+ {
+ throw new IndexOutOfRangeException();
+ }
+ return Data[index];
+ }
+
+ set
+ {
+ if (index > (16 * 14) - 1)
+ {
+ throw new IndexOutOfRangeException();
+ }
+ Data[index] = value;
+ }
+ }
+
+ public short Size => Head.size;
+
+ public void FillRandomBytes(int begin)
+ {
+ if (begin > 255)
+ {
+ return;
+ }
+ for (int i = begin; i < 255; i++)
+ {
+ Data[i] = 0; //TODO: 使用STGSHARP内部随机数工具处理它
+ }
+ }
+
+ public byte[] GetBytes()
+ {
+ byte[] ret = new byte[16 * 18];
+ 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 < 16; 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 < 18; 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;
+ }
+ }
+
+ }
+
+}
diff --git a/源代码/StgSharp/Data/SSD/SSD.cs b/源代码/StgSharp/Data/SSD/SSD.cs
index 915462a4..d4c78e32 100644
--- a/源代码/StgSharp/Data/SSD/SSD.cs
+++ b/源代码/StgSharp/Data/SSD/SSD.cs
@@ -32,18 +32,32 @@ using StgSharp.Data.FileIO;
using System;
using System.Collections.Generic;
+using System.Reflection.Metadata.Ecma335;
using System.Text;
namespace StgSharp.Data
{
public partial class SSD
{
+ private SSDrawHead head;
- private SSDFolder _root;
+ private Dictionary idDict;
+ private Dictionary fileList;
+ private Dictionary drawList;
+
+ private List segments;
+ private FileStream file; //很多时候
+ public SSDSegment FindSegment(int id)
+ {
+ SSDSegment s = segments[id];
+ if (s.)
+ {
+
+ }
+ }
+
}
-
-
}
diff --git a/源代码/StgSharp/Data/SSD/SSDVirtualFolder.cs b/源代码/StgSharp/Data/SSD/SSDVirtualFolder.cs
index 9a392d92..4aa4d012 100644
--- a/源代码/StgSharp/Data/SSD/SSDVirtualFolder.cs
+++ b/源代码/StgSharp/Data/SSD/SSDVirtualFolder.cs
@@ -31,43 +31,99 @@
using StgSharp.Data.FileIO;
using System;
+using System.Collections;
using System.Collections.Generic;
using System.Text;
namespace StgSharp.Data
{
- public class SSDFolder: SSDSerializable
+ public class SSDFolder : SSDSerializable, IEnumerable
{
- internal string _name;
+ private SSD local;
+ private SSDrawHead _head;
internal int _folderID;
- internal List files;
- internal List folders;
+ internal string _name;
+ internal Dictionary files;
+ internal Dictionary folders;
+ internal Dictionary idIndex;
- public SSDFolder(string name)
+ internal SSDFolder()
+ {
+ folders = new Dictionary();
+ files = new Dictionary();
+ }
+
+ internal SSDFolder(string name)
{
if (name == "root")
{
- throw new ArgumentNullException("Name cannot be root");
+ throw new ArgumentNullException(
+ "Name cannot be root," +
+ "it is preserved for root file indexer.");
+ }
+ if (name == "default")
+ {
+ throw new ArgumentNullException(
+ "Name cannot be default," +
+ "it is preserved for default file id provider.");
}
_name = name;
- folders = new List();
-
+ folders = new Dictionary();
+ files = new Dictionary();
}
public override byte SSDTypeCode => SerializableTypeCode.VirtualFolder;
+ ///
+ /// Check out if this virtual folder contains certain file.
+ ///
+ /// Name of the file
+ /// Type code defined in
+ /// Id of the file in its virtual disc
+ public int FindFileId(string name, byte type)
+ {
+ int fileid = 0;
+ if (idIndex.TryGetValue($"{name}{SerializableTypeCode.GetNameTail(type)}"
+ , out fileid) && !(type == SerializableTypeCode.VirtualFolder))
+ {
+ return fileid;
+ }
+ return 0;
+ }
+
+
+ ///
+ /// Check out if this virtual folder contains certain file.
+ ///
+ /// Name of the file
+ /// Id of the folder in its virtual disc
+ public int FindFolderId(string name)
+ {
+ int folderid = 0;
+ if (idIndex.TryGetValue($"{name}_f", out folderid))
+ {
+ return folderid;
+ }
+ return 0;
+ }
+
+ public SSDraw CreateFile(string name, byte type)
+ {
+ SSDraw ret = new SSDraw(name + SerializableTypeCode.GetNameTail(type));
+ ret.ID = local.
+ }
+
+ //TODO 虚拟文件夹的GetBytes好难写
public override byte[] GetBytes()
{
- List rawBytes =new List();
+ List rawBytes = new List();
byte[] size = new byte[5];
List fileid = new List();
fileid.Add(4);
foreach (var item in files)
{
- fileid.Add(item.)
+ fileid.Add(item.);
}
-
-
return rawBytes.ToArray();
}
@@ -80,5 +136,30 @@ namespace StgSharp.Data
{
throw new NotImplementedException();
}
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ foreach (var f in files)
+ {
+ yield return f.Value.Head._head;
+ }
+ foreach (var f in folders)
+ {
+ yield return f.Value._head._head;
+ }
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ foreach (var f in files)
+ {
+ yield return f.Value.Head._head;
+ }
+ foreach (var f in folders)
+ {
+ yield return f.Value._head._head;
+ }
+ }
+
}
}
diff --git a/源代码/StgSharp/Data/SSD/SSDraw.cs b/源代码/StgSharp/Data/SSD/SSDraw.cs
index cfdeba71..45719dde 100644
--- a/源代码/StgSharp/Data/SSD/SSDraw.cs
+++ b/源代码/StgSharp/Data/SSD/SSDraw.cs
@@ -28,7 +28,10 @@
//
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
+using StgSharp.Graphics.ShaderEdit;
+
using System;
+using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
@@ -46,18 +49,20 @@ namespace StgSharp.Data.FileIO
{
public const string FileType = "ssdraw";
-
public const int SegmentCapacity = 16 * 16;
+ private Area home;
+
private SSDrawHead _head;
- private string _name;
+ private string _name;
private SSDSegment currentSegment;
private int previousHash;
private List segments;
- public int ID
+ internal SSDraw()
{
- get { return _head._head.globalID; }
+ segments = new List();
+ ID = home.
}
public SSDraw(string name)
@@ -66,10 +71,41 @@ namespace StgSharp.Data.FileIO
segments = new List();
}
+ public int ID
+ {
+ get { return _head._head.globalID; }
+ set { _head._head.globalID = value; }
+ }
+
+ internal SSDrawHead Head
+ {
+ get{return _head; }
+ }
+
+ //TODO 分析头,加载文件头,进一步加载全部的数据块
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static SSDraw AnalyzeHead(SSDrawHead head)
+ {
+ if (head._head.globalID == 0)
+ {
+ return null;
+ }
+ SSDraw ret = new SSDraw();
+ foreach (var item in head)
+ {
+
+ }
+ }
+
public void CreateRawFile(string outputFolder, bool rewrite)
{
string route =
- $"{(((outputFolder == string.Empty) ? " " : ($"{outputFolder}\\")))}{($"{_name}.{FileType}")}";
+ $"{((outputFolder == string.Empty) ? " " : ($"{outputFolder}\\"))}{$"{_name}.{FileType}"}";
if (File.Exists(route) && !rewrite)
{
throw new Exception("This SSDRAW has already existed.");
@@ -86,6 +122,7 @@ namespace StgSharp.Data.FileIO
f.Close();
}
+ //TODO read raw 没写完
public static SSDraw readRaw(string route)
{
string[] routeFolders = route.Split('\\');
@@ -93,9 +130,9 @@ namespace StgSharp.Data.FileIO
{
throw new Exception($"File to open is not a {FileType} file.");
}
-
FileStream stream = File.Open(route, FileMode.Open);
return new SSDraw(string.Empty);
+
}
public void WriteRaw(byte[] dataStream)
@@ -133,121 +170,129 @@ namespace StgSharp.Data.FileIO
}
- [StructLayout(LayoutKind.Explicit)]
- public unsafe struct SSDSegment
+
+ public unsafe class SSDrawHead : IEnumerable
{
- [FieldOffset(16)] public fixed byte Data[16 * 16];
- [FieldOffset(12)] public int DataHash;
- [FieldOffset(0 * 16)] public SSDSegmentHead Head;
- [FieldOffset(8)] public int PreviousHash;
+ private List freeSegments;
+ private string name;
- public SSDSegment(int previousHash)
+ private List<(int, int)> segmentRange;
+ internal SSDSegmentHead _head;
+
+ internal SSDrawHead(string name)
{
- this.PreviousHash = previousHash;
+ int hash;
+ this.name = name;
+ using (SHA256 sha256Hash = SHA256.Create())
+ {
+ byte[] bytes = sha256Hash.ComputeHash(Encoding.UTF8.GetBytes(name));
+
+ hash = BitConverter.ToInt32(bytes, 0);
+ }
+ _head.previousHash = hash;
+ segmentRange = new List<(int, int)>();
+ freeSegments = new List();
}
- public byte this[int index]
+ public SSDrawHead()
{
- get
+ segmentRange = new List<(int, int)>();
+ freeSegments = new List();
+ }
+
+ public byte DiscIndex
+ {
+ get => _head.selfDefine_2;
+ internal set => _head.selfDefine_2 = value;
+ }
+
+ public byte TypeCode
+ {
+ get => _head.selfDefine_1;
+ internal set => _head.selfDefine_1 = value;
+ }
+
+ public void AddSingleSegment(int id)
+ {
+ freeSegments.Add(id);
+ }
+
+ public unsafe byte[] GetBytes(out int size)
+ {
+ byte[] namecode = Encoding.UTF8.GetBytes(name);
+ size = 16 + 4 +
+ (segmentRange.Count * 8) +
+ (freeSegments.Count * 4) +
+ namecode.Length;
+ byte[] ret = new byte[size];
+ fixed (byte* bptr = ret)
{
- if (index > (16 * 14) - 1)
+ *(SSDSegmentHead*)bptr = _head;
+ *(bptr + 16) = (byte)segmentRange.Count;
+ *(bptr + 17) = (byte)namecode.Length;
+ *(bptr + 18) = (byte)freeSegments.Count;
+ int t = 20;
+ for (int i = 0; i < segmentRange.Count; i++, t += 8)
{
- throw new IndexOutOfRangeException();
+ *(int*)(bptr + t) = segmentRange[i].Item1;
+ *(int*)(bptr + t + 4) = segmentRange[i].Item2;
}
- return Data[index];
- }
-
- set
- {
- if (index > (16 * 14) - 1)
+ for (int i = 0; i < freeSegments.Count; i++, t += 4)
{
- throw new IndexOutOfRangeException();
+ *(int*)(bptr + t) = freeSegments[i];
}
- Data[index] = value;
- }
- }
-
- public short Size => Head.size;
-
- public void FillRandomBytes(int begin)
- {
- if (begin > 255)
- {
- return;
- }
- for (int i = begin; i < 255; i++)
- {
- Data[i] = 0; //TODO: 使用STGSHARP内部随机数工具处理它
- }
- }
-
- public byte[] GetBytes()
- {
- byte[] ret = new byte[16 * 18];
- fixed (M128* mptr = &Head.data)
- {
- fixed (byte* aptr = ret)
+ for (int i = 0; i < namecode.Length; i++, t++)
{
- 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 < 16; 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 < 18; i++)
- {
- ret = (ret + (*vptr).GetHashCode()) * 31;
+ *(bptr + t) = namecode[i];
}
}
return ret;
}
- public unsafe T ReadData(int index) where T : struct
+ public void WriteRange(int begin, int end)
{
- fixed (byte* bptr = Data)
+ segmentRange.Add((begin, end));
+ }
+
+ internal void MarkSegment(int id)
+ {
+ freeSegments.Add(id);
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ foreach (var tuple in segmentRange)
{
- T* tptr = (T*)bptr;
- return *(tptr + index);
+ for (int i = tuple.Item1; i <= tuple.Item2; i++)
+ {
+ yield return i;
+ }
+ }
+
+ foreach (var item in freeSegments)
+ {
+ yield return item;
}
}
- public unsafe void WriteData(int index, T value) where T : struct
+
+ IEnumerator IEnumerable.GetEnumerator()
{
- fixed (byte* bptr = Data)
+ foreach (var tuple in segmentRange)
{
- T* tptr = (T*)bptr;
- *(tptr + index) = value;
+ for (int i = tuple.Item1; i <= tuple.Item2; i++)
+ {
+ yield return i;
+ }
+ }
+
+ foreach (var item in freeSegments)
+ {
+ yield return item;
}
}
}
+
}
diff --git a/源代码/StgSharp/Data/Serialize/ISSDSerializable.cs b/源代码/StgSharp/Data/Serialize/ISSDSerializable.cs
index 88be5a20..425a3caf 100644
--- a/源代码/StgSharp/Data/Serialize/ISSDSerializable.cs
+++ b/源代码/StgSharp/Data/Serialize/ISSDSerializable.cs
@@ -18,7 +18,7 @@ namespace StgSharp.Data
internal abstract void BuildFromByteStream(byte[] stream);
}
- public class SerializableTypeCode
+ public static class SerializableTypeCode
{
public const byte IndexTable = 1;
public const byte Image = 2;
@@ -27,6 +27,30 @@ namespace StgSharp.Data
public const byte Text = 5;
public const byte RawData = 6;
public const byte VirtualFolder = 7;
+
+
+ public static string GetNameTail(byte typeCode)
+ {
+ switch (typeCode)
+ {
+ case IndexTable:
+ return "_indexT";
+ case Image:
+ return "_img";
+ case Audio:
+ return "_wav";
+ case Shader:
+ return "_gls";
+ case Text:
+ return "_txt";
+ case RawData:
+ return "_raw";
+ case VirtualFolder:
+ return "_f";
+ default:
+ throw new ArgumentException("Unknown file type");
+ }
+ }
}
public static partial class Serializer
diff --git a/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.AssemblyInfo.cs b/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.AssemblyInfo.cs
index 7e3a5bf9..a4f3f58c 100644
--- a/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.AssemblyInfo.cs
+++ b/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.AssemblyInfo.cs
@@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharp")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
-[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+efeb4ba05892154579515936d827ba856937ec40")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+12345d84050455b4dd2d1c5222753104564e8357")]
[assembly: System.Reflection.AssemblyProductAttribute("StgSharp")]
[assembly: System.Reflection.AssemblyTitleAttribute("StgSharp")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
diff --git a/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.AssemblyInfo.cs b/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.AssemblyInfo.cs
index 77fdab15..be202561 100644
--- a/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.AssemblyInfo.cs
+++ b/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.AssemblyInfo.cs
@@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharpDebug")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
-[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+efeb4ba05892154579515936d827ba856937ec40")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+12345d84050455b4dd2d1c5222753104564e8357")]
[assembly: System.Reflection.AssemblyProductAttribute("StgSharpDebug")]
[assembly: System.Reflection.AssemblyTitleAttribute("StgSharpDebug")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]