daily update on 20240419 by nitload youmu, SSD merged into main stream
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -2,6 +2,94 @@
|
||||
"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\\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\\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\\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}"
|
||||
},
|
||||
{
|
||||
"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}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharp\\graphics\\image.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.csproj|solutionrelative:stgsharp\\graphics\\image.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\\m128.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\data\\m128.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\\math\\linear\\vec3d.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\math\\linear\\vec3d.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\\form\\frameasyncthread.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\graphics\\form\\frameasyncthread.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\\math\\linear\\vec4d.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\math\\linear\\vec4d.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\\math\\linear\\vector.normalize.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\math\\linear\\vector.normalize.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\\logic\\glparamqueue.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\logic\\glparamqueue.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\\define.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\data\\serialize\\define.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharp\\data\\m128.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.csproj|solutionrelative:stgsharp\\data\\m128.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharp\\math\\linear\\vector.normalize.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.csproj|solutionrelative:stgsharp\\math\\linear\\vector.normalize.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharp\\graphics\\form\\frameasyncthread.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.csproj|solutionrelative:stgsharp\\graphics\\form\\frameasyncthread.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharp\\math\\linear\\vec4d.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.csproj|solutionrelative:stgsharp\\math\\linear\\vec4d.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharp\\logic\\glparamqueue.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.csproj|solutionrelative:stgsharp\\logic\\glparamqueue.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharp\\math\\linear\\vec3d.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.csproj|solutionrelative:stgsharp\\math\\linear\\vec3d.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\\form\\showform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\graphics\\form\\showform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
@@ -26,14 +114,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\\properties\\launchsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
|
||||
"RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\properties\\launchsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
|
||||
},
|
||||
{
|
||||
"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}"
|
||||
},
|
||||
{
|
||||
"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}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{183AA95A-FEBD-42A5-A205-AB7048678251}|OEM\\OEM.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\oem\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{183AA95A-FEBD-42A5-A205-AB7048678251}|OEM\\OEM.csproj|solutionrelative:oem\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
@@ -67,19 +147,283 @@
|
||||
{
|
||||
"$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",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-19T17:49:43.784Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{e1b7d1f8-9b3c-49b1-8f4f-bfc63a88835d}"
|
||||
},
|
||||
{
|
||||
"$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",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-19T17:36:01.877Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 5,
|
||||
"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",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-19T17:27:58.8Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 1,
|
||||
"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",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-19T17:18:48.003Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 3,
|
||||
"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",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Graphics\\GL\\ShaderEdit\\Shader.cs",
|
||||
"RelativeToolTip": "StgSharpDebug\\Graphics\\GL\\ShaderEdit\\Shader.cs",
|
||||
"ViewState": "AQIAADcAAAAAAAAAAAAvwEUAAAAJAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-19T16:42:46.136Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 8,
|
||||
"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",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Image.cs",
|
||||
"RelativeToolTip": "StgSharp\\Graphics\\Image.cs",
|
||||
"ViewState": "AQIAAEsAAAAAAAAAAAApwGEAAAAVAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-19T16:24:37.077Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 10,
|
||||
"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",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Math\\Linear\\vec3d.cs",
|
||||
"RelativeToolTip": "StgSharpDebug\\Math\\Linear\\vec3d.cs",
|
||||
"ViewState": "AQIAACIAAAAAAAAAAIAzwDIAAAAVAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-19T14:35:47.517Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 12,
|
||||
"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",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Math\\Linear\\Vec4d.cs",
|
||||
"RelativeToolTip": "StgSharpDebug\\Math\\Linear\\Vec4d.cs",
|
||||
"ViewState": "AQIAADgAAAAAAAAAAIAzwEgAAAASAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-19T14:35:41.902Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 13,
|
||||
"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",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Math\\Linear\\Vector.Normalize.cs",
|
||||
"RelativeToolTip": "StgSharpDebug\\Math\\Linear\\Vector.Normalize.cs",
|
||||
"ViewState": "AQIAAAIAAAAAAAAAAIAzwBIAAAAfAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-19T14:35:38.1Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 11,
|
||||
"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",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Graphics\\Form\\FrameAsyncThread.cs",
|
||||
"RelativeToolTip": "StgSharpDebug\\Graphics\\Form\\FrameAsyncThread.cs",
|
||||
"ViewState": "AQIAAEYAAAAAAAAAAAAWwFQAAAAfAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-19T14:35:34.378Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 14,
|
||||
"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",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Logic\\glParamQueue.cs",
|
||||
"RelativeToolTip": "StgSharpDebug\\Logic\\glParamQueue.cs",
|
||||
"ViewState": "AQIAAEMAAAAAAAAAAEBBwFMAAAABAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-19T14:35:29.302Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 4,
|
||||
"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",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-19T14:31:36.733Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 15,
|
||||
"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",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\Serialize\\Define.cs",
|
||||
"RelativeToolTip": "StgSharpDebug\\Data\\Serialize\\Define.cs",
|
||||
"ViewState": "AQIAABsAAAAAAAAAAAAAACMAAAABAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-19T14:23:08.581Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 16,
|
||||
"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",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharp\\Data\\M128.cs",
|
||||
"RelativeToolTip": "StgSharp\\Data\\M128.cs",
|
||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAACUAAAAGAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-19T14:19:31.288Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 9,
|
||||
"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",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\M128.cs",
|
||||
"RelativeToolTip": "StgSharpDebug\\Data\\M128.cs",
|
||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAACwAAAAFAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-19T14:17:33.781Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 17,
|
||||
"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",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Vector.Normalize.cs",
|
||||
"RelativeToolTip": "StgSharp\\Math\\Linear\\Vector.Normalize.cs",
|
||||
"ViewState": "AQIAADUAAAAAAAAAAAAqwBMAAAAAAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-19T13:55:13.408Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 19,
|
||||
"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",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Vec4d.cs",
|
||||
"RelativeToolTip": "StgSharp\\Math\\Linear\\Vec4d.cs",
|
||||
"ViewState": "AQIAADgAAAAAAAAAAIAzwEgAAAAoAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-19T13:55:02.059Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 20,
|
||||
"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",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharp\\Logic\\glParamQueue.cs",
|
||||
"RelativeToolTip": "StgSharp\\Logic\\glParamQueue.cs",
|
||||
"ViewState": "AQIAABUAAAAAAAAAAAAAALIAAAAMAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-19T13:54:10.105Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 18,
|
||||
"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",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Form\\FrameAsyncThread.cs",
|
||||
"RelativeToolTip": "StgSharp\\Graphics\\Form\\FrameAsyncThread.cs",
|
||||
"ViewState": "AQIAAEYAAAAAAAAAAAAWwFQAAAAfAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-19T13:53:27.533Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 21,
|
||||
"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",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\vec3d.cs",
|
||||
"RelativeToolTip": "StgSharp\\Math\\Linear\\vec3d.cs",
|
||||
"ViewState": "AQIAACMAAAAAAAAAAIAzwDMAAAASAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-19T13:53:17.8Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 22,
|
||||
"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",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Graphics\\Form\\ShowForm.cs",
|
||||
"RelativeToolTip": "StgSharpDebug\\Graphics\\Form\\ShowForm.cs",
|
||||
"ViewState": "AQIAAAYAAAAAAAAAAAAAABYAAABAAAAA",
|
||||
"ViewState": "AQIAAAYAAAAAAAAAAAAAABkAAAAAAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-15T03:54:31.223Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 1,
|
||||
"DocumentIndex": 23,
|
||||
"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",
|
||||
@@ -91,7 +435,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 4,
|
||||
"DocumentIndex": 26,
|
||||
"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",
|
||||
@@ -103,7 +447,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 5,
|
||||
"DocumentIndex": 27,
|
||||
"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",
|
||||
@@ -115,7 +459,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 2,
|
||||
"DocumentIndex": 24,
|
||||
"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",
|
||||
@@ -127,7 +471,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 3,
|
||||
"DocumentIndex": 25,
|
||||
"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",
|
||||
@@ -139,19 +483,20 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 7,
|
||||
"DocumentIndex": 2,
|
||||
"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",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Graphics\\Image.cs",
|
||||
"RelativeToolTip": "StgSharpDebug\\Graphics\\Image.cs",
|
||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
|
||||
"ViewState": "AQIAADoAAAAAAAAAAAD4v0MAAAAcAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-15T03:52:36.477Z"
|
||||
"WhenOpened": "2024-04-15T03:52:36.477Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 9,
|
||||
"DocumentIndex": 29,
|
||||
"Title": "MainForm.cs",
|
||||
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\OEM\\MainForm.cs",
|
||||
"RelativeDocumentMoniker": "OEM\\MainForm.cs",
|
||||
@@ -163,7 +508,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 8,
|
||||
"DocumentIndex": 28,
|
||||
"Title": "Program.cs",
|
||||
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\OEM\\Program.cs",
|
||||
"RelativeDocumentMoniker": "OEM\\Program.cs",
|
||||
@@ -175,7 +520,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 12,
|
||||
"DocumentIndex": 32,
|
||||
"Title": "StgSharpC.c",
|
||||
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpC\\StgSharpC.c",
|
||||
"RelativeDocumentMoniker": "StgSharpC\\StgSharpC.c",
|
||||
@@ -187,7 +532,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 11,
|
||||
"DocumentIndex": 31,
|
||||
"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",
|
||||
@@ -199,7 +544,7 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 10,
|
||||
"DocumentIndex": 30,
|
||||
"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",
|
||||
@@ -211,15 +556,16 @@
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 6,
|
||||
"DocumentIndex": 7,
|
||||
"Title": "Program.cs",
|
||||
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Program.cs",
|
||||
"RelativeDocumentMoniker": "StgSharpDebug\\Program.cs",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Program.cs",
|
||||
"RelativeToolTip": "StgSharpDebug\\Program.cs",
|
||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAgAAAAPAAAA",
|
||||
"ViewState": "AQIAAC0AAAAAAAAAAAAYwAgAAAAPAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-15T03:13:55.379Z"
|
||||
"WhenOpened": "2024-04-15T03:13:55.379Z",
|
||||
"EditorCaption": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,100 @@
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
// file="CodeCounter.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
using StgSharp.Data;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Numerics;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Data
|
||||
{
|
||||
public static class CodeSeparator
|
||||
{
|
||||
|
||||
public static List<(T, ulong)> CountCodeFrequency<T>(T[] rawArray) where T : struct
|
||||
{
|
||||
Dictionary<T, ulong> frequencyCollection = new Dictionary<T, ulong>();
|
||||
|
||||
foreach (var item in rawArray)
|
||||
{
|
||||
if (frequencyCollection.ContainsKey(item))
|
||||
{
|
||||
frequencyCollection[item] += 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
frequencyCollection.Add(item, 1);
|
||||
}
|
||||
}
|
||||
|
||||
return frequencyCollection.OrderByDescending(pair => pair.Value)
|
||||
.Select(pair => (pair.Key, pair.Value)).ToList();
|
||||
}
|
||||
public static unsafe T[] SeparateCode<T>(string filePath) where T : struct
|
||||
{
|
||||
byte[] allByte = File.ReadAllBytes(filePath);
|
||||
List<T> rawList = new List<T>();
|
||||
|
||||
fixed (byte* allBytePtr = allByte)
|
||||
{
|
||||
for (int i = 0; i < allByte.Length; i += Marshal.SizeOf<T>())
|
||||
{
|
||||
T t = new T();
|
||||
t = *(T*)(allBytePtr + i);
|
||||
rawList.Add(t);
|
||||
}
|
||||
}
|
||||
return rawList.ToArray();
|
||||
}
|
||||
|
||||
public static unsafe T[] SeparateCode<T>(byte[] stream) where T : struct
|
||||
{
|
||||
List<T> rawList = new List<T>();
|
||||
|
||||
fixed (byte* allBytePtr = stream)
|
||||
{
|
||||
for (int i = 0; i < stream.Length; i += Marshal.SizeOf<T>())
|
||||
{
|
||||
T t = new T();
|
||||
t = *(T*)(allBytePtr + i);
|
||||
rawList.Add(t);
|
||||
}
|
||||
}
|
||||
return rawList.ToArray();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
// file="EncodStream.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
using StgSharp.Data;
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharpData
|
||||
{
|
||||
public class EncodeStream
|
||||
{
|
||||
|
||||
byte[] buffer;
|
||||
BitArray bufferArray;
|
||||
byte count;
|
||||
List<byte> data;
|
||||
|
||||
public EncodeStream()
|
||||
{
|
||||
count = 0;
|
||||
buffer = new byte[1];
|
||||
data = new List<byte>();
|
||||
bufferArray = new BitArray(8, true);
|
||||
}
|
||||
|
||||
public List<byte> EncodeData
|
||||
=> data;
|
||||
|
||||
public int Length => data.Count;
|
||||
|
||||
public string Output => Encoding.UTF8.GetString(data.ToArray());
|
||||
|
||||
public void WriteBits<T>(HuffmanKey<T> key) where T : struct
|
||||
{
|
||||
BitArray bit = key.GetBitArray();
|
||||
for (int i = 0; i < bit.Count; i++)
|
||||
{
|
||||
if (count == 8)
|
||||
{
|
||||
bufferArray.CopyTo(buffer, 0);
|
||||
data.Add(buffer[0]);
|
||||
count = 0;
|
||||
}
|
||||
bufferArray[count] = bit[i];
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
// file="Encoder.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
using StgSharpData;
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Data
|
||||
{
|
||||
public static class Encode
|
||||
{
|
||||
|
||||
public static void Freeze<T>(
|
||||
Dictionary<T, HuffmanKey<T>> indexDict
|
||||
)
|
||||
where T : struct
|
||||
{
|
||||
foreach (var key in indexDict)
|
||||
{
|
||||
key.Value.Freeze();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,237 @@
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
// file="HuffmanTree.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Linq;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Xml;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace StgSharp.Data
|
||||
{
|
||||
public partial class HuffmanTree<T> where T : struct
|
||||
{
|
||||
|
||||
HuffmanNodeList<T> leaves;
|
||||
|
||||
internal HuffmanTree(HuffmanNodeList<T> nodeList)
|
||||
{
|
||||
leaves = nodeList;
|
||||
}
|
||||
|
||||
public HuffmanNodeList<T> LeafList
|
||||
=> leaves;
|
||||
|
||||
public TreeNode<T> Root
|
||||
=> leaves.Last;
|
||||
|
||||
public static HuffmanTree<T> BuildHuffmanTree(List<(T, ulong)> metaData)
|
||||
{
|
||||
if (metaData.Count <= 3)
|
||||
{
|
||||
throw new Exception("Data is too little, no need to compress");
|
||||
}
|
||||
HuffmanNodeList<T> leaves = new HuffmanNodeList<T>();
|
||||
HuffmanNodeList<T> all = new HuffmanNodeList<T>();
|
||||
|
||||
foreach (var item in metaData)
|
||||
{
|
||||
leaves.Add(new TreeNode<T>(item));
|
||||
}
|
||||
|
||||
|
||||
while (leaves.Count > 2)
|
||||
{
|
||||
TreeNode<T> node, toMove;
|
||||
if (leaves.Last._frequency < leaves.BeforeLast._frequency)
|
||||
{
|
||||
if (leaves.BeforeLast._frequency < leaves.OverLast._frequency)
|
||||
{
|
||||
//第三节点最大
|
||||
node = new TreeNode<T>(leaves.BeforeLast, leaves.Last);
|
||||
toMove = leaves.RemoveAndGetLast; all.Add(toMove);
|
||||
toMove = leaves.RemoveAndGetLast; all.Add(toMove);
|
||||
leaves.Add(node);
|
||||
}
|
||||
else
|
||||
{
|
||||
//第二节点最大
|
||||
node = (leaves.Last._frequency < leaves.OverLast._frequency) ?
|
||||
(new TreeNode<T>(leaves.OverLast, leaves.Last)) :
|
||||
(new TreeNode<T>(leaves.Last, leaves.OverLast));
|
||||
toMove = leaves.RemoveAndGetLast; all.Add(toMove);
|
||||
toMove = leaves.RemoveAndGetBeforeLast; all.Add(toMove);
|
||||
leaves.Add(node);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if (leaves.Last._frequency < leaves.OverLast._frequency)
|
||||
{
|
||||
//第三节点最大
|
||||
node = new TreeNode<T>(leaves.Last, leaves.BeforeLast);
|
||||
toMove = leaves.RemoveAndGetLast; all.Add(toMove);
|
||||
toMove = leaves.RemoveAndGetLast; all.Add(toMove);
|
||||
leaves.Add(node);
|
||||
}
|
||||
else
|
||||
{
|
||||
//第一节点最大
|
||||
node = (leaves.BeforeLast._frequency < leaves.OverLast._frequency) ?
|
||||
(new TreeNode<T>(leaves.OverLast, leaves.BeforeLast)) :
|
||||
(new TreeNode<T>(leaves.BeforeLast, leaves.OverLast));
|
||||
toMove = leaves.RemoveAndGetBeforeLast; all.Add(toMove);
|
||||
toMove = leaves.RemoveAndGetBeforeLast; all.Add(toMove);
|
||||
leaves.Add(node);
|
||||
}
|
||||
}
|
||||
|
||||
leaves = new HuffmanNodeList<T>(leaves.OrderByDescending(pair => pair.frequency)
|
||||
.Select(pair => pair).ToList());
|
||||
}
|
||||
|
||||
TreeNode<T> lastOne = leaves[0];
|
||||
TreeNode<T> lastTwo = leaves[1];
|
||||
TreeNode<T> root = (lastOne.frequency > lastTwo.frequency) ?
|
||||
(new TreeNode<T>(lastOne, lastTwo)) :
|
||||
(new TreeNode<T>(lastTwo, lastOne));
|
||||
|
||||
all.Add(lastOne);
|
||||
all.Add(lastTwo);
|
||||
all.Add(root);
|
||||
|
||||
leaves = all;
|
||||
return new HuffmanTree<T>(all);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public class HuffmanNodeList<T> : List<TreeNode<T>> where T : struct
|
||||
{
|
||||
|
||||
public HuffmanNodeList() : base()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public HuffmanNodeList(IEnumerable<TreeNode<T>> values) : base(values)
|
||||
{ }
|
||||
|
||||
public TreeNode<T> BeforeLast
|
||||
=> this[Count - 2];
|
||||
|
||||
public TreeNode<T> Last
|
||||
=> this[Count - 1];
|
||||
|
||||
public TreeNode<T> OverLast
|
||||
=> this[Count - 3];
|
||||
|
||||
public TreeNode<T> RemoveAndGetBeforeLast
|
||||
{
|
||||
get
|
||||
{
|
||||
TreeNode<T> ret = this[Count - 2];
|
||||
RemoveAt(Count - 2);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public TreeNode<T> RemoveAndGetLast
|
||||
{
|
||||
get
|
||||
{
|
||||
TreeNode<T> ret = this[Count - 1];
|
||||
RemoveAt(Count - 1);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public TreeNode<T> RemoveAndGetOverLast
|
||||
{
|
||||
get
|
||||
{
|
||||
TreeNode<T> ret = this[Count - 3];
|
||||
RemoveAt(Count - 3);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public void Add(T element, ulong f)
|
||||
{
|
||||
base.Add(new TreeNode<T>(element, f));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public class TreeNode<T> where T : struct
|
||||
{
|
||||
|
||||
internal ulong _frequency;
|
||||
internal TreeNode<T> _left;
|
||||
internal TreeNode<T> _right;
|
||||
internal T? _value;
|
||||
|
||||
internal TreeNode(TreeNode<T> left, TreeNode<T> right)
|
||||
{
|
||||
_left = left;
|
||||
_right = right;
|
||||
_value = null;
|
||||
_frequency = left._frequency + right._frequency;
|
||||
}
|
||||
|
||||
public TreeNode((T, ulong) data)
|
||||
{
|
||||
_value = data.Item1;
|
||||
_frequency = data.Item2;
|
||||
|
||||
}
|
||||
|
||||
public TreeNode(T? value, ulong frequncy)
|
||||
{
|
||||
_value = value;
|
||||
_frequency = frequncy;
|
||||
|
||||
}
|
||||
|
||||
public ulong frequency => _frequency;
|
||||
|
||||
public TreeNode<T> Left => _left;
|
||||
public TreeNode<T> Right => _right;
|
||||
|
||||
public T? Value => _value;
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,189 @@
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
// file="MappingTable.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Data
|
||||
{
|
||||
public partial class HuffmanTree<T> where T : struct
|
||||
{
|
||||
|
||||
public Dictionary<T, HuffmanKey<T>> BuildHuffmanDictionary()
|
||||
{
|
||||
Dictionary<T, HuffmanKey<T>> ret = new Dictionary<T, HuffmanKey<T>>();
|
||||
TreeNode<T> root = Root;
|
||||
HuffmanKey<T> key = new HuffmanKey<T>();
|
||||
key = key.SetSide(KeySide.Right);
|
||||
InternalBuildDictionary(ret, root, key);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public void InternalBuildDictionary(
|
||||
Dictionary<T, HuffmanKey<T>> dict,
|
||||
TreeNode<T> node,
|
||||
HuffmanKey<T> valueTemp
|
||||
)
|
||||
{
|
||||
HuffmanKey<T> nativeNode = new HuffmanKey<T>(valueTemp.bitList);
|
||||
nativeNode.AddIndexLevel();
|
||||
//检查左节点
|
||||
if (node._left.Value == null)
|
||||
{
|
||||
//左节点不是叶子节点,继续搜索
|
||||
InternalBuildDictionary(
|
||||
dict,
|
||||
node._left,
|
||||
nativeNode.SetSide(KeySide.Left));
|
||||
}
|
||||
else
|
||||
{
|
||||
//左节点是叶子节点,添加值
|
||||
dict.Add(node._left.Value.Value, nativeNode.SetSide(KeySide.Left));
|
||||
}
|
||||
//检查右节点
|
||||
if (node._right.Value == null)
|
||||
{
|
||||
//右节点不是叶子节点,继续搜索
|
||||
InternalBuildDictionary(
|
||||
dict,
|
||||
node._right,
|
||||
nativeNode.SetSide(KeySide.Right));
|
||||
}
|
||||
else
|
||||
{
|
||||
//右节点是叶子节点,添加值
|
||||
dict.Add(node._right.Value.Value, nativeNode.SetSide(KeySide.Right));
|
||||
}
|
||||
//这里检查自己是不是叶子节点
|
||||
//但是上面已经检查过了,不需要被检查
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public class HuffmanKey<T> where T : struct
|
||||
{
|
||||
|
||||
internal List<bool> bitList;
|
||||
internal BitArray code;
|
||||
|
||||
public HuffmanKey()
|
||||
{
|
||||
bitList = new List<bool>();
|
||||
bitList.Add(false);
|
||||
}
|
||||
|
||||
public HuffmanKey(List<bool> former)
|
||||
{
|
||||
bitList = new List<bool>(former);
|
||||
}
|
||||
|
||||
public bool IsSupported
|
||||
{
|
||||
get
|
||||
{
|
||||
return
|
||||
(typeof(T) == typeof(byte)) ||
|
||||
(typeof(T) == typeof(uint)) ||
|
||||
(typeof(T) == typeof(ushort)) ||
|
||||
(typeof(T) == typeof(ulong)) ||
|
||||
#if NET7_0_OR_GREATER
|
||||
typeof(T) == typeof(UInt128) ||
|
||||
#endif
|
||||
(typeof(T) == typeof(M128));
|
||||
}
|
||||
}
|
||||
|
||||
public unsafe void AddIndexLevel()
|
||||
{
|
||||
bitList.Add(true);
|
||||
}
|
||||
|
||||
public void Freeze()
|
||||
{
|
||||
if (code != null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
bitList.RemoveAt(0);
|
||||
code = new BitArray(bitList.ToArray());
|
||||
}
|
||||
|
||||
public BitArray GetBitArray()
|
||||
{
|
||||
if (code == null)
|
||||
{
|
||||
List<bool> list = new List<bool>(bitList);
|
||||
list.RemoveAt(0);
|
||||
return new BitArray(list.ToArray());
|
||||
}
|
||||
return code;
|
||||
}
|
||||
|
||||
public unsafe byte[] GetBytes()
|
||||
{
|
||||
byte[] bytes = new byte[(bitList.Count / 8) + 1];
|
||||
BitArray array = new BitArray(bitList.ToArray());
|
||||
array.CopyTo(bytes, 0);
|
||||
return bytes;
|
||||
}
|
||||
|
||||
public unsafe HuffmanKey<T> SetSide(KeySide side)
|
||||
{
|
||||
HuffmanKey<T> newKey = new HuffmanKey<T>(bitList);
|
||||
newKey.bitList[newKey.bitList.Count - 1] = side == KeySide.Left;
|
||||
return newKey;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
string str = string.Empty;
|
||||
foreach (var bit in bitList)
|
||||
{
|
||||
str += $"{bit} ";
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public enum KeySide
|
||||
{
|
||||
Left,
|
||||
Right
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,160 @@
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
// file="M128.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Numerics;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
#if NET5_0_OR_GREATER
|
||||
using System.Runtime.Intrinsics;
|
||||
#endif
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Data
|
||||
{
|
||||
[StructLayout(LayoutKind.Explicit, Pack = 16)]
|
||||
public unsafe struct M128
|
||||
{
|
||||
[FieldOffset(0)] internal Vector4 vec;
|
||||
|
||||
internal M128(Vector4 v)
|
||||
{
|
||||
vec = v;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public ulong GetLongHash()
|
||||
{
|
||||
return (Read<ulong>(0) % 2147483647L) * (Read<ulong>(1) % 2147483647L);
|
||||
}
|
||||
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public T Read<T>(int index) where T : struct
|
||||
{
|
||||
fixed (Vector4* p = &vec)
|
||||
{
|
||||
return *(((T*)p) + index);
|
||||
}
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
public string ToString(int sample)
|
||||
{
|
||||
string str = string.Empty;
|
||||
for (int i = 15; i >= 0; i--)
|
||||
{
|
||||
str += $"{Convert.ToString(this.Read<byte>(i), sample)} ";
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Write<T>(int index, T value) where T : struct
|
||||
#if NET8_0_OR_GREATER
|
||||
, INumber
|
||||
#endif
|
||||
{
|
||||
fixed (Vector4* p = &vec)
|
||||
{
|
||||
*(((T*)p) + index) = value;
|
||||
}
|
||||
}
|
||||
|
||||
#if NET5_0_OR_GREATER
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static explicit operator Vector128<byte>(M128 m)
|
||||
{
|
||||
return Vector128.As<float, byte>(m.vec.AsVector128());
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static explicit operator Vector128<sbyte>(M128 m)
|
||||
{
|
||||
return Vector128.As<float, sbyte>(m.vec.AsVector128());
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static explicit operator Vector128<short>(M128 m)
|
||||
{
|
||||
return Vector128.As<float, short>(m.vec.AsVector128());
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static explicit operator Vector128<ushort>(M128 m)
|
||||
{
|
||||
return Vector128.As<float, ushort>(m.vec.AsVector128());
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static explicit operator Vector128<int>(M128 m)
|
||||
{
|
||||
return Vector128.As<float, int>(m.vec.AsVector128());
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static explicit operator Vector128<uint>(M128 m)
|
||||
{
|
||||
return Vector128.As<float, uint>(m.vec.AsVector128());
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static explicit operator Vector128<long>(M128 m)
|
||||
{
|
||||
return Vector128.As<float, long>(m.vec.AsVector128());
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static explicit operator Vector128<ulong>(M128 m)
|
||||
{
|
||||
return Vector128.As<float, ulong>(m.vec.AsVector128());
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static explicit operator Vector128<float>(M128 m)
|
||||
{
|
||||
return Vector128.As<float, float>(m.vec.AsVector128());
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static explicit operator Vector128<double>(M128 m)
|
||||
{
|
||||
return Vector128.As<float, double>(m.vec.AsVector128());
|
||||
}
|
||||
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,199 @@
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
// file="DataHead.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Numerics;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Data
|
||||
{
|
||||
|
||||
[StructLayout(LayoutKind.Explicit, Size = 16)]
|
||||
public struct SSDSegmentHead
|
||||
{
|
||||
|
||||
[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(13)] public byte selfDefine_1;
|
||||
[FieldOffset(14)] public byte selfDefine_2;
|
||||
[FieldOffset(15)] public byte selfDefine_3;
|
||||
|
||||
public int Size
|
||||
{
|
||||
get => ((int)size) + 1;
|
||||
set
|
||||
{
|
||||
if ((value > 256) || (value < 0))
|
||||
{
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
size = (byte)(value - 1);
|
||||
}
|
||||
}
|
||||
|
||||
public unsafe byte[] GetBytes()
|
||||
{
|
||||
byte[] ret = new byte[16];
|
||||
fixed (Vector4* vptr = &data.vec)
|
||||
{
|
||||
byte* bptr = (byte*)vptr;
|
||||
for (int i = 0; i < 15; i++)
|
||||
{
|
||||
ret[i] = *bptr;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public unsafe class SSDrawHead : IEnumerable<int>
|
||||
{
|
||||
|
||||
private List<int> 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<int>();
|
||||
}
|
||||
|
||||
public SSDrawHead()
|
||||
{
|
||||
segmentRange = new List<(int, int)>();
|
||||
freeSegments = new List<int>();
|
||||
}
|
||||
|
||||
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<int> IEnumerable<int>.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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
// file="SSD.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
using StgSharp.Data.FileIO;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Data
|
||||
{
|
||||
public partial class SSD
|
||||
{
|
||||
|
||||
private SSDFolder _root;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
// file="SSDVirtualFolder.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
using StgSharp.Data.FileIO;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Data
|
||||
{
|
||||
public class SSDFolder: SSDSerializable
|
||||
{
|
||||
internal string _name;
|
||||
internal int _folderID;
|
||||
internal List<SSDraw> files;
|
||||
internal List<SSDFolder> folders;
|
||||
|
||||
public SSDFolder(string name)
|
||||
{
|
||||
if (name == "root")
|
||||
{
|
||||
throw new ArgumentNullException("Name cannot be root");
|
||||
}
|
||||
_name = name;
|
||||
folders = new List<SSDFolder>();
|
||||
|
||||
}
|
||||
|
||||
public override byte SSDTypeCode => SerializableTypeCode.VirtualFolder;
|
||||
|
||||
public override byte[] GetBytes()
|
||||
{
|
||||
List<byte> rawBytes =new List<byte>();
|
||||
byte[] size = new byte[5];
|
||||
List<int> fileid = new List<int>();
|
||||
fileid.Add(4);
|
||||
foreach (var item in files)
|
||||
{
|
||||
fileid.Add(item.)
|
||||
}
|
||||
|
||||
|
||||
return rawBytes.ToArray();
|
||||
}
|
||||
|
||||
public override byte[] GetBytes(out int length)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
internal override void BuildFromByteStream(byte[] stream)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,253 @@
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
// file="SSDraw.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Numerics;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace StgSharp.Data.FileIO
|
||||
{
|
||||
public class SSDraw
|
||||
{
|
||||
|
||||
public const string FileType = "ssdraw";
|
||||
|
||||
public const int SegmentCapacity = 16 * 16;
|
||||
|
||||
private SSDrawHead _head;
|
||||
private string _name;
|
||||
private SSDSegment currentSegment;
|
||||
private int previousHash;
|
||||
private List<SSDSegment> segments;
|
||||
|
||||
public int ID
|
||||
{
|
||||
get { return _head._head.globalID; }
|
||||
}
|
||||
|
||||
public SSDraw(string name)
|
||||
{
|
||||
_name = name;
|
||||
segments = new List<SSDSegment>();
|
||||
}
|
||||
|
||||
public void CreateRawFile(string outputFolder, bool rewrite)
|
||||
{
|
||||
string route =
|
||||
$"{(((outputFolder == string.Empty) ? " " : ($"{outputFolder}\\")))}{($"{_name}.{FileType}")}";
|
||||
if (File.Exists(route) && !rewrite)
|
||||
{
|
||||
throw new Exception("This SSDRAW has already existed.");
|
||||
}
|
||||
using (File.Create(route)) { }
|
||||
using (File.Open(route, FileMode.Truncate)) { }
|
||||
FileStream f = File.Open(route, FileMode.Open);
|
||||
int size = 0;
|
||||
f.Write(_head.GetBytes(out size), 0, size);
|
||||
foreach (var _head in segments)
|
||||
{
|
||||
f.Write(_head.GetBytes(), 0, 18 * 16);
|
||||
}
|
||||
f.Close();
|
||||
}
|
||||
|
||||
public static SSDraw readRaw(string route)
|
||||
{
|
||||
string[] routeFolders = route.Split('\\');
|
||||
if (!routeFolders.Last().Contains($".{FileType}"))
|
||||
{
|
||||
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)
|
||||
{
|
||||
previousHash = BuildRawHead(0);
|
||||
currentSegment = new SSDSegment(previousHash);
|
||||
int t = 0;
|
||||
for (int i = 0; i < dataStream.Length; i++, t++)
|
||||
{
|
||||
if (t == SegmentCapacity)
|
||||
{
|
||||
currentSegment.GetDataHash();
|
||||
currentSegment.Head.Size = 256;
|
||||
currentSegment.Head.globalID = i;
|
||||
segments.Add(currentSegment);
|
||||
previousHash = currentSegment.GetHashCode();
|
||||
currentSegment = new SSDSegment(previousHash);
|
||||
t = 0;
|
||||
}
|
||||
currentSegment[i] = dataStream[i];
|
||||
}
|
||||
currentSegment.FillRandomBytes(t);
|
||||
currentSegment.GetDataHash();
|
||||
currentSegment.Head.Size = t;
|
||||
segments.Add(currentSegment);
|
||||
|
||||
}
|
||||
|
||||
private int BuildRawHead(int beginID)
|
||||
{
|
||||
SSDrawHead rawHead = new SSDrawHead(_name);
|
||||
_head = rawHead;
|
||||
return rawHead.GetHashCode();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[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 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<T>(int index) where T : struct
|
||||
{
|
||||
fixed (byte* bptr = Data)
|
||||
{
|
||||
T* tptr = (T*)bptr;
|
||||
return *(tptr + index);
|
||||
}
|
||||
}
|
||||
public unsafe void WriteData<T>(int index, T value) where T : struct
|
||||
{
|
||||
fixed (byte* bptr = Data)
|
||||
{
|
||||
T* tptr = (T*)bptr;
|
||||
*(tptr + index) = value;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,153 @@
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
// file="BitArray.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Data
|
||||
{
|
||||
public static partial class Serializer
|
||||
{
|
||||
|
||||
public static void Deserialize(byte[] stream, out BitArray target)
|
||||
{
|
||||
List<bool> boolStream = new List<bool>(4 * stream.Length);
|
||||
int i = 0, count = 0;
|
||||
foreach (byte b in stream)
|
||||
{
|
||||
uint raw = b;
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
switch (raw & 0b11)
|
||||
{
|
||||
case (uint)BoolMap.True_0:
|
||||
boolStream.Add(true);
|
||||
break;
|
||||
case (uint)BoolMap.False_0:
|
||||
boolStream.Add(false);
|
||||
break;
|
||||
case (uint)BoolMap.None_0:
|
||||
goto end;
|
||||
default:
|
||||
throw new Exception();
|
||||
}
|
||||
raw >>= 2;
|
||||
count++;
|
||||
continue;
|
||||
end:
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
while (boolStream.Count > count)
|
||||
{
|
||||
boolStream.RemoveAt(count);
|
||||
}
|
||||
target = new BitArray(boolStream.ToArray());
|
||||
}
|
||||
public static byte[] Serialize(BitArray bits)
|
||||
{
|
||||
int size = (bits.Count / 4) + 1;
|
||||
List<byte> ret = new List<byte>(size);
|
||||
int count = 0, total = 0; byte temp = new byte();
|
||||
for (int i = 0; i < bits.Count; i++)
|
||||
{
|
||||
if (count == 4)
|
||||
{
|
||||
ret.Add(temp);
|
||||
count = 0;
|
||||
temp = 0;
|
||||
total++;
|
||||
}
|
||||
switch (count)
|
||||
{
|
||||
case 0:
|
||||
temp |= (byte)(bits[i] ? BoolMap.True_0 : BoolMap.False_0);
|
||||
break;
|
||||
case 1:
|
||||
temp |= (byte)(bits[i] ? BoolMap.True_1 : BoolMap.False_1);
|
||||
break;
|
||||
case 2:
|
||||
temp |= (byte)(bits[i] ? BoolMap.True_2 : BoolMap.False_2);
|
||||
break;
|
||||
case 3:
|
||||
temp |= (byte)(bits[i] ? BoolMap.True_3 : BoolMap.False_3);
|
||||
break;
|
||||
default:
|
||||
throw new Exception();
|
||||
}
|
||||
count++;
|
||||
}
|
||||
for (; count < 4; count++)
|
||||
{
|
||||
switch (count)
|
||||
{
|
||||
case 1:
|
||||
temp |= (byte)BoolMap.None_1;
|
||||
break;
|
||||
case 2:
|
||||
temp |= (byte)BoolMap.None_2;
|
||||
break;
|
||||
case 3:
|
||||
temp |= (byte)BoolMap.None_3;
|
||||
break;
|
||||
default:
|
||||
throw new Exception();
|
||||
}
|
||||
continue;
|
||||
}
|
||||
ret.Add(temp);
|
||||
return ret.ToArray();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
internal enum BoolMap : byte
|
||||
{
|
||||
False_0 = 0b00000010,
|
||||
True_0 = 0b00000001,
|
||||
None_0 = 0b00000011,
|
||||
False_1 = 0b00001000,
|
||||
True_1 = 0b00000100,
|
||||
None_1 = 0b00001100,
|
||||
False_2 = 0b00100000,
|
||||
True_2 = 0b00010000,
|
||||
None_2 = 0b00110000,
|
||||
False_3 = 0b10000000,
|
||||
True_3 = 0b01000000,
|
||||
None_3 = 0b11000000,
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
// file="Define.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Data
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// A class contains a sets of methods to serialize several types
|
||||
/// </summary>
|
||||
public static partial class Serializer
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
// file="Dictionary.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Data
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// A class contains a sets of methods to serialize several types
|
||||
/// </summary>
|
||||
public static partial class Serializer
|
||||
{
|
||||
/**/
|
||||
|
||||
public static void Deserialize(byte[] data, out Dictionary<byte, BitArray> dict)
|
||||
{
|
||||
dict = new Dictionary<byte, BitArray>();
|
||||
int stat = 0; byte key = 0;
|
||||
byte[] raw = new byte[0];
|
||||
foreach (var b in data)
|
||||
{
|
||||
switch (stat)
|
||||
{
|
||||
case 0: //getting key
|
||||
if (raw.Length != 0)
|
||||
{
|
||||
BitArray bits;
|
||||
Deserialize(raw, out bits);
|
||||
dict.Add(key, bits);
|
||||
}
|
||||
key = b;
|
||||
stat -= 1;
|
||||
break;
|
||||
case -1: //getting length
|
||||
raw = new byte[b];
|
||||
stat = b;
|
||||
break;
|
||||
default:
|
||||
raw[raw.Length - stat] = b;
|
||||
stat--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**/
|
||||
public static byte[] Serialize(Dictionary<byte, BitArray> table)
|
||||
{
|
||||
using (var stream = new MemoryStream())
|
||||
{
|
||||
foreach (var pair in table)
|
||||
{
|
||||
stream.WriteByte(pair.Key);
|
||||
|
||||
byte[] keyCode = Serialize(pair.Value);
|
||||
stream.WriteByte((byte)keyCode.Length);
|
||||
|
||||
stream.Write(keyCode, 0, keyCode.Length);
|
||||
}
|
||||
return stream.ToArray();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StgSharp.Data
|
||||
{
|
||||
|
||||
public abstract class SSDSerializable
|
||||
{
|
||||
public abstract byte SSDTypeCode { get; }
|
||||
|
||||
public abstract byte[] GetBytes();
|
||||
|
||||
public abstract byte[] GetBytes(out int length);
|
||||
|
||||
internal abstract void BuildFromByteStream(byte[] stream);
|
||||
}
|
||||
|
||||
public class SerializableTypeCode
|
||||
{
|
||||
public const byte IndexTable = 1;
|
||||
public const byte Image = 2;
|
||||
public const byte Audio = 3;
|
||||
public const byte Shader = 4;
|
||||
public const byte Text = 5;
|
||||
public const byte RawData = 6;
|
||||
public const byte VirtualFolder = 7;
|
||||
}
|
||||
|
||||
public static partial class Serializer
|
||||
{
|
||||
public static byte[] Serialize(SSDSerializable serializableObject)
|
||||
{
|
||||
return serializableObject.GetBytes();
|
||||
}
|
||||
|
||||
public static T Deserialize<T>(byte[] stream)where T : SSDSerializable
|
||||
{
|
||||
T serializableObject = (T)Activator.CreateInstance<T>();
|
||||
serializableObject.BuildFromByteStream(stream);
|
||||
return serializableObject;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -31,7 +31,9 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
@@ -40,8 +42,28 @@ namespace StgSharp
|
||||
public static unsafe partial class StgSharp
|
||||
{
|
||||
|
||||
static byte[] _currentHash;
|
||||
|
||||
private static bool _inited;
|
||||
|
||||
public static byte[] CurrentAssemblyHash
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_currentHash == null)
|
||||
{
|
||||
string route = Assembly.GetExecutingAssembly().Location;
|
||||
string time = DateTime.UtcNow.ToString();
|
||||
using (SHA256 sh = SHA256.Create())
|
||||
{
|
||||
byte[] bytes = Encoding.UTF8.GetBytes(route);
|
||||
_currentHash = sh.ComputeHash(bytes);
|
||||
}
|
||||
}
|
||||
return _currentHash;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Init an instance of OpenGL program,
|
||||
/// This method should be called before any other StgSharp api.
|
||||
@@ -76,5 +98,5 @@ namespace StgSharp
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}//------------------------end of class------------------------//
|
||||
}
|
||||
@@ -28,6 +28,7 @@
|
||||
//
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
using StgSharp.Data;
|
||||
using StgSharp.Math;
|
||||
|
||||
using System;
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
using StgSharp;
|
||||
using StgSharp.Data;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -56,13 +57,15 @@ namespace StgSharp.Graphics
|
||||
}
|
||||
}
|
||||
|
||||
public class Shader
|
||||
public class Shader : SSDSerializable
|
||||
{
|
||||
|
||||
private readonly IntPtr context;
|
||||
internal readonly glHandleSet handle;
|
||||
public readonly ShaderType type;
|
||||
|
||||
public override byte SSDTypeCode => SerializableTypeCode.Shader;
|
||||
|
||||
internal unsafe Shader(glHandleSet handle, ShaderType usage)
|
||||
{
|
||||
this.handle = handle;
|
||||
@@ -97,6 +100,21 @@ namespace StgSharp.Graphics
|
||||
return $"This is a {type} shader, its shader handles are {handle.ToString()}.";
|
||||
}
|
||||
|
||||
//TODO shader 的序列化究极麻烦,原因是shader的架构问题
|
||||
public override byte[] GetBytes()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public override byte[] GetBytes(out int length)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
internal override void BuildFromByteStream(byte[] stream)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
public class ShaderProgram
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
//
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
using StgSharp.Data;
|
||||
using StgSharp.Math;
|
||||
|
||||
using System;
|
||||
@@ -40,11 +41,11 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace StgSharp.Graphics
|
||||
{
|
||||
public class Image
|
||||
public class Image : SSDSerializable
|
||||
{
|
||||
|
||||
internal ImageInfo info;
|
||||
|
||||
internal byte[] data;
|
||||
internal glHandle pixelArrayHandle;
|
||||
|
||||
internal Image(ImageInfo information)
|
||||
@@ -64,12 +65,85 @@ namespace StgSharp.Graphics
|
||||
|
||||
public int Width => info.width;
|
||||
|
||||
public override byte SSDTypeCode => SerializableTypeCode.Image;
|
||||
|
||||
~Image()
|
||||
{
|
||||
Marshal.FreeHGlobal(info.pixelPtr);
|
||||
if (info.pixelPtr!= IntPtr.Zero)
|
||||
{
|
||||
Marshal.FreeHGlobal(info.pixelPtr);
|
||||
}
|
||||
}
|
||||
|
||||
public unsafe override byte[] GetBytes()
|
||||
{
|
||||
if (data == null)
|
||||
{
|
||||
int size = Width * Height * Channel + 1 + 8;
|
||||
data = new byte[size];
|
||||
int i = 0;
|
||||
fixed (byte* bptr = data)
|
||||
{
|
||||
*(int*)bptr = Width;
|
||||
*(int*)(bptr + 4) = Height;
|
||||
*(bptr + 8) = (byte)Channel;
|
||||
byte* pptr = bptr;
|
||||
for (; i < size; i += 16)
|
||||
{
|
||||
*(M128*)(pptr + i) = *(M128*)(info.pixelPtr + i);
|
||||
}
|
||||
for (; i < size; i++)
|
||||
{
|
||||
*(pptr + i) = *(byte*)(info.pixelPtr + i);
|
||||
}
|
||||
}
|
||||
}
|
||||
Marshal.FreeHGlobal(info.pixelPtr);
|
||||
info.pixelPtr = IntPtr.Zero;
|
||||
return data;
|
||||
}
|
||||
|
||||
public unsafe override byte[] GetBytes(out int length)
|
||||
{
|
||||
if (data == null)
|
||||
{
|
||||
int size = Width * Height * Channel + 1 + 8;
|
||||
data = new byte[size];
|
||||
int i = 0;
|
||||
fixed (byte* bptr = data)
|
||||
{
|
||||
*(int*)bptr = Width;
|
||||
*(int*)(bptr + 4) = Height;
|
||||
*(bptr + 8) = (byte)Channel;
|
||||
byte* pptr = bptr;
|
||||
for (; i < size; i += 16)
|
||||
{
|
||||
*(M128*)(pptr + i) = *(M128*)(info.pixelPtr + i);
|
||||
}
|
||||
for (; i < size; i++)
|
||||
{
|
||||
*(pptr + i) = *(byte*)(info.pixelPtr + i);
|
||||
}
|
||||
}
|
||||
}
|
||||
length = data.Length;
|
||||
Marshal.FreeHGlobal(info.pixelPtr);
|
||||
info.pixelPtr = IntPtr.Zero;
|
||||
return data;
|
||||
}
|
||||
|
||||
internal unsafe override void BuildFromByteStream(byte[] stream)
|
||||
{
|
||||
info = new ImageInfo();
|
||||
fixed (byte* bptr = stream)
|
||||
{
|
||||
info.width = *(int*)bptr;
|
||||
info.height = *(int*)(bptr + 4);
|
||||
info.channel = *(bptr + 8);
|
||||
info.pixelPtr = IntPtr.Zero;
|
||||
}
|
||||
data = stream;
|
||||
}
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
//
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
using StgSharp.Data;
|
||||
using StgSharp.Graphics;
|
||||
using StgSharp.Math;
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using StgSharp.Math;
|
||||
using StgSharp.Data;
|
||||
using StgSharp.Math;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
using StgSharp.Controlling;
|
||||
using StgSharp.Data;
|
||||
|
||||
using System;
|
||||
using System.Numerics;
|
||||
|
||||
@@ -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+98aa111a299366695c7ec9bbfdce90445050afa2")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+efeb4ba05892154579515936d827ba856937ec40")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("StgSharp")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("StgSharp")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
@@ -34,3 +34,4 @@ D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharp
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharp\bin\Debug\netstandard2.1\StgSharp.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharp\bin\Debug\netstandard2.1\StgSharp.xml
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharp\obj\Debug\netstandard2.1\ref\StgSharp.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharp\obj\Debug\netstandard2.1\StgSharp.sourcelink.json
|
||||
|
||||
@@ -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+98aa111a299366695c7ec9bbfdce90445050afa2")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+efeb4ba05892154579515936d827ba856937ec40")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("StgSharpDebug")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("StgSharpDebug")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,389 @@
|
||||
{
|
||||
"Version": 1,
|
||||
"WorkspaceRootPath": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\",
|
||||
"Documents": [
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{E8A7C475-2369-4673-B299-9BFDE38B950D}|SSD_Test\\SSD_Test.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\ssd_test\\unittest1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{E8A7C475-2369-4673-B299-9BFDE38B950D}|SSD_Test\\SSD_Test.csproj|solutionrelative:ssd_test\\unittest1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdata\\serialize\\dictionary.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|solutionrelative:stgsharpdata\\serialize\\dictionary.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdata\\serialize\\bitarray.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|solutionrelative:stgsharpdata\\serialize\\bitarray.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdata\\serialize\\define.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|solutionrelative:stgsharpdata\\serialize\\define.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdata\\ssd\\datahead.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|solutionrelative:stgsharpdata\\ssd\\datahead.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdata\\ssd\\ssdvirtualfolder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|solutionrelative:stgsharpdata\\ssd\\ssdvirtualfolder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdata\\ssd\\ssdraw.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|solutionrelative:stgsharpdata\\ssd\\ssdraw.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdata\\ssd\\ssd.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|solutionrelative:stgsharpdata\\ssd\\ssd.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{F89AE661-900E-40C1-9A18-930BE72754A0}|StgSharpDataEncoder\\StgSharpDataEncoder.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdataencoder\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{F89AE661-900E-40C1-9A18-930BE72754A0}|StgSharpDataEncoder\\StgSharpDataEncoder.csproj|solutionrelative:stgsharpdataencoder\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\277ebbdb2ac3180de0b395abf26fa119f9237060f3f99abab1db1856af595784\\src\\libraries\\System.Private.CoreLib\\src\\System\\IO\\FileStream.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\eed1b5a8902320029f9f1eacc29f389b1a0dd3f3355034cd772e7711e1e87015\\src\\libraries\\System.Private.CoreLib\\src\\System\\ArgumentNullException.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdata\\m128.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|solutionrelative:stgsharpdata\\m128.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\ab28f4528ca6ae3323ecb0ad0c3b7a5133f06150c7cb111d8e93c5c75ccf69c0\\src\\libraries\\System.Private.CoreLib\\src\\Microsoft\\Win32\\SafeHandles\\SafeFileHandle.Windows.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\db4ee48f9d1e20594f8d2cf24d9fc3b958a59247470a3fbbc2217fa5db66557c\\src\\libraries\\System.Private.CoreLib\\src\\System\\ArgumentException.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdata\\encode\\codecounter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|solutionrelative:stgsharpdata\\encode\\codecounter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdata\\stgsharpdata.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
|
||||
"RelativeMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|solutionrelative:stgsharpdata\\stgsharpdata.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdata\\encode\\encoder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|solutionrelative:stgsharpdata\\encode\\encoder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdata\\encode\\encodstream.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|solutionrelative:stgsharpdata\\encode\\encodstream.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdata\\encode\\huffmantree.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|solutionrelative:stgsharpdata\\encode\\huffmantree.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdata\\encode\\mappingtable.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|solutionrelative:stgsharpdata\\encode\\mappingtable.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\dfc28918b9358d37c54c60ad664463ed8a972dcae4463fac44f24f23df85a7d3\\src\\libraries\\System.Private.CoreLib\\src\\System\\Collections\\Generic\\List.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\2404c67f225fd1494f16ea63187cd66076bb6984cdb51f12c4b867b5c7549ffd\\src\\libraries\\System.Collections\\src\\System\\Collections\\BitArray.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{F89AE661-900E-40C1-9A18-930BE72754A0}|StgSharpDataEncoder\\StgSharpDataEncoder.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdataencoder\\stgsharpdataencoder.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
|
||||
"RelativeMoniker": "D:0:0:{F89AE661-900E-40C1-9A18-930BE72754A0}|StgSharpDataEncoder\\StgSharpDataEncoder.csproj|solutionrelative:stgsharpdataencoder\\stgsharpdataencoder.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\4b7167f88c9b9527ae2801a410766909469a3a946bb9b8ec28cc2b0d9bd17ec8\\src\\libraries\\System.Private.CoreLib\\src\\System\\Collections\\Generic\\Dictionary.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
}
|
||||
],
|
||||
"DocumentGroupContainers": [
|
||||
{
|
||||
"Orientation": 0,
|
||||
"VerticalTabListWidth": 256,
|
||||
"DocumentGroups": [
|
||||
{
|
||||
"DockedWidth": 197,
|
||||
"SelectedChildIndex": 19,
|
||||
"Children": [
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 2,
|
||||
"Title": "BitArray.cs",
|
||||
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Serialize\\BitArray.cs",
|
||||
"RelativeDocumentMoniker": "StgSharpData\\Serialize\\BitArray.cs",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Serialize\\BitArray.cs",
|
||||
"RelativeToolTip": "StgSharpData\\Serialize\\BitArray.cs",
|
||||
"ViewState": "AQIAADYAAAAAAAAAAAAswGUAAAAUAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-18T12:46:55.9Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 1,
|
||||
"Title": "Dictionary.cs",
|
||||
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Serialize\\Dictionary.cs",
|
||||
"RelativeDocumentMoniker": "StgSharpData\\Serialize\\Dictionary.cs",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Serialize\\Dictionary.cs",
|
||||
"RelativeToolTip": "StgSharpData\\Serialize\\Dictionary.cs",
|
||||
"ViewState": "AQIAACIAAAAAAAAAAAAswDoAAAAzAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-18T10:08:12.032Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 3,
|
||||
"Title": "Define.cs",
|
||||
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Serialize\\Define.cs",
|
||||
"RelativeDocumentMoniker": "StgSharpData\\Serialize\\Define.cs",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Serialize\\Define.cs",
|
||||
"RelativeToolTip": "StgSharpData\\Serialize\\Define.cs",
|
||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAABAAAAAAAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-18T10:06:53.321Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 4,
|
||||
"Title": "DataHead.cs",
|
||||
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\SSD\\DataHead.cs",
|
||||
"RelativeDocumentMoniker": "StgSharpData\\SSD\\DataHead.cs",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\SSD\\DataHead.cs",
|
||||
"RelativeToolTip": "StgSharpData\\SSD\\DataHead.cs",
|
||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAABUAAAAiAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-18T09:42:55.32Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 10,
|
||||
"Title": "ArgumentNullException.cs",
|
||||
"DocumentMoniker": "C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\eed1b5a8902320029f9f1eacc29f389b1a0dd3f3355034cd772e7711e1e87015\\src\\libraries\\System.Private.CoreLib\\src\\System\\ArgumentNullException.cs",
|
||||
"ToolTip": "C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\eed1b5a8902320029f9f1eacc29f389b1a0dd3f3355034cd772e7711e1e87015\\src\\libraries\\System.Private.CoreLib\\src\\System\\ArgumentNullException.cs",
|
||||
"ViewState": "AQIAAEoAAAAAAAAAAAAwwFYAAAAMAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-18T01:34:56.102Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 5,
|
||||
"Title": "SSDVirtualFolder.cs",
|
||||
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\SSD\\SSDVirtualFolder.cs",
|
||||
"RelativeDocumentMoniker": "StgSharpData\\SSD\\SSDVirtualFolder.cs",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\SSD\\SSDVirtualFolder.cs",
|
||||
"RelativeToolTip": "StgSharpData\\SSD\\SSDVirtualFolder.cs",
|
||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAAA0AAAAAAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-18T01:07:23.53Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 7,
|
||||
"Title": "SSD.cs",
|
||||
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\SSD\\SSD.cs",
|
||||
"RelativeDocumentMoniker": "StgSharpData\\SSD\\SSD.cs",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\SSD\\SSD.cs",
|
||||
"RelativeToolTip": "StgSharpData\\SSD\\SSD.cs",
|
||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAABAAAAAAAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-18T01:06:01.434Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 9,
|
||||
"Title": "FileStream.cs",
|
||||
"DocumentMoniker": "C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\277ebbdb2ac3180de0b395abf26fa119f9237060f3f99abab1db1856af595784\\src\\libraries\\System.Private.CoreLib\\src\\System\\IO\\FileStream.cs",
|
||||
"ToolTip": "C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\277ebbdb2ac3180de0b395abf26fa119f9237060f3f99abab1db1856af595784\\src\\libraries\\System.Private.CoreLib\\src\\System\\IO\\FileStream.cs",
|
||||
"ViewState": "AQIAAD4BAAAAAAAAAAAywEgBAAAMAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-17T17:21:17.813Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 12,
|
||||
"Title": "SafeFileHandle.Windows.cs",
|
||||
"DocumentMoniker": "C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\ab28f4528ca6ae3323ecb0ad0c3b7a5133f06150c7cb111d8e93c5c75ccf69c0\\src\\libraries\\System.Private.CoreLib\\src\\Microsoft\\Win32\\SafeHandles\\SafeFileHandle.Windows.cs",
|
||||
"ToolTip": "C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\ab28f4528ca6ae3323ecb0ad0c3b7a5133f06150c7cb111d8e93c5c75ccf69c0\\src\\libraries\\System.Private.CoreLib\\src\\Microsoft\\Win32\\SafeHandles\\SafeFileHandle.Windows.cs",
|
||||
"ViewState": "AQIAAGgAAAAAAAAAAAAkwHEAAAAQAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-17T17:14:38.477Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 13,
|
||||
"Title": "ArgumentException.cs",
|
||||
"DocumentMoniker": "C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\db4ee48f9d1e20594f8d2cf24d9fc3b958a59247470a3fbbc2217fa5db66557c\\src\\libraries\\System.Private.CoreLib\\src\\System\\ArgumentException.cs",
|
||||
"ToolTip": "C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\db4ee48f9d1e20594f8d2cf24d9fc3b958a59247470a3fbbc2217fa5db66557c\\src\\libraries\\System.Private.CoreLib\\src\\System\\ArgumentException.cs",
|
||||
"ViewState": "AQIAAHcAAAAAAAAAAAAkwIAAAAAMAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-17T17:13:42.642Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 15,
|
||||
"Title": "StgSharpData.csproj",
|
||||
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\StgSharpData.csproj",
|
||||
"RelativeDocumentMoniker": "StgSharpData\\StgSharpData.csproj",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\StgSharpData.csproj",
|
||||
"RelativeToolTip": "StgSharpData\\StgSharpData.csproj",
|
||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAYAAAAEAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
|
||||
"WhenOpened": "2024-04-17T14:28:55.587Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 6,
|
||||
"Title": "SSDraw.cs",
|
||||
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\SSD\\SSDraw.cs",
|
||||
"RelativeDocumentMoniker": "StgSharpData\\SSD\\SSDraw.cs",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\SSD\\SSDraw.cs",
|
||||
"RelativeToolTip": "StgSharpData\\SSD\\SSDraw.cs",
|
||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAADQAAAAnAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-16T18:46:55.737Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 20,
|
||||
"Title": "List.cs",
|
||||
"DocumentMoniker": "C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\dfc28918b9358d37c54c60ad664463ed8a972dcae4463fac44f24f23df85a7d3\\src\\libraries\\System.Private.CoreLib\\src\\System\\Collections\\Generic\\List.cs",
|
||||
"ToolTip": "C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\dfc28918b9358d37c54c60ad664463ed8a972dcae4463fac44f24f23df85a7d3\\src\\libraries\\System.Private.CoreLib\\src\\System\\Collections\\Generic\\List.cs",
|
||||
"ViewState": "AQIAAJcAAAAAAAAAAAAkwKAAAAAQAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-16T17:37:25.295Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 21,
|
||||
"Title": "BitArray.cs",
|
||||
"DocumentMoniker": "C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\2404c67f225fd1494f16ea63187cd66076bb6984cdb51f12c4b867b5c7549ffd\\src\\libraries\\System.Collections\\src\\System\\Collections\\BitArray.cs",
|
||||
"ToolTip": "C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\2404c67f225fd1494f16ea63187cd66076bb6984cdb51f12c4b867b5c7549ffd\\src\\libraries\\System.Collections\\src\\System\\Collections\\BitArray.cs",
|
||||
"ViewState": "AQIAANwCAAAAAAAAAAAlwOgCAAAUAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-16T16:09:16.853Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 17,
|
||||
"Title": "EncodStream.cs",
|
||||
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Encode\\EncodStream.cs",
|
||||
"RelativeDocumentMoniker": "StgSharpData\\Encode\\EncodStream.cs",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Encode\\EncodStream.cs",
|
||||
"RelativeToolTip": "StgSharpData\\Encode\\EncodStream.cs",
|
||||
"ViewState": "AQIAABQAAAAAAAAAAAAcwCQAAAAbAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-16T15:27:19.626Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 16,
|
||||
"Title": "Encoder.cs",
|
||||
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Encode\\Encoder.cs",
|
||||
"RelativeDocumentMoniker": "StgSharpData\\Encode\\Encoder.cs",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Encode\\Encoder.cs",
|
||||
"RelativeToolTip": "StgSharpData\\Encode\\Encoder.cs",
|
||||
"ViewState": "AQIAAAAAAAAAAAAAAAAuwAkAAAAeAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-16T03:56:48.034Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 19,
|
||||
"Title": "MappingTable.cs",
|
||||
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Encode\\MappingTable.cs",
|
||||
"RelativeDocumentMoniker": "StgSharpData\\Encode\\MappingTable.cs",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Encode\\MappingTable.cs",
|
||||
"RelativeToolTip": "StgSharpData\\Encode\\MappingTable.cs",
|
||||
"ViewState": "AQIAAFYAAAAAAAAAAIAywGgAAAAfAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-16T03:16:42.994Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 23,
|
||||
"Title": "Dictionary.cs",
|
||||
"DocumentMoniker": "C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\4b7167f88c9b9527ae2801a410766909469a3a946bb9b8ec28cc2b0d9bd17ec8\\src\\libraries\\System.Private.CoreLib\\src\\System\\Collections\\Generic\\Dictionary.cs",
|
||||
"ToolTip": "C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\4b7167f88c9b9527ae2801a410766909469a3a946bb9b8ec28cc2b0d9bd17ec8\\src\\libraries\\System.Private.CoreLib\\src\\System\\Collections\\Generic\\Dictionary.cs",
|
||||
"ViewState": "AQIAABECAAAAAAAAAAAxwCcCAAAcAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-15T19:40:43.44Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 22,
|
||||
"Title": "StgSharpDataEncoder",
|
||||
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpDataEncoder\\StgSharpDataEncoder.csproj",
|
||||
"RelativeDocumentMoniker": "StgSharpDataEncoder\\StgSharpDataEncoder.csproj",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpDataEncoder\\StgSharpDataEncoder.csproj",
|
||||
"RelativeToolTip": "StgSharpDataEncoder\\StgSharpDataEncoder.csproj",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
|
||||
"WhenOpened": "2024-04-15T17:28:44.507Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 0,
|
||||
"Title": "UnitTest1.cs",
|
||||
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\SSD_Test\\UnitTest1.cs",
|
||||
"RelativeDocumentMoniker": "SSD_Test\\UnitTest1.cs",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\SSD_Test\\UnitTest1.cs",
|
||||
"RelativeToolTip": "SSD_Test\\UnitTest1.cs",
|
||||
"ViewState": "AQIAAAMAAAAAAAAAAAAAACcAAAAqAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-15T08:44:36.91Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 14,
|
||||
"Title": "CodeCounter.cs",
|
||||
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Encode\\CodeCounter.cs",
|
||||
"RelativeDocumentMoniker": "StgSharpData\\Encode\\CodeCounter.cs",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Encode\\CodeCounter.cs",
|
||||
"RelativeToolTip": "StgSharpData\\Encode\\CodeCounter.cs",
|
||||
"ViewState": "AQIAAAEAAAAAAAAAAIAzwBEAAAAdAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-15T07:59:54.642Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 11,
|
||||
"Title": "M128.cs",
|
||||
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\M128.cs",
|
||||
"RelativeDocumentMoniker": "StgSharpData\\M128.cs",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\M128.cs",
|
||||
"RelativeToolTip": "StgSharpData\\M128.cs",
|
||||
"ViewState": "AQIAACEAAAAAAAAAAAAgwDUAAAAzAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-15T06:53:39.399Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 18,
|
||||
"Title": "HuffmanTree.cs",
|
||||
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Encode\\HuffmanTree.cs",
|
||||
"RelativeDocumentMoniker": "StgSharpData\\Encode\\HuffmanTree.cs",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Encode\\HuffmanTree.cs",
|
||||
"RelativeToolTip": "StgSharpData\\Encode\\HuffmanTree.cs",
|
||||
"ViewState": "AQIAABQAAAAAAAAAAAArwHcAAAAMAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-15T06:52:09.552Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 8,
|
||||
"Title": "Program.cs",
|
||||
"DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpDataEncoder\\Program.cs",
|
||||
"RelativeDocumentMoniker": "StgSharpDataEncoder\\Program.cs",
|
||||
"ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpDataEncoder\\Program.cs",
|
||||
"RelativeToolTip": "StgSharpDataEncoder\\Program.cs",
|
||||
"ViewState": "AQIAADQAAAAAAAAAAIAzwEcAAAAgAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-04-15T06:51:40.74Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,27 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
|
||||
<IsPackable>false</IsPackable>
|
||||
<IsTestProject>true</IsTestProject>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="coverlet.collector" Version="6.0.0" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
|
||||
<PackageReference Include="MSTest.TestAdapter" Version="3.1.1" />
|
||||
<PackageReference Include="MSTest.TestFramework" Version="3.1.1" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\StgSharpData\StgSharpData.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Using Include="Microsoft.VisualStudio.TestTools.UnitTesting" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,64 @@
|
||||
using StgSharp.Data;
|
||||
|
||||
using System.Collections;
|
||||
using System.Text;
|
||||
|
||||
namespace SSD_Test
|
||||
{
|
||||
[TestClass]
|
||||
public class UnitTest1
|
||||
{
|
||||
//[TestMethod]
|
||||
public void TestCodeSeparate()
|
||||
{
|
||||
byte[] array = CodeSeparator.SeparateCode<byte>(
|
||||
Encoding.UTF8.GetBytes(
|
||||
"aewgyfhvbjaegfvbzgfaehdfkkdgshfskfgdsbvekawhvfbskgfhvzsdhgfhvsbdfhvdszbkgvhsbzvhvfsdvsdgfvhbdhvjeagfvshvghsf"));
|
||||
List<(byte, ulong)> list = CodeSeparator.CountCodeFrequency(array);
|
||||
foreach (var i in list)
|
||||
{
|
||||
Console.WriteLine($"{i.Item1}\t{i.Item2}");
|
||||
}
|
||||
|
||||
Console.WriteLine();
|
||||
Console.WriteLine();
|
||||
|
||||
HuffmanTree<byte> tree = HuffmanTree<byte>.BuildHuffmanTree(list);
|
||||
foreach (var i in tree.LeafList)
|
||||
{
|
||||
Console.WriteLine($"{i.Value}\t{i.frequency}");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void TestIDenum()
|
||||
{
|
||||
Dictionary<byte,BitArray> test = new Dictionary<byte,BitArray>();
|
||||
for (int i = 101; i < 111; i++)
|
||||
{
|
||||
byte[] barray = [(byte)i];
|
||||
test.Add((byte)i, new BitArray(barray));
|
||||
}
|
||||
Console.WriteLine("-------------------------------");
|
||||
byte[] newbytes = Serializer.Serialize(test);
|
||||
foreach (var item in newbytes)
|
||||
{
|
||||
Console.Write(item);
|
||||
Console.Write("\t");
|
||||
}
|
||||
Console.WriteLine("\n--------------------------------");
|
||||
Dictionary<byte, BitArray> testOut;
|
||||
Serializer.Deserialize(newbytes,out testOut);
|
||||
foreach (var item in testOut)
|
||||
{
|
||||
Console.Write($"{item.Key}\t");
|
||||
foreach (var b in item.Value)
|
||||
{
|
||||
Console.Write($"{(bool)b}\t");
|
||||
}
|
||||
Console.WriteLine();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]
|
||||
@@ -0,0 +1,23 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// 此代码由工具生成。
|
||||
// 运行时版本:4.0.30319.42000
|
||||
//
|
||||
// 对此文件的更改可能会导致不正确的行为,并且如果
|
||||
// 重新生成代码,这些更改将会丢失。
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("SSD_Test")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+efeb4ba05892154579515936d827ba856937ec40")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("SSD_Test")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("SSD_Test")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
// 由 MSBuild WriteCodeFragment 类生成。
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
// <auto-generated/>
|
||||
global using global::Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
global using global::System;
|
||||
global using global::System.Collections.Generic;
|
||||
global using global::System.IO;
|
||||
global using global::System.Linq;
|
||||
global using global::System.Net.Http;
|
||||
global using global::System.Threading;
|
||||
global using global::System.Threading.Tasks;
|
||||
@@ -0,0 +1,230 @@
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\CoverletSourceRootsMapping_SSD_Test
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\testhost.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\testhost.exe
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Microsoft.TestPlatform.AdapterUtilities.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\SSD_Test.deps.json
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\SSD_Test.runtimeconfig.json
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\SSD_Test.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\SSD_Test.pdb
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.CodeCoverage.Shim.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Microsoft.TestPlatform.CoreUtilities.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Microsoft.TestPlatform.PlatformAbstractions.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Microsoft.TestPlatform.CommunicationUtilities.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Microsoft.TestPlatform.CrossPlatEngine.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Microsoft.TestPlatform.Utilities.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.Common.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.TestFramework.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Newtonsoft.Json.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\NuGet.Frameworks.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\cs\Microsoft.TestPlatform.CoreUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\cs\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\de\Microsoft.TestPlatform.CoreUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\de\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\es\Microsoft.TestPlatform.CoreUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\es\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\fr\Microsoft.TestPlatform.CoreUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\fr\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\it\Microsoft.TestPlatform.CoreUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\it\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ja\Microsoft.TestPlatform.CoreUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ja\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ko\Microsoft.TestPlatform.CoreUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ko\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\pl\Microsoft.TestPlatform.CoreUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\pl\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\pt-BR\Microsoft.TestPlatform.CoreUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\pt-BR\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ru\Microsoft.TestPlatform.CoreUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ru\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\tr\Microsoft.TestPlatform.CoreUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\tr\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\zh-Hans\Microsoft.TestPlatform.CoreUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\zh-Hant\Microsoft.TestPlatform.CoreUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\cs\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\cs\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\cs\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\de\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\de\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\de\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\es\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\es\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\es\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\fr\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\fr\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\fr\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\it\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\it\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\it\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ja\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ja\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ja\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ko\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ko\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ko\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\pl\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\pl\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\pl\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\pt-BR\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\pt-BR\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\pt-BR\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ru\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ru\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ru\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\tr\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\tr\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\tr\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\zh-Hans\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\zh-Hans\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\zh-Hant\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\zh-Hant\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\cs\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\de\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\es\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\fr\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\it\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ja\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ko\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\pl\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\pt-BR\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ru\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\tr\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\StgSharpData.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\StgSharpData.pdb
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\obj\Debug\net8.0\SSD_Test.csproj.AssemblyReference.cache
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\obj\Debug\net8.0\SSD_Test.GeneratedMSBuildEditorConfig.editorconfig
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\obj\Debug\net8.0\SSD_Test.AssemblyInfoInputs.cache
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\obj\Debug\net8.0\SSD_Test.AssemblyInfo.cs
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\obj\Debug\net8.0\SSD_Test.csproj.CoreCompileInputs.cache
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\obj\Debug\net8.0\SSD_Test.sourcelink.json
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\obj\Debug\net8.0\SSD_Test.csproj.Up2Date
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\obj\Debug\net8.0\SSD_Test.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\obj\Debug\net8.0\refint\SSD_Test.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\obj\Debug\net8.0\SSD_Test.pdb
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\obj\Debug\net8.0\SSD_Test.genruntimeconfig.cache
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\obj\Debug\net8.0\ref\SSD_Test.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\CoverletSourceRootsMapping_SSD_Test
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\testhost.exe
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\testhost.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Microsoft.TestPlatform.AdapterUtilities.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\SSD_Test.deps.json
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\SSD_Test.runtimeconfig.json
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\SSD_Test.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\SSD_Test.pdb
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.CodeCoverage.Shim.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Microsoft.TestPlatform.CoreUtilities.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Microsoft.TestPlatform.PlatformAbstractions.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Microsoft.TestPlatform.CommunicationUtilities.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Microsoft.TestPlatform.CrossPlatEngine.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Microsoft.TestPlatform.Utilities.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.Common.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.TestFramework.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Newtonsoft.Json.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\NuGet.Frameworks.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\cs\Microsoft.TestPlatform.CoreUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\cs\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\de\Microsoft.TestPlatform.CoreUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\de\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\es\Microsoft.TestPlatform.CoreUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\es\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\fr\Microsoft.TestPlatform.CoreUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\fr\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\it\Microsoft.TestPlatform.CoreUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\it\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ja\Microsoft.TestPlatform.CoreUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ja\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ko\Microsoft.TestPlatform.CoreUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ko\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\pl\Microsoft.TestPlatform.CoreUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\pl\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\pt-BR\Microsoft.TestPlatform.CoreUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\pt-BR\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ru\Microsoft.TestPlatform.CoreUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ru\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\tr\Microsoft.TestPlatform.CoreUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\tr\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\zh-Hans\Microsoft.TestPlatform.CoreUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\zh-Hant\Microsoft.TestPlatform.CoreUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\cs\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\cs\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\cs\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\de\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\de\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\de\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\es\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\es\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\es\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\fr\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\fr\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\fr\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\it\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\it\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\it\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ja\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ja\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ja\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ko\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ko\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ko\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\pl\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\pl\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\pl\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\pt-BR\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\pt-BR\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\pt-BR\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ru\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ru\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ru\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\tr\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\tr\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\tr\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\zh-Hans\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\zh-Hans\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\zh-Hant\Microsoft.TestPlatform.CommunicationUtilities.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\zh-Hant\Microsoft.TestPlatform.CrossPlatEngine.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.TestPlatform.Common.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\cs\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\de\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\es\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\fr\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\it\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ja\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ko\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\pl\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\pt-BR\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ru\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\tr\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\StgSharpData.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\StgSharpData.pdb
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\obj\Debug\net8.0\SSD_Test.csproj.AssemblyReference.cache
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\obj\Debug\net8.0\SSD_Test.GeneratedMSBuildEditorConfig.editorconfig
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\obj\Debug\net8.0\SSD_Test.AssemblyInfoInputs.cache
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\obj\Debug\net8.0\SSD_Test.AssemblyInfo.cs
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\obj\Debug\net8.0\SSD_Test.csproj.CoreCompileInputs.cache
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\obj\Debug\net8.0\SSD_Test.sourcelink.json
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\obj\Debug\net8.0\SSD_Test.csproj.Up2Date
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\obj\Debug\net8.0\SSD_Test.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\obj\Debug\net8.0\refint\SSD_Test.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\obj\Debug\net8.0\SSD_Test.pdb
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\obj\Debug\net8.0\SSD_Test.genruntimeconfig.cache
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\obj\Debug\net8.0\ref\SSD_Test.dll
|
||||
@@ -0,0 +1,70 @@
|
||||
using StgSharp.Data;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Numerics;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Data
|
||||
{
|
||||
public static class CodeSeparator
|
||||
{
|
||||
public static unsafe T[] SeparateCode<T>(string filePath) where T : struct
|
||||
{
|
||||
byte[] allByte = File.ReadAllBytes(filePath);
|
||||
List<T> rawList = new List<T>();
|
||||
|
||||
fixed (byte* allBytePtr = allByte)
|
||||
{
|
||||
for (int i = 0; i < allByte.Length; i += Marshal.SizeOf<T>())
|
||||
{
|
||||
T t = new T();
|
||||
t= *(T*)(allBytePtr + i);
|
||||
rawList.Add(t);
|
||||
}
|
||||
}
|
||||
return rawList.ToArray();
|
||||
}
|
||||
|
||||
public static unsafe T[] SeparateCode<T>(byte[] stream) where T : struct
|
||||
{
|
||||
List<T> rawList = new List<T>();
|
||||
|
||||
fixed (byte* allBytePtr = stream)
|
||||
{
|
||||
for (int i = 0; i < stream.Length; i += Marshal.SizeOf<T>())
|
||||
{
|
||||
T t = new T();
|
||||
t = *(T*)(allBytePtr + i);
|
||||
rawList.Add(t);
|
||||
}
|
||||
}
|
||||
return rawList.ToArray();
|
||||
}
|
||||
|
||||
public static List<(T, ulong)> CountCodeFrequency<T>(T[] rawArray) where T : struct
|
||||
{
|
||||
Dictionary<T, ulong> frequencyCollection = new Dictionary<T, ulong>();
|
||||
|
||||
foreach (var item in rawArray)
|
||||
{
|
||||
if (frequencyCollection.ContainsKey(item))
|
||||
{
|
||||
frequencyCollection[item] += 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
frequencyCollection.Add(item, 1);
|
||||
}
|
||||
}
|
||||
|
||||
return frequencyCollection.OrderByDescending(pair=>pair.Value)
|
||||
.Select(pair=>(pair.Key, pair.Value)).ToList();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
using StgSharp.Data;
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharpData
|
||||
{
|
||||
public class EncodeStream
|
||||
{
|
||||
List<byte> data;
|
||||
byte[] buffer;
|
||||
byte count;
|
||||
BitArray bufferArray;
|
||||
|
||||
public int Length
|
||||
{
|
||||
get { return data.Count; }
|
||||
}
|
||||
|
||||
public List<byte> EncodeData
|
||||
{
|
||||
get=> data;
|
||||
}
|
||||
|
||||
public EncodeStream()
|
||||
{
|
||||
count = 0;
|
||||
buffer = new byte[1];
|
||||
data = new List<byte>();
|
||||
bufferArray = new BitArray(8,true);
|
||||
}
|
||||
|
||||
public void WriteBits<T>(HuffmanKey<T> key) where T : struct
|
||||
{
|
||||
BitArray bit = key.GetBitArray();
|
||||
for (int i = 0; i < bit.Count; i++)
|
||||
{
|
||||
if (count == 8)
|
||||
{
|
||||
bufferArray.CopyTo(buffer, 0);
|
||||
data.Add(buffer[0]);
|
||||
count = 0;
|
||||
}
|
||||
bufferArray[count] = bit[i];
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
public string Output
|
||||
{
|
||||
get
|
||||
{
|
||||
return Encoding.UTF8.GetString(data.ToArray());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
using StgSharpData;
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Data
|
||||
{
|
||||
public static class Encode
|
||||
{
|
||||
|
||||
public static void Freeze<T>(
|
||||
Dictionary<T,HuffmanKey<T>> indexDict
|
||||
)
|
||||
where T : struct
|
||||
{
|
||||
foreach ( var key in indexDict )
|
||||
{
|
||||
key.Value.Freeze();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,214 @@
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Linq;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Xml;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace StgSharp.Data
|
||||
{
|
||||
public partial class HuffmanTree<T> where T : struct
|
||||
{
|
||||
HuffmanNodeList<T> leaves;
|
||||
|
||||
public TreeNode<T> Root
|
||||
{
|
||||
get => leaves.Last;
|
||||
}
|
||||
|
||||
public HuffmanNodeList<T> LeafList
|
||||
{
|
||||
get => leaves;
|
||||
}
|
||||
|
||||
internal HuffmanTree(HuffmanNodeList<T> nodeList)
|
||||
{
|
||||
leaves = nodeList;
|
||||
}
|
||||
|
||||
public static HuffmanTree<T> BuildHuffmanTree(List<(T, ulong)> metaData)
|
||||
{
|
||||
if (metaData.Count<=3)
|
||||
{
|
||||
throw new Exception("Data is too little, no need to compress");
|
||||
}
|
||||
HuffmanNodeList<T> leaves = new HuffmanNodeList<T>();
|
||||
HuffmanNodeList<T> all = new HuffmanNodeList<T>();
|
||||
|
||||
foreach (var item in metaData)
|
||||
{
|
||||
leaves.Add(new TreeNode<T>(item));
|
||||
}
|
||||
|
||||
int count = 0;
|
||||
|
||||
while (leaves.Count >2)
|
||||
{
|
||||
TreeNode<T> node, toMove;
|
||||
if (leaves.Last._frequency < leaves.BeforeLast._frequency)
|
||||
{
|
||||
if (leaves.BeforeLast._frequency < leaves.OverLast._frequency)
|
||||
{
|
||||
//第三节点最大
|
||||
node = new TreeNode<T>(leaves.BeforeLast, leaves.Last);
|
||||
toMove = leaves.RemoveAndGetLast; all.Add(toMove);
|
||||
toMove = leaves.RemoveAndGetLast; all.Add(toMove);
|
||||
leaves.Add(node);
|
||||
}
|
||||
else
|
||||
{
|
||||
//第二节点最大
|
||||
node = leaves.Last._frequency < leaves.OverLast._frequency ?
|
||||
new TreeNode<T>(leaves.OverLast, leaves.Last) :
|
||||
new TreeNode<T>(leaves.Last, leaves.OverLast);
|
||||
toMove = leaves.RemoveAndGetLast; all.Add(toMove);
|
||||
toMove = leaves.RemoveAndGetBeforeLast; all.Add(toMove);
|
||||
leaves.Add(node);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if (leaves.Last._frequency < leaves.OverLast._frequency)
|
||||
{
|
||||
//第三节点最大
|
||||
node = new TreeNode<T>(leaves.Last, leaves.BeforeLast);
|
||||
toMove = leaves.RemoveAndGetLast; all.Add(toMove);
|
||||
toMove = leaves.RemoveAndGetLast; all.Add(toMove);
|
||||
leaves.Add(node);
|
||||
}
|
||||
else
|
||||
{
|
||||
//第一节点最大
|
||||
node = leaves.BeforeLast._frequency < leaves.OverLast._frequency?
|
||||
new TreeNode<T>(leaves.OverLast, leaves.BeforeLast):
|
||||
new TreeNode<T>(leaves.BeforeLast, leaves.OverLast);
|
||||
toMove = leaves.RemoveAndGetBeforeLast; all.Add(toMove);
|
||||
toMove = leaves.RemoveAndGetBeforeLast; all.Add(toMove);
|
||||
leaves.Add(node);
|
||||
}
|
||||
}
|
||||
|
||||
leaves = new HuffmanNodeList<T>( leaves.OrderByDescending(pair => pair.frequency)
|
||||
.Select(pair => pair).ToList());
|
||||
}
|
||||
|
||||
TreeNode<T> lastOne = leaves[0];
|
||||
TreeNode<T> lastTwo = leaves[1];
|
||||
TreeNode<T> root = lastOne.frequency>lastTwo.frequency?
|
||||
new TreeNode<T>(lastOne,lastTwo):
|
||||
new TreeNode<T>(lastTwo, lastOne);
|
||||
|
||||
all.Add(lastOne);
|
||||
all.Add(lastTwo);
|
||||
all.Add(root);
|
||||
|
||||
leaves = all;
|
||||
return new HuffmanTree<T>(all);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public class HuffmanNodeList<T> : List<TreeNode<T>> where T : struct
|
||||
{
|
||||
public HuffmanNodeList():base()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public HuffmanNodeList(IEnumerable<TreeNode<T>> values):base(values)
|
||||
{}
|
||||
|
||||
public void Add(T element, ulong f)
|
||||
{
|
||||
base.Add(new TreeNode<T>(element,f));
|
||||
}
|
||||
|
||||
public TreeNode<T> Last
|
||||
{
|
||||
get => this[Count-1 ];
|
||||
}
|
||||
|
||||
public TreeNode<T> RemoveAndGetLast
|
||||
{
|
||||
get
|
||||
{
|
||||
TreeNode<T> ret = this[Count-1];
|
||||
RemoveAt(Count-1);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public TreeNode<T> BeforeLast
|
||||
{
|
||||
get => this[Count - 2];
|
||||
}
|
||||
|
||||
public TreeNode<T> RemoveAndGetBeforeLast
|
||||
{
|
||||
get
|
||||
{
|
||||
TreeNode<T> ret = this[Count - 2];
|
||||
RemoveAt(Count - 2);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public TreeNode<T> OverLast
|
||||
{
|
||||
get => this[Count - 3];
|
||||
}
|
||||
|
||||
public TreeNode<T> RemoveAndGetOverLast
|
||||
{
|
||||
get
|
||||
{
|
||||
TreeNode<T> ret = this[Count - 3];
|
||||
RemoveAt(Count - 3);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public class TreeNode<T> where T: struct
|
||||
{
|
||||
internal TreeNode<T> _left;
|
||||
internal TreeNode<T> _right;
|
||||
internal T? _value;
|
||||
internal ulong _frequency;
|
||||
|
||||
public ulong frequency => _frequency;
|
||||
|
||||
public T? Value => _value;
|
||||
|
||||
public TreeNode<T> Left => _left;
|
||||
public TreeNode<T> Right => _right;
|
||||
|
||||
public TreeNode( T? value, ulong frequncy)
|
||||
{
|
||||
_value = value;
|
||||
_frequency = frequncy;
|
||||
|
||||
}
|
||||
|
||||
internal TreeNode(TreeNode<T> left, TreeNode<T> right)
|
||||
{
|
||||
_left = left;
|
||||
_right = right;
|
||||
_value = null;
|
||||
_frequency = left._frequency + right._frequency;
|
||||
}
|
||||
|
||||
public TreeNode((T, ulong) data)
|
||||
{
|
||||
_value = data.Item1;
|
||||
_frequency = data.Item2;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,156 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Data
|
||||
{
|
||||
public partial class HuffmanTree<T> where T : struct
|
||||
{
|
||||
public Dictionary<T, HuffmanKey<T>> BuildHuffmanDictionary()
|
||||
{
|
||||
Dictionary<T, HuffmanKey<T>> ret = new Dictionary<T, HuffmanKey<T>>();
|
||||
TreeNode<T> root = Root;
|
||||
HuffmanKey<T> key = new HuffmanKey<T>();
|
||||
key = key.SetSide(KeySide.Right);
|
||||
InternalBuildDictionary(ret, root, key);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public void InternalBuildDictionary(
|
||||
Dictionary<T, HuffmanKey<T>> dict,
|
||||
TreeNode<T> node,
|
||||
HuffmanKey<T> valueTemp
|
||||
)
|
||||
{
|
||||
HuffmanKey<T> nativeNode = new HuffmanKey<T>(valueTemp.bitList);
|
||||
nativeNode.AddIndexLevel();
|
||||
//检查左节点
|
||||
if (node._left.Value == null)
|
||||
{
|
||||
//左节点不是叶子节点,继续搜索
|
||||
InternalBuildDictionary(
|
||||
dict,
|
||||
node._left,
|
||||
nativeNode.SetSide(KeySide.Left));
|
||||
}
|
||||
else
|
||||
{
|
||||
//左节点是叶子节点,添加值
|
||||
dict.Add(node._left.Value.Value, nativeNode.SetSide(KeySide.Left));
|
||||
}
|
||||
//检查右节点
|
||||
if (node._right.Value == null)
|
||||
{
|
||||
//右节点不是叶子节点,继续搜索
|
||||
InternalBuildDictionary(
|
||||
dict,
|
||||
node._right,
|
||||
nativeNode.SetSide(KeySide.Right));
|
||||
}
|
||||
else
|
||||
{
|
||||
//右节点是叶子节点,添加值
|
||||
dict.Add(node._right.Value.Value, nativeNode.SetSide(KeySide.Right));
|
||||
}
|
||||
//这里检查自己是不是叶子节点
|
||||
//但是上面已经检查过了,不需要被检查
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public class HuffmanKey<T> where T : struct
|
||||
{
|
||||
internal List<bool> bitList;
|
||||
internal BitArray code;
|
||||
|
||||
public HuffmanKey()
|
||||
{
|
||||
bitList = new List<bool>();
|
||||
bitList.Add(false);
|
||||
}
|
||||
|
||||
public HuffmanKey(List<bool> former)
|
||||
{
|
||||
bitList = new List<bool>(former);
|
||||
}
|
||||
|
||||
public unsafe byte[] GetBytes()
|
||||
{
|
||||
byte[] bytes = new byte[bitList.Count / 8 +1];
|
||||
BitArray array = new BitArray(bitList.ToArray());
|
||||
array.CopyTo(bytes, 0);
|
||||
return bytes;
|
||||
}
|
||||
|
||||
public void Freeze()
|
||||
{
|
||||
if (code != null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
bitList.RemoveAt(0);
|
||||
code = new BitArray(bitList.ToArray());
|
||||
}
|
||||
|
||||
public BitArray GetBitArray()
|
||||
{
|
||||
if (code == null)
|
||||
{
|
||||
List<bool> list = new List<bool>(bitList);
|
||||
list.RemoveAt(0);
|
||||
return new BitArray(list.ToArray());
|
||||
}
|
||||
return code;
|
||||
}
|
||||
|
||||
public unsafe HuffmanKey<T> SetSide(KeySide side)
|
||||
{
|
||||
HuffmanKey<T> newKey = new HuffmanKey<T>(bitList);
|
||||
newKey.bitList[newKey.bitList.Count - 1] = (side == KeySide.Left);
|
||||
return newKey;
|
||||
}
|
||||
|
||||
public unsafe void AddIndexLevel()
|
||||
{
|
||||
bitList.Add(true);
|
||||
}
|
||||
|
||||
public bool IsSupported
|
||||
{
|
||||
get
|
||||
{
|
||||
return
|
||||
typeof(T) == typeof(byte) ||
|
||||
typeof(T) == typeof(uint) ||
|
||||
typeof(T) == typeof(ushort) ||
|
||||
typeof(T) == typeof(ulong) ||
|
||||
#if NET7_0_OR_GREATER
|
||||
typeof(T) == typeof(UInt128) ||
|
||||
#endif
|
||||
typeof(T) == typeof(M128);
|
||||
}
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
string str = "";
|
||||
foreach (var bit in bitList)
|
||||
{
|
||||
str += $"{bit} ";
|
||||
}
|
||||
return str;
|
||||
}
|
||||
}
|
||||
|
||||
public enum KeySide
|
||||
{
|
||||
Left,
|
||||
Right
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,158 @@
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
// file="M128.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Numerics;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Data
|
||||
{
|
||||
[StructLayout(LayoutKind.Explicit, Pack = 16)]
|
||||
public unsafe struct M128
|
||||
{
|
||||
|
||||
[FieldOffset(0)] internal Vector4 vec;
|
||||
|
||||
internal M128(Vector4 v)
|
||||
{
|
||||
vec = v;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public ulong GetLongHash()
|
||||
{
|
||||
return (Read<ulong>(0)%2147483647L) * (Read<ulong>(1) % 2147483647L);
|
||||
}
|
||||
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public T Read<T>(int index) where T : struct
|
||||
{
|
||||
fixed (Vector4* p = &vec)
|
||||
{
|
||||
return *(((T*)p) + index);
|
||||
}
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
public string ToString(int sample)
|
||||
{
|
||||
string str = string.Empty;
|
||||
for (int i = 15; i >= 0; i--)
|
||||
{
|
||||
str += $"{Convert.ToString(this.Read<byte>(i), sample)} ";
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Write<T>(int index, T value) where T : struct
|
||||
#if NET8_0_OR_GREATER
|
||||
, INumber
|
||||
#endif
|
||||
{
|
||||
fixed (Vector4* p = &vec)
|
||||
{
|
||||
*(((T*)p) + index) = value;
|
||||
}
|
||||
}
|
||||
|
||||
#if NET5_0_OR_GREATER
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static explicit operator Vector128<byte>(M128 m)
|
||||
{
|
||||
return Vector128.As<float, byte>(m.vec.AsVector128());
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static explicit operator Vector128<sbyte>(M128 m)
|
||||
{
|
||||
return Vector128.As<float, sbyte>(m.vec.AsVector128());
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static explicit operator Vector128<short>(M128 m)
|
||||
{
|
||||
return Vector128.As<float, short>(m.vec.AsVector128());
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static explicit operator Vector128<ushort>(M128 m)
|
||||
{
|
||||
return Vector128.As<float, ushort>(m.vec.AsVector128());
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static explicit operator Vector128<int>(M128 m)
|
||||
{
|
||||
return Vector128.As<float, int>(m.vec.AsVector128());
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static explicit operator Vector128<uint>(M128 m)
|
||||
{
|
||||
return Vector128.As<float, uint>(m.vec.AsVector128());
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static explicit operator Vector128<long>(M128 m)
|
||||
{
|
||||
return Vector128.As<float, long>(m.vec.AsVector128());
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static explicit operator Vector128<ulong>(M128 m)
|
||||
{
|
||||
return Vector128.As<float, ulong>(m.vec.AsVector128());
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static explicit operator Vector128<float>(M128 m)
|
||||
{
|
||||
return Vector128.As<float, float>(m.vec.AsVector128());
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static explicit operator Vector128<double>(M128 m)
|
||||
{
|
||||
return Vector128.As<float, double>(m.vec.AsVector128());
|
||||
}
|
||||
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,165 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Numerics;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Data
|
||||
{
|
||||
|
||||
[StructLayout(LayoutKind.Explicit, Size = 16)]
|
||||
public struct SSDSegmentHead
|
||||
{
|
||||
[FieldOffset(0)] internal M128 data;
|
||||
|
||||
[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;
|
||||
|
||||
public int Size
|
||||
{
|
||||
get { return ((int)size) + 1; }
|
||||
set
|
||||
{
|
||||
if (value > 256 || value < 0)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
size = (byte)(value - 1);
|
||||
}
|
||||
}
|
||||
|
||||
public unsafe byte[] GetBytes()
|
||||
{
|
||||
byte[] ret = new byte[16];
|
||||
fixed (Vector4* vptr = &data.vec)
|
||||
{
|
||||
byte* bptr = (byte*)vptr;
|
||||
for (int i = 0; i < 15; i++)
|
||||
{
|
||||
ret[i] = *bptr;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public unsafe class SSDrawHead:IEnumerable<int>
|
||||
{
|
||||
internal SSDSegmentHead _head;
|
||||
|
||||
private List<(int, int)> segmentRange;
|
||||
private List<int> freeSegments;
|
||||
private string name;
|
||||
|
||||
public SSDrawHead()
|
||||
{
|
||||
segmentRange = new List<(int, int)>();
|
||||
freeSegments = new List<int>();
|
||||
}
|
||||
|
||||
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<int>();
|
||||
}
|
||||
|
||||
public void WriteRange(int begin, int end)
|
||||
{
|
||||
segmentRange.Add((begin, end));
|
||||
}
|
||||
|
||||
public void AddSingleSegment(int id)
|
||||
{
|
||||
freeSegments.Add(id);
|
||||
}
|
||||
|
||||
internal void MarkSegment(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;
|
||||
}
|
||||
|
||||
IEnumerator<int> IEnumerable<int>.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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
using StgSharp.Data.FileIO;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Data
|
||||
{
|
||||
public partial class SSD
|
||||
{
|
||||
|
||||
private List<SSDraw> rawList;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
using StgSharp.Data.FileIO;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Data
|
||||
{
|
||||
public class SSDVirtualFolder
|
||||
{
|
||||
internal string _name;
|
||||
internal List<SSDraw> files;
|
||||
internal List<SSDVirtualFolder> folders;
|
||||
|
||||
public SSDVirtualFolder()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,215 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Numerics;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace StgSharp.Data.FileIO
|
||||
{
|
||||
public class SSDraw
|
||||
{
|
||||
public const string FileType = "ssdraw";
|
||||
|
||||
public const int SegmentCapacity = 16 * 16;
|
||||
private string _name;
|
||||
private SSDrawHead _head;
|
||||
private List<SSDSegment> segments;
|
||||
private SSDSegment currentSegment;
|
||||
private int previousHash;
|
||||
|
||||
public SSDraw(string name)
|
||||
{
|
||||
_name = name;
|
||||
segments = new List<SSDSegment>();
|
||||
}
|
||||
|
||||
public void WriteRaw(byte[] dataStream)
|
||||
{
|
||||
previousHash = BuildRawHead(0);
|
||||
currentSegment = new SSDSegment(previousHash);
|
||||
int t = 0;
|
||||
for (int i = 0; i < dataStream.Length; i++, t++)
|
||||
{
|
||||
if (t == SegmentCapacity)
|
||||
{
|
||||
currentSegment.GetDataHash();
|
||||
currentSegment.Head.Size = 256;
|
||||
currentSegment.Head.globalID = i;
|
||||
segments.Add(currentSegment);
|
||||
previousHash = currentSegment.GetHashCode();
|
||||
currentSegment = new SSDSegment(previousHash);
|
||||
t = 0;
|
||||
}
|
||||
currentSegment[i] = dataStream[i];
|
||||
}
|
||||
currentSegment.FillRandomBytes(t);
|
||||
currentSegment.GetDataHash();
|
||||
currentSegment.Head.Size = t;
|
||||
segments.Add(currentSegment);
|
||||
|
||||
}
|
||||
|
||||
public void CreateRawFile(string outputFolder, bool rewrite)
|
||||
{
|
||||
string route =
|
||||
(outputFolder == "" ? " " : $"{outputFolder}\\")
|
||||
+ $"{_name}.{FileType}";
|
||||
if (File.Exists(route) && !rewrite)
|
||||
{
|
||||
throw new Exception("This SSDRAW has already existed.");
|
||||
}
|
||||
using (File.Create(route)) { }
|
||||
using (FileStream cf = File.Open(route, FileMode.Truncate)) { }
|
||||
FileStream f = File.Open(route, FileMode.Open);
|
||||
int size = 0;
|
||||
f.Write(_head.GetBytes(out size), 0, size);
|
||||
foreach (var _head in segments)
|
||||
{
|
||||
f.Write(_head.GetBytes(), 0, 18 * 16);
|
||||
}
|
||||
f.Close();
|
||||
}
|
||||
|
||||
private int BuildRawHead(int beginID)
|
||||
{
|
||||
SSDrawHead rawHead = new SSDrawHead(_name);
|
||||
_head = rawHead;
|
||||
return rawHead.GetHashCode();
|
||||
}
|
||||
|
||||
public static SSDraw readRaw(string route)
|
||||
{
|
||||
string[] routeFolders = route.Split('\\');
|
||||
if (!routeFolders.Last().Contains($".{FileType}"))
|
||||
{
|
||||
throw new Exception($"File to open is not a {FileType} file.");
|
||||
}
|
||||
|
||||
FileStream stream = File.Open(route, FileMode.Open);
|
||||
return new SSDraw("");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Explicit)]
|
||||
public unsafe struct SSDSegment
|
||||
{
|
||||
[FieldOffset(0 * 16)] public SSDSegmentHead Head;
|
||||
[FieldOffset(12)] public int DataHash;
|
||||
[FieldOffset(8)] public int PreviousHash;
|
||||
[FieldOffset(16)] public fixed byte Data[16 * 16];
|
||||
|
||||
public SSDSegment(int previousHash)
|
||||
{
|
||||
this.PreviousHash = previousHash;
|
||||
}
|
||||
|
||||
public short Size
|
||||
{
|
||||
get { return Head.size; }
|
||||
}
|
||||
|
||||
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 void FillRandomBytes(int begin)
|
||||
{
|
||||
if (begin > 255)
|
||||
{
|
||||
return;
|
||||
}
|
||||
for (int i = begin; i < 255; i++)
|
||||
{
|
||||
Data[i] = 0; //TODO: 使用STGSHARP内部随机数工具处理它
|
||||
}
|
||||
}
|
||||
|
||||
public unsafe T ReadData<T>(int index) where T : struct
|
||||
{
|
||||
fixed (byte* bptr = Data)
|
||||
{
|
||||
T* tptr = (T*)bptr;
|
||||
return *(tptr + index);
|
||||
}
|
||||
}
|
||||
public unsafe void WriteData<T>(int index,T value) where T : struct
|
||||
{
|
||||
fixed (byte* bptr = Data)
|
||||
{
|
||||
T* tptr = (T*)bptr;
|
||||
*(tptr + index) = value;
|
||||
}
|
||||
}
|
||||
|
||||
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 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 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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,122 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Data
|
||||
{
|
||||
public static partial class Serializer
|
||||
{
|
||||
public static byte[] Serialize(BitArray bits)
|
||||
{
|
||||
int size = bits.Count/4 +1;
|
||||
List<byte> ret = new List<byte>(size);
|
||||
int count = 0, total = 0; byte temp = new byte();
|
||||
for (int i = 0; i < bits.Count; i++)
|
||||
{
|
||||
if (count == 4)
|
||||
{
|
||||
ret.Add(temp);
|
||||
count = 0;
|
||||
temp = 0;
|
||||
total++;
|
||||
}
|
||||
switch (count)
|
||||
{
|
||||
case 0:
|
||||
temp |= (byte)(bits[i] ? BoolMap.True_0 : BoolMap.False_0);
|
||||
break;
|
||||
case 1:
|
||||
temp |= (byte)(bits[i] ? BoolMap.True_1 : BoolMap.False_1);
|
||||
break;
|
||||
case 2:
|
||||
temp |= (byte)(bits[i] ? BoolMap.True_2 : BoolMap.False_2);
|
||||
break;
|
||||
case 3:
|
||||
temp |= (byte)(bits[i] ? BoolMap.True_3 : BoolMap.False_3);
|
||||
break;
|
||||
default:
|
||||
throw new Exception();
|
||||
}
|
||||
count++;
|
||||
}
|
||||
for (; count < 4; count++)
|
||||
{
|
||||
switch (count)
|
||||
{
|
||||
case 1:
|
||||
temp |= (byte)(BoolMap.None_1);
|
||||
break;
|
||||
case 2:
|
||||
temp |= (byte)(BoolMap.None_2);
|
||||
break;
|
||||
case 3:
|
||||
temp |= (byte)(BoolMap.None_3);
|
||||
break;
|
||||
default:
|
||||
throw new Exception();
|
||||
}
|
||||
continue;
|
||||
}
|
||||
ret.Add( temp);
|
||||
return ret.ToArray();
|
||||
}
|
||||
|
||||
public static void Deserialize(byte[] stream, out BitArray target)
|
||||
{
|
||||
List<bool> boolStream = new List<bool>( 4 * stream.Length);
|
||||
int i = 0, count = 0;
|
||||
foreach (byte b in stream)
|
||||
{
|
||||
uint raw = b;
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
switch (raw & 0b11)
|
||||
{
|
||||
case (uint)BoolMap.True_0:
|
||||
boolStream.Add(true);
|
||||
break;
|
||||
case (uint)BoolMap.False_0:
|
||||
boolStream.Add(false);
|
||||
break;
|
||||
case (uint)BoolMap.None_0:
|
||||
goto end;
|
||||
default:
|
||||
throw new Exception();
|
||||
}
|
||||
raw >>= 2;
|
||||
count++;
|
||||
continue;
|
||||
end:
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
while (boolStream.Count > count)
|
||||
{
|
||||
boolStream.RemoveAt(count);
|
||||
}
|
||||
target = new BitArray(boolStream.ToArray());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
internal enum BoolMap : byte
|
||||
{
|
||||
False_0 = 0b00000010,
|
||||
True_0 = 0b00000001,
|
||||
None_0 = 0b00000011,
|
||||
False_1 = 0b00001000,
|
||||
True_1= 0b00000100,
|
||||
None_1 = 0b00001100,
|
||||
False_2 = 0b00100000,
|
||||
True_2 = 0b00010000,
|
||||
None_2 = 0b00110000,
|
||||
False_3 = 0b10000000,
|
||||
True_3 = 0b01000000,
|
||||
None_3 = 0b11000000,
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Data
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// A class contains a sets of methods to serialize several types
|
||||
/// </summary>
|
||||
public static partial class Serializer
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Data
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// A class contains a sets of methods to serialize several types
|
||||
/// </summary>
|
||||
public static partial class Serializer
|
||||
{
|
||||
|
||||
/**/
|
||||
public static byte[] Serialize(Dictionary<byte, BitArray> table)
|
||||
{
|
||||
using (var stream = new MemoryStream())
|
||||
{
|
||||
foreach (var pair in table)
|
||||
{
|
||||
stream.WriteByte(pair.Key);
|
||||
|
||||
byte[] keyCode = Serialize( pair.Value);
|
||||
stream.WriteByte((byte)keyCode.Length);
|
||||
|
||||
stream.Write(keyCode, 0, keyCode.Length);
|
||||
}
|
||||
return stream.ToArray();
|
||||
}
|
||||
}
|
||||
/**/
|
||||
|
||||
public static void Deserialize(byte[] data, out Dictionary<byte, BitArray> dict)
|
||||
{
|
||||
dict = new Dictionary<byte, BitArray>();
|
||||
int stat = 0; byte key = 0;
|
||||
byte[] raw = new byte[0];
|
||||
foreach (var b in data)
|
||||
{
|
||||
switch (stat)
|
||||
{
|
||||
case 0: //getting key
|
||||
if (raw.Length != 0)
|
||||
{
|
||||
BitArray bits;
|
||||
Deserialize(raw, out bits);
|
||||
dict.Add(key, bits);
|
||||
}
|
||||
key = b;
|
||||
stat -= 1;
|
||||
break;
|
||||
case -1: //getting length
|
||||
raw = new byte[b];
|
||||
stat = b;
|
||||
break;
|
||||
default:
|
||||
raw[raw.Length - stat] = b;
|
||||
stat--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.1</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||
<LangVersion>preview</LangVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
|
||||
@@ -0,0 +1,23 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// 此代码由工具生成。
|
||||
// 运行时版本:4.0.30319.42000
|
||||
//
|
||||
// 对此文件的更改可能会导致不正确的行为,并且如果
|
||||
// 重新生成代码,这些更改将会丢失。
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharpData")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+efeb4ba05892154579515936d827ba856937ec40")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("StgSharpData")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("StgSharpData")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
// 由 MSBuild WriteCodeFragment 类生成。
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpData\bin\Debug\netstandard2.1\StgSharpData.deps.json
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpData\bin\Debug\netstandard2.1\StgSharpData.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpData\bin\Debug\netstandard2.1\StgSharpData.pdb
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpData\obj\Debug\netstandard2.1\StgSharpData.GeneratedMSBuildEditorConfig.editorconfig
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpData\obj\Debug\netstandard2.1\StgSharpData.AssemblyInfoInputs.cache
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpData\obj\Debug\netstandard2.1\StgSharpData.AssemblyInfo.cs
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpData\obj\Debug\netstandard2.1\StgSharpData.csproj.CoreCompileInputs.cache
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpData\obj\Debug\netstandard2.1\StgSharpData.sourcelink.json
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpData\obj\Debug\netstandard2.1\StgSharpData.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpData\obj\Debug\netstandard2.1\StgSharpData.pdb
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpData\bin\Debug\netstandard2.1\StgSharpData.deps.json
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpData\bin\Debug\netstandard2.1\StgSharpData.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpData\bin\Debug\netstandard2.1\StgSharpData.pdb
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpData\obj\Debug\netstandard2.1\StgSharpData.GeneratedMSBuildEditorConfig.editorconfig
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpData\obj\Debug\netstandard2.1\StgSharpData.AssemblyInfoInputs.cache
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpData\obj\Debug\netstandard2.1\StgSharpData.AssemblyInfo.cs
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpData\obj\Debug\netstandard2.1\StgSharpData.csproj.CoreCompileInputs.cache
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpData\obj\Debug\netstandard2.1\StgSharpData.sourcelink.json
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpData\obj\Debug\netstandard2.1\StgSharpData.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpData\obj\Debug\netstandard2.1\StgSharpData.pdb
|
||||
@@ -0,0 +1,37 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.9.34714.143
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StgSharpDataEncoder", "StgSharpDataEncoder\StgSharpDataEncoder.csproj", "{F89AE661-900E-40C1-9A18-930BE72754A0}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StgSharpData", "StgSharpData\StgSharpData.csproj", "{B33F35F1-0A92-4D72-B334-FE0565F64BF7}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SSD_Test", "SSD_Test\SSD_Test.csproj", "{E8A7C475-2369-4673-B299-9BFDE38B950D}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{F89AE661-900E-40C1-9A18-930BE72754A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{F89AE661-900E-40C1-9A18-930BE72754A0}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{F89AE661-900E-40C1-9A18-930BE72754A0}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{F89AE661-900E-40C1-9A18-930BE72754A0}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{B33F35F1-0A92-4D72-B334-FE0565F64BF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{B33F35F1-0A92-4D72-B334-FE0565F64BF7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{B33F35F1-0A92-4D72-B334-FE0565F64BF7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{B33F35F1-0A92-4D72-B334-FE0565F64BF7}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{E8A7C475-2369-4673-B299-9BFDE38B950D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{E8A7C475-2369-4673-B299-9BFDE38B950D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{E8A7C475-2369-4673-B299-9BFDE38B950D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E8A7C475-2369-4673-B299-9BFDE38B950D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {810253B6-B7DF-41BF-B1DB-F2B55AD72F88}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -0,0 +1,80 @@
|
||||
using StgSharp.Data;
|
||||
using StgSharp.Data.FileIO;
|
||||
|
||||
using StgSharpData;
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharpDataEncoder
|
||||
{
|
||||
internal class Program
|
||||
{
|
||||
static unsafe void Main(string[] args)
|
||||
{
|
||||
string test =
|
||||
"aaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbsddfdsfsdfdsfsdfsdfsdfsdfsdfdsfsdfdsfsdfsdfsdfsdfsfsdfsdfccccccccccccccccccccccccc";
|
||||
|
||||
|
||||
|
||||
byte[] array = CodeSeparator.SeparateCode<byte>(
|
||||
Encoding.UTF8.GetBytes(test));
|
||||
List<(byte, ulong)> list = CodeSeparator.CountCodeFrequency(array);
|
||||
foreach (var i in list)
|
||||
{
|
||||
Console.WriteLine($"{i.Item1}\t{i.Item2}");
|
||||
}
|
||||
|
||||
Console.WriteLine();
|
||||
Console.WriteLine();
|
||||
|
||||
HuffmanTree<byte> tree = HuffmanTree<byte>.BuildHuffmanTree(list);
|
||||
foreach (var i in tree.LeafList)
|
||||
{
|
||||
Console.WriteLine($"{i.Value}\t{i.frequency}\t" +
|
||||
$"{(i.Left == null ? 0 : i.Left.frequency)}\t" +
|
||||
$"{(i.Right == null ? 0 : i.Right.frequency)}");
|
||||
}
|
||||
|
||||
Console.WriteLine();
|
||||
Console.WriteLine();
|
||||
|
||||
Dictionary<byte, HuffmanKey<byte>> encodeDictionary
|
||||
= tree.BuildHuffmanDictionary();
|
||||
|
||||
Console.WriteLine();
|
||||
Console.WriteLine();
|
||||
foreach (var item in encodeDictionary)
|
||||
{
|
||||
Console.WriteLine(
|
||||
$"{item.Key}\t" +
|
||||
$"{item.Value}"
|
||||
);
|
||||
}
|
||||
Encode.Freeze(encodeDictionary);
|
||||
|
||||
EncodeStream encodeStream = new EncodeStream();
|
||||
foreach (var item in array)
|
||||
{
|
||||
var bits = encodeDictionary[item];
|
||||
encodeStream.WriteBits(bits);
|
||||
}
|
||||
Console.WriteLine();
|
||||
Console.WriteLine();
|
||||
foreach (var item in encodeStream.EncodeData)
|
||||
{
|
||||
Console.Write($"{item}\t");
|
||||
}
|
||||
Console.WriteLine();
|
||||
Console.WriteLine();
|
||||
Console.WriteLine($"{array.Length}\t{encodeStream.Length}");
|
||||
|
||||
SSDraw testRaw = new SSDraw("test");
|
||||
testRaw.WriteRaw(encodeStream.EncodeData.ToArray());
|
||||
testRaw.CreateRawFile("",true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\StgSharpData\StgSharpData.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]
|
||||
@@ -0,0 +1,23 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// 此代码由工具生成。
|
||||
// 运行时版本:4.0.30319.42000
|
||||
//
|
||||
// 对此文件的更改可能会导致不正确的行为,并且如果
|
||||
// 重新生成代码,这些更改将会丢失。
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharpDataEncoder")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+efeb4ba05892154579515936d827ba856937ec40")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("StgSharpDataEncoder")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("StgSharpDataEncoder")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
// 由 MSBuild WriteCodeFragment 类生成。
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
// <auto-generated/>
|
||||
global using global::System;
|
||||
global using global::System.Collections.Generic;
|
||||
global using global::System.IO;
|
||||
global using global::System.Linq;
|
||||
global using global::System.Net.Http;
|
||||
global using global::System.Threading;
|
||||
global using global::System.Threading.Tasks;
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\bin\Debug\net8.0\StgSharpDataEncoder.exe
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\bin\Debug\net8.0\StgSharpDataEncoder.deps.json
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\bin\Debug\net8.0\StgSharpDataEncoder.runtimeconfig.json
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\bin\Debug\net8.0\StgSharpDataEncoder.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\bin\Debug\net8.0\StgSharpDataEncoder.pdb
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\bin\Debug\net8.0\StgSharpData.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\bin\Debug\net8.0\StgSharpData.pdb
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.csproj.AssemblyReference.cache
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.GeneratedMSBuildEditorConfig.editorconfig
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.AssemblyInfoInputs.cache
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.AssemblyInfo.cs
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.csproj.CoreCompileInputs.cache
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.sourcelink.json
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\obj\Debug\net8.0\StgSharp.F2927A3D.Up2Date
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\obj\Debug\net8.0\refint\StgSharpDataEncoder.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.pdb
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.genruntimeconfig.cache
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\obj\Debug\net8.0\ref\StgSharpDataEncoder.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\bin\Debug\net8.0\StgSharpDataEncoder.exe
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\bin\Debug\net8.0\StgSharpDataEncoder.deps.json
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\bin\Debug\net8.0\StgSharpDataEncoder.runtimeconfig.json
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\bin\Debug\net8.0\StgSharpDataEncoder.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\bin\Debug\net8.0\StgSharpDataEncoder.pdb
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\bin\Debug\net8.0\StgSharpData.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\bin\Debug\net8.0\StgSharpData.pdb
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.csproj.AssemblyReference.cache
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.GeneratedMSBuildEditorConfig.editorconfig
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.AssemblyInfoInputs.cache
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.AssemblyInfo.cs
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.csproj.CoreCompileInputs.cache
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.sourcelink.json
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\obj\Debug\net8.0\StgSharp.F2927A3D.Up2Date
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\obj\Debug\net8.0\refint\StgSharpDataEncoder.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.pdb
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.genruntimeconfig.cache
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\obj\Debug\net8.0\ref\StgSharpDataEncoder.dll
|
||||
Reference in New Issue
Block a user