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")]