diff --git a/CCD_Cloud_Sync.ffs_batch b/CCD_Cloud_Sync.ffs_batch
new file mode 100644
index 00000000..97d64e45
--- /dev/null
+++ b/CCD_Cloud_Sync.ffs_batch
@@ -0,0 +1,45 @@
+
+
+
+
+ Content
+ Exclude
+
+
+
+
+ Versioning
+ C:\Users\Nitlo\OneDrive - MSFT\CCD_Project_File\0-0\ProjectBackupHistory
+
+
+
+ - *
+
+
+ - \System Volume Information\
+ - \$Recycle.Bin\
+ - \RECYCLE?\
+ - *\thumbs.db
+ - *\.git
+
+ 0
+ 0
+ 0
+
+
+
+ D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile
+ C:\Users\Nitlo\OneDrive - MSFT\CCD_Project_File\0-0\ProjectBackup
+
+
+
+
+ C:\Users\Nitlo\OneDrive - MSFT\CCD_Project_File\0-0\ProjectBackupLog
+
+ Action
+
+
+ Show
+ None
+
+
diff --git a/CCD_Sync.ffs_batch b/CCD_Sync.ffs_batch
index 07a93c4f..6bde7dff 100644
--- a/CCD_Sync.ffs_batch
+++ b/CCD_Sync.ffs_batch
@@ -1,13 +1,13 @@
-
+
+
Content
Exclude
- Update
- false
+
Versioning
A:\荷城工业\研究项目\1-旗舰级\东方同人TH2020\历史版本
@@ -21,9 +21,9 @@
- \RECYCLE?\
- *\thumbs.db
- 0
0
0
+ 0
@@ -35,6 +35,7 @@
A:\荷城工业\研究项目\1-旗舰级\东方同人TH2020\历史版本\同步日志
+ Action
Show
diff --git a/公文/文件确认单.pdf b/公文/文件确认单.pdf
new file mode 100644
index 00000000..b46cc618
Binary files /dev/null and b/公文/文件确认单.pdf differ
diff --git a/公文/文件确认单.pub b/公文/文件确认单.pub
index d31d5bb2..c6a0d6f5 100644
Binary files a/公文/文件确认单.pub and b/公文/文件确认单.pub differ
diff --git a/图像/测试素材/参考人物立绘600x1200.png b/图像/测试素材/参考人物立绘600x1200.png
new file mode 100644
index 00000000..c5d8e653
Binary files /dev/null and b/图像/测试素材/参考人物立绘600x1200.png differ
diff --git a/图像/测试素材/参考人物立绘600x1200.psd b/图像/测试素材/参考人物立绘600x1200.psd
new file mode 100644
index 00000000..73e241bf
Binary files /dev/null and b/图像/测试素材/参考人物立绘600x1200.psd differ
diff --git a/图像/测试素材/参考背景1440x1080.png b/图像/测试素材/参考背景1440x1080.png
new file mode 100644
index 00000000..ba5d7c5a
Binary files /dev/null and b/图像/测试素材/参考背景1440x1080.png differ
diff --git a/图像/测试素材/参考背景1440x1080.psd b/图像/测试素材/参考背景1440x1080.psd
new file mode 100644
index 00000000..245da95e
Binary files /dev/null and b/图像/测试素材/参考背景1440x1080.psd differ
diff --git a/图像/测试素材/字符显示测试图形.png b/图像/测试素材/字符显示测试图形.png
new file mode 100644
index 00000000..33f03267
Binary files /dev/null and b/图像/测试素材/字符显示测试图形.png differ
diff --git a/图像/测试素材/字符显示测试图形.psd b/图像/测试素材/字符显示测试图形.psd
new file mode 100644
index 00000000..38baeca6
Binary files /dev/null and b/图像/测试素材/字符显示测试图形.psd differ
diff --git a/图像/测试素材/无方向标记点.png b/图像/测试素材/无方向标记点.png
new file mode 100644
index 00000000..b4aff56a
Binary files /dev/null and b/图像/测试素材/无方向标记点.png differ
diff --git a/图像/测试素材/无方向标记点.psd b/图像/测试素材/无方向标记点.psd
new file mode 100644
index 00000000..fdfb9eff
Binary files /dev/null and b/图像/测试素材/无方向标记点.psd differ
diff --git a/图像/测试素材/有方向标记点.png b/图像/测试素材/有方向标记点.png
new file mode 100644
index 00000000..94c9cffd
Binary files /dev/null and b/图像/测试素材/有方向标记点.png differ
diff --git a/图像/测试素材/有方向标记点.psd b/图像/测试素材/有方向标记点.psd
new file mode 100644
index 00000000..9e8a2739
Binary files /dev/null and b/图像/测试素材/有方向标记点.psd differ
diff --git a/声音/音乐委托/Staff/2. Paradise ~ Deep Mountain (ZUN).mid b/声音/音乐委托/Staff/2. Paradise ~ Deep Mountain (ZUN).mid
new file mode 100644
index 00000000..44365e40
Binary files /dev/null and b/声音/音乐委托/Staff/2. Paradise ~ Deep Mountain (ZUN).mid differ
diff --git a/声音/音乐委托/Staff/Crimson Tower ~ Eastern Dream... (ZUN).mid b/声音/音乐委托/Staff/Crimson Tower ~ Eastern Dream... (ZUN).mid
new file mode 100644
index 00000000..cb255b9e
Binary files /dev/null and b/声音/音乐委托/Staff/Crimson Tower ~ Eastern Dream... (ZUN).mid differ
diff --git a/声音/音乐委托/Staff/Staff.zip b/声音/音乐委托/Staff/Staff.zip
new file mode 100644
index 00000000..9faebc7f
Binary files /dev/null and b/声音/音乐委托/Staff/Staff.zip differ
diff --git a/声音/音乐委托/Staff/社团荷城空间向“千叶明里”发出《东方秘闻章》音乐制作Staff曲委托技术说明书.pdf b/声音/音乐委托/Staff/社团荷城空间向“千叶明里”发出《东方秘闻章》音乐制作Staff曲委托技术说明书.pdf
new file mode 100644
index 00000000..27fbdd49
Binary files /dev/null and b/声音/音乐委托/Staff/社团荷城空间向“千叶明里”发出《东方秘闻章》音乐制作Staff曲委托技术说明书.pdf differ
diff --git a/声音/音乐委托/标题/Project1-Thema.wav b/声音/音乐委托/标题/Project1-Thema.wav
new file mode 100644
index 00000000..ed5aea7f
Binary files /dev/null and b/声音/音乐委托/标题/Project1-Thema.wav differ
diff --git a/声音/音乐委托/标题/Romantic Children (TouhouMIDICreator).mid b/声音/音乐委托/标题/Romantic Children (TouhouMIDICreator).mid
new file mode 100644
index 00000000..c714134f
Binary files /dev/null and b/声音/音乐委托/标题/Romantic Children (TouhouMIDICreator).mid differ
diff --git a/声音/音乐委托/标题/东方秘闻章角色设定.docx b/声音/音乐委托/标题/东方秘闻章角色设定.docx
new file mode 100644
index 00000000..ff085112
Binary files /dev/null and b/声音/音乐委托/标题/东方秘闻章角色设定.docx differ
diff --git a/声音/音乐委托/标题/标题.zip b/声音/音乐委托/标题/标题.zip
new file mode 100644
index 00000000..ab336f6b
Binary files /dev/null and b/声音/音乐委托/标题/标题.zip differ
diff --git a/声音/音乐委托/标题/社团荷城空间向“千叶明里”发出《东方秘闻章》音乐制作委托技术说明书.pdf b/声音/音乐委托/标题/社团荷城空间向“千叶明里”发出《东方秘闻章》音乐制作委托技术说明书.pdf
new file mode 100644
index 00000000..cca0cb66
Binary files /dev/null and b/声音/音乐委托/标题/社团荷城空间向“千叶明里”发出《东方秘闻章》音乐制作委托技术说明书.pdf differ
diff --git a/源代码/BenchMark/obj/Debug/net6.0/BenchMark.AssemblyInfoInputs.cache b/源代码/BenchMark/obj/Debug/net6.0/BenchMark.AssemblyInfoInputs.cache
index 24b1b192..39025a5f 100644
--- a/源代码/BenchMark/obj/Debug/net6.0/BenchMark.AssemblyInfoInputs.cache
+++ b/源代码/BenchMark/obj/Debug/net6.0/BenchMark.AssemblyInfoInputs.cache
@@ -1 +1 @@
-366f5c2b7d0e718099c3e85a9ebf2cbf2a21cf7a6057af17e10cdb8df21f1f72
+4e2f772e3efb870291921325d240f96f8f7127093b5e0e65dca2f43393dcf94f
diff --git a/源代码/BenchMark/obj/project.nuget.cache b/源代码/BenchMark/obj/project.nuget.cache
index 94c76221..808228e2 100644
--- a/源代码/BenchMark/obj/project.nuget.cache
+++ b/源代码/BenchMark/obj/project.nuget.cache
@@ -1,6 +1,6 @@
{
"version": 2,
- "dgSpecHash": "4123sdokvi3zmnXMS9g0nQffUhtM78Dpcc2I+ILecRU3r3EDyKfyL6vNAxyfnuMXMHX5JuQ/V4BucHdj6AlkOA==",
+ "dgSpecHash": "pN+0KRm1EuqKniTJ321gPZHAydRCvNP+dkmkVcAMOjV5Not5KW22V73A7HB12P5Zye2pfbDx7qebBQIlhZmCqg==",
"success": true,
"projectFilePath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\源代码\\BenchMark\\BenchMark.csproj",
"expectedPackageFiles": [
diff --git a/源代码/OEM/bin/Debug/net8.0/OEM.deps.json b/源代码/OEM/bin/Debug/net8.0/OEM.deps.json
deleted file mode 100644
index d83d4fbd..00000000
--- a/源代码/OEM/bin/Debug/net8.0/OEM.deps.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "runtimeTarget": {
- "name": ".NETCoreApp,Version=v8.0",
- "signature": ""
- },
- "compilationOptions": {},
- "targets": {
- ".NETCoreApp,Version=v8.0": {
- "OEM/1.0.0": {
- "dependencies": {
- "Microsoft.DotNet.ILCompiler": "8.0.3",
- "Microsoft.NET.ILLink.Tasks": "8.0.3",
- "StgSharp": "1.0.0"
- },
- "runtime": {
- "OEM.dll": {}
- }
- },
- "Microsoft.CSharp/4.7.0": {},
- "Microsoft.DotNet.ILCompiler/8.0.3": {},
- "Microsoft.NET.ILLink.Tasks/8.0.3": {},
- "StgSharp/1.0.0": {
- "dependencies": {
- "Microsoft.CSharp": "4.7.0"
- },
- "runtime": {
- "StgSharp.dll": {}
- }
- }
- }
- },
- "libraries": {
- "OEM/1.0.0": {
- "type": "project",
- "serviceable": false,
- "sha512": ""
- },
- "Microsoft.CSharp/4.7.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==",
- "path": "microsoft.csharp/4.7.0",
- "hashPath": "microsoft.csharp.4.7.0.nupkg.sha512"
- },
- "Microsoft.DotNet.ILCompiler/8.0.3": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-LGNORlVTRa2FDy3OcP3Xu1ZSJW4tz2ATO3WrHUwHg7kxbR9HChezgJ51CwZJQt8+Yp6acp32FDC/FTPdFDOumQ==",
- "path": "microsoft.dotnet.ilcompiler/8.0.3",
- "hashPath": "microsoft.dotnet.ilcompiler.8.0.3.nupkg.sha512"
- },
- "Microsoft.NET.ILLink.Tasks/8.0.3": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-0kwNg0LBIvVTx9A2mo9Mnw4wLGtaeQgjSz5P13bOOwdWPPLe9HzI+XTkwiMhS7iQCM6X4LAbFR76xScaMw0MrA==",
- "path": "microsoft.net.illink.tasks/8.0.3",
- "hashPath": "microsoft.net.illink.tasks.8.0.3.nupkg.sha512"
- },
- "StgSharp/1.0.0": {
- "type": "project",
- "serviceable": false,
- "sha512": ""
- }
- }
-}
\ No newline at end of file
diff --git a/源代码/OEM/bin/Debug/net8.0/OEM.runtimeconfig.json b/源代码/OEM/bin/Debug/net8.0/OEM.runtimeconfig.json
deleted file mode 100644
index e18f4ac3..00000000
--- a/源代码/OEM/bin/Debug/net8.0/OEM.runtimeconfig.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "runtimeOptions": {
- "tfm": "net8.0",
- "framework": {
- "name": "Microsoft.NETCore.App",
- "version": "8.0.0"
- },
- "configProperties": {
- "Microsoft.Extensions.DependencyInjection.VerifyOpenGenericServiceTrimmability": true,
- "System.ComponentModel.TypeConverter.EnableUnsafeBinaryFormatterInDesigntimeLicenseContextSerialization": false,
- "System.Diagnostics.Tracing.EventSource.IsSupported": false,
- "System.Globalization.Invariant": true,
- "System.Globalization.PredefinedCulturesOnly": true,
- "System.Resources.ResourceManager.AllowCustomResourceTypes": false,
- "System.Runtime.CompilerServices.RuntimeFeature.IsDynamicCodeSupported": false,
- "System.Runtime.InteropServices.BuiltInComInterop.IsSupported": false,
- "System.Runtime.InteropServices.EnableConsumingManagedCodeFromNativeHosting": false,
- "System.Runtime.InteropServices.EnableCppCLIHostActivation": false,
- "System.Runtime.InteropServices.Marshalling.EnableGeneratedComInterfaceComImportInterop": false,
- "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false,
- "System.StartupHookProvider.IsSupported": false,
- "System.Text.Encoding.EnableUnsafeUTF7Encoding": false,
- "System.Text.Json.JsonSerializer.IsReflectionEnabledByDefault": false,
- "System.Threading.Thread.EnableAutoreleasePool": false,
- "System.Linq.Expressions.CanEmitObjectArrayDelegate": false
- }
- }
-}
\ No newline at end of file
diff --git a/源代码/OEM/obj/Debug/net8.0/OEM.AssemblyInfoInputs.cache b/源代码/OEM/obj/Debug/net8.0/OEM.AssemblyInfoInputs.cache
new file mode 100644
index 00000000..d7b4b302
--- /dev/null
+++ b/源代码/OEM/obj/Debug/net8.0/OEM.AssemblyInfoInputs.cache
@@ -0,0 +1 @@
+640e9f98257352e84ae37176833512dc5627a4b2d18e9b9603dac0bdaa9c70df
diff --git a/源代码/OEM/obj/Debug/net8.0/OEM.GeneratedMSBuildEditorConfig.editorconfig b/源代码/OEM/obj/Debug/net8.0/OEM.GeneratedMSBuildEditorConfig.editorconfig
new file mode 100644
index 00000000..1c39a368
--- /dev/null
+++ b/源代码/OEM/obj/Debug/net8.0/OEM.GeneratedMSBuildEditorConfig.editorconfig
@@ -0,0 +1,17 @@
+is_global = true
+build_property.EnableAotAnalyzer = true
+build_property.EnableSingleFileAnalyzer = true
+build_property.EnableTrimAnalyzer = true
+build_property.IncludeAllContentForSelfExtract =
+build_property.TargetFramework = net8.0
+build_property.TargetPlatformMinVersion =
+build_property.UsingMicrosoftNETSdkWeb =
+build_property.ProjectTypeGuids =
+build_property.InvariantGlobalization = true
+build_property.PlatformNeutralAssembly =
+build_property.EnforceExtendedAnalyzerRules =
+build_property._SupportedPlatformList = Linux,macOS,Windows
+build_property.RootNamespace = OEM
+build_property.ProjectDir = D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\OEM\
+build_property.EnableComHosting =
+build_property.EnableGeneratedComInterfaceComImportInterop = false
diff --git a/源代码/OEM/obj/Debug/net8.0/OEM.assets.cache b/源代码/OEM/obj/Debug/net8.0/OEM.assets.cache
new file mode 100644
index 00000000..c6bb7ee1
Binary files /dev/null and b/源代码/OEM/obj/Debug/net8.0/OEM.assets.cache differ
diff --git a/源代码/OEM/obj/Debug/net8.0/OEM.csproj.AssemblyReference.cache b/源代码/OEM/obj/Debug/net8.0/OEM.csproj.AssemblyReference.cache
new file mode 100644
index 00000000..eb994780
Binary files /dev/null and b/源代码/OEM/obj/Debug/net8.0/OEM.csproj.AssemblyReference.cache differ
diff --git a/源代码/OEM/obj/Debug/net8.0/OEM.sourcelink.json b/源代码/OEM/obj/Debug/net8.0/OEM.sourcelink.json
deleted file mode 100644
index 523161d1..00000000
--- a/源代码/OEM/obj/Debug/net8.0/OEM.sourcelink.json
+++ /dev/null
@@ -1 +0,0 @@
-{"documents":{"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\*":"https://raw.githubusercontent.com/Nitload-NSI/CCD_Github/0cd01ed9ddc7e151899218121d69a29650b39b34/*"}}
\ No newline at end of file
diff --git a/源代码/OEM/obj/OEM.csproj.nuget.g.props b/源代码/OEM/obj/OEM.csproj.nuget.g.props
new file mode 100644
index 00000000..ee6cc4dd
--- /dev/null
+++ b/源代码/OEM/obj/OEM.csproj.nuget.g.props
@@ -0,0 +1,24 @@
+
+
+
+ True
+ NuGet
+ $(MSBuildThisFileDirectory)project.assets.json
+ $(UserProfile)\.nuget\packages\
+ C:\Users\Nitlo\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages
+ PackageReference
+ 6.9.2
+
+
+
+
+
+
+
+
+
+
+ C:\Users\Nitlo\.nuget\packages\microsoft.net.illink.tasks\8.0.5
+ C:\Users\Nitlo\.nuget\packages\microsoft.dotnet.ilcompiler\8.0.5
+
+
\ No newline at end of file
diff --git a/源代码/OEM/obj/OEM.csproj.nuget.g.targets b/源代码/OEM/obj/OEM.csproj.nuget.g.targets
new file mode 100644
index 00000000..3dc06ef3
--- /dev/null
+++ b/源代码/OEM/obj/OEM.csproj.nuget.g.targets
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/源代码/OEM/obj/project.nuget.cache b/源代码/OEM/obj/project.nuget.cache
new file mode 100644
index 00000000..ff401522
--- /dev/null
+++ b/源代码/OEM/obj/project.nuget.cache
@@ -0,0 +1,13 @@
+{
+ "version": 2,
+ "dgSpecHash": "kxXQBFhQdutFjT2gId8hH7v60+roPUePVqxb1y4tNVZireLqsssXpCmL0m//w3iotiwfRwon5DxMxbP2oSqgRA==",
+ "success": true,
+ "projectFilePath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\源代码\\OEM\\OEM.csproj",
+ "expectedPackageFiles": [
+ "C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.csharp\\4.7.0\\microsoft.csharp.4.7.0.nupkg.sha512",
+ "C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.dotnet.ilcompiler\\8.0.5\\microsoft.dotnet.ilcompiler.8.0.5.nupkg.sha512",
+ "C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.net.illink.tasks\\8.0.5\\microsoft.net.illink.tasks.8.0.5.nupkg.sha512",
+ "C:\\Users\\Nitlo\\.nuget\\packages\\runtime.win-x64.microsoft.dotnet.ilcompiler\\8.0.5\\runtime.win-x64.microsoft.dotnet.ilcompiler.8.0.5.nupkg.sha512"
+ ],
+ "logs": []
+}
\ No newline at end of file
diff --git a/源代码/Output/x64/Debug/net6.0/SS_errorlog.log b/源代码/Output/x64/Debug/net6.0/SS_errorlog.log
index a2d84d1e..2ddf3da8 100644
--- a/源代码/Output/x64/Debug/net6.0/SS_errorlog.log
+++ b/源代码/Output/x64/Debug/net6.0/SS_errorlog.log
@@ -2,9 +2,9 @@
-Info @ 2024-04-13T02:52:48.7521438+08:00
-Program start
-Info @ 2024-04-13T02:52:48.8697616+08:00
+Info 2024-06-10T03:51:45.3844560+08:00
+Program StgSharpDebug, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Started.
+Info 2024-06-10T03:51:45.5301845+08:00
Find core OpenGL version.
Successfully load all OpenGL 1.0 APIs
Successfully load all OpenGL 1.1 APIs
@@ -25,15 +25,15 @@ Successfully load all OpenGL 4.3 APIs
Successfully load all OpenGL 4.4 APIs
Successfully load all OpenGL 4.5 APIs
Successfully load all OpenGL 4.6 APIs
-Info @ 2024-04-13T02:52:48.8788256+08:00
+Info 2024-06-10T03:51:45.5394697+08:00
No supported OpenGL extensions are found.
-Info @ 2024-04-13T02:52:59.2185185+08:00
-Program start
-Info @ 2024-04-13T02:52:59.3330778+08:00
+Info 2024-06-10T03:53:05.2638737+08:00
+Program StgSharpDebug, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Started.
+Info 2024-06-10T03:53:05.3986813+08:00
Find core OpenGL version.
Successfully load all OpenGL 1.0 APIs
Successfully load all OpenGL 1.1 APIs
@@ -54,15 +54,15 @@ Successfully load all OpenGL 4.3 APIs
Successfully load all OpenGL 4.4 APIs
Successfully load all OpenGL 4.5 APIs
Successfully load all OpenGL 4.6 APIs
-Info @ 2024-04-13T02:52:59.3425036+08:00
+Info 2024-06-10T03:53:05.4074243+08:00
No supported OpenGL extensions are found.
-Info @ 2024-04-13T02:54:08.7419490+08:00
-Program start
-Info @ 2024-04-13T02:54:08.8526510+08:00
+Info 2024-06-10T03:53:20.0978686+08:00
+Program StgSharpDebug, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Started.
+Info 2024-06-10T03:53:20.2405718+08:00
Find core OpenGL version.
Successfully load all OpenGL 1.0 APIs
Successfully load all OpenGL 1.1 APIs
@@ -83,15 +83,15 @@ Successfully load all OpenGL 4.3 APIs
Successfully load all OpenGL 4.4 APIs
Successfully load all OpenGL 4.5 APIs
Successfully load all OpenGL 4.6 APIs
-Info @ 2024-04-13T02:54:08.8635945+08:00
+Info 2024-06-10T03:53:20.2486427+08:00
No supported OpenGL extensions are found.
-Info @ 2024-04-13T02:55:07.9130422+08:00
-Program start
-Info @ 2024-04-13T02:55:08.0192427+08:00
+Info 2024-06-10T03:58:44.9904084+08:00
+Program StgSharpDebug, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Started.
+Info 2024-06-10T03:59:35.5661006+08:00
Find core OpenGL version.
Successfully load all OpenGL 1.0 APIs
Successfully load all OpenGL 1.1 APIs
@@ -112,15 +112,15 @@ Successfully load all OpenGL 4.3 APIs
Successfully load all OpenGL 4.4 APIs
Successfully load all OpenGL 4.5 APIs
Successfully load all OpenGL 4.6 APIs
-Info @ 2024-04-13T02:55:08.0278843+08:00
+Info 2024-06-10T03:59:35.7041981+08:00
No supported OpenGL extensions are found.
-Info @ 2024-04-13T02:55:53.1402835+08:00
-Program start
-Info @ 2024-04-13T02:55:53.2452824+08:00
+Info 2024-06-10T04:02:09.9071531+08:00
+Program StgSharpDebug, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Started.
+Info 2024-06-10T04:02:10.7951542+08:00
Find core OpenGL version.
Successfully load all OpenGL 1.0 APIs
Successfully load all OpenGL 1.1 APIs
@@ -141,15 +141,15 @@ Successfully load all OpenGL 4.3 APIs
Successfully load all OpenGL 4.4 APIs
Successfully load all OpenGL 4.5 APIs
Successfully load all OpenGL 4.6 APIs
-Info @ 2024-04-13T02:55:53.2553702+08:00
+Info 2024-06-10T04:02:10.8047643+08:00
No supported OpenGL extensions are found.
-Info @ 2024-04-13T02:56:12.6623320+08:00
-Program start
-Info @ 2024-04-13T02:56:13.2334858+08:00
+Info 2024-06-10T04:05:20.9151190+08:00
+Program StgSharpDebug, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Started.
+Info 2024-06-10T04:05:21.0924552+08:00
Find core OpenGL version.
Successfully load all OpenGL 1.0 APIs
Successfully load all OpenGL 1.1 APIs
@@ -170,15 +170,15 @@ Successfully load all OpenGL 4.3 APIs
Successfully load all OpenGL 4.4 APIs
Successfully load all OpenGL 4.5 APIs
Successfully load all OpenGL 4.6 APIs
-Info @ 2024-04-13T02:56:13.2467090+08:00
+Info 2024-06-10T04:05:21.1020065+08:00
No supported OpenGL extensions are found.
-Info @ 2024-04-13T02:56:39.7380286+08:00
-Program start
-Info @ 2024-04-13T02:56:40.3303218+08:00
+Info 2024-06-10T04:05:53.0098837+08:00
+Program StgSharpDebug, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Started.
+Info 2024-06-10T04:05:53.1706206+08:00
Find core OpenGL version.
Successfully load all OpenGL 1.0 APIs
Successfully load all OpenGL 1.1 APIs
@@ -199,15 +199,15 @@ Successfully load all OpenGL 4.3 APIs
Successfully load all OpenGL 4.4 APIs
Successfully load all OpenGL 4.5 APIs
Successfully load all OpenGL 4.6 APIs
-Info @ 2024-04-13T02:56:40.3413755+08:00
+Info 2024-06-10T04:05:53.1809108+08:00
No supported OpenGL extensions are found.
-Info @ 2024-04-13T02:58:49.7721882+08:00
-Program start
-Info @ 2024-04-13T02:58:50.3308199+08:00
+Info 2024-06-10T04:22:18.9955029+08:00
+Program StgSharpDebug, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Started.
+Info 2024-06-10T04:22:19.1161027+08:00
Find core OpenGL version.
Successfully load all OpenGL 1.0 APIs
Successfully load all OpenGL 1.1 APIs
@@ -228,324 +228,5 @@ Successfully load all OpenGL 4.3 APIs
Successfully load all OpenGL 4.4 APIs
Successfully load all OpenGL 4.5 APIs
Successfully load all OpenGL 4.6 APIs
-Info @ 2024-04-13T02:58:50.3449039+08:00
-No supported OpenGL extensions are found.
-
-
-
-
-Info @ 2024-04-13T03:00:24.9239677+08:00
-Program start
-Info @ 2024-04-13T03:00:25.5254989+08:00
-Find core OpenGL version.
-Successfully load all OpenGL 1.0 APIs
-Successfully load all OpenGL 1.1 APIs
-Successfully load all OpenGL 1.2 APIs
-Successfully load all OpenGL 1.3 APIs
-Successfully load all OpenGL 1.4 APIs
-Successfully load all OpenGL 1.5 APIs
-Successfully load all OpenGL 2.0 APIs
-Successfully load all OpenGL 2.1 APIs
-Successfully load all OpenGL 3.0 APIs
-Successfully load all OpenGL 3.1 APIs
-Successfully load all OpenGL 3.2 APIs
-Successfully load all OpenGL 3.3 APIs
-Successfully load all OpenGL 4.0 APIs
-Successfully load all OpenGL 4.1 APIs
-Successfully load all OpenGL 4.2 APIs
-Successfully load all OpenGL 4.3 APIs
-Successfully load all OpenGL 4.4 APIs
-Successfully load all OpenGL 4.5 APIs
-Successfully load all OpenGL 4.6 APIs
-Info @ 2024-04-13T03:00:25.5361593+08:00
-No supported OpenGL extensions are found.
-
-
-
-
-Info @ 2024-04-13T03:01:32.8809509+08:00
-Program start
-Info @ 2024-04-13T03:01:33.5108932+08:00
-Find core OpenGL version.
-Successfully load all OpenGL 1.0 APIs
-Successfully load all OpenGL 1.1 APIs
-Successfully load all OpenGL 1.2 APIs
-Successfully load all OpenGL 1.3 APIs
-Successfully load all OpenGL 1.4 APIs
-Successfully load all OpenGL 1.5 APIs
-Successfully load all OpenGL 2.0 APIs
-Successfully load all OpenGL 2.1 APIs
-Successfully load all OpenGL 3.0 APIs
-Successfully load all OpenGL 3.1 APIs
-Successfully load all OpenGL 3.2 APIs
-Successfully load all OpenGL 3.3 APIs
-Successfully load all OpenGL 4.0 APIs
-Successfully load all OpenGL 4.1 APIs
-Successfully load all OpenGL 4.2 APIs
-Successfully load all OpenGL 4.3 APIs
-Successfully load all OpenGL 4.4 APIs
-Successfully load all OpenGL 4.5 APIs
-Successfully load all OpenGL 4.6 APIs
-Info @ 2024-04-13T03:01:33.5239470+08:00
-No supported OpenGL extensions are found.
-
-
-
-
-Info @ 2024-04-13T03:02:19.8654976+08:00
-Program start
-Info @ 2024-04-13T03:02:20.4252932+08:00
-Find core OpenGL version.
-Successfully load all OpenGL 1.0 APIs
-Successfully load all OpenGL 1.1 APIs
-Successfully load all OpenGL 1.2 APIs
-Successfully load all OpenGL 1.3 APIs
-Successfully load all OpenGL 1.4 APIs
-Successfully load all OpenGL 1.5 APIs
-Successfully load all OpenGL 2.0 APIs
-Successfully load all OpenGL 2.1 APIs
-Successfully load all OpenGL 3.0 APIs
-Successfully load all OpenGL 3.1 APIs
-Successfully load all OpenGL 3.2 APIs
-Successfully load all OpenGL 3.3 APIs
-Successfully load all OpenGL 4.0 APIs
-Successfully load all OpenGL 4.1 APIs
-Successfully load all OpenGL 4.2 APIs
-Successfully load all OpenGL 4.3 APIs
-Successfully load all OpenGL 4.4 APIs
-Successfully load all OpenGL 4.5 APIs
-Successfully load all OpenGL 4.6 APIs
-Info @ 2024-04-13T03:02:20.4361538+08:00
-No supported OpenGL extensions are found.
-
-
-
-
-Info @ 2024-04-13T03:04:22.5428745+08:00
-Program start
-Info @ 2024-04-13T03:04:22.6439014+08:00
-Find core OpenGL version.
-Successfully load all OpenGL 1.0 APIs
-Successfully load all OpenGL 1.1 APIs
-Successfully load all OpenGL 1.2 APIs
-Successfully load all OpenGL 1.3 APIs
-Successfully load all OpenGL 1.4 APIs
-Successfully load all OpenGL 1.5 APIs
-Successfully load all OpenGL 2.0 APIs
-Successfully load all OpenGL 2.1 APIs
-Successfully load all OpenGL 3.0 APIs
-Successfully load all OpenGL 3.1 APIs
-Successfully load all OpenGL 3.2 APIs
-Successfully load all OpenGL 3.3 APIs
-Successfully load all OpenGL 4.0 APIs
-Successfully load all OpenGL 4.1 APIs
-Successfully load all OpenGL 4.2 APIs
-Successfully load all OpenGL 4.3 APIs
-Successfully load all OpenGL 4.4 APIs
-Successfully load all OpenGL 4.5 APIs
-Successfully load all OpenGL 4.6 APIs
-Info @ 2024-04-13T03:04:22.6525133+08:00
-No supported OpenGL extensions are found.
-
-
-
-
-Info @ 2024-04-13T03:04:44.5704728+08:00
-Program start
-Info @ 2024-04-13T03:04:44.6748419+08:00
-Find core OpenGL version.
-Successfully load all OpenGL 1.0 APIs
-Successfully load all OpenGL 1.1 APIs
-Successfully load all OpenGL 1.2 APIs
-Successfully load all OpenGL 1.3 APIs
-Successfully load all OpenGL 1.4 APIs
-Successfully load all OpenGL 1.5 APIs
-Successfully load all OpenGL 2.0 APIs
-Successfully load all OpenGL 2.1 APIs
-Successfully load all OpenGL 3.0 APIs
-Successfully load all OpenGL 3.1 APIs
-Successfully load all OpenGL 3.2 APIs
-Successfully load all OpenGL 3.3 APIs
-Successfully load all OpenGL 4.0 APIs
-Successfully load all OpenGL 4.1 APIs
-Successfully load all OpenGL 4.2 APIs
-Successfully load all OpenGL 4.3 APIs
-Successfully load all OpenGL 4.4 APIs
-Successfully load all OpenGL 4.5 APIs
-Successfully load all OpenGL 4.6 APIs
-Info @ 2024-04-13T03:04:44.6833998+08:00
-No supported OpenGL extensions are found.
-
-
-
-
-Info @ 2024-04-13T03:07:59.3402835+08:00
-Program start
-Info @ 2024-04-13T03:07:59.4471354+08:00
-Find core OpenGL version.
-Successfully load all OpenGL 1.0 APIs
-Successfully load all OpenGL 1.1 APIs
-Successfully load all OpenGL 1.2 APIs
-Successfully load all OpenGL 1.3 APIs
-Successfully load all OpenGL 1.4 APIs
-Successfully load all OpenGL 1.5 APIs
-Successfully load all OpenGL 2.0 APIs
-Successfully load all OpenGL 2.1 APIs
-Successfully load all OpenGL 3.0 APIs
-Successfully load all OpenGL 3.1 APIs
-Successfully load all OpenGL 3.2 APIs
-Successfully load all OpenGL 3.3 APIs
-Successfully load all OpenGL 4.0 APIs
-Successfully load all OpenGL 4.1 APIs
-Successfully load all OpenGL 4.2 APIs
-Successfully load all OpenGL 4.3 APIs
-Successfully load all OpenGL 4.4 APIs
-Successfully load all OpenGL 4.5 APIs
-Successfully load all OpenGL 4.6 APIs
-Info @ 2024-04-13T03:07:59.4562065+08:00
-No supported OpenGL extensions are found.
-
-
-
-
-Info @ 2024-04-13T03:09:09.4964707+08:00
-Program start
-Info @ 2024-04-13T03:09:09.6158168+08:00
-Find core OpenGL version.
-Successfully load all OpenGL 1.0 APIs
-Successfully load all OpenGL 1.1 APIs
-Successfully load all OpenGL 1.2 APIs
-Successfully load all OpenGL 1.3 APIs
-Successfully load all OpenGL 1.4 APIs
-Successfully load all OpenGL 1.5 APIs
-Successfully load all OpenGL 2.0 APIs
-Successfully load all OpenGL 2.1 APIs
-Successfully load all OpenGL 3.0 APIs
-Successfully load all OpenGL 3.1 APIs
-Successfully load all OpenGL 3.2 APIs
-Successfully load all OpenGL 3.3 APIs
-Successfully load all OpenGL 4.0 APIs
-Successfully load all OpenGL 4.1 APIs
-Successfully load all OpenGL 4.2 APIs
-Successfully load all OpenGL 4.3 APIs
-Successfully load all OpenGL 4.4 APIs
-Successfully load all OpenGL 4.5 APIs
-Successfully load all OpenGL 4.6 APIs
-Info @ 2024-04-13T03:09:09.6250462+08:00
-No supported OpenGL extensions are found.
-
-
-
-
-Info @ 2024-04-13T03:12:22.0284867+08:00
-Program start
-Info @ 2024-04-13T03:12:22.1393133+08:00
-Find core OpenGL version.
-Successfully load all OpenGL 1.0 APIs
-Successfully load all OpenGL 1.1 APIs
-Successfully load all OpenGL 1.2 APIs
-Successfully load all OpenGL 1.3 APIs
-Successfully load all OpenGL 1.4 APIs
-Successfully load all OpenGL 1.5 APIs
-Successfully load all OpenGL 2.0 APIs
-Successfully load all OpenGL 2.1 APIs
-Successfully load all OpenGL 3.0 APIs
-Successfully load all OpenGL 3.1 APIs
-Successfully load all OpenGL 3.2 APIs
-Successfully load all OpenGL 3.3 APIs
-Successfully load all OpenGL 4.0 APIs
-Successfully load all OpenGL 4.1 APIs
-Successfully load all OpenGL 4.2 APIs
-Successfully load all OpenGL 4.3 APIs
-Successfully load all OpenGL 4.4 APIs
-Successfully load all OpenGL 4.5 APIs
-Successfully load all OpenGL 4.6 APIs
-Info @ 2024-04-13T03:12:22.1482595+08:00
-No supported OpenGL extensions are found.
-
-
-
-
-Info @ 2024-04-13T03:13:14.6103713+08:00
-Program start
-Info @ 2024-04-13T03:13:14.7181688+08:00
-Find core OpenGL version.
-Successfully load all OpenGL 1.0 APIs
-Successfully load all OpenGL 1.1 APIs
-Successfully load all OpenGL 1.2 APIs
-Successfully load all OpenGL 1.3 APIs
-Successfully load all OpenGL 1.4 APIs
-Successfully load all OpenGL 1.5 APIs
-Successfully load all OpenGL 2.0 APIs
-Successfully load all OpenGL 2.1 APIs
-Successfully load all OpenGL 3.0 APIs
-Successfully load all OpenGL 3.1 APIs
-Successfully load all OpenGL 3.2 APIs
-Successfully load all OpenGL 3.3 APIs
-Successfully load all OpenGL 4.0 APIs
-Successfully load all OpenGL 4.1 APIs
-Successfully load all OpenGL 4.2 APIs
-Successfully load all OpenGL 4.3 APIs
-Successfully load all OpenGL 4.4 APIs
-Successfully load all OpenGL 4.5 APIs
-Successfully load all OpenGL 4.6 APIs
-Info @ 2024-04-13T03:13:14.7273602+08:00
-No supported OpenGL extensions are found.
-
-
-
-
-Info @ 2024-04-13T03:13:58.4941103+08:00
-Program start
-Info @ 2024-04-13T03:13:58.6021716+08:00
-Find core OpenGL version.
-Successfully load all OpenGL 1.0 APIs
-Successfully load all OpenGL 1.1 APIs
-Successfully load all OpenGL 1.2 APIs
-Successfully load all OpenGL 1.3 APIs
-Successfully load all OpenGL 1.4 APIs
-Successfully load all OpenGL 1.5 APIs
-Successfully load all OpenGL 2.0 APIs
-Successfully load all OpenGL 2.1 APIs
-Successfully load all OpenGL 3.0 APIs
-Successfully load all OpenGL 3.1 APIs
-Successfully load all OpenGL 3.2 APIs
-Successfully load all OpenGL 3.3 APIs
-Successfully load all OpenGL 4.0 APIs
-Successfully load all OpenGL 4.1 APIs
-Successfully load all OpenGL 4.2 APIs
-Successfully load all OpenGL 4.3 APIs
-Successfully load all OpenGL 4.4 APIs
-Successfully load all OpenGL 4.5 APIs
-Successfully load all OpenGL 4.6 APIs
-Info @ 2024-04-13T03:13:58.6110611+08:00
-No supported OpenGL extensions are found.
-
-
-
-
-Info @ 2024-04-13T03:15:17.8566685+08:00
-Program start
-Info @ 2024-04-13T03:15:17.9644144+08:00
-Find core OpenGL version.
-Successfully load all OpenGL 1.0 APIs
-Successfully load all OpenGL 1.1 APIs
-Successfully load all OpenGL 1.2 APIs
-Successfully load all OpenGL 1.3 APIs
-Successfully load all OpenGL 1.4 APIs
-Successfully load all OpenGL 1.5 APIs
-Successfully load all OpenGL 2.0 APIs
-Successfully load all OpenGL 2.1 APIs
-Successfully load all OpenGL 3.0 APIs
-Successfully load all OpenGL 3.1 APIs
-Successfully load all OpenGL 3.2 APIs
-Successfully load all OpenGL 3.3 APIs
-Successfully load all OpenGL 4.0 APIs
-Successfully load all OpenGL 4.1 APIs
-Successfully load all OpenGL 4.2 APIs
-Successfully load all OpenGL 4.3 APIs
-Successfully load all OpenGL 4.4 APIs
-Successfully load all OpenGL 4.5 APIs
-Successfully load all OpenGL 4.6 APIs
-Info @ 2024-04-13T03:15:17.9738674+08:00
+Info 2024-06-10T04:22:19.1243615+08:00
No supported OpenGL extensions are found.
diff --git a/源代码/Output/x64/Debug/net6.0/StgSharpC.dll b/源代码/Output/x64/Debug/net6.0/StgSharpC.dll
index ba96cd2d..7ebc661a 100644
Binary files a/源代码/Output/x64/Debug/net6.0/StgSharpC.dll and b/源代码/Output/x64/Debug/net6.0/StgSharpC.dll differ
diff --git a/源代码/Output/x64/Debug/net6.0/StgSharpDebug.dll b/源代码/Output/x64/Debug/net6.0/StgSharpDebug.dll
index c8c14000..6ea9c0f6 100644
Binary files a/源代码/Output/x64/Debug/net6.0/StgSharpDebug.dll and b/源代码/Output/x64/Debug/net6.0/StgSharpDebug.dll differ
diff --git a/源代码/Output/x64/Debug/net6.0/StgSharpDebug.exe b/源代码/Output/x64/Debug/net6.0/StgSharpDebug.exe
index ddc40aa9..ebad299e 100644
Binary files a/源代码/Output/x64/Debug/net6.0/StgSharpDebug.exe and b/源代码/Output/x64/Debug/net6.0/StgSharpDebug.exe differ
diff --git a/源代码/Output/x64/Debug/net6.0/StgSharpDebug.pdb b/源代码/Output/x64/Debug/net6.0/StgSharpDebug.pdb
index 31d4904a..59749b6c 100644
Binary files a/源代码/Output/x64/Debug/net6.0/StgSharpDebug.pdb and b/源代码/Output/x64/Debug/net6.0/StgSharpDebug.pdb differ
diff --git a/源代码/Output/x64/Debug/net6.0/StgSharpDebug.xml b/源代码/Output/x64/Debug/net6.0/StgSharpDebug.xml
index 6ea62cd1..1ca3ac39 100644
--- a/源代码/Output/x64/Debug/net6.0/StgSharpDebug.xml
+++ b/源代码/Output/x64/Debug/net6.0/StgSharpDebug.xml
@@ -4,7 +4,12 @@
StgSharpDebug
-
+
+
+
+
+
+
Get the status of a certain key on the keyboard.
@@ -14,43 +19,132 @@
- Function handler to load an opengl function by serching its name.
+ Function handler to load an opengl function by searching its name.
the name of the Opengl function
An intptr value representing the pointer to the function
-
+
+
+ Interface of all kinds OpenGL buffer objects
+
+
+
+
+ Get the only handle to one of the Object instance
+
+
+
+
+
+
+ Bind a buffer instance to OpenGL
+
+ Index of handle of the object in this instance to be bind
+
+
+
+
+
+
+ A collection of handle to Element Buffer Object in OpenglFunc.
+ Each value indexed from instance of this class this
+ is the only handle to one Element Buffer Object.
+
+
+
+
+ Bind the frame buffer object with name frame buffer to the frame buffer target specified by target.
+ will be set as default target.
+
+ Index of object to be binded in handle set
+
+
+
+ Bind the frame buffer object with name frame buffer to the frame buffer target specified by target.
+ Target of this frame buffer should be set manually.
+
+ The frame buffer target of the binding operation.
+ Index of object to be binded in handle set
+
+
+
+
+
+
+
+
+
+ Set data to current vertex buffer object
+
+ Type of bufferData
+ Index to find certain VBO in this instance
+ Data to write in
+ How OpenGL use these data, defined by
+
+
+
+ Set data to current vertex buffer object
+
+ Type of bufferData
+ Index to find certain VBO in this instance
+ Data to write in
+ How OpenGL use these data, defined by
+
+
+
+ Set data to current vertex buffer object
+
+ Type of bufferData
+ Index to find certain VBO in this instance
+ A of data to write in
+ How OpenGL use these data, defined by
+
+
+
+ Set data to current vertex buffer object
+
+ Type of bufferData
+ Index to find certain VBO in this instance
+ A of data to write in
+ How OpenGL use these data, defined by
+
+
+
+ Set data to current vertex buffer object
+
+ Type of bufferData
+ Index to find certain VBO in this instance
+ A array of data to write in
+ How OpenGL use these data, defined by
+
+
-
+
- Height of this form, represent in
+ Load all supported OpenGL APIs and bind them to given context.
+ The used as current OpenGL context
-
+
- Width of this form, represent in
+ Get the function pointer of given OpenGL api name
+ ContextName of the OpenGL api
+ The funtion pointer of the api in stream of
-
+
- Width of this form, represent in
+ Bind a frame buffer to a frame buffer target
+ Same function as glBindFramebuffer.
+ The frame buffer target of the binding operation.
+ The handle of the frame buffer object to bind.
-
-
- Necessary operation to init graphic elements this form.
-
- OpenGL library binded to current form.
-
-
-
- Behaviour of current form when in a frame cycle.
-
-
-
+
Init an OpenGl context if current form has not been binded to any context. and set the context binded to
current form as current OpenGL context.
@@ -59,227 +153,93 @@
Something goes wrong and StgSharp fails in creating a new OpenGL context.
-
+
- Set all necessary metadata to current form instance
-
-
-
-
- Resize the current form
-
-
- A (width,height) representing the new size of current form
-
-
-
-
- Resize the current form
-
- New width of the window
- New height of the window
-
-
-
- Set the size limit of current form
-
-
- Minimun size of current form. In form of a of (width,height)
-
-
- Maximum size of current form. In form of a of (width,height)
-
-
-
-
- Set the size limit of current form
-
- Minimum width of current form
- Minimum height of current form
- Maximum width of current form
- Maximum height of current form
-
-
-
- Init this form and render it on screen, and respond with operation
-
-
-
-
- Create a set of .
+ Create a set of .
Amount of EBO to be created.
-
+
- Create a sets of
+ Create a sets of
- Amount of textures to be crated.
+ Amount of textures to be created.
-
+
- Create a set of .
+ Create a set of .
- Amount of VAO to be crated.
+ Amount of VAO to be created.
-
+
- Create aset of .
+ Create a set of .
Amount of Object to be created.
-
+
- Create an instance of program
+ Create an instance of program
- New instance of instance.
+ New instance of instance.
-
+
- Mark that a method in a
- should be called when rendering.
+ Attach one shader code to a shader program.
+
+ Shader program to attach
+ Index of shader code in current shader code set.
+
+
+
+ Init a program with no shader attached.
-
+
- Priority level of a render activity.
+ Get a uniform form current shader,
+ the value type of the uniform should be provided.
-
-
-
- One level higher than .
-
-
-
-
- Two level higher than .
-
-
-
-
- Three level higher than .
-
-
-
-
- One level lower than .
-
-
-
-
- Two level lower than .
-
-
-
-
- Three level lower than .
-
-
-
-
- Highest priority, in , it is .
-
-
-
-
- Default priority, usually is in this priority.
-
-
-
-
- Lowest priority, in , it is .
-
-
-
-
- Interface of all kinds OpenGL buffer objects
-
-
-
-
- Get the only handle to one of the Object instance
-
-
+ ContextName of the Uniform in shader code
-
+
- Bind a buffer instance to OpenGL
+ Get a uniform form current shader,
+ the value type of the uniform should be provided.
- Index of handle of the object in this instance to be bind
+ ContextName of the Uniform in shader code
+
-
-
-
-
+
- A collection of handle to Element Buffer Object in OpenGL.
- Each value indexed from instance of this class this
- is the only handle to one Element Buffer Object.
+ Get a uniform form current shader,
+ the value type of the uniform should be provided.
+
+ ContextName of the Uniform in shader code
+
+
+
+
+ Get a uniform form current shader,
+ the value type of the uniform should be provided.
+
+ ContextName of the Uniform in shader code
+
+
+
+
+ Link the shader to current context.
-
+
- Bind the frame buffer object with name frame buffer to the frame buffer target specified by target.
- will be set as default target.
+ Let the current context use this shader.
- Index of object to be binded in handle set
-
-
-
- Bind the frame buffer object with name frame buffer to the frame buffer target specified by target.
- Target of this frame buffer should be set manually.
-
- The frame buffer target of the binding operation.
- Index of object to be binded in handle set
-
-
-
-
-
-
-
-
-
-
- Set data to current vertex buffer object
-
- Type of bufferData
- Index to find certain VBO in this instance
- Data to write in
- How OpenGL use these data, defined by
-
-
-
- Set data to current vertex buffer object
-
- Type of bufferData
- Index to find certain VBO in this instance
- A array of data to write in
- How OpenGL use these data, defined by
-
-
-
-
-
-
-
-
- Load all aupportable OpenGL APIs and bind them to given context.
-
- The used as current OpenGL context
- A delegate to get address of OprnGL api
-
-
-
- Get the function pointer of given OpenGL api name
-
- Name of the OpenGL api
- The funtion pointer of the api in form of
@@ -300,20 +260,12 @@
This will be not usable.
-
-
- Bind a frame buffer to a frame buffer target
- Same function as glBindFramebuffer.
-
- The frame buffer target of the binding operation.
- The handle of the frame buffer object to bind.
-
-
+
@@ -329,79 +281,39 @@
-
+
- Attach one shader code to a shader program.
+ Set the size limit of current form
- Shader program to attach
- Index of shader code in current shader code set.
+ Minimum width of current form
+ Minimum height of current form
+ Maximum width of current form
+ Maximum height of current form
-
+
- Init a program with no shader attached.
+ Get (T is ) uniform from a shader.
+ This uniform will be used as projection matrix of this camera.
+ Additionally, for multi-shader rendering, each shader requires a uniform,
+ so do not ignore return value of this method.
+ Shader using this camera
+ ContextName of projection camera named in shader
+
+ (T is ) representing
+ projection matrix in shader program.
+
-
+
- Get a uniform form current shader,
- the value type of the uniform should be provided.
-
- Name of the Uniform in shader code
-
-
-
-
- Get a uniform form current shader,
- the value type of the uniform should be provided.
-
- Name of the Uniform in shader code
-
-
-
-
- Get a uniform form current shader,
- the value type of the uniform should be provided.
-
- Name of the Uniform in shader code
-
-
-
-
- Get a uniform form current shader,
- the value type of the uniform should be provided.
-
- Name of the Uniform in shader code
-
-
-
-
- Link the shader to current context.
-
-
-
-
- Let the current context use this shader.
-
-
-
-
- A sensor used for cheking out if a bullet hit a player or something else
-
-
-
-
- A 2D vector presenting the position of an enemy entity, position can also be visited by X, Y
-
-
-
-
- X position of an enenmy entity
-
-
-
-
- Y position of an enemy entity
+ Get all uniform related to this .
+ Shader program requires this camera.
+
+ ContextName of all related uniforms.
+ If you fallow form from
+
+
@@ -418,7 +330,7 @@
- Write a log message to log file, and mark the level of this message.
+ Write a log message to log file, and mark the _level of this message.
A string contains information of how current evironment runs.
The severity of current message.
@@ -438,9 +350,17 @@
A two dimension vector defined by two elements.
- Vec2Ds in StgSharp are defaultly usaed as colum vector.
+ Vec2Ds in StgSharp are default used as colum vector.
+
+
+ Orthogonalize two s, let their length be 1
+ and perpendicular to each other.
+
+
+
+
Reurns the value of ArcSin(x)
@@ -479,7 +399,7 @@
-
+
@@ -491,14 +411,41 @@
-
+
- Part of a circle. All points on a arc has the same distance to their center.
+ A class contains a sets of methods to serialize several types
-
+
- A collection of all point on the same plain and has the same distance to a point
+ An independent storage area, used as the only folder type in root folder.
+ Contains several files reference as virtual disc.
+ Data is actually stored in s in certain RAID mode.
+
+
+
+
+ A sensor used for checking out if a bullet hit a player or something else
+
+
+
+
+ A 2D vector presenting the position of an enemy entity, position can also be visited by X, Y
+
+
+
+
+ X position of an enenmy entity
+
+
+
+
+ Y position of an enemy entity
+
+
+
+
+ 当几何体调用了过多的CalcVec方法时,产生UnusedVertexException异常
@@ -518,86 +465,16 @@
Point to the top direction.
-
-
- 当几何体调用了过多的CalcVec方法时,产生UnusedVertexException异常
-
-
-
-
- Caculate the movement of a point.
-
- The game tick represent time passed by
- A 3d vector representing movement
-
-
-
- Move begin side of a line.
- It is recommended to override this function rather than
- loading an with same function.
-
- Time passed since current line was created.
-
-
-
- Move end side of a line.
- It is recommended to override this function rather than
- loading an with same function.
-
- Time passed since current line was created.
-
-
-
-
- Move the third vertix. this is a useless method for Parallelograms.
-
- Current time tick
-
- Geometry overdefined
-
-
-
- Move the third vertix. This method is useless for Parallelograms.
-
- Current time tick
-
- Geometry overdefined
-
- 平面几何体。包含三角形,对称四边形,自由多边形等。最多可由16个点参数定义。
+ Plain geometry only contains straight sides.
-
-
- Tick time this geometry eas crested
-
-
-
-
- Get all sides of this .
-
- A array contains all straight s of current geometry item.
-
-
-
- Get a flat cincide with current geometry.
-
-
-
-
-
- Update the coordinate of the point. If this is a moving point,
- (Points on sides or surface if other geometry items)
- please do not define any motion here, codes will be ignored by program
-
- Time passes since the program begin, counted by frames
-
- 计算中心点相对于参考原点的位移
+ Calculate movement to center
- 当前游戏刻
+ Current time tick
@@ -605,80 +482,95 @@
A square
-
+
- A linear data structure with dynamic length.
- It contains a of ,
- each is twice longer than the former one.
+ Run all nodes repeatedly until it is instructed to terminate.
-
+ Instructor to terminate all tasks. Returns if tasks should terminate
-
+
- Init a with a certain amount of elements prepared.
+
- Amount of elements to be prepared.
+
+ Reset pipeline has risk, this operation is a direct operation to port
+ in current node, the port on the other node cannot get the change.
+
-
+
- Create a new instance of ,
- and fill the begining ones of elemtns as given instance.
-
- Amount of beginning elements to be filled
-
-
-
-
- Length of this
+ Init this form and render it on screen, and respond with operation
-
+
- A pair of value
+ Height of this form, represent in
-
+
- The first value.
+ Width of this form, represent in
-
+
- The second value.
+ Width of this form, represent in
-
+
- A value.
- The lower byte is ,
- and higher byte is .
+ Resize the current form
+
+ A (width,height) representing the new size of current form
+
+
+
+
+ Set the size limit of current form
+
+
+ Minimum size of current form. In form of a of (width,height)
+
+
+ Maximum size of current form. In form of a of (width,height)
+
+
+
+
+ Set the size limit of current form
+
+ Minimum width of current form
+ Minimum height of current form
+ Maximum width of current form
+ Maximum height of current form
A microsecond-accuracy timer. It will refresh every a certain time span.
-
+
Create a new and define the length of time span. Length of a single time span is defined in microseconds.
-
+
-
+
Create a new and define the length of time span.
Length of a single time span is defined in seconds.
-
+
-
+
Create a new and define the length of time span. Length of a single time span is defined in microseconds.
+
@@ -691,17 +583,6 @@
The method this will call every time a new time span started.
-
-
- Get all uniform related to this .
-
- Shader program requires this camera.
-
- Name of all related uniforms.
- If you fallow form from
-
-
-
The COLORREF value is used to specify an RGB color.
diff --git a/源代码/StgSharp/Control/ProcessInput.cs b/源代码/StgSharp/Control/ProcessInput.cs
deleted file mode 100644
index f91c2f4e..00000000
--- a/源代码/StgSharp/Control/ProcessInput.cs
+++ /dev/null
@@ -1,47 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Reflection;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace StgSharp.Graphics
-{
-
-
- public partial class Form
- {
- Dictionary keyEventDictionary = new Dictionary();
-
- internal void InternalLoadInput(MethodInfo[] methods)
- {
- if (methods.Length == 0)
- {
- return;
- }
- foreach (MethodInfo m in methods) //find all methods decorated by RenderActivityAttribute
- {
- KeyEventAttribute attr = m.GetCustomAttribute(false);
- if (attr == null)
- {
- continue;
- }
- if (!m.IsStatic && (m.GetParameters().Length != 0) && (m.ReturnType != typeof(void)))
- {
- throw new NotSupportedException("A render activity cannot have parameters, returning value or be static.");
- }
- }
- }
-
- internal void InternalProcessInput()
- {
-
- }
-
- }
-
- public delegate void KeyBoardEvent(KeyboardKey key, KeyStatus status);
- public delegate void MouseEvent(Mouse mouse, KeyStatus status);
- public delegate void JoystickEvent(Joystick joystick, KeyStatus status);
-
-}
diff --git a/源代码/StgSharp/Controlling/ProcessInput.cs b/源代码/StgSharp/Controlling/ProcessInput.cs
deleted file mode 100644
index 03f34c56..00000000
--- a/源代码/StgSharp/Controlling/ProcessInput.cs
+++ /dev/null
@@ -1,47 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Reflection;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace StgSharp.Graphics
-{
-
-
- public partial class ViewModel
- {
- Dictionary keyEventDictionary = new Dictionary();
-
- internal void InternalLoadInput(MethodInfo[] methods)
- {
- if (methods.Length == 0)
- {
- return;
- }
- foreach (MethodInfo m in methods) //find all methods decorated by RenderActivityAttribute
- {
- KeyEventAttribute attr = m.GetCustomAttribute(false);
- if (attr == null)
- {
- continue;
- }
- if (!m.IsStatic && (m.GetParameters().Length != 0) && (m.ReturnType != typeof(void)))
- {
- throw new NotSupportedException("A render activity cannot have parameters, returning value or be static.");
- }
- }
- }
-
- internal void InternalProcessInput()
- {
-
- }
-
- }
-
- public delegate void KeyBoardEvent(KeyboardKey key, KeyStatus status);
- public delegate void MouseEvent(Mouse mouse, KeyStatus status);
- public delegate void JoystickEvent(Joystick joystick, KeyStatus status);
-
-}
diff --git a/源代码/StgSharp/Data/Encode/HuffmanTree.cs b/源代码/StgSharp/Data/Encode/HuffmanTree.cs
deleted file mode 100644
index 42e386cd..00000000
--- a/源代码/StgSharp/Data/Encode/HuffmanTree.cs
+++ /dev/null
@@ -1,237 +0,0 @@
-//-----------------------------------------------------------------------
-//-----------------------------------------------------------------------
-// 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 where T : struct
- {
-
- HuffmanNodeList leaves;
-
- internal HuffmanTree(HuffmanNodeList nodeList)
- {
- leaves = nodeList;
- }
-
- public HuffmanNodeList LeafList
-=> leaves;
-
- public TreeNode Root
-=> leaves.Last;
-
- public static HuffmanTree BuildHuffmanTree(List<(T, ulong)> metaData)
- {
- if (metaData.Count <= 3)
- {
- throw new Exception("Data is too little, no need to compress");
- }
- HuffmanNodeList leaves = new HuffmanNodeList();
- HuffmanNodeList all = new HuffmanNodeList();
-
- foreach (var item in metaData)
- {
- leaves.Add(new TreeNode(item));
- }
-
-
- while (leaves.Count > 2)
- {
- TreeNode node, toMove;
- if (leaves.Last._frequency < leaves.BeforeLast._frequency)
- {
- if (leaves.BeforeLast._frequency < leaves.OverLast._frequency)
- {
- //第三节点最大
- node = new TreeNode(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(leaves.OverLast, leaves.Last)) :
- (new TreeNode(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(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(leaves.OverLast, leaves.BeforeLast)) :
- (new TreeNode(leaves.BeforeLast, leaves.OverLast));
- toMove = leaves.RemoveAndGetBeforeLast; all.Add(toMove);
- toMove = leaves.RemoveAndGetBeforeLast; all.Add(toMove);
- leaves.Add(node);
- }
- }
-
- leaves = new HuffmanNodeList(leaves.OrderByDescending(pair => pair.frequency)
- .Select(pair => pair).ToList());
- }
-
- TreeNode lastOne = leaves[0];
- TreeNode lastTwo = leaves[1];
- TreeNode root = (lastOne.frequency > lastTwo.frequency) ?
- (new TreeNode(lastOne, lastTwo)) :
- (new TreeNode(lastTwo, lastOne));
-
- all.Add(lastOne);
- all.Add(lastTwo);
- all.Add(root);
-
- leaves = all;
- return new HuffmanTree(all);
- }
-
-
- }
-
- public class HuffmanNodeList : List> where T : struct
- {
-
- public HuffmanNodeList() : base()
- {
-
- }
-
- public HuffmanNodeList(IEnumerable> values) : base(values)
- { }
-
- public TreeNode BeforeLast
-=> this[Count - 2];
-
- public TreeNode Last
-=> this[Count - 1];
-
- public TreeNode OverLast
-=> this[Count - 3];
-
- public TreeNode RemoveAndGetBeforeLast
- {
- get
- {
- TreeNode ret = this[Count - 2];
- RemoveAt(Count - 2);
- return ret;
- }
- }
-
- public TreeNode RemoveAndGetLast
- {
- get
- {
- TreeNode ret = this[Count - 1];
- RemoveAt(Count - 1);
- return ret;
- }
- }
-
- public TreeNode RemoveAndGetOverLast
- {
- get
- {
- TreeNode ret = this[Count - 3];
- RemoveAt(Count - 3);
- return ret;
- }
- }
-
- public void Add(T element, ulong f)
- {
- base.Add(new TreeNode(element, f));
- }
-
- }
-
- public class TreeNode where T : struct
- {
-
- internal ulong _frequency;
- internal TreeNode _left;
- internal TreeNode _right;
- internal T? _value;
-
- internal TreeNode(TreeNode left, TreeNode 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 Left => _left;
- public TreeNode Right => _right;
-
- public T? Value => _value;
-
- }
-}
diff --git a/源代码/StgSharp/Data/Encode/MappingTable.cs b/源代码/StgSharp/Data/Encode/MappingTable.cs
deleted file mode 100644
index f8d3cf67..00000000
--- a/源代码/StgSharp/Data/Encode/MappingTable.cs
+++ /dev/null
@@ -1,189 +0,0 @@
-//-----------------------------------------------------------------------
-//-----------------------------------------------------------------------
-// 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 where T : struct
- {
-
- public Dictionary> BuildHuffmanDictionary()
- {
- Dictionary> ret = new Dictionary>();
- TreeNode root = Root;
- HuffmanKey key = new HuffmanKey();
- key = key.SetSide(KeySide.Right);
- InternalBuildDictionary(ret, root, key);
- return ret;
- }
-
- public void InternalBuildDictionary(
- Dictionary> dict,
- TreeNode node,
- HuffmanKey valueTemp
- )
- {
- HuffmanKey nativeNode = new HuffmanKey(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 where T : struct
- {
-
- internal List bitList;
- internal BitArray code;
-
- public HuffmanKey()
- {
- bitList = new List();
- bitList.Add(false);
- }
-
- public HuffmanKey(List former)
- {
- bitList = new List(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 list = new List(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 SetSide(KeySide side)
- {
- HuffmanKey newKey = new HuffmanKey(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
- }
-
-}
diff --git a/源代码/StgSharp/Data/GlobalData/idProvider.cs b/源代码/StgSharp/Data/GlobalData/idProvider.cs
deleted file mode 100644
index 8c2b5c82..00000000
--- a/源代码/StgSharp/Data/GlobalData/idProvider.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace StgSharp.Data
-{
-
- public partial class Area
- {
- private static byte leastUnusedDisc;
-
- public byte NewDisc(byte raidWith)
- {
- byte ret = leastUnusedDisc;
- leastUnusedDisc++;
- return ret;
- }
-
- public void ClearDiscIDBuffer()
- {
- leastUnusedDisc = 0;
- }
-
- private int leastUnusedID;
-
- public int NewID()
- {
- int ret = leastUnusedID;
- if (ret == int.MaxValue)
- {
- throw new ArgumentOutOfRangeException("Reaches max IDs that one ssd file can provide.");
- }
- leastUnusedID++;
- return ret;
- }
-
- public void ClearIDBuffer()
- {
- leastUnusedID = 1;
- }
-
- }
-
-}
diff --git a/源代码/StgSharp/Data/Serialize/BitArray.cs b/源代码/StgSharp/Data/Serialize/BitArray.cs
deleted file mode 100644
index d8236bc2..00000000
--- a/源代码/StgSharp/Data/Serialize/BitArray.cs
+++ /dev/null
@@ -1,161 +0,0 @@
-//-----------------------------------------------------------------------
-//-----------------------------------------------------------------------
-// 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 boolStream = new List(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());
- }
-
- ///
- /// Serialize a , useful when writing
- /// a Huffman tree index dictionary to file.
- ///
- ///
- ///
- ///
- public static byte[] Serialize(BitArray bits)
- {
- int size = (bits.Count / 4) + 1;
- List ret = new List(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,
- }
-}
diff --git a/源代码/StgSharp/Data/Serialize/Dictionary.cs b/源代码/StgSharp/Data/Serialize/Dictionary.cs
deleted file mode 100644
index 1d1a3e2c..00000000
--- a/源代码/StgSharp/Data/Serialize/Dictionary.cs
+++ /dev/null
@@ -1,97 +0,0 @@
-//-----------------------------------------------------------------------
-//-----------------------------------------------------------------------
-// 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
-{
-
- ///
- /// A class contains a sets of methods to serialize several types
- ///
- public static partial class Serializer
- {
- /**/
-
- public static void Deserialize(byte[] data, out Dictionary dict)
- {
- dict = new Dictionary();
- 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 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();
- }
- }
-
- }
-}
diff --git a/源代码/StgSharp/Geometries/PlainGeometry/Line.cs b/源代码/StgSharp/Geometries/PlainGeometry/Line.cs
deleted file mode 100644
index 932e1044..00000000
--- a/源代码/StgSharp/Geometries/PlainGeometry/Line.cs
+++ /dev/null
@@ -1,107 +0,0 @@
-//-----------------------------------------------------------------------
-//-----------------------------------------------------------------------
-// file="Line.cs"
-// Project: StgSharp
-// AuthorGroup: Nitload Space
-// Copyright (c) Nitload Space. All rights reserved.
-//
-// Permission is hereby granted, free of charge, to any person
-// obtaining a copy of this software and associated documentation
-// files (the “Software”), to deal in the Software without restriction,
-// including without limitation the rights to use, copy, modify, merge,
-// publish, distribute, sublicense, and/or sell copies of the Software,
-// and to permit persons to whom the Software is furnished to do so,
-// subject to the following conditions:
-//
-// The above copyright notice and
-// this permission notice shall be included in all copies
-// or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED “AS IS”,
-// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
-// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-// ARISING FROM, OUT OF OR IN CONNECTION WITH
-// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-//-----------------------------------------------------------------------
-//-----------------------------------------------------------------------
-using StgSharp.Math;
-
-using System;
-using System.Numerics;
-
-namespace StgSharp.Geometries
-{
- public class Line : PlainGeometry
- {
-
- internal Point basePoint;
- internal Point beginPoint;
- internal Point endPoint;
- internal Func movBegin;
- internal Func movEnd;
-
- internal Line(Vector4 begin, Vector4 end)
- {
- beginPoint = new Point(begin);
- endPoint = new Point(end);
- }
-
- public Line()
- {
-
- }
-
- public Line(Point begin, Point end)
- {
- this.beginPoint = begin;
- this.endPoint = end;
- }
-
-
- internal override int[] Indices => throw new NotSupportedException();
-
- public override Line[] GetAllSides()
- {
- throw new NotImplementedException();
- }
-
- public override Plain GetPlain()
- {
- throw new ToUpperDimensionException();
- }
-
- ///
- /// Move begin side of a line.
- /// It is recommended to override this function rather than
- /// loading an with same function.
- ///
- /// Time passed since current line was created.
- public virtual vec3d MoveBeginPoint(int tick)
- {
- return movBegin(time);
- }
-
- ///
- /// Move end side of a line.
- /// It is recommended to override this function rather than
- /// loading an with same function.
- ///
- /// Time passed since current line was created.
- ///
- public virtual vec3d MoveEndPoint(int tick)
- {
- return movEnd.Invoke(time);
- }
-
- internal override void UpdateCoordinate(int tick)
- {
- beginPoint.Position = coordinate.Origin + MoveBeginPoint(time);
- endPoint.Position = coordinate.Origin + MoveEndPoint(time);
- }
-
- }
-}
diff --git a/源代码/StgSharp/Geometries/PlainGeometry/PlainGeometry.cs b/源代码/StgSharp/Geometries/PlainGeometry/PlainGeometry.cs
deleted file mode 100644
index 5b4d6635..00000000
--- a/源代码/StgSharp/Geometries/PlainGeometry/PlainGeometry.cs
+++ /dev/null
@@ -1,99 +0,0 @@
-//-----------------------------------------------------------------------
-//-----------------------------------------------------------------------
-// file="PlainGeometry.cs"
-// Project: StgSharp
-// AuthorGroup: Nitload Space
-// Copyright (c) Nitload Space. All rights reserved.
-//
-// Permission is hereby granted, free of charge, to any person
-// obtaining a copy of this software and associated documentation
-// files (the “Software”), to deal in the Software without restriction,
-// including without limitation the rights to use, copy, modify, merge,
-// publish, distribute, sublicense, and/or sell copies of the Software,
-// and to permit persons to whom the Software is furnished to do so,
-// subject to the following conditions:
-//
-// The above copyright notice and
-// this permission notice shall be included in all copies
-// or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED “AS IS”,
-// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
-// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-// ARISING FROM, OUT OF OR IN CONNECTION WITH
-// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-//-----------------------------------------------------------------------
-//-----------------------------------------------------------------------
-using StgSharp.Graphics;
-using StgSharp.Math;
-
-using System;
-
-namespace StgSharp.Geometries
-{
- ///
- /// 平面几何体。包含三角形,对称四边形,自由多边形等。最多可由16个点参数定义。
- ///
- public abstract class PlainGeometry: IGeometry
- {
-
- protected TimeSpanProvider time;
-
- internal ICoord coordinate;
- internal Matrix24 textureFrame;
-
- public PlainGeometry()
- {
- }
-
- vec4d IGeometry.this[int index]
- {
- get => throw new NotImplementedException();
- set => throw new NotImplementedException();
- }
-
- ///
- /// Tick time this geometry eas crested
- ///
- public int BornTime => time;
-
- public ICoord ReferenceCoordinate => this.coordinate;
-
- internal abstract int[] Indices { get; }
-
- int IGeometry.VertexCount => throw new NotImplementedException();
-
- vec4d[] IGeometry.VertexStream => throw new NotImplementedException();
-
- ///
- /// Get all sides of this .
- ///
- /// A array contains all straight s of current geometry item.
- public abstract Line[] GetAllSides();
-
- ///
- /// Get a flat cincide with current geometry.
- ///
- ///
- public abstract Plain GetPlain();
-
-
- internal abstract void UpdateCoordinate(int tick);
-
- void IGeometry.GetVertexHandle(ICoord coordinate, int count)
- {
- throw new NotImplementedException();
- }
-
- void IGeometry.Transform(Matrix44 transFormMatrix)
- {
- throw new NotImplementedException();
- }
-
- //public abstract Rectangle GetRenderFrame();
- }
-}
\ No newline at end of file
diff --git a/源代码/StgSharp/Graphics/Form/FormThreadAttribute.cs b/源代码/StgSharp/Graphics/Form/FormThreadAttribute.cs
deleted file mode 100644
index 5431238f..00000000
--- a/源代码/StgSharp/Graphics/Form/FormThreadAttribute.cs
+++ /dev/null
@@ -1,117 +0,0 @@
-//-----------------------------------------------------------------------
-//-----------------------------------------------------------------------
-// file="FormThreadAttribute.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.Graphics
-{
- ///
- /// Mark that a method in a
- /// should be called when rendering.
- ///
- [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
- public class RenderActivityAttribute : Attribute
- {
-
- internal bool _isRenderProgress;
- internal int _priority;
-
- public RenderActivityAttribute()
- {
- _priority = (int)RenderPriority.Default;
- }
-
- public RenderActivityAttribute(RenderPriority priority)
- {
- _priority = (int)priority;
- }
- public RenderActivityAttribute(int priority)
- {
- _priority = priority;
- }
-
- public int Priority { get => _priority; set => _priority = value; }
-
- }
-
-
- [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
- public class MultiFrameActivityAttribute : Attribute
- {
-
- internal int _minFrameCount;
-
- }
-
- ///
- /// Priority level of a render activity.
- ///
- public enum RenderPriority : int
- {
- ///
- /// One level higher than .
- ///
- Pre_1 = -1,
- ///
- /// Two level higher than .
- ///
- Pre_2 = -2,
- ///
- /// Three level higher than .
- ///
- Pre_3 = -3,
- ///
- /// One level lower than .
- ///
- Aft_1 = 1,
- ///
- /// Two level lower than .
- ///
- Aft_2 = 2,
- ///
- /// Three level lower than .
- ///
- Aft_3 = 3,
- ///
- /// Highest priority, in , it is .
- ///
- Highest = Pre_3,
- ///
- /// Default priority, usually is in this priority.
- ///
- Default = 0,
- ///
- /// Lowest priority, in , it is .
- ///
- Least = Aft_3,
- }
-}
diff --git a/源代码/StgSharp/Graphics/Form/FrameAsyncThread.cs b/源代码/StgSharp/Graphics/Form/FrameAsyncThread.cs
deleted file mode 100644
index 94aa0181..00000000
--- a/源代码/StgSharp/Graphics/Form/FrameAsyncThread.cs
+++ /dev/null
@@ -1,640 +0,0 @@
-//-----------------------------------------------------------------------
-//-----------------------------------------------------------------------
-// file="FrameAsyncThread.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 StgSharp.Math;
-
-using System;
-using System.Collections.Concurrent;
-using System.Collections.Generic;
-using System.Linq;
-using System.Runtime.CompilerServices;
-using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
-
-namespace StgSharp.Graphics
-{
- internal sealed class FrameOperationBuffer
- {
-
- private IntPtr _func;
- private ConcurrentQueue _funcQueue;
- private readonly unsafe GLcontext* currentContext;
-
- public unsafe FrameOperationBuffer()
- {
- currentContext = GL.api;
- _funcQueue = new ConcurrentQueue();
- }
-
- public unsafe bool CallNext()
- {
- if (_funcQueue.TryDequeue(out _func))
- {
- ((delegate*)_func)(this, currentContext);
- return true;
- }
- else
- {
- return false;
- }
- }
-
- #region gl param queue
-
- private ConcurrentQueue paramQueue = new ConcurrentQueue();
- private ConcurrentQueue streamQueue = new ConcurrentQueue();
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void MethodEnqueue(IntPtr p)
- {
- _funcQueue.Enqueue(p);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void ParamEnqueue(vec4d v)
- {
- paramQueue.Enqueue(v);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void ParamEnqueue(M128 m)
- {
- paramQueue.Enqueue(m);
- //Console.Write(paramQueue.Count + streamQueue.Count);
- //Console.Write($":{m.ToString(16)}\n");
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void ParamEnqueue(uint u0)
- {
- M128 m = default;
- m.Write(0, u0);
- this.ParamEnqueue(m);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void ParamEnqueue(uint u0, uint u1)
- {
- M128 m = default;
- m.Write(0, u0);
- m.Write(1, u1);
- this.ParamEnqueue(m);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void ParamEnqueue(ulong u0, ulong u1)
- {
- M128 m = default;
- m.Write(0, u0);
- m.Write(1, u1);
- this.ParamEnqueue(m);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void ParamEnqueue(uint u0, uint u1, uint u2)
- {
- M128 m = default;
- m.Write(0, u0);
- m.Write(1, u1);
- m.Write(2, u2);
- this.ParamEnqueue(m);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void ParamEnqueue(float f0, float f1, float f2)
- {
- M128 m = default;
- m.Write(0, f0);
- m.Write(1, f1);
- this.ParamEnqueue(m);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void ParamEnqueue(float f0, float f1, float f2, float f3)
- {
- M128 m = default;
- m.Write(0, f0);
- m.Write(1, f1);
- m.Write(2, f2);
- m.Write(3, f3);
- this.ParamEnqueue(m);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void ParamEnqueue(IntPtr p0, IntPtr p1)
- {
- M128 m = default;
- m.Write(0, (ulong)p0);
- m.Write(1, (ulong)p1);
- this.ParamEnqueue(m);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void ParamEnqueue(IntPtr p)
- {
- M128 m = default;
- m.Write(0, (ulong)p);
- this.ParamEnqueue(m);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public unsafe void ParamEnqueue(glHandle handle)
- {
- M128 m = default;
- m.Write(0, (ulong)handle.valuePtr);
- this.ParamEnqueue(m);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public unsafe void ParamEnqueue(glHandle handle, glHandle handle1)
- {
- M128 m = default;
- m.Write(0, (ulong)handle.valuePtr);
- m.Write(1, (ulong)handle1.valuePtr);
- this.ParamEnqueue(m);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void ParamEnqueue(int i0)
- {
- M128 m = default;
- m.Write(0, i0);
- this.ParamEnqueue(m);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void ParamEnqueue(int i0, int i1)
- {
- M128 m = default;
- m.Write(0, i0);
- m.Write(1, i1);
- this.ParamEnqueue(m);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void ParamEnqueue(int i0, int i1, int i2)
- {
- M128 m = default;
- m.Write(0, i0);
- m.Write(1, i1);
- m.Write(2, i2);
- this.ParamEnqueue(m);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void ParamEnqueue(int i0, int i1, int i2, int i3)
- {
- M128 m = default;
- m.Write(0, i0);
- m.Write(1, i1);
- m.Write(2, i2);
- m.Write(3, i3);
- this.ParamEnqueue(m);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void ParamEnqueue(string str)
- {
- byte[] code = Encoding.UTF8.GetBytes(str);
- streamQueue.Enqueue(glArrayHandle.Alloc(code));
- //Console.WriteLine(paramQueue.Count + streamQueue.Count);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void ParamEnqueue(T[] array) where T : struct
- {
- streamQueue.Enqueue(glArrayHandle.Alloc(array));
- //Console.WriteLine(paramQueue.Count + streamQueue.Count);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void TryDequeue(out glArrayHandle arrayHandle)
- {
- if (!streamQueue.TryDequeue(out arrayHandle))
- {
- InternalIO.InternalWriteLog("No param in buffer when calling gl function:", LogType.Error);
- throw new Exception();
- }
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public bool TryDequeue(out M128 m)
- {
- m = new();
- bool ret = paramQueue.TryDequeue(out m);
- Console.WriteLine(m.ToString(16));
- return ret;
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public unsafe void TryDequeue(out vec4d v)
- {
- M128 m;
- if (this.TryDequeue(out m))
- {
- v = *(vec4d*)&m;
- }
- else
- {
- InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
- throw new Exception();
- }
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void TryDequeue(out T[] array)
- {
- glArrayHandle output = default;
- if (streamQueue.TryDequeue(out output))
- {
- array = output.a as T[];
- }
- else
- {
- InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
- throw new Exception();
- }
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void TryDequeue(out int i0)
- {
- M128 ret;
- if (this.TryDequeue(out ret))
- {
- i0 = ret.Read(0);
- }
- else
- {
- InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
- throw new Exception();
- }
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void TryDequeue(out int i0, out int i1)
- {
- M128 ret;
- if (this.TryDequeue(out ret))
- {
- i0 = ret.Read(0);
- i1 = ret.Read(1);
- }
- else
- {
- InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
- throw new Exception();
- }
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void TryDequeue(out int i0, out int i1, out int i2)
- {
- M128 ret;
- if (this.TryDequeue(out ret))
- {
- i0 = ret.Read(0);
- i1 = ret.Read(1);
- i2 = ret.Read(2);
- }
- else
- {
- InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
- throw new Exception();
- }
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void TryDequeue(out int i0, out int i1, out int i2, out int i3)
- {
- M128 ret;
- if (this.TryDequeue(out ret))
- {
- i0 = ret.Read(0);
- i1 = ret.Read(1);
- i2 = ret.Read(2);
- i3 = ret.Read(3);
- }
- else
- {
- InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
- throw new Exception();
- }
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void TryDequeue(out IntPtr p)
- {
- M128 ret;
- if (this.TryDequeue(out ret))
- {
- p = (IntPtr)ret.Read(0);
- }
- else
- {
- InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
- throw new Exception();
- }
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void TryDequeue(out IntPtr p0, out IntPtr p1)
- {
- M128 ret;
- if (this.TryDequeue(out ret))
- {
- p0 = (IntPtr)ret.Read(0);
- p1 = (IntPtr)ret.Read(1);
- }
- else
- {
- InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
- throw new Exception();
- }
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void TryDequeue(out float f0, out float f1, out float f2, out float f3)
- {
- M128 ret;
- if (this.TryDequeue(out ret))
- {
- f0 = ret.Read(0);
- f1 = ret.Read(1);
- f2 = ret.Read(2);
- f3 = ret.Read(3);
- }
- else
- {
- InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
- throw new Exception();
- }
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void TryDequeue(out float f0, out float f1, out float f2)
- {
- M128 ret;
- if (this.TryDequeue(out ret))
- {
- f0 = ret.Read(0);
- f1 = ret.Read(1);
- f2 = ret.Read(2);
- }
- else
- {
- InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
- throw new Exception();
- }
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void TryDequeue(out uint u0)
- {
- M128 ret;
- if (this.TryDequeue(out ret))
- {
- u0 = ret.Read(0);
- }
- else
- {
- InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
- throw new Exception();
- }
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void TryDequeue(out uint u0, out uint u1)
- {
- M128 ret;
- if (this.TryDequeue(out ret))
- {
- u0 = ret.Read(0);
- u1 = ret.Read(1);
- }
- else
- {
- InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
- throw new Exception();
- }
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void TryDequeue(out uint u0, out uint u1, out uint u2)
- {
- M128 ret;
- if (this.TryDequeue(out ret))
- {
- u0 = ret.Read(0);
- u1 = ret.Read(1);
- u2 = ret.Read(2);
- }
- else
- {
- InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
- throw new Exception();
- }
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void TryDequeue(out uint u0, out uint u1, out uint u2, out uint u3)
- {
- M128 ret;
- if (this.TryDequeue(out ret))
- {
- u0 = ret.Read(0);
- u1 = ret.Read(1);
- u2 = ret.Read(2);
- u3 = ret.Read(3);
- }
- else
- {
- InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
- throw new Exception();
- }
- }
-
- /*
- internal void SetContext(GLcontext* p)
- {
- context = p;
- }
- /**/
-
- #endregion gl param queue
-
-
- }
-
- public class FrameAsyncThread
- {
-
- private int _priority;
-
- private Thread _task;
- private volatile int _terminateToken;
-
- protected Barrier _frameSpeedSyncBarrier;
-
-
- protected Barrier _spanCompleteBarrier;
- protected ThreadStart _taskTODO;
-
- public FrameAsyncThread(ThreadStart action, int priority)
- {
- _taskTODO = action;
- _terminateToken = 1;
- _spanCompleteBarrier = new Barrier(2);
- _priority = priority;
- }
-
- public int Priority
- {
- get => _priority;
- internal set => _priority = value;
- }
-
- public ThreadStart TaskTODO
- {
- get => _taskTODO;
- set => _taskTODO = value;
- }
-
- public Barrier TodoCompleteBarrier
-=> _spanCompleteBarrier;
-
- public void AsyncStart()
- {
- _task = new Thread(
- () =>
- {
- while (true)
- {
- _frameSpeedSyncBarrier.SignalAndWait();
- if (_terminateToken == 0)
- {
- break;
- }
- _taskTODO();
- _spanCompleteBarrier.SignalAndWait();
- }
- });
- _task.Start();
- }
-
- public static void AsyncStartAll(IEnumerable threadList)
- {
- foreach (FrameAsyncThread t in threadList)
- {
- t.AsyncStart();
- }
- }
-
- public static (Barrier, Barrier) CombineAsync(bool needOuterMonitor, IEnumerable taskList)
- {
- if (taskList.Count() == 0)
- {
- return (null, null);
- }
- Barrier b_start = new Barrier(taskList.Count() + (needOuterMonitor ? 1 : 0));
- Barrier b_complete = new Barrier(taskList.Count() + (needOuterMonitor ? 1 : 0));
- foreach (FrameAsyncThread item in taskList)
- {
- item._frameSpeedSyncBarrier = b_start;
- item._spanCompleteBarrier = b_complete;
- }
- return (b_start, b_complete);
- }
-
- public static (Barrier, Barrier) CombineAsync(bool needOuterMonitor, params FrameAsyncThread[] taskList)
- {
- if (taskList.Length == 0)
- {
- return (null, null);
- }
- Barrier b_start = new Barrier(taskList.Length + (needOuterMonitor ? 1 : 0));
- Barrier b_complete = new Barrier(taskList.Length + (needOuterMonitor ? 1 : 0));
- foreach (FrameAsyncThread item in taskList)
- {
- item._frameSpeedSyncBarrier = b_start;
- item._spanCompleteBarrier = b_complete;
- }
- return (b_start, b_complete);
- }
- public static Barrier CombineAsyncAfter(Barrier begin, bool needOuterMonitor, IEnumerable taskList)
- {
- if (taskList.Count() == 0)
- {
- return null;
- }
- Barrier b_complete = new Barrier(taskList.Count() + (needOuterMonitor ? 1 : 0));
- foreach (FrameAsyncThread item in taskList)
- {
- item._frameSpeedSyncBarrier = begin;
- item._spanCompleteBarrier = b_complete;
- }
- return b_complete;
- }
-
- public void Terminate()
- {
- Interlocked.Exchange(ref _terminateToken, 0);
- }
-
- public static void TerminateAll(params FrameAsyncThread[] threadList)
- {
- foreach (FrameAsyncThread t in threadList)
- {
- t.Terminate();
- }
- }
-
- public static void TerminateAll(IEnumerable threadList)
- {
- foreach (FrameAsyncThread t in threadList)
- {
- t.Terminate();
- }
- }
-
- public static void WaitAll(IEnumerable threadList)
- {
- foreach (FrameAsyncThread t in threadList)
- {
- t._task.Join();
- }
- }
-
- }
-
-
-}
\ No newline at end of file
diff --git a/源代码/StgSharp/Graphics/Form/ShowForm.cs b/源代码/StgSharp/Graphics/Form/ShowForm.cs
deleted file mode 100644
index cf4e788d..00000000
--- a/源代码/StgSharp/Graphics/Form/ShowForm.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace StgSharp.Graphics
-{
- public class FormFormatter
- {
-
- }
-
- public abstract unsafe partial class ViewModel
- {
-
- static internal Dictionary activatedForms ;
-
- public static void ShowForm(FormFormatter f) where T : ViewModel
- {
- if (activatedForms == null)
- {
- activatedForms = new Dictionary();
- }
- }
-
-
-
- }
-}
diff --git a/源代码/StgSharp/Logic/ArrayList.cs b/源代码/StgSharp/Logic/ArrayList.cs
deleted file mode 100644
index 12871f71..00000000
--- a/源代码/StgSharp/Logic/ArrayList.cs
+++ /dev/null
@@ -1,452 +0,0 @@
-//-----------------------------------------------------------------------
-//-----------------------------------------------------------------------
-// file="ArrayList.cs"
-// Project: StgSharp
-// AuthorGroup: Nitload Space
-// Copyright (c) Nitload Space. All rights reserved.
-//
-// Permission is hereby granted, free of charge, to any person
-// obtaining a copy of this software and associated documentation
-// files (the “Software”), to deal in the Software without restriction,
-// including without limitation the rights to use, copy, modify, merge,
-// publish, distribute, sublicense, and/or sell copies of the Software,
-// and to permit persons to whom the Software is furnished to do so,
-// subject to the following conditions:
-//
-// The above copyright notice and
-// this permission notice shall be included in all copies
-// or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED “AS IS”,
-// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
-// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-// ARISING FROM, OUT OF OR IN CONNECTION WITH
-// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-//-----------------------------------------------------------------------
-//-----------------------------------------------------------------------
-using StgSharp.Graphics;
-
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Linq;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace StgSharp.Logic
-{
- [StructLayout(LayoutKind.Explicit, Size = 8)]
- internal struct LogSeperator
- {
-
- [FieldOffset(0)] public ulong all;
- [FieldOffset(0)] public long all_s;
- [FieldOffset(4)] public uint high;
- [FieldOffset(4)] public int high_s;
-
- [FieldOffset(0)] public uint low;
-
- [FieldOffset(0)] public int low_s;
-
- public LogSeperator(uint high, uint low)
- {
- this.high = high;
- this.low = low;
- }
-
- }
-
- ///
- /// A linear data structure with dynamic length.
- /// It contains a of ,
- /// each is twice longer than the former one.
- ///
- ///
- public class DynamicArrayList
- {
-
- private List arrayIndexList;
- private LogSeperator indexpair;
- private int lastMain = 0;
-
- // main index to the last used element
- private int lastSub = 0;
-
- private int length;
- private int subLength = 1;
-
- // sub index to the last used element
- private Queue unusedMainIndex;
-
- private Queue unusedSubIndex;
-
- public DynamicArrayList()
- {
- arrayIndexList = [new T[1]];
- length = 0;
- unusedMainIndex = new Queue();
- unusedSubIndex = new Queue();
- unusedMainIndex.Enqueue(0);
- unusedSubIndex.Enqueue(0);
- }
-
- ///
- /// Init a with a certain amount of elements prepared.
- ///
- /// Amount of elements to be prepared.
- public DynamicArrayList(int count)
- {
- arrayIndexList = new List();
- length = count;
- unusedMainIndex = new();
- unusedSubIndex = new();
-
- SeprateIndex(count);
- int subcount = 1;
- for (int i = 0; i < indexpair.high_s; i++)
- {
- arrayIndexList.Add(new T[count]);
- for (int j = 0; j < subcount; j++)
- {
- unusedMainIndex.Enqueue(i);
- unusedSubIndex.Enqueue(j);
- }
- count >>= 1;
- }
- if (indexpair.low_s != 0)
- {
- arrayIndexList.Add(new T[1 >> indexpair.high_s]);
- for (int j = 0; j < indexpair.high_s; j++)
- {
- unusedMainIndex.Enqueue(indexpair.high_s);
- unusedSubIndex.Enqueue(j);
- }
- }
- }
-
- ///
- /// Create a new instance of ,
- /// and fill the begining ones of elemtns as given instance.
- ///
- /// Amount of beginning elements to be filled
- ///
- public DynamicArrayList(int count, T instace)
- {
- arrayIndexList = new List();
- length = count;
- unusedMainIndex = new();
- unusedSubIndex = new();
-
- SeprateIndex(count);
- int subcount = 1;
- for (int i = 0; i < indexpair.high_s; i++)
- {
- arrayIndexList.Add(new T[count]);
- for (int j = 0; j < subcount; j++)
- {
- unusedMainIndex.Enqueue(i);
- unusedSubIndex.Enqueue(j);
- }
- count >>= 1;
- }
- if (indexpair.low_s != 0)
- {
- arrayIndexList.Add(new T[1 >> indexpair.high_s]);
- for (int j = 0; j < indexpair.high_s; j++)
- {
- unusedMainIndex.Enqueue(indexpair.high_s);
- unusedSubIndex.Enqueue(j);
- }
- }
- }
-
- internal T this[long index]
- {
- get
- {
- indexpair.all_s = index;
- if (
- (indexpair.low_s > lastSub) ||
- (indexpair.high_s > lastMain) ||
- (indexpair.low_s < 0) ||
- (indexpair.high_s < 0))
- {
- throw new IndexOutOfRangeException();
- }
- return arrayIndexList[indexpair.high_s][indexpair.low_s];
- }
- set
- {
- indexpair.all_s = index;
- if (
- (indexpair.low_s > lastSub) ||
- (indexpair.high_s > lastMain) ||
- (indexpair.low_s < 0) ||
- (indexpair.high_s < 0))
- {
- throw new IndexOutOfRangeException();
- }
- arrayIndexList[indexpair.high_s][indexpair.low_s] = value;
- }
- }
-
- public T this[int index]
- {
- get
- {
- if ((index + 1 > length) || (index < 0))
- {
- throw new ArgumentOutOfRangeException("index");
- }
- SeprateIndex(index);
- return arrayIndexList[indexpair.high_s][indexpair.low_s];
- }
- set
- {
- if ((index + 1 > length) || (index < 0))
- {
- throw new ArgumentOutOfRangeException("index");
- }
- SeprateIndex(index);
- arrayIndexList[indexpair.high_s][indexpair.low_s] = value;
- }
- }
-
- public T this[uint index]
- {
- get
- {
- if ((index + 1 > length) || (index < 0))
- {
- throw new ArgumentOutOfRangeException("index");
- }
- SeprateIndex(index);
- return arrayIndexList[indexpair.high_s][indexpair.low_s];
- }
- set
- {
- if ((index + 1 > length) || (index < 0))
- {
- throw new ArgumentOutOfRangeException("index");
- }
- SeprateIndex(index);
- arrayIndexList[indexpair.high_s][indexpair.low_s] = value;
- }
- }
-
- public int Count => length;
-
- ///
- /// Length of this
- ///
- public int Length => length;
-
- public int Add(T item)
- {
- // this list is tite, all item is side by side
- if (unusedMainIndex.Count == 0)
- {
- // no extra space, a new sub array is needed
- if (lastSub + 1 == 1 << lastMain)
- {
- subLength <<= 1;
- arrayIndexList.Add(new T[subLength]);
- lastMain++;
- lastSub = 0;
- arrayIndexList[lastMain][0] = item;
-
- length++;
- subLength = 1;
- return length - 1;
- }
-
- length++;
- lastSub++;
- arrayIndexList[lastMain][lastSub] = item;
- subLength = 1;
- return length - 1;
- }
-
- length++;
- int main = unusedMainIndex.Dequeue();
- int sub = unusedSubIndex.Dequeue();
- arrayIndexList[main][sub] = item;
-
- subLength = 1;
- return sub + (1 << main);
- }
-
- public void Clear()
- {
- arrayIndexList.Clear();
- arrayIndexList.Add(new T[1]);
- unusedMainIndex.Clear();
- unusedSubIndex.Clear();
- length = 0;
- unusedMainIndex.Enqueue(0);
- unusedSubIndex.Enqueue(0);
- }
-
- public bool Contains(T item)
- {
- foreach (T[] list in arrayIndexList)
- {
- foreach (T i in list)
- {
- if (i.Equals(item))
- {
- return true;
- }
- }
- }
- return false;
- }
-
- public void CopyTo(DynamicArrayList target)
- {
- target.arrayIndexList.Clear();
- int length = 1;
- foreach (T[] tList in target.arrayIndexList)
- {
- T[] newIndex = new T[length];
- Buffer.BlockCopy(tList, 0, newIndex, 0, length);
- target.arrayIndexList.Add(newIndex);
- length <<= 1;
- }
-
- target.lastMain = lastMain;
- target.lastSub = lastSub;
- target.length = length;
- target.unusedMainIndex = new Queue(unusedMainIndex.ToArray());
- target.unusedSubIndex = new Queue(unusedSubIndex.ToArray());
- }
-
- public int IndexOf(T item)
- {
- int index = 1;
- foreach (T[] list in arrayIndexList)
- {
- int subindex = 0;
- foreach (T i in list)
- {
- if (i.Equals(item))
- {
- return (index + subindex) - 1;
- }
- subindex++;
- }
- index <<= 1;
- }
- return -1;
- }
-
- [Obsolete("This method is not same, you may read data form an empty index.", false)]
- public bool Remove(T item)
- {
- int index = 0;
- foreach (T[] list in arrayIndexList)
- {
- int subindex = 0;
- foreach (T i in list)
- {
- if (i.Equals(item))
- {
- list[subindex] = default;
- if ((subindex == lastSub) && (index == lastMain))
- {
- if (lastSub == 0)
- {
- lastMain = (lastMain == 0) ? 0 : (lastMain - 1);
- lastSub = arrayIndexList[lastMain].Length - 1;
- }
- else
- {
- lastSub--;
- }
- length--;
- return true;
- }
- unusedMainIndex.Enqueue(index);
- unusedSubIndex.Enqueue(subindex);
- return true;
- }
- subindex++;
- }
- index++;
- }
- return false;
- }
-
- [Obsolete("This method is not same, you may read data form an empty index.", false)]
- public void RemoveAt(int index)
- {
- if ((index > length) || (index < 0))
- {
- throw new ArgumentOutOfRangeException(nameof(index));
- }
- SeprateIndex(index);
-
- //the last element was removed.
- if (index + 1 == length)
- {
- //the last array can be disposed
- if (lastSub == 0)
- {
- arrayIndexList.RemoveAt(lastMain);
- lastMain--;
- lastSub = (length / 2) - 1;
- }
- length--;
- return;
- }
-
- unusedMainIndex.Enqueue(indexpair.high_s);
- unusedSubIndex.Enqueue(indexpair.low_s);
- }
-
- public void ShowStructure()
- {
- foreach (T[] l in arrayIndexList)
- {
- foreach (T item in l)
- {
- Console.Write($"{item}\t");
- }
- Console.Write("\n\n");
- }
- }
-
- private void SeprateIndex(uint ulongIndex)
- {
- indexpair.high = ulongIndex;
- int mainindex = 0;
- while (indexpair.high > 1)
- {
- indexpair.all >>= 1;
- mainindex++;
- }
- indexpair.high_s = mainindex;
- indexpair.low >>= 32 - mainindex;
- }
-
- private void SeprateIndex(int longIndex)
- {
- indexpair.high_s = longIndex;
- int mainindex = 0;
- while (indexpair.high > 1)
- {
- indexpair.all >>= 1;
- mainindex++;
- }
- indexpair.high_s = mainindex;
- indexpair.low >>= 32 - mainindex;
- }
-
- }
-}
\ No newline at end of file
diff --git a/源代码/StgSharp/Logic/Blueprint.cs b/源代码/StgSharp/Logic/Blueprint.cs
deleted file mode 100644
index 71082163..00000000
--- a/源代码/StgSharp/Logic/Blueprint.cs
+++ /dev/null
@@ -1,167 +0,0 @@
-//-----------------------------------------------------------------------
-//-----------------------------------------------------------------------
-// file="Blueprint.cs"
-// Project: StgSharp
-// AuthorGroup: Nitload Space
-// Copyright (c) Nitload Space. All rights reserved.
-//
-// Permission is hereby granted, free of charge, to any person
-// obtaining a copy of this software and associated documentation
-// files (the “Software”), to deal in the Software without restriction,
-// including without limitation the rights to use, copy, modify, merge,
-// publish, distribute, sublicense, and/or sell copies of the Software,
-// and to permit persons to whom the Software is furnished to do so,
-// subject to the following conditions:
-//
-// The above copyright notice and
-// this permission notice shall be included in all copies
-// or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED “AS IS”,
-// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
-// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-// ARISING FROM, OUT OF OR IN CONNECTION WITH
-// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-//-----------------------------------------------------------------------
-//-----------------------------------------------------------------------
-using StgSharp;
-using StgSharp.Logic;
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Runtime.InteropServices;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace StgSharpDebug.Logic
-{
- public class Blueprint
- {
-
- private BlueprintNode beginNode;
- private Dictionary allNode;
- private Func terminate;
-
- private int currentNodeIndex = 0;
- private List allThread;
- private List nativeNodeList;
- private List nodeList;
-
- public Blueprint()
- {
- allThread = new List();
- nodeList = new List();
- nativeNodeList = new List();
- terminate = () => false;
- }
-
- public bool IsRunning => allThread.Any(t => t.Status == TaskStatus.Running);
-
- public void Init(int threadCount)
- {
- foreach (var item in allNode)
- {
- if (item.Value.IsNative)
- {
- nativeNodeList.Add(item.Value);
- }
- else
- {
- nodeList.Add(item.Value);
- }
- }
- nativeNodeList.Sort();
- nodeList.Sort();
- if (threadCount > nodeList.Count)
- {
- InternalIO.InternalWriteLog(
- "Thread setting error: amount of threads of this blueprint is larger than amount of nodes.", LogType.Warning);
- threadCount = nodeList.Count;
- }
- for (int i = 0; i < threadCount; i++)
- {
- allThread.Add(new Task(
-
- () =>
- {
- while (true)
- {
- try
- {
- while (true)
- {
- RequestNextNode().Run();
- }
- }
- catch (NodeClearException) { }
- if (terminate())
- {
- return;
- }
- }
- }
-
- ));
- }
- }
-
- ///
- /// Run all nodes in current blueprint once.
- ///
- public void Run()
- {
- foreach (var t in allThread)
- {
- t.Start();
- }
- foreach (var node in nativeNodeList)
- {
- node.Run();
- }
- Task.WaitAll(allThread.ToArray());
- }
-
- ///
- /// Run all nodes repeatedly until it is instructed to terminate.
- ///
- /// Instructor to terminate all tasks. Returns if tasks should terminate
- public void RunRepeatedly(Func terminateInstructor)
- {
- terminate = terminateInstructor;
- foreach (var t in allThread)
- {
- t.Start();
- }
- foreach (var node in nativeNodeList)
- {
- node.Run();
- }
- foreach (var node in nativeNodeList)
- {
- node.Run();
- }
- }
-
- private BlueprintNode RequestNextNode()
- {
- if (currentNodeIndex < nodeList.Count)
- {
- BlueprintNode ret = nodeList[currentNodeIndex];
- Interlocked.Increment(ref currentNodeIndex);
- return ret;
- }
- throw new NodeClearException();
- }
-
- }
-
- internal class NodeClearException : Exception
- {
-
- }
-}
diff --git a/源代码/StgSharp/Logic/BlueprintNode.cs b/源代码/StgSharp/Logic/BlueprintNode.cs
deleted file mode 100644
index e510cc24..00000000
--- a/源代码/StgSharp/Logic/BlueprintNode.cs
+++ /dev/null
@@ -1,186 +0,0 @@
-//-----------------------------------------------------------------------
-//-----------------------------------------------------------------------
-// file="BlueprintNode.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 StgSharpDebug.Logic;
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
-
-namespace StgSharp.Logic
-{
- public delegate void BlueprintNodeAction(
- in Dictionary inpput,
- in Dictionary output);
-
- public abstract class BlueprintNode:IComparable
- {
-
- private Blueprint local;
- private BlueprintNodeAction mainOperation;
-
- private bool levelAvailabel, nativeRequested;
-
- private Dictionary inputInterfaces;
- private Dictionary outputInterface;
- private int level;
- private string name;
-
- protected BlueprintNode(string name, BlueprintNodeAction operation)
- {
- this.levelAvailabel = false;
- this.name = name;
- mainOperation = operation;
- inputInterfaces = new Dictionary();
- outputInterface = new Dictionary();
- }
-
- internal BlueprintNode(string name, bool isNative)
- {
- this.levelAvailabel = false;
- this.name = name;
- nativeRequested = isNative;
- inputInterfaces = new Dictionary();
- outputInterface = new Dictionary();
- }
-
- public bool IsNative => nativeRequested;
-
- public int Level
- {
- get
- {
- if (levelAvailabel)
- {
- return level;
- }
- level = 0;
- foreach (var item in inputInterfaces)
- {
- if (level <= item.Value.Level)
- {
- level = item.Value.Level;
- }
- }
- level += 1;
- return level;
- }
- }
-
- internal Dictionary InputInterfaces => inputInterfaces;
- internal Dictionary OutputInterface => outputInterface;
-
-
- public void AddAfter(
- BlueprintNode former,
- string formerOutputPortName,
- string thisInputPortName)
- {
- this.levelAvailabel = false;
- BlueprintPipeline pipeline = new BlueprintPipeline(former,this);
-
- }
-
- public void Run()
- {
- try
- {
- foreach (var item in inputInterfaces)
- {
- item.Value.WaitForStart();
- }
- mainOperation(in inputInterfaces, in outputInterface);
- }
- catch (Exception)
- {
- throw;
- }
- }
-
- int IComparable.CompareTo(BlueprintNode other)
- {
- return this.Level.CompareTo(other.Level);
- }
- }//--------------------------------- end of class -----------------------------
-
- public class BlueprintNodeRunException : Exception
- {
- private Exception realException;
-
- public BlueprintNodeRunException(string message, Exception ex) : base(message, ex)
- {
- }
-
- public BlueprintNodeRunException(Exception ex):base("",ex)
- {
- }
- }
-
- public class BlueprintPipeline
- {
-
- private BlueprintNode former;
- private BlueprintNode after;
- private BlueprintPipelineArgs args;
- private SemaphoreSlim formerCompleteSemaphore;
-
- public BlueprintPipeline(BlueprintNode former, BlueprintNode after)
- {
- this.former = former;
- this.after = after;
- formerCompleteSemaphore = new SemaphoreSlim(initialCount: 0, maxCount: 1);
- }
-
- public BlueprintNode Former => former;
-
- public BlueprintNode After => after;
-
- public int Level => former.Level;
-
- public void CompleteAndWriteData(BlueprintPipelineArgs args)
- {
- formerCompleteSemaphore.Release();
- this.args = args;
- }
-
- public void WaitForStart()
- {
- formerCompleteSemaphore.Release();
- }
-
- }
-
- public abstract class BlueprintPipelineArgs
- {
- }
-}
diff --git a/源代码/StgSharp/Logic/glParamQueue.cs b/源代码/StgSharp/Logic/glParamQueue.cs
deleted file mode 100644
index f2ecf27f..00000000
--- a/源代码/StgSharp/Logic/glParamQueue.cs
+++ /dev/null
@@ -1,469 +0,0 @@
-//-----------------------------------------------------------------------
-//-----------------------------------------------------------------------
-// file="glParamQueue.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 StgSharp.Graphics;
-using StgSharp.Math;
-
-using System;
-using System.Collections.Concurrent;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Linq;
-using System.Numerics;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace StgSharp.Logic
-{
- internal unsafe class GLparamQueue
- {
-
- private ConcurrentQueue paramQueue;
- private ConcurrentQueue streamQueue;
- internal GLcontext* context;
-
- public GLparamQueue()
- {
- paramQueue = new ConcurrentQueue();
- streamQueue = new ConcurrentQueue();
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void Enqueue(vec4d v)
- {
- paramQueue.Enqueue(v);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void Enqueue(M128 m)
- {
- paramQueue.Enqueue(m);
- Console.WriteLine(paramQueue.Count + streamQueue.Count);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void Enqueue(uint u0)
- {
- M128 m = default;
- m.Write(0, u0);
- this.Enqueue(m);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void Enqueue(IntPtr p)
- {
- M128 m = default;
- m.Write(0, (ulong)p);
- this.Enqueue(m);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void Enqueue(glHandle handle)
- {
- M128 m = default;
- m.Write(0, (ulong)handle.valuePtr);
- this.Enqueue(m);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void Enqueue(int i0)
- {
- M128 m = default;
- m.Write(0, i0);
- this.Enqueue(m);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void Enqueue(string str)
- {
- byte[] code = Encoding.UTF8.GetBytes(str);
- streamQueue.Enqueue(glArrayHandle.Alloc(code));
- Console.WriteLine(paramQueue.Count + streamQueue.Count);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void Enqueue(T[] array) where T : struct
- {
- streamQueue.Enqueue(glArrayHandle.Alloc(array));
- Console.WriteLine(paramQueue.Count + streamQueue.Count);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void Enqueue(uint u0, uint u1)
- {
- M128 m = default;
- m.Write(0, u0);
- m.Write(1, u1);
- this.Enqueue(m);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void Enqueue(ulong u0, ulong u1)
- {
- M128 m = default;
- m.Write(0, u0);
- m.Write(1, u1);
- this.Enqueue(m);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void Enqueue(IntPtr p0, IntPtr p1)
- {
- M128 m = default;
- m.Write(0, (ulong)p0);
- m.Write(1, (ulong)p1);
- this.Enqueue(m);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void Enqueue(glHandle handle, glHandle handle1)
- {
- M128 m = default;
- m.Write(0, (ulong)handle.valuePtr);
- m.Write(1, (ulong)handle1.valuePtr);
- this.Enqueue(m);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void Enqueue(int i0, int i1)
- {
- M128 m = default;
- m.Write