c-o
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FreeFileSync XmlType="BATCH" XmlFormat="23">
|
||||
<Notes/>
|
||||
<Compare>
|
||||
<Variant>Content</Variant>
|
||||
<Symlinks>Exclude</Symlinks>
|
||||
<IgnoreTimeShift/>
|
||||
</Compare>
|
||||
<Synchronize>
|
||||
<Differences LeftOnly="right" LeftNewer="right" RightNewer="right" RightOnly="right"/>
|
||||
<DeletionPolicy>Versioning</DeletionPolicy>
|
||||
<VersioningFolder Style="TimeStamp-Folder">C:\Users\Nitlo\OneDrive - MSFT\CCD_Project_File\0-0\ProjectBackupHistory</VersioningFolder>
|
||||
</Synchronize>
|
||||
<Filter>
|
||||
<Include>
|
||||
<Item>*</Item>
|
||||
</Include>
|
||||
<Exclude>
|
||||
<Item>\System Volume Information\</Item>
|
||||
<Item>\$Recycle.Bin\</Item>
|
||||
<Item>\RECYCLE?\</Item>
|
||||
<Item>*\thumbs.db</Item>
|
||||
<Item>*\.git</Item>
|
||||
</Exclude>
|
||||
<SizeMin Unit="None">0</SizeMin>
|
||||
<SizeMax Unit="None">0</SizeMax>
|
||||
<TimeSpan Type="None">0</TimeSpan>
|
||||
</Filter>
|
||||
<FolderPairs>
|
||||
<Pair>
|
||||
<Left>D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile</Left>
|
||||
<Right>C:\Users\Nitlo\OneDrive - MSFT\CCD_Project_File\0-0\ProjectBackup</Right>
|
||||
</Pair>
|
||||
</FolderPairs>
|
||||
<Errors Ignore="false" Retry="0" Delay="5"/>
|
||||
<PostSyncCommand Condition="Completion"/>
|
||||
<LogFolder>C:\Users\Nitlo\OneDrive - MSFT\CCD_Project_File\0-0\ProjectBackupLog</LogFolder>
|
||||
<EmailNotification Condition="Always"/>
|
||||
<GridViewType>Action</GridViewType>
|
||||
<Batch>
|
||||
<ProgressDialog Minimized="true" AutoClose="true"/>
|
||||
<ErrorDialog>Show</ErrorDialog>
|
||||
<PostSyncAction>None</PostSyncAction>
|
||||
</Batch>
|
||||
</FreeFileSync>
|
||||
+5
-4
@@ -1,13 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FreeFileSync XmlType="BATCH" XmlFormat="17">
|
||||
<FreeFileSync XmlType="BATCH" XmlFormat="23">
|
||||
<Notes/>
|
||||
<Compare>
|
||||
<Variant>Content</Variant>
|
||||
<Symlinks>Exclude</Symlinks>
|
||||
<IgnoreTimeShift/>
|
||||
</Compare>
|
||||
<Synchronize>
|
||||
<Variant>Update</Variant>
|
||||
<DetectMovedFiles>false</DetectMovedFiles>
|
||||
<Differences LeftOnly="right" LeftNewer="right" RightNewer="right" RightOnly="none"/>
|
||||
<DeletionPolicy>Versioning</DeletionPolicy>
|
||||
<VersioningFolder Style="TimeStamp-Folder">A:\荷城工业\研究项目\1-旗舰级\东方同人TH2020\历史版本</VersioningFolder>
|
||||
</Synchronize>
|
||||
@@ -21,9 +21,9 @@
|
||||
<Item>\RECYCLE?\</Item>
|
||||
<Item>*\thumbs.db</Item>
|
||||
</Exclude>
|
||||
<TimeSpan Type="None">0</TimeSpan>
|
||||
<SizeMin Unit="None">0</SizeMin>
|
||||
<SizeMax Unit="None">0</SizeMax>
|
||||
<TimeSpan Type="None">0</TimeSpan>
|
||||
</Filter>
|
||||
<FolderPairs>
|
||||
<Pair>
|
||||
@@ -35,6 +35,7 @@
|
||||
<PostSyncCommand Condition="Completion"/>
|
||||
<LogFolder>A:\荷城工业\研究项目\1-旗舰级\东方同人TH2020\历史版本\同步日志</LogFolder>
|
||||
<EmailNotification Condition="Always"/>
|
||||
<GridViewType>Action</GridViewType>
|
||||
<Batch>
|
||||
<ProgressDialog Minimized="true" AutoClose="false"/>
|
||||
<ErrorDialog>Show</ErrorDialog>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 27 KiB |
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 8.0 KiB |
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 2.9 KiB |
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 5.0 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
366f5c2b7d0e718099c3e85a9ebf2cbf2a21cf7a6057af17e10cdb8df21f1f72
|
||||
4e2f772e3efb870291921325d240f96f8f7127093b5e0e65dca2f43393dcf94f
|
||||
|
||||
@@ -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": [
|
||||
|
||||
@@ -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": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
640e9f98257352e84ae37176833512dc5627a4b2d18e9b9603dac0bdaa9c70df
|
||||
@@ -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
|
||||
Binary file not shown.
Binary file not shown.
@@ -1 +0,0 @@
|
||||
{"documents":{"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\*":"https://raw.githubusercontent.com/Nitload-NSI/CCD_Github/0cd01ed9ddc7e151899218121d69a29650b39b34/*"}}
|
||||
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
|
||||
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
||||
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
||||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
|
||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Nitlo\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
|
||||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.9.2</NuGetToolVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<SourceRoot Include="C:\Users\Nitlo\.nuget\packages\" />
|
||||
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
|
||||
</ItemGroup>
|
||||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.net.illink.tasks\8.0.5\build\Microsoft.NET.ILLink.Tasks.props" Condition="Exists('$(NuGetPackageRoot)microsoft.net.illink.tasks\8.0.5\build\Microsoft.NET.ILLink.Tasks.props')" />
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.dotnet.ilcompiler\8.0.5\build\Microsoft.DotNet.ILCompiler.props" Condition="Exists('$(NuGetPackageRoot)microsoft.dotnet.ilcompiler\8.0.5\build\Microsoft.DotNet.ILCompiler.props')" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<PkgMicrosoft_NET_ILLink_Tasks Condition=" '$(PkgMicrosoft_NET_ILLink_Tasks)' == '' ">C:\Users\Nitlo\.nuget\packages\microsoft.net.illink.tasks\8.0.5</PkgMicrosoft_NET_ILLink_Tasks>
|
||||
<PkgMicrosoft_DotNet_ILCompiler Condition=" '$(PkgMicrosoft_DotNet_ILCompiler)' == '' ">C:\Users\Nitlo\.nuget\packages\microsoft.dotnet.ilcompiler\8.0.5</PkgMicrosoft_DotNet_ILCompiler>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
|
||||
@@ -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": []
|
||||
}
|
||||
@@ -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.
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -4,7 +4,12 @@
|
||||
<name>StgSharpDebug</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="M:StgSharp.Operation.GetKeyStatus(StgSharp.Graphics.Form,StgSharp.Operation.Key)">
|
||||
<member name="T:StgSharp.Graphics.View">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.View.GetKeyStatus(StgSharp.Logic.ViewModelBase,StgSharp.KeyboardKey)">
|
||||
<summary>
|
||||
Get the status of a certain key on the keyboard.
|
||||
</summary>
|
||||
@@ -14,43 +19,132 @@
|
||||
</member>
|
||||
<member name="T:StgSharp.Graphics.glLoader">
|
||||
<summary>
|
||||
Function handler to load an opengl function by serching its name.
|
||||
Function handler to load an opengl function by searching its name.
|
||||
</summary>
|
||||
<param name="name">the name of the Opengl function</param>
|
||||
<returns>An intptr value representing the pointer to the function</returns>
|
||||
</member>
|
||||
<member name="T:StgSharp.Graphics.Form">
|
||||
<member name="T:StgSharp.Graphics.GL.BufferObjectBase">
|
||||
<summary>
|
||||
Interface of all kinds OpenGL buffer objects
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StgSharp.Graphics.GL.BufferObjectBase.Item(System.Int32)">
|
||||
<summary>
|
||||
Get the only handle to one of the Object instance
|
||||
</summary>
|
||||
<param name="index"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.GL.BufferObjectBase.Bind(System.Int32)">
|
||||
<summary>
|
||||
Bind a buffer instance to OpenGL
|
||||
</summary>
|
||||
<param name="index">Index of handle of the object in this instance to be bind</param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.GL.BufferObjectBase.ToString">
|
||||
<inheritdoc/>
|
||||
</member>
|
||||
<member name="T:StgSharp.Graphics.GL.ElementBuffer">
|
||||
<summary>
|
||||
A collection of handle to Element Buffer Object in OpenglFunc.
|
||||
Each <see langword="uint"/> value indexed from instance of this class this
|
||||
is the only handle to one Element Buffer Object.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.GL.FrameBuffer.Bind(System.Int32)">
|
||||
<summary>
|
||||
Bind the frame buffer object with name frame buffer to the frame buffer target specified by target.
|
||||
<see langword="FrameBufferTarget.All"/> will be set as default target.
|
||||
</summary>
|
||||
<param name="index">Index of object to be binded in handle set</param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.GL.FrameBuffer.Bind(StgSharp.Graphics.GL.FrameBufferTarget,System.Int32)">
|
||||
<summary>
|
||||
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.
|
||||
</summary>
|
||||
<param name="target">The frame buffer target of the binding operation.</param>
|
||||
<param name="index">Index of object to be binded in handle set</param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.GL.TextureGL.LoadTexture(System.Int32,StgSharp.Graphics.Image)">
|
||||
<summary>
|
||||
</summary>
|
||||
<param name="index"> </param>
|
||||
<param name="i"> </param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.GL.VertexBuffer.WriteMatrixData``1(System.Int32,``0,StgSharp.Graphics.GL.BufferUsage)">
|
||||
<summary>
|
||||
Set data to current vertex buffer object
|
||||
</summary>
|
||||
<typeparam name="T">Type of bufferData</typeparam>
|
||||
<param name="index">Index to find certain VBO in this instance</param>
|
||||
<param name="bufferData">Data to write in</param>
|
||||
<param name="usage">How OpenGL use these data, defined by <see cref="T:StgSharp.Graphics.GL.BufferUsage"/></param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.GL.VertexBuffer.WriteScalerData``1(System.Int32,``0[],StgSharp.Graphics.GL.BufferUsage)">
|
||||
<summary>
|
||||
Set data to current vertex buffer object
|
||||
</summary>
|
||||
<typeparam name="T">Type of bufferData</typeparam>
|
||||
<param name="index">Index to find certain VBO in this instance</param>
|
||||
<param name="bufferArray">Data to write in</param>
|
||||
<param name="usage">How OpenGL use these data, defined by <see cref="T:StgSharp.Graphics.GL.BufferUsage"/></param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.GL.VertexBuffer.WriteScalerData``1(System.Int32,System.ReadOnlySpan{``0},StgSharp.Graphics.GL.BufferUsage)">
|
||||
<summary>
|
||||
Set data to current vertex buffer object
|
||||
</summary>
|
||||
<typeparam name="T">Type of bufferData</typeparam>
|
||||
<param name="index">Index to find certain VBO in this instance</param>
|
||||
<param name="scalerSpan">A <see cref="T:System.Span`1"/> of data to write in</param>
|
||||
<param name="usage">How OpenGL use these data, defined by <see cref="T:StgSharp.Graphics.GL.BufferUsage"/></param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.GL.VertexBuffer.WriteVectorData``1(System.Int32,System.ReadOnlySpan{``0},StgSharp.Graphics.GL.BufferUsage)">
|
||||
<summary>
|
||||
Set data to current vertex buffer object
|
||||
</summary>
|
||||
<typeparam name="T">Type of bufferData</typeparam>
|
||||
<param name="index">Index to find certain VBO in this instance</param>
|
||||
<param name="vectorSpan">A <see cref="T:System.Span`1"/> of data to write in</param>
|
||||
<param name="usage">How OpenGL use these data, defined by <see cref="T:StgSharp.Graphics.GL.BufferUsage"/></param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.GL.VertexBuffer.WriteVectorData``1(System.Int32,``0[],StgSharp.Graphics.GL.BufferUsage)">
|
||||
<summary>
|
||||
Set data to current vertex buffer object
|
||||
</summary>
|
||||
<typeparam name="T">Type of bufferData</typeparam>
|
||||
<param name="index">Index to find certain VBO in this instance</param>
|
||||
<param name="vectorArray">A array of data to write in</param>
|
||||
<param name="usage">How OpenGL use these data, defined by <see cref="T:StgSharp.Graphics.GL.BufferUsage"/></param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.GL.VertexBuffer.Unbind">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StgSharp.Graphics.Form.Height">
|
||||
<member name="M:StgSharp.Graphics.GL.glManager.LoadGLapi(StgSharp.Graphics.ViewPort)">
|
||||
<summary>
|
||||
Height of this form, represent in <see cref="T:System.Int32"/>
|
||||
Load all supported OpenGL APIs and bind them to given <see cref="T:StgSharp.Graphics.ViewPort"/> context.
|
||||
</summary>
|
||||
<param name="vp">The <see cref="T:StgSharp.Graphics.ViewPort"/> used as current OpenGL context</param>
|
||||
</member>
|
||||
<member name="P:StgSharp.Graphics.Form.Size">
|
||||
<member name="M:StgSharp.Graphics.GL.glManager.LoadGLfunc(System.String)">
|
||||
<summary>
|
||||
Width of this form, represent in <see cref="T:System.Int32"/>
|
||||
Get the function pointer of given OpenGL api name
|
||||
</summary>
|
||||
<param name="name">ContextName of the OpenGL api</param>
|
||||
<returns>The funtion pointer of the api in stream of <see cref="T:System.IntPtr"/></returns>
|
||||
</member>
|
||||
<member name="P:StgSharp.Graphics.Form.Width">
|
||||
<member name="M:StgSharp.Graphics.GL.glFunc.BindFrameBuffer(StgSharp.Graphics.GL.FrameBufferTarget,StgSharp.Graphics.glHandle)">
|
||||
<summary>
|
||||
Width of this form, represent in <see cref="T:System.Int32"/>
|
||||
Bind a frame buffer to a frame buffer target
|
||||
Same function as <see href="https://docs.gl/gl3/glBindFramebuffer">glBindFramebuffer</see>.
|
||||
</summary>
|
||||
<param name="target"> The frame buffer target of the binding operation.</param>
|
||||
<param name="handle"> The handle of the frame buffer object to bind.</param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.Form.Init">
|
||||
<summary>
|
||||
Necessary operation to init graphic elements this form.
|
||||
</summary>
|
||||
<param name="gl">OpenGL library binded to current form.</param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.Form.Main">
|
||||
<summary>
|
||||
Behaviour of current form when in a frame cycle.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.Form.MakeAsCurrentContext">
|
||||
<member name="M:StgSharp.Graphics.GL.glRenderStream.MakeAsCurrentContext">
|
||||
<summary>
|
||||
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.
|
||||
</exception>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.Form.SetMetadata(System.Int32,System.Int32,System.String,System.IntPtr,StgSharp.Graphics.Form)">
|
||||
<member name="M:StgSharp.Graphics.GL.glRenderStream.CreateElementBuffer(System.Int32)">
|
||||
<summary>
|
||||
Set all necessary metadata to current form instance
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.Form.SetSize(StgSharp.Math.vec2d)">
|
||||
<summary>
|
||||
Resize the current form
|
||||
</summary>
|
||||
<param name="size">
|
||||
A <see cref="T:StgSharp.Math.vec2d"/> (width,height) representing the new size of current form
|
||||
</param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.Form.SetSize(System.Int32,System.Int32)">
|
||||
<summary>
|
||||
Resize the current form
|
||||
</summary>
|
||||
<param name="width">New width of the window</param>
|
||||
<param name="height">New height of the window</param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.Form.SetSizeLimit(StgSharp.Math.vec2d,StgSharp.Math.vec2d)">
|
||||
<summary>
|
||||
Set the size limit of current form
|
||||
</summary>
|
||||
<param name="minSize">
|
||||
Minimun size of current form. In form of a <see cref="T:StgSharp.Math.vec2d"/> of (width,height)
|
||||
</param>
|
||||
<param name="maxSize">
|
||||
Maximum size of current form. In form of a <see cref="T:StgSharp.Math.vec2d"/> of (width,height)
|
||||
</param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.Form.SetSizeLimit(System.Int32,System.Int32,System.Int32,System.Int32)">
|
||||
<summary>
|
||||
Set the size limit of current form
|
||||
</summary>
|
||||
<param name="minWidth">Minimum width of current form</param>
|
||||
<param name="minHeight">Minimum height of current form</param>
|
||||
<param name="maxWidth">Maximum width of current form</param>
|
||||
<param name="maxHeight">Maximum height of current form</param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.Form.Show">
|
||||
<summary>
|
||||
Init this form and render it on screen, and respond with operation
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.Form.CreateElementBuffer(System.Int32)">
|
||||
<summary>
|
||||
Create a set of <see cref="T:StgSharp.Graphics.ElementBuffer"/>.
|
||||
Create a set of <see cref="T:StgSharp.Graphics.GL.ElementBuffer"/>.
|
||||
</summary>
|
||||
<param name="count">Amount of EBO to be created.</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.Form.CreateTexture(System.Int32)">
|
||||
<member name="M:StgSharp.Graphics.GL.glRenderStream.CreateTexture(System.Int32)">
|
||||
<summary>
|
||||
Create a sets of <see cref="T:StgSharp.Graphics.Texture"/>
|
||||
Create a sets of <see cref="T:StgSharp.Graphics.GL.TextureGL"/>
|
||||
</summary>
|
||||
<param name="count">Amount of textures to be crated.</param>
|
||||
<param name="count">Amount of textures to be created.</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.Form.CreateVertexArray(System.Int32)">
|
||||
<member name="M:StgSharp.Graphics.GL.glRenderStream.CreateVertexArray(System.Int32)">
|
||||
<summary>
|
||||
Create a set of <see cref="T:StgSharp.Graphics.VertexArray"/>.
|
||||
Create a set of <see cref="T:StgSharp.Graphics.GL.VertexArray"/>.
|
||||
</summary>
|
||||
<param name="count">Amount of VAO to be crated.</param>
|
||||
<param name="count">Amount of VAO to be created.</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.Form.CreateVertexBuffer(System.Int32)">
|
||||
<member name="M:StgSharp.Graphics.GL.glRenderStream.CreateVertexBuffer(System.Int32)">
|
||||
<summary>
|
||||
Create aset of <see cref="T:StgSharp.Graphics.VertexBuffer"/>.
|
||||
Create a set of <see cref="T:StgSharp.Graphics.GL.VertexBuffer"/>.
|
||||
</summary>
|
||||
<param name="count">Amount of Object to be created.</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.Form.CreateShaderProgram">
|
||||
<member name="M:StgSharp.Graphics.GL.glRenderStream.CreateShaderProgram">
|
||||
<summary>
|
||||
Create an instance of <see cref="T:StgSharp.Graphics.Shader"/> program
|
||||
Create an instance of <see cref="T:StgSharp.Graphics.GL.Shader"/> program
|
||||
</summary>
|
||||
<returns>New instance of <see cref="T:StgSharp.Graphics.Shader"/> instance. </returns>
|
||||
<returns>New instance of <see cref="T:StgSharp.Graphics.GL.Shader"/> instance. </returns>
|
||||
</member>
|
||||
<member name="T:StgSharp.Graphics.RenderActivityAttribute">
|
||||
<member name="M:StgSharp.Graphics.GL.Shader.AttachTo(System.Int32,StgSharp.Graphics.GL.ShaderProgram)">
|
||||
<summary>
|
||||
Mark that a method in a <see cref="T:StgSharp.Graphics.Form"/>
|
||||
should be called when rendering.
|
||||
Attach one shader code to a shader program.
|
||||
</summary>
|
||||
<param name="target">Shader program to attach</param>
|
||||
<param name="index">Index of shader code in current shader code set.</param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.GL.ShaderProgram.#ctor(StgSharp.Graphics.GL.glRenderStream)">
|
||||
<summary>
|
||||
Init a program with no shader attached.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StgSharp.Graphics.RenderPriority">
|
||||
<member name="M:StgSharp.Graphics.GL.ShaderProgram.GetUniform``1(System.String)">
|
||||
<summary>
|
||||
Priority level of a render activity.
|
||||
Get a uniform form current shader,
|
||||
the value type of the uniform should be provided.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:StgSharp.Graphics.RenderPriority.Pre_1">
|
||||
<summary>
|
||||
One level higher than <see cref="F:StgSharp.Graphics.RenderPriority.Default"/>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:StgSharp.Graphics.RenderPriority.Pre_2">
|
||||
<summary>
|
||||
Two level higher than <see cref="F:StgSharp.Graphics.RenderPriority.Default"/>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:StgSharp.Graphics.RenderPriority.Pre_3">
|
||||
<summary>
|
||||
Three level higher than <see cref="F:StgSharp.Graphics.RenderPriority.Default"/>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:StgSharp.Graphics.RenderPriority.Aft_1">
|
||||
<summary>
|
||||
One level lower than <see cref="F:StgSharp.Graphics.RenderPriority.Default"/>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:StgSharp.Graphics.RenderPriority.Aft_2">
|
||||
<summary>
|
||||
Two level lower than <see cref="F:StgSharp.Graphics.RenderPriority.Default"/>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:StgSharp.Graphics.RenderPriority.Aft_3">
|
||||
<summary>
|
||||
Three level lower than <see cref="F:StgSharp.Graphics.RenderPriority.Default"/>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:StgSharp.Graphics.RenderPriority.Highest">
|
||||
<summary>
|
||||
Highest priority, in <see cref="T:StgSharp.Graphics.RenderPriority"/>, it is <see cref="F:StgSharp.Graphics.RenderPriority.Pre_3"/>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:StgSharp.Graphics.RenderPriority.Default">
|
||||
<summary>
|
||||
Default priority, usually <see cref="M:StgSharp.Graphics.Form.Main"/> is in this priority.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:StgSharp.Graphics.RenderPriority.Least">
|
||||
<summary>
|
||||
Lowest priority, in <see cref="T:StgSharp.Graphics.RenderPriority"/>, it is <see cref="F:StgSharp.Graphics.RenderPriority.Aft_3"/>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StgSharp.Graphics.BufferObjectBase">
|
||||
<summary>
|
||||
Interface of all kinds OpenGL buffer objects
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StgSharp.Graphics.BufferObjectBase.Item(System.Int32)">
|
||||
<summary>
|
||||
Get the only handle to one of the Object instance
|
||||
</summary>
|
||||
<param name="index"></param>
|
||||
<param name="name">ContextName of the Uniform in shader code</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.BufferObjectBase.Bind(System.Int32)">
|
||||
<member name="M:StgSharp.Graphics.GL.ShaderProgram.GetUniform``2(System.String)">
|
||||
<summary>
|
||||
Bind a buffer instance to OpenGL
|
||||
Get a uniform form current shader,
|
||||
the value type of the uniform should be provided.
|
||||
</summary>
|
||||
<param name="index">Index of handle of the object in this instance to be bind</param>
|
||||
<param name="name">ContextName of the Uniform in shader code</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.BufferObjectBase.ToString">
|
||||
<inheritdoc/>
|
||||
</member>
|
||||
<member name="T:StgSharp.Graphics.ElementBuffer">
|
||||
<member name="M:StgSharp.Graphics.GL.ShaderProgram.GetUniform``3(System.String)">
|
||||
<summary>
|
||||
A collection of handle to Element Buffer Object in OpenGL.
|
||||
Each <see langword="uint"/> 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.
|
||||
</summary>
|
||||
<param name="name">ContextName of the Uniform in shader code</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.GL.ShaderProgram.GetUniform``4(System.String)">
|
||||
<summary>
|
||||
Get a uniform form current shader,
|
||||
the value type of the uniform should be provided.
|
||||
</summary>
|
||||
<param name="name">ContextName of the Uniform in shader code</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.GL.ShaderProgram.Link">
|
||||
<summary>
|
||||
Link the shader to current context.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.FrameBuffer.Bind(System.Int32)">
|
||||
<member name="M:StgSharp.Graphics.GL.ShaderProgram.Use">
|
||||
<summary>
|
||||
Bind the frame buffer object with name frame buffer to the frame buffer target specified by target.
|
||||
<see langword="FrameBufferTarget.All"/> will be set as default target.
|
||||
Let the current context use this shader.
|
||||
</summary>
|
||||
<param name="index">Index of object to be binded in handle set</param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.FrameBuffer.Bind(StgSharp.Graphics.FrameBufferTarget,System.Int32)">
|
||||
<summary>
|
||||
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.
|
||||
</summary>
|
||||
<param name="target">The frame buffer target of the binding operation.</param>
|
||||
<param name="index">Index of object to be binded in handle set</param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.Texture.LoadTexture(System.Int32,System.String,StgSharp.Graphics.ImageLoader)">
|
||||
<summary>
|
||||
</summary>
|
||||
<param name="name"> </param>
|
||||
<param name="index"> </param>
|
||||
<param name="loader"> </param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.VertexBuffer.SetValue``1(System.Int32,``0,StgSharp.Graphics.BufferUsage)">
|
||||
<summary>
|
||||
Set data to current vertex buffer object
|
||||
</summary>
|
||||
<typeparam name="T">Type of bufferData</typeparam>
|
||||
<param name="index">Index to find certain VBO in this instance</param>
|
||||
<param name="bufferData">Data to write in</param>
|
||||
<param name="usage">How OpenGL use these data, defined by <see cref="T:StgSharp.Graphics.BufferUsage"/></param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.VertexBuffer.SetValueArray``1(System.Int32,``0[],StgSharp.Graphics.BufferUsage)">
|
||||
<summary>
|
||||
Set data to current vertex buffer object
|
||||
</summary>
|
||||
<typeparam name="T">Type of bufferData</typeparam>
|
||||
<param name="index">Index to find certain VBO in this instance</param>
|
||||
<param name="bufferArray">A array of data to write in</param>
|
||||
<param name="usage">How OpenGL use these data, defined by <see cref="T:StgSharp.Graphics.BufferUsage"/></param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.VertexBuffer.Unbind">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.glManager.LoadGLapi(StgSharp.Graphics.Form)">
|
||||
<summary>
|
||||
Load all aupportable OpenGL APIs and bind them to given <see cref="T:StgSharp.Graphics.Form"/> context.
|
||||
</summary>
|
||||
<param name="form">The <see cref="T:StgSharp.Graphics.Form"/> used as current OpenGL context</param>
|
||||
<param name="loader">A delegate to get address of OprnGL api</param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.glManager.LoadGLfunc(System.String)">
|
||||
<summary>
|
||||
Get the function pointer of given OpenGL api name
|
||||
</summary>
|
||||
<param name="name">Name of the OpenGL api</param>
|
||||
<returns>The funtion pointer of the api in form of <see cref="T:System.IntPtr"/></returns>
|
||||
</member>
|
||||
<member name="T:StgSharp.Graphics.glHandle">
|
||||
<summary>
|
||||
@@ -300,20 +260,12 @@
|
||||
This <see langword="glHandle"/> will be not usable.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.GL.BindFrameBuffer(StgSharp.Graphics.FrameBufferTarget,StgSharp.Graphics.glHandle)">
|
||||
<summary>
|
||||
Bind a frame buffer to a frame buffer target
|
||||
Same function as <see href="https://docs.gl/gl3/glBindFramebuffer">glBindFramebuffer</see>.
|
||||
</summary>
|
||||
<param name="target"> The frame buffer target of the binding operation.</param>
|
||||
<param name="handle"> The handle of the frame buffer object to bind.</param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.ShaderEdit.IglConvertable.SetAllUniforms">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.ShaderEdit.IglConvertable.GainAllUniforms(StgSharp.Graphics.ShaderProgram,System.String[])">
|
||||
<member name="M:StgSharp.Graphics.ShaderEdit.IglConvertable.GainAllUniforms(StgSharp.Graphics.GL.ShaderProgram,System.String[])">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
@@ -329,79 +281,39 @@
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.Shader.AttachTo(System.Int32,StgSharp.Graphics.ShaderProgram)">
|
||||
<member name="M:StgSharp.Graphics.RenderStream.SetSizeLimit(System.Int32,System.Int32,System.Int32,System.Int32)">
|
||||
<summary>
|
||||
Attach one shader code to a shader program.
|
||||
Set the size limit of current form
|
||||
</summary>
|
||||
<param name="target">Shader program to attach</param>
|
||||
<param name="index">Index of shader code in current shader code set.</param>
|
||||
<param name="minWidth">Minimum width of current form</param>
|
||||
<param name="minHeight">Minimum height of current form</param>
|
||||
<param name="maxWidth">Maximum width of current form</param>
|
||||
<param name="maxHeight">Maximum height of current form</param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.ShaderProgram.#ctor(StgSharp.Graphics.Form)">
|
||||
<member name="M:StgSharp.Graphics.RenderStream.NativeCameraUniform(StgSharp.Graphics.GL.ShaderProgram,System.String)">
|
||||
<summary>
|
||||
Init a program with no shader attached.
|
||||
Get <see cref="T:StgSharp.Graphics.GL.Uniform`1"/>(T is <see cref="T:StgSharp.Math.Matrix44"/>) 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.
|
||||
</summary>
|
||||
<param name="source">Shader using this camera</param>
|
||||
<param name="name">ContextName of projection camera named in shader</param>
|
||||
<returns>
|
||||
<see cref="T:StgSharp.Graphics.GL.Uniform`1"/>(T is <see cref="T:StgSharp.Math.Matrix44"/>) representing
|
||||
projection matrix in shader program.
|
||||
</returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.ShaderProgram.GetUniform``1(System.String)">
|
||||
<member name="M:StgSharp.Graphics.Camera.GainAllUniforms(StgSharp.Graphics.GL.ShaderProgram,System.String[])">
|
||||
<summary>
|
||||
Get a uniform form current shader,
|
||||
the value type of the uniform should be provided.
|
||||
</summary>
|
||||
<param name="name">Name of the Uniform in shader code</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.ShaderProgram.GetUniform``2(System.String)">
|
||||
<summary>
|
||||
Get a uniform form current shader,
|
||||
the value type of the uniform should be provided.
|
||||
</summary>
|
||||
<param name="name">Name of the Uniform in shader code</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.ShaderProgram.GetUniform``3(System.String)">
|
||||
<summary>
|
||||
Get a uniform form current shader,
|
||||
the value type of the uniform should be provided.
|
||||
</summary>
|
||||
<param name="name">Name of the Uniform in shader code</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.ShaderProgram.GetUniform``4(System.String)">
|
||||
<summary>
|
||||
Get a uniform form current shader,
|
||||
the value type of the uniform should be provided.
|
||||
</summary>
|
||||
<param name="name">Name of the Uniform in shader code</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.ShaderProgram.Link">
|
||||
<summary>
|
||||
Link the shader to current context.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphics.ShaderProgram.Use">
|
||||
<summary>
|
||||
Let the current context use this shader.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StgSharp.IEntity.CollisionSensor">
|
||||
<summary>
|
||||
A sensor used for cheking out if a bullet hit a player or something else
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StgSharp.IEntity.Location">
|
||||
<summary>
|
||||
A 2D vector presenting the position of an enemy entity, position can also be visited by X, Y
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StgSharp.IEntity.X">
|
||||
<summary>
|
||||
X position of an enenmy entity
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StgSharp.IEntity.Y">
|
||||
<summary>
|
||||
Y position of an enemy entity
|
||||
Get all uniform related to this <see cref="T:StgSharp.Graphics.Camera"/>.
|
||||
</summary>
|
||||
<param name="source">Shader program requires this camera.</param>
|
||||
<param name="uniformName">
|
||||
ContextName of all related uniforms.
|
||||
If you fallow form from <see cref="M:StgSharp.Graphics.ShaderEdit.IglConvertable.DisplayGLtypeDefinition"/>
|
||||
</param>
|
||||
<exception cref="T:System.ArgumentException"></exception>
|
||||
</member>
|
||||
<member name="M:StgSharp.StgSharp.InitGL(System.Int32,System.Int32)">
|
||||
<summary>
|
||||
@@ -418,7 +330,7 @@
|
||||
</member>
|
||||
<member name="M:StgSharp.StgSharp.WriteLog(System.String,StgSharp.LogType)">
|
||||
<summary>
|
||||
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.
|
||||
</summary>
|
||||
<param name="message">A string contains information of how current evironment runs.</param>
|
||||
<param name="logType">The severity of current message.</param>
|
||||
@@ -438,9 +350,17 @@
|
||||
<member name="T:StgSharp.Math.vec2d">
|
||||
<summary>
|
||||
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.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.Linear.Orthogonalize(StgSharp.Math.vec3d@,StgSharp.Math.vec3d@)">
|
||||
<summary>
|
||||
Orthogonalize two <see cref="T:StgSharp.Math.vec3d"/>s, let their length be 1
|
||||
and perpendicular to each other.
|
||||
</summary>
|
||||
<param name="source"></param>
|
||||
<param name="target"></param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.Scaler.ASin(System.Single)">
|
||||
<summary>
|
||||
Reurns the value of ArcSin(x)
|
||||
@@ -479,7 +399,7 @@
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.Scaler.Random">
|
||||
<member name="M:StgSharp.Math.Scaler.Random``1">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
@@ -491,14 +411,41 @@
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:StgSharp.Geometries.Arc">
|
||||
<member name="T:StgSharp.Data.Serializer">
|
||||
<summary>
|
||||
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
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StgSharp.Geometries.Circle">
|
||||
<member name="T:StgSharp.Data.Area">
|
||||
<summary>
|
||||
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 <see cref="T:StgSharp.Data.SSD"/> files reference as virtual disc.
|
||||
Data is actually stored in <see cref="T:StgSharp.Data.SSD"/>s in certain RAID mode.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StgSharp.IEntity.CollisionSensor">
|
||||
<summary>
|
||||
A sensor used for checking out if a bullet hit a player or something else
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StgSharp.IEntity.Location">
|
||||
<summary>
|
||||
A 2D vector presenting the position of an enemy entity, position can also be visited by X, Y
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StgSharp.IEntity.X">
|
||||
<summary>
|
||||
X position of an enenmy entity
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StgSharp.IEntity.Y">
|
||||
<summary>
|
||||
Y position of an enemy entity
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StgSharp.Geometries.UnusedVertexException">
|
||||
<summary>
|
||||
当几何体调用了过多的CalcVec方法时,产生UnusedVertexException异常
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:StgSharp.Geometries.PartialPlainCoordinate.origin">
|
||||
@@ -518,86 +465,16 @@
|
||||
Point to the top direction.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StgSharp.Geometries.UnusedVertexException">
|
||||
<summary>
|
||||
当几何体调用了过多的CalcVec方法时,产生UnusedVertexException异常
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StgSharp.Geometries.GetLocationHandler">
|
||||
<summary>
|
||||
Caculate the movement of a point.
|
||||
</summary>
|
||||
<param name="tick">The game tick represent time passed by</param>
|
||||
<returns>A 3d vector representing movement</returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Geometries.Line.MoveBeginPoint(System.Int32)">
|
||||
<summary>
|
||||
Move begin side of a line.
|
||||
It is recommended to override this function rather than
|
||||
loading an <see cref="T:StgSharp.Geometries.GetLocationHandler"/> with same function.
|
||||
</summary>
|
||||
<param name="tick">Time passed since current line was created.</param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Geometries.Line.MoveEndPoint(System.Int32)">
|
||||
<summary>
|
||||
Move end side of a line.
|
||||
It is recommended to override this function rather than
|
||||
loading an <see cref="T:StgSharp.Geometries.GetLocationHandler"/> with same function.
|
||||
</summary>
|
||||
<param name="tick">Time passed since current line was created.</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Geometries.Parallelogram.MoveVertex2(System.Int32)">
|
||||
<summary>
|
||||
Move the third vertix. this is a useless method for Parallelograms.
|
||||
</summary>
|
||||
<param name="tick">Current time tick</param>
|
||||
<returns></returns>
|
||||
<exception cref="T:StgSharp.Geometries.UnusedVertexException">Geometry overdefined</exception>
|
||||
</member>
|
||||
<member name="M:StgSharp.Geometries.Parallelogram.MoveVertex3(System.Int32)">
|
||||
<summary>
|
||||
Move the third vertix. This method is useless for Parallelograms.
|
||||
</summary>
|
||||
<param name="tick">Current time tick</param>
|
||||
<returns></returns>
|
||||
<exception cref="T:StgSharp.Geometries.UnusedVertexException">Geometry overdefined</exception>
|
||||
</member>
|
||||
<member name="T:StgSharp.Geometries.PlainGeometry">
|
||||
<summary>
|
||||
平面几何体。包含三角形,对称四边形,自由多边形等。最多可由16个点参数定义。
|
||||
Plain geometry only contains straight sides.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StgSharp.Geometries.PlainGeometry.BornTime">
|
||||
<summary>
|
||||
Tick time this geometry eas crested
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StgSharp.Geometries.PlainGeometry.GetAllSides">
|
||||
<summary>
|
||||
Get all sides of this <see cref="T:StgSharp.Geometries.PlainGeometry"/>.
|
||||
</summary>
|
||||
<returns>A array contains all straight <see cref="T:StgSharp.Geometries.Line"/>s of current geometry item.</returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Geometries.PlainGeometry.GetPlain">
|
||||
<summary>
|
||||
Get a flat <see cref="T:StgSharp.Geometries.Plain"/> cincide with current geometry.
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Geometries.Point.Update(System.UInt32)">
|
||||
<summary>
|
||||
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
|
||||
</summary>
|
||||
<param name="tick">Time passes since the program begin, counted by frames</param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Geometries.Rectangle.MovCenter(System.UInt32)">
|
||||
<summary>
|
||||
计算中心点相对于参考原点的位移
|
||||
Calculate movement to center
|
||||
</summary>
|
||||
<param name="tick">当前游戏刻</param>
|
||||
<param name="tick">Current time tick</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:StgSharp.Geometries.Square">
|
||||
@@ -605,80 +482,95 @@
|
||||
A square
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StgSharp.Logic.DynamicArrayList`1">
|
||||
<member name="M:StgSharp.Logic.Blueprint.RunRepeatedly(System.Func{System.Boolean})">
|
||||
<summary>
|
||||
A linear data structure with dynamic length.
|
||||
It contains a <see cref="T:System.Collections.Generic.List`1"/> of <see cref="T:System.Array"/>,
|
||||
each <see cref="T:System.Array"/> is twice longer than the former one.
|
||||
Run all nodes repeatedly until it is instructed to terminate.
|
||||
</summary>
|
||||
<typeparam name="T"></typeparam>
|
||||
<param name="terminateInstructor">Instructor to terminate all tasks. Returns <see langword="true"/> if tasks should terminate</param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Logic.DynamicArrayList`1.#ctor(System.Int32)">
|
||||
<member name="T:StgSharp.Logic.BlueprintNode">
|
||||
<summary>
|
||||
Init a <see cref="T:StgSharp.Logic.DynamicArrayList`1"/> with a certain amount of elements prepared.
|
||||
|
||||
</summary>
|
||||
<param name="count">Amount of elements to be prepared.</param>
|
||||
<risk>
|
||||
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.
|
||||
</risk>
|
||||
</member>
|
||||
<member name="M:StgSharp.Logic.DynamicArrayList`1.#ctor(System.Int32,`0)">
|
||||
<member name="M:StgSharp.Logic.ViewModelBase.Show">
|
||||
<summary>
|
||||
Create a new instance of <see cref="T:StgSharp.Logic.DynamicArrayList`1"/>,
|
||||
and fill the begining ones of elemtns as given instance.
|
||||
</summary>
|
||||
<param name="count">Amount of beginning elements to be filled</param>
|
||||
<param name="instace"></param>
|
||||
</member>
|
||||
<member name="P:StgSharp.Logic.DynamicArrayList`1.Length">
|
||||
<summary>
|
||||
Length of this <see cref="T:StgSharp.Logic.DynamicArrayList`1"/>
|
||||
Init this form and render it on screen, and respond with operation
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StgSharp.Logic.Bool2">
|
||||
<member name="P:StgSharp.Logic.ViewModelBase.Height">
|
||||
<summary>
|
||||
A pair of <see cref="T:System.Boolean"/> value
|
||||
Height of this form, represent in <see cref="T:System.Int32"/>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:StgSharp.Logic.Bool2.bool0">
|
||||
<member name="P:StgSharp.Logic.ViewModelBase.Size">
|
||||
<summary>
|
||||
The first <see cref="T:System.Boolean"/> value.
|
||||
Width of this form, represent in <see cref="T:System.Int32"/>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:StgSharp.Logic.Bool2.bool1">
|
||||
<member name="P:StgSharp.Logic.ViewModelBase.Width">
|
||||
<summary>
|
||||
The second <see cref="T:System.Boolean"/> value.
|
||||
Width of this form, represent in <see cref="T:System.Int32"/>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:StgSharp.Logic.Bool2.Value">
|
||||
<member name="M:StgSharp.Logic.ViewModelBase.SetSize(StgSharp.Math.vec2d)">
|
||||
<summary>
|
||||
A <see cref="T:System.UInt16"/> value.
|
||||
The lower byte is <see cref="F:StgSharp.Logic.Bool2.bool0"/>,
|
||||
and higher byte is <see cref="F:StgSharp.Logic.Bool2.bool1"/>.
|
||||
Resize the current form
|
||||
</summary>
|
||||
<param name="size">
|
||||
A <see cref="T:StgSharp.Math.vec2d"/> (width,height) representing the new size of current form
|
||||
</param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Logic.ViewModelBase.SetSizeLimit(StgSharp.Math.vec2d,StgSharp.Math.vec2d)">
|
||||
<summary>
|
||||
Set the size limit of current form
|
||||
</summary>
|
||||
<param name="minSize">
|
||||
Minimum size of current form. In form of a <see cref="T:StgSharp.Math.vec2d"/> of (width,height)
|
||||
</param>
|
||||
<param name="maxSize">
|
||||
Maximum size of current form. In form of a <see cref="T:StgSharp.Math.vec2d"/> of (width,height)
|
||||
</param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Logic.ViewModelBase.SetSizeLimit(System.Int32,System.Int32,System.Int32,System.Int32)">
|
||||
<summary>
|
||||
Set the size limit of current form
|
||||
</summary>
|
||||
<param name="minWidth">Minimum width of current form</param>
|
||||
<param name="minHeight">Minimum height of current form</param>
|
||||
<param name="maxWidth">Maximum width of current form</param>
|
||||
<param name="maxHeight">Maximum height of current form</param>
|
||||
</member>
|
||||
<member name="T:StgSharp.TimeSpanProvider">
|
||||
<summary>
|
||||
A microsecond-accuracy timer. It will refresh every a certain time span.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StgSharp.TimeSpanProvider.#ctor(System.Int64,StgSharpDebug.Logic.TimeSourceProviderBase)">
|
||||
<member name="M:StgSharp.TimeSpanProvider.#ctor(System.Int64,StgSharp.Logic.TimeSourceProviderBase)">
|
||||
<summary>
|
||||
Create a new <see cref="T:StgSharp.TimeSpanProvider"/> and define the length of time span. Length of a single time span is defined in microseconds.
|
||||
</summary>
|
||||
<param name="spanLength"></param>
|
||||
<param name="spanMicroSeconds"></param>
|
||||
<param name="provider"></param>
|
||||
</member>
|
||||
<member name="M:StgSharp.TimeSpanProvider.#ctor(System.Double,StgSharpDebug.Logic.TimeSourceProviderBase)">
|
||||
<member name="M:StgSharp.TimeSpanProvider.#ctor(System.Double,StgSharp.Logic.TimeSourceProviderBase)">
|
||||
<summary>
|
||||
Create a new <see cref="T:StgSharp.TimeSpanProvider"/> and define the length of time span.
|
||||
Length of a single time span is defined in seconds.
|
||||
</summary>
|
||||
<param name="spanLength"></param>
|
||||
<param name="spanSeconds"></param>
|
||||
<param name="provider"></param>
|
||||
</member>
|
||||
<member name="M:StgSharp.TimeSpanProvider.#ctor(System.Int64,System.Int32,StgSharpDebug.Logic.TimeSourceProviderBase)">
|
||||
<member name="M:StgSharp.TimeSpanProvider.#ctor(System.Int64,System.Int32,StgSharp.Logic.TimeSourceProviderBase)">
|
||||
<summary>
|
||||
Create a new <see cref="T:StgSharp.TimeSpanProvider"/> and define the length of time span. Length of a single time span is defined in microseconds.
|
||||
</summary>
|
||||
<param name="spanLength"></param>
|
||||
<param name="maxSpan"></param>
|
||||
<param name="provider"></param>
|
||||
</member>
|
||||
<member name="P:StgSharp.TimeSpanProvider.DefaultProvider">
|
||||
@@ -691,17 +583,6 @@
|
||||
The method this <see cref="T:StgSharp.TimeSpanProvider"/> will call every time a new time span started.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StgSharp.Graphic.Camera.GainAllUniforms(StgSharp.Graphics.ShaderProgram,System.String[])">
|
||||
<summary>
|
||||
Get all uniform related to this <see cref="T:StgSharp.Graphic.Camera"/>.
|
||||
</summary>
|
||||
<param name="source">Shader program requires this camera.</param>
|
||||
<param name="uniformName">
|
||||
Name of all related uniforms.
|
||||
If you fallow form from <see cref="M:StgSharp.Graphics.ShaderEdit.IglConvertable.DisplayGLtypeDefinition"/>
|
||||
</param>
|
||||
<exception cref="T:System.ArgumentException"></exception>
|
||||
</member>
|
||||
<member name="T:Windows.Win32.Foundation.COLORREF">
|
||||
<summary>The COLORREF value is used to specify an RGB color.</summary>
|
||||
<remarks>
|
||||
|
||||
@@ -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<KeyboardKey, KeyBoardEvent> keyEventDictionary = new Dictionary<KeyboardKey, KeyBoardEvent>();
|
||||
|
||||
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<KeyEventAttribute>(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);
|
||||
|
||||
}
|
||||
@@ -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<KeyboardKey, KeyBoardEvent> keyEventDictionary = new Dictionary<KeyboardKey, KeyBoardEvent>();
|
||||
|
||||
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<KeyEventAttribute>(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);
|
||||
|
||||
}
|
||||
@@ -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<T> where T : struct
|
||||
{
|
||||
|
||||
HuffmanNodeList<T> leaves;
|
||||
|
||||
internal HuffmanTree(HuffmanNodeList<T> nodeList)
|
||||
{
|
||||
leaves = nodeList;
|
||||
}
|
||||
|
||||
public HuffmanNodeList<T> LeafList
|
||||
=> leaves;
|
||||
|
||||
public TreeNode<T> Root
|
||||
=> leaves.Last;
|
||||
|
||||
public static HuffmanTree<T> BuildHuffmanTree(List<(T, ulong)> metaData)
|
||||
{
|
||||
if (metaData.Count <= 3)
|
||||
{
|
||||
throw new Exception("Data is too little, no need to compress");
|
||||
}
|
||||
HuffmanNodeList<T> leaves = new HuffmanNodeList<T>();
|
||||
HuffmanNodeList<T> all = new HuffmanNodeList<T>();
|
||||
|
||||
foreach (var item in metaData)
|
||||
{
|
||||
leaves.Add(new TreeNode<T>(item));
|
||||
}
|
||||
|
||||
|
||||
while (leaves.Count > 2)
|
||||
{
|
||||
TreeNode<T> node, toMove;
|
||||
if (leaves.Last._frequency < leaves.BeforeLast._frequency)
|
||||
{
|
||||
if (leaves.BeforeLast._frequency < leaves.OverLast._frequency)
|
||||
{
|
||||
//第三节点最大
|
||||
node = new TreeNode<T>(leaves.BeforeLast, leaves.Last);
|
||||
toMove = leaves.RemoveAndGetLast; all.Add(toMove);
|
||||
toMove = leaves.RemoveAndGetLast; all.Add(toMove);
|
||||
leaves.Add(node);
|
||||
}
|
||||
else
|
||||
{
|
||||
//第二节点最大
|
||||
node = (leaves.Last._frequency < leaves.OverLast._frequency) ?
|
||||
(new TreeNode<T>(leaves.OverLast, leaves.Last)) :
|
||||
(new TreeNode<T>(leaves.Last, leaves.OverLast));
|
||||
toMove = leaves.RemoveAndGetLast; all.Add(toMove);
|
||||
toMove = leaves.RemoveAndGetBeforeLast; all.Add(toMove);
|
||||
leaves.Add(node);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if (leaves.Last._frequency < leaves.OverLast._frequency)
|
||||
{
|
||||
//第三节点最大
|
||||
node = new TreeNode<T>(leaves.Last, leaves.BeforeLast);
|
||||
toMove = leaves.RemoveAndGetLast; all.Add(toMove);
|
||||
toMove = leaves.RemoveAndGetLast; all.Add(toMove);
|
||||
leaves.Add(node);
|
||||
}
|
||||
else
|
||||
{
|
||||
//第一节点最大
|
||||
node = (leaves.BeforeLast._frequency < leaves.OverLast._frequency) ?
|
||||
(new TreeNode<T>(leaves.OverLast, leaves.BeforeLast)) :
|
||||
(new TreeNode<T>(leaves.BeforeLast, leaves.OverLast));
|
||||
toMove = leaves.RemoveAndGetBeforeLast; all.Add(toMove);
|
||||
toMove = leaves.RemoveAndGetBeforeLast; all.Add(toMove);
|
||||
leaves.Add(node);
|
||||
}
|
||||
}
|
||||
|
||||
leaves = new HuffmanNodeList<T>(leaves.OrderByDescending(pair => pair.frequency)
|
||||
.Select(pair => pair).ToList());
|
||||
}
|
||||
|
||||
TreeNode<T> lastOne = leaves[0];
|
||||
TreeNode<T> lastTwo = leaves[1];
|
||||
TreeNode<T> root = (lastOne.frequency > lastTwo.frequency) ?
|
||||
(new TreeNode<T>(lastOne, lastTwo)) :
|
||||
(new TreeNode<T>(lastTwo, lastOne));
|
||||
|
||||
all.Add(lastOne);
|
||||
all.Add(lastTwo);
|
||||
all.Add(root);
|
||||
|
||||
leaves = all;
|
||||
return new HuffmanTree<T>(all);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public class HuffmanNodeList<T> : List<TreeNode<T>> where T : struct
|
||||
{
|
||||
|
||||
public HuffmanNodeList() : base()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public HuffmanNodeList(IEnumerable<TreeNode<T>> values) : base(values)
|
||||
{ }
|
||||
|
||||
public TreeNode<T> BeforeLast
|
||||
=> this[Count - 2];
|
||||
|
||||
public TreeNode<T> Last
|
||||
=> this[Count - 1];
|
||||
|
||||
public TreeNode<T> OverLast
|
||||
=> this[Count - 3];
|
||||
|
||||
public TreeNode<T> RemoveAndGetBeforeLast
|
||||
{
|
||||
get
|
||||
{
|
||||
TreeNode<T> ret = this[Count - 2];
|
||||
RemoveAt(Count - 2);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public TreeNode<T> RemoveAndGetLast
|
||||
{
|
||||
get
|
||||
{
|
||||
TreeNode<T> ret = this[Count - 1];
|
||||
RemoveAt(Count - 1);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public TreeNode<T> RemoveAndGetOverLast
|
||||
{
|
||||
get
|
||||
{
|
||||
TreeNode<T> ret = this[Count - 3];
|
||||
RemoveAt(Count - 3);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public void Add(T element, ulong f)
|
||||
{
|
||||
base.Add(new TreeNode<T>(element, f));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public class TreeNode<T> where T : struct
|
||||
{
|
||||
|
||||
internal ulong _frequency;
|
||||
internal TreeNode<T> _left;
|
||||
internal TreeNode<T> _right;
|
||||
internal T? _value;
|
||||
|
||||
internal TreeNode(TreeNode<T> left, TreeNode<T> right)
|
||||
{
|
||||
_left = left;
|
||||
_right = right;
|
||||
_value = null;
|
||||
_frequency = left._frequency + right._frequency;
|
||||
}
|
||||
|
||||
public TreeNode((T, ulong) data)
|
||||
{
|
||||
_value = data.Item1;
|
||||
_frequency = data.Item2;
|
||||
|
||||
}
|
||||
|
||||
public TreeNode(T? value, ulong frequncy)
|
||||
{
|
||||
_value = value;
|
||||
_frequency = frequncy;
|
||||
|
||||
}
|
||||
|
||||
public ulong frequency => _frequency;
|
||||
|
||||
public TreeNode<T> Left => _left;
|
||||
public TreeNode<T> Right => _right;
|
||||
|
||||
public T? Value => _value;
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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<T> where T : struct
|
||||
{
|
||||
|
||||
public Dictionary<T, HuffmanKey<T>> BuildHuffmanDictionary()
|
||||
{
|
||||
Dictionary<T, HuffmanKey<T>> ret = new Dictionary<T, HuffmanKey<T>>();
|
||||
TreeNode<T> root = Root;
|
||||
HuffmanKey<T> key = new HuffmanKey<T>();
|
||||
key = key.SetSide(KeySide.Right);
|
||||
InternalBuildDictionary(ret, root, key);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public void InternalBuildDictionary(
|
||||
Dictionary<T, HuffmanKey<T>> dict,
|
||||
TreeNode<T> node,
|
||||
HuffmanKey<T> valueTemp
|
||||
)
|
||||
{
|
||||
HuffmanKey<T> nativeNode = new HuffmanKey<T>(valueTemp.bitList);
|
||||
nativeNode.AddIndexLevel();
|
||||
//检查左节点
|
||||
if (node._left.Value == null)
|
||||
{
|
||||
//左节点不是叶子节点,继续搜索
|
||||
InternalBuildDictionary(
|
||||
dict,
|
||||
node._left,
|
||||
nativeNode.SetSide(KeySide.Left));
|
||||
}
|
||||
else
|
||||
{
|
||||
//左节点是叶子节点,添加值
|
||||
dict.Add(node._left.Value.Value, nativeNode.SetSide(KeySide.Left));
|
||||
}
|
||||
//检查右节点
|
||||
if (node._right.Value == null)
|
||||
{
|
||||
//右节点不是叶子节点,继续搜索
|
||||
InternalBuildDictionary(
|
||||
dict,
|
||||
node._right,
|
||||
nativeNode.SetSide(KeySide.Right));
|
||||
}
|
||||
else
|
||||
{
|
||||
//右节点是叶子节点,添加值
|
||||
dict.Add(node._right.Value.Value, nativeNode.SetSide(KeySide.Right));
|
||||
}
|
||||
//这里检查自己是不是叶子节点
|
||||
//但是上面已经检查过了,不需要被检查
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public class HuffmanKey<T> where T : struct
|
||||
{
|
||||
|
||||
internal List<bool> bitList;
|
||||
internal BitArray code;
|
||||
|
||||
public HuffmanKey()
|
||||
{
|
||||
bitList = new List<bool>();
|
||||
bitList.Add(false);
|
||||
}
|
||||
|
||||
public HuffmanKey(List<bool> former)
|
||||
{
|
||||
bitList = new List<bool>(former);
|
||||
}
|
||||
|
||||
public bool IsSupported
|
||||
{
|
||||
get
|
||||
{
|
||||
return
|
||||
(typeof(T) == typeof(byte)) ||
|
||||
(typeof(T) == typeof(uint)) ||
|
||||
(typeof(T) == typeof(ushort)) ||
|
||||
(typeof(T) == typeof(ulong)) ||
|
||||
#if NET7_0_OR_GREATER
|
||||
typeof(T) == typeof(UInt128) ||
|
||||
#endif
|
||||
(typeof(T) == typeof(M128));
|
||||
}
|
||||
}
|
||||
|
||||
public unsafe void AddIndexLevel()
|
||||
{
|
||||
bitList.Add(true);
|
||||
}
|
||||
|
||||
public void Freeze()
|
||||
{
|
||||
if (code != null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
bitList.RemoveAt(0);
|
||||
code = new BitArray(bitList.ToArray());
|
||||
}
|
||||
|
||||
public BitArray GetBitArray()
|
||||
{
|
||||
if (code == null)
|
||||
{
|
||||
List<bool> list = new List<bool>(bitList);
|
||||
list.RemoveAt(0);
|
||||
return new BitArray(list.ToArray());
|
||||
}
|
||||
return code;
|
||||
}
|
||||
|
||||
public unsafe byte[] GetBytes()
|
||||
{
|
||||
byte[] bytes = new byte[(bitList.Count / 8) + 1];
|
||||
BitArray array = new BitArray(bitList.ToArray());
|
||||
array.CopyTo(bytes, 0);
|
||||
return bytes;
|
||||
}
|
||||
|
||||
public unsafe HuffmanKey<T> SetSide(KeySide side)
|
||||
{
|
||||
HuffmanKey<T> newKey = new HuffmanKey<T>(bitList);
|
||||
newKey.bitList[newKey.bitList.Count - 1] = side == KeySide.Left;
|
||||
return newKey;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
string str = string.Empty;
|
||||
foreach (var bit in bitList)
|
||||
{
|
||||
str += $"{bit} ";
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public enum KeySide
|
||||
{
|
||||
Left,
|
||||
Right
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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<bool> boolStream = new List<bool>(4 * stream.Length);
|
||||
int i = 0, count = 0;
|
||||
foreach (byte b in stream)
|
||||
{
|
||||
uint raw = b;
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
switch (raw & 0b11)
|
||||
{
|
||||
case (uint)BoolMap.True_0:
|
||||
boolStream.Add(true);
|
||||
break;
|
||||
case (uint)BoolMap.False_0:
|
||||
boolStream.Add(false);
|
||||
break;
|
||||
case (uint)BoolMap.None_0:
|
||||
goto end;
|
||||
default:
|
||||
throw new Exception();
|
||||
}
|
||||
raw >>= 2;
|
||||
count++;
|
||||
continue;
|
||||
end:
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
while (boolStream.Count > count)
|
||||
{
|
||||
boolStream.RemoveAt(count);
|
||||
}
|
||||
target = new BitArray(boolStream.ToArray());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Serialize a <see cref="BitArray"/>, useful when writing
|
||||
/// a Huffman tree index dictionary to file.
|
||||
/// </summary>
|
||||
/// <param name="bits"></param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="Exception"></exception>
|
||||
public static byte[] Serialize(BitArray bits)
|
||||
{
|
||||
int size = (bits.Count / 4) + 1;
|
||||
List<byte> ret = new List<byte>(size);
|
||||
int count = 0, total = 0; byte temp = new byte();
|
||||
for (int i = 0; i < bits.Count; i++)
|
||||
{
|
||||
if (count == 4)
|
||||
{
|
||||
ret.Add(temp);
|
||||
count = 0;
|
||||
temp = 0;
|
||||
total++;
|
||||
}
|
||||
switch (count)
|
||||
{
|
||||
case 0:
|
||||
temp |= (byte)(bits[i] ? BoolMap.True_0 : BoolMap.False_0);
|
||||
break;
|
||||
case 1:
|
||||
temp |= (byte)(bits[i] ? BoolMap.True_1 : BoolMap.False_1);
|
||||
break;
|
||||
case 2:
|
||||
temp |= (byte)(bits[i] ? BoolMap.True_2 : BoolMap.False_2);
|
||||
break;
|
||||
case 3:
|
||||
temp |= (byte)(bits[i] ? BoolMap.True_3 : BoolMap.False_3);
|
||||
break;
|
||||
default:
|
||||
throw new Exception();
|
||||
}
|
||||
count++;
|
||||
}
|
||||
for (; count < 4; count++)
|
||||
{
|
||||
switch (count)
|
||||
{
|
||||
case 1:
|
||||
temp |= (byte)BoolMap.None_1;
|
||||
break;
|
||||
case 2:
|
||||
temp |= (byte)BoolMap.None_2;
|
||||
break;
|
||||
case 3:
|
||||
temp |= (byte)BoolMap.None_3;
|
||||
break;
|
||||
default:
|
||||
throw new Exception();
|
||||
}
|
||||
continue;
|
||||
}
|
||||
ret.Add(temp);
|
||||
return ret.ToArray();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
internal enum BoolMap : byte
|
||||
{
|
||||
False_0 = 0b00000010,
|
||||
True_0 = 0b00000001,
|
||||
None_0 = 0b00000011,
|
||||
False_1 = 0b00001000,
|
||||
True_1 = 0b00000100,
|
||||
None_1 = 0b00001100,
|
||||
False_2 = 0b00100000,
|
||||
True_2 = 0b00010000,
|
||||
None_2 = 0b00110000,
|
||||
False_3 = 0b10000000,
|
||||
True_3 = 0b01000000,
|
||||
None_3 = 0b11000000,
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// A class contains a sets of methods to serialize several types
|
||||
/// </summary>
|
||||
public static partial class Serializer
|
||||
{
|
||||
/**/
|
||||
|
||||
public static void Deserialize(byte[] data, out Dictionary<byte, BitArray> dict)
|
||||
{
|
||||
dict = new Dictionary<byte, BitArray>();
|
||||
int stat = 0; byte key = 0;
|
||||
byte[] raw = new byte[0];
|
||||
foreach (var b in data)
|
||||
{
|
||||
switch (stat)
|
||||
{
|
||||
case 0: //getting key
|
||||
if (raw.Length != 0)
|
||||
{
|
||||
BitArray bits;
|
||||
Deserialize(raw, out bits);
|
||||
dict.Add(key, bits);
|
||||
}
|
||||
key = b;
|
||||
stat -= 1;
|
||||
break;
|
||||
case -1: //getting length
|
||||
raw = new byte[b];
|
||||
stat = b;
|
||||
break;
|
||||
default:
|
||||
raw[raw.Length - stat] = b;
|
||||
stat--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**/
|
||||
public static byte[] Serialize(Dictionary<byte, BitArray> table)
|
||||
{
|
||||
using (var stream = new MemoryStream())
|
||||
{
|
||||
foreach (var pair in table)
|
||||
{
|
||||
stream.WriteByte(pair.Key);
|
||||
|
||||
byte[] keyCode = Serialize(pair.Value);
|
||||
stream.WriteByte((byte)keyCode.Length);
|
||||
|
||||
stream.Write(keyCode, 0, keyCode.Length);
|
||||
}
|
||||
return stream.ToArray();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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<int,vec3d> movBegin;
|
||||
internal Func<int,vec3d> 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();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Move begin side of a line.
|
||||
/// It is recommended to override this function rather than
|
||||
/// loading an <see cref="Func{T, TResult}"/> with same function.
|
||||
/// </summary>
|
||||
/// <param name="tick">Time passed since current line was created.</param>
|
||||
public virtual vec3d MoveBeginPoint(int tick)
|
||||
{
|
||||
return movBegin(time);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Move end side of a line.
|
||||
/// It is recommended to override this function rather than
|
||||
/// loading an <see cref="Func{T,TResult}"/> with same function.
|
||||
/// </summary>
|
||||
/// <param name="tick">Time passed since current line was created.</param>
|
||||
/// <returns></returns>
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
/// <summary>
|
||||
/// 平面几何体。包含三角形,对称四边形,自由多边形等。最多可由16个点参数定义。
|
||||
/// </summary>
|
||||
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();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Tick time this geometry eas crested
|
||||
/// </summary>
|
||||
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();
|
||||
|
||||
/// <summary>
|
||||
/// Get all sides of this <see cref="PlainGeometry"/>.
|
||||
/// </summary>
|
||||
/// <returns>A array contains all straight <see cref="Line"/>s of current geometry item.</returns>
|
||||
public abstract Line[] GetAllSides();
|
||||
|
||||
/// <summary>
|
||||
/// Get a flat <see cref="Plain"/> cincide with current geometry.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
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();
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
/// <summary>
|
||||
/// Mark that a method in a <see cref="Form"/>
|
||||
/// should be called when rendering.
|
||||
/// </summary>
|
||||
[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;
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Priority level of a render activity.
|
||||
/// </summary>
|
||||
public enum RenderPriority : int
|
||||
{
|
||||
/// <summary>
|
||||
/// One level higher than <see cref="RenderPriority.Default"/>.
|
||||
/// </summary>
|
||||
Pre_1 = -1,
|
||||
/// <summary>
|
||||
/// Two level higher than <see cref="RenderPriority.Default"/>.
|
||||
/// </summary>
|
||||
Pre_2 = -2,
|
||||
/// <summary>
|
||||
/// Three level higher than <see cref="RenderPriority.Default"/>.
|
||||
/// </summary>
|
||||
Pre_3 = -3,
|
||||
/// <summary>
|
||||
/// One level lower than <see cref="RenderPriority.Default"/>.
|
||||
/// </summary>
|
||||
Aft_1 = 1,
|
||||
/// <summary>
|
||||
/// Two level lower than <see cref="RenderPriority.Default"/>.
|
||||
/// </summary>
|
||||
Aft_2 = 2,
|
||||
/// <summary>
|
||||
/// Three level lower than <see cref="RenderPriority.Default"/>.
|
||||
/// </summary>
|
||||
Aft_3 = 3,
|
||||
/// <summary>
|
||||
/// Highest priority, in <see cref="RenderPriority"/>, it is <see cref="Pre_3"/>.
|
||||
/// </summary>
|
||||
Highest = Pre_3,
|
||||
/// <summary>
|
||||
/// Default priority, usually <see cref="Form.Main"/> is in this priority.
|
||||
/// </summary>
|
||||
Default = 0,
|
||||
/// <summary>
|
||||
/// Lowest priority, in <see cref="RenderPriority"/>, it is <see cref="Aft_3"/>.
|
||||
/// </summary>
|
||||
Least = Aft_3,
|
||||
}
|
||||
}
|
||||
@@ -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<IntPtr> _funcQueue;
|
||||
private readonly unsafe GLcontext* currentContext;
|
||||
|
||||
public unsafe FrameOperationBuffer()
|
||||
{
|
||||
currentContext = GL.api;
|
||||
_funcQueue = new ConcurrentQueue<IntPtr>();
|
||||
}
|
||||
|
||||
public unsafe bool CallNext()
|
||||
{
|
||||
if (_funcQueue.TryDequeue(out _func))
|
||||
{
|
||||
((delegate*<FrameOperationBuffer, GLcontext*, void>)_func)(this, currentContext);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
#region gl param queue
|
||||
|
||||
private ConcurrentQueue<M128> paramQueue = new ConcurrentQueue<M128>();
|
||||
private ConcurrentQueue<glArrayHandle> streamQueue = new ConcurrentQueue<glArrayHandle>();
|
||||
|
||||
[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<uint>(0, u0);
|
||||
this.ParamEnqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void ParamEnqueue(uint u0, uint u1)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Write<uint>(0, u0);
|
||||
m.Write<uint>(1, u1);
|
||||
this.ParamEnqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void ParamEnqueue(ulong u0, ulong u1)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Write<ulong>(0, u0);
|
||||
m.Write<ulong>(1, u1);
|
||||
this.ParamEnqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void ParamEnqueue(uint u0, uint u1, uint u2)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Write<uint>(0, u0);
|
||||
m.Write<uint>(1, u1);
|
||||
m.Write<uint>(2, u2);
|
||||
this.ParamEnqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void ParamEnqueue(float f0, float f1, float f2)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Write<float>(0, f0);
|
||||
m.Write<float>(1, f1);
|
||||
this.ParamEnqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void ParamEnqueue(float f0, float f1, float f2, float f3)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Write<float>(0, f0);
|
||||
m.Write<float>(1, f1);
|
||||
m.Write<float>(2, f2);
|
||||
m.Write<float>(3, f3);
|
||||
this.ParamEnqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void ParamEnqueue(IntPtr p0, IntPtr p1)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Write<ulong>(0, (ulong)p0);
|
||||
m.Write<ulong>(1, (ulong)p1);
|
||||
this.ParamEnqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void ParamEnqueue(IntPtr p)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Write<ulong>(0, (ulong)p);
|
||||
this.ParamEnqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public unsafe void ParamEnqueue(glHandle handle)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Write<ulong>(0, (ulong)handle.valuePtr);
|
||||
this.ParamEnqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public unsafe void ParamEnqueue(glHandle handle, glHandle handle1)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Write<ulong>(0, (ulong)handle.valuePtr);
|
||||
m.Write<ulong>(1, (ulong)handle1.valuePtr);
|
||||
this.ParamEnqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void ParamEnqueue(int i0)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Write<int>(0, i0);
|
||||
this.ParamEnqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void ParamEnqueue(int i0, int i1)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Write<int>(0, i0);
|
||||
m.Write<int>(1, i1);
|
||||
this.ParamEnqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void ParamEnqueue(int i0, int i1, int i2)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Write<int>(0, i0);
|
||||
m.Write<int>(1, i1);
|
||||
m.Write<int>(2, i2);
|
||||
this.ParamEnqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void ParamEnqueue(int i0, int i1, int i2, int i3)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Write<int>(0, i0);
|
||||
m.Write<int>(1, i1);
|
||||
m.Write<int>(2, i2);
|
||||
m.Write<int>(3, i3);
|
||||
this.ParamEnqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void ParamEnqueue(string str)
|
||||
{
|
||||
byte[] code = Encoding.UTF8.GetBytes(str);
|
||||
streamQueue.Enqueue(glArrayHandle.Alloc<byte>(code));
|
||||
//Console.WriteLine(paramQueue.Count + streamQueue.Count);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void ParamEnqueue<T>(T[] array) where T : struct
|
||||
{
|
||||
streamQueue.Enqueue(glArrayHandle.Alloc<T>(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<T>(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<int>(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<int>(0);
|
||||
i1 = ret.Read<int>(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<int>(0);
|
||||
i1 = ret.Read<int>(1);
|
||||
i2 = ret.Read<int>(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<int>(0);
|
||||
i1 = ret.Read<int>(1);
|
||||
i2 = ret.Read<int>(2);
|
||||
i3 = ret.Read<int>(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<ulong>(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<ulong>(0);
|
||||
p1 = (IntPtr)ret.Read<ulong>(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<uint>(0);
|
||||
f1 = ret.Read<uint>(1);
|
||||
f2 = ret.Read<uint>(2);
|
||||
f3 = ret.Read<uint>(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<uint>(0);
|
||||
f1 = ret.Read<uint>(1);
|
||||
f2 = ret.Read<uint>(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<uint>(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<uint>(0);
|
||||
u1 = ret.Read<uint>(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<uint>(0);
|
||||
u1 = ret.Read<uint>(1);
|
||||
u2 = ret.Read<uint>(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<uint>(0);
|
||||
u1 = ret.Read<uint>(1);
|
||||
u2 = ret.Read<uint>(2);
|
||||
u3 = ret.Read<uint>(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<FrameAsyncThread> threadList)
|
||||
{
|
||||
foreach (FrameAsyncThread t in threadList)
|
||||
{
|
||||
t.AsyncStart();
|
||||
}
|
||||
}
|
||||
|
||||
public static (Barrier, Barrier) CombineAsync(bool needOuterMonitor, IEnumerable<FrameAsyncThread> 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<FrameAsyncThread> 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<FrameAsyncThread> threadList)
|
||||
{
|
||||
foreach (FrameAsyncThread t in threadList)
|
||||
{
|
||||
t.Terminate();
|
||||
}
|
||||
}
|
||||
|
||||
public static void WaitAll(IEnumerable<FrameAsyncThread> threadList)
|
||||
{
|
||||
foreach (FrameAsyncThread t in threadList)
|
||||
{
|
||||
t._task.Join();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -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<IntPtr, ViewModel> activatedForms ;
|
||||
|
||||
public static void ShowForm<T>(FormFormatter f) where T : ViewModel
|
||||
{
|
||||
if (activatedForms == null)
|
||||
{
|
||||
activatedForms = new Dictionary<IntPtr, ViewModel>();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A linear data structure with dynamic length.
|
||||
/// It contains a <see cref="List{T}"/> of <see cref="Array"/>,
|
||||
/// each <see cref="Array"/> is twice longer than the former one.
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
public class DynamicArrayList<T>
|
||||
{
|
||||
|
||||
private List<T[]> 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<int> unusedMainIndex;
|
||||
|
||||
private Queue<int> unusedSubIndex;
|
||||
|
||||
public DynamicArrayList()
|
||||
{
|
||||
arrayIndexList = [new T[1]];
|
||||
length = 0;
|
||||
unusedMainIndex = new Queue<int>();
|
||||
unusedSubIndex = new Queue<int>();
|
||||
unusedMainIndex.Enqueue(0);
|
||||
unusedSubIndex.Enqueue(0);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Init a <see cref="DynamicArrayList{T}"/> with a certain amount of elements prepared.
|
||||
/// </summary>
|
||||
/// <param name="count">Amount of elements to be prepared.</param>
|
||||
public DynamicArrayList(int count)
|
||||
{
|
||||
arrayIndexList = new List<T[]>();
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Create a new instance of <see cref="DynamicArrayList{T}"/>,
|
||||
/// and fill the begining ones of elemtns as given instance.
|
||||
/// </summary>
|
||||
/// <param name="count">Amount of beginning elements to be filled</param>
|
||||
/// <param name="instace"></param>
|
||||
public DynamicArrayList(int count, T instace)
|
||||
{
|
||||
arrayIndexList = new List<T[]>();
|
||||
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;
|
||||
|
||||
/// <summary>
|
||||
/// Length of this <see cref="DynamicArrayList{T}"/>
|
||||
/// </summary>
|
||||
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<T> 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<int>(unusedMainIndex.ToArray());
|
||||
target.unusedSubIndex = new Queue<int>(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;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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<string, BlueprintNode> allNode;
|
||||
private Func<bool> terminate;
|
||||
|
||||
private int currentNodeIndex = 0;
|
||||
private List<Task> allThread;
|
||||
private List<BlueprintNode> nativeNodeList;
|
||||
private List<BlueprintNode> nodeList;
|
||||
|
||||
public Blueprint()
|
||||
{
|
||||
allThread = new List<Task>();
|
||||
nodeList = new List<BlueprintNode>();
|
||||
nativeNodeList = new List<BlueprintNode>();
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Run all nodes in current blueprint once.
|
||||
/// </summary>
|
||||
public void Run()
|
||||
{
|
||||
foreach (var t in allThread)
|
||||
{
|
||||
t.Start();
|
||||
}
|
||||
foreach (var node in nativeNodeList)
|
||||
{
|
||||
node.Run();
|
||||
}
|
||||
Task.WaitAll(allThread.ToArray());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Run all nodes repeatedly until it is instructed to terminate.
|
||||
/// </summary>
|
||||
/// <param name="terminateInstructor">Instructor to terminate all tasks. Returns <see langword="true"/> if tasks should terminate</param>
|
||||
public void RunRepeatedly(Func<bool> 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
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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<string, BlueprintPipeline> inpput,
|
||||
in Dictionary<string, BlueprintPipeline> output);
|
||||
|
||||
public abstract class BlueprintNode:IComparable<BlueprintNode>
|
||||
{
|
||||
|
||||
private Blueprint local;
|
||||
private BlueprintNodeAction mainOperation;
|
||||
|
||||
private bool levelAvailabel, nativeRequested;
|
||||
|
||||
private Dictionary<string, BlueprintPipeline> inputInterfaces;
|
||||
private Dictionary<string, BlueprintPipeline> outputInterface;
|
||||
private int level;
|
||||
private string name;
|
||||
|
||||
protected BlueprintNode(string name, BlueprintNodeAction operation)
|
||||
{
|
||||
this.levelAvailabel = false;
|
||||
this.name = name;
|
||||
mainOperation = operation;
|
||||
inputInterfaces = new Dictionary<string, BlueprintPipeline>();
|
||||
outputInterface = new Dictionary<string, BlueprintPipeline>();
|
||||
}
|
||||
|
||||
internal BlueprintNode(string name, bool isNative)
|
||||
{
|
||||
this.levelAvailabel = false;
|
||||
this.name = name;
|
||||
nativeRequested = isNative;
|
||||
inputInterfaces = new Dictionary<string, BlueprintPipeline>();
|
||||
outputInterface = new Dictionary<string, BlueprintPipeline>();
|
||||
}
|
||||
|
||||
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<string, BlueprintPipeline> InputInterfaces => inputInterfaces;
|
||||
internal Dictionary<string, BlueprintPipeline> 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<BlueprintNode>.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
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -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<M128> paramQueue;
|
||||
private ConcurrentQueue<glArrayHandle> streamQueue;
|
||||
internal GLcontext* context;
|
||||
|
||||
public GLparamQueue()
|
||||
{
|
||||
paramQueue = new ConcurrentQueue<M128>();
|
||||
streamQueue = new ConcurrentQueue<glArrayHandle>();
|
||||
}
|
||||
|
||||
[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<uint>(0, u0);
|
||||
this.Enqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(IntPtr p)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Write<ulong>(0, (ulong)p);
|
||||
this.Enqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(glHandle handle)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Write<ulong>(0, (ulong)handle.valuePtr);
|
||||
this.Enqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(int i0)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Write<int>(0, i0);
|
||||
this.Enqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(string str)
|
||||
{
|
||||
byte[] code = Encoding.UTF8.GetBytes(str);
|
||||
streamQueue.Enqueue(glArrayHandle.Alloc<byte>(code));
|
||||
Console.WriteLine(paramQueue.Count + streamQueue.Count);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue<T>(T[] array) where T : struct
|
||||
{
|
||||
streamQueue.Enqueue(glArrayHandle.Alloc<T>(array));
|
||||
Console.WriteLine(paramQueue.Count + streamQueue.Count);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(uint u0, uint u1)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Write<uint>(0, u0);
|
||||
m.Write<uint>(1, u1);
|
||||
this.Enqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(ulong u0, ulong u1)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Write<ulong>(0, u0);
|
||||
m.Write<ulong>(1, u1);
|
||||
this.Enqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(IntPtr p0, IntPtr p1)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Write<ulong>(0, (ulong)p0);
|
||||
m.Write<ulong>(1, (ulong)p1);
|
||||
this.Enqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(glHandle handle, glHandle handle1)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Write<ulong>(0, (ulong)handle.valuePtr);
|
||||
m.Write<ulong>(1, (ulong)handle1.valuePtr);
|
||||
this.Enqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(int i0, int i1)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Write<int>(0, i0);
|
||||
m.Write<int>(1, i1);
|
||||
this.Enqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(uint u0, uint u1, uint u2)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Write<uint>(0, u0);
|
||||
m.Write<uint>(1, u1);
|
||||
m.Write<uint>(2, u2);
|
||||
this.Enqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(float f0, float f1, float f2)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Write<float>(0, f0);
|
||||
m.Write<float>(1, f1);
|
||||
this.Enqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(int i0, int i1, int i2)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Write<int>(0, i0);
|
||||
m.Write<int>(1, i1);
|
||||
m.Write<int>(2, i2);
|
||||
this.Enqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(float f0, float f1, float f2, float f3)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Write<float>(0, f0);
|
||||
m.Write<float>(1, f1);
|
||||
m.Write<float>(2, f2);
|
||||
m.Write<float>(3, f3);
|
||||
this.Enqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(int i0, int i1, int i2, int i3)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Write<int>(0, i0);
|
||||
m.Write<int>(1, i1);
|
||||
m.Write<int>(2, i2);
|
||||
m.Write<int>(3, i3);
|
||||
this.Enqueue(m);
|
||||
}
|
||||
|
||||
[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)
|
||||
{
|
||||
bool ret = paramQueue.TryDequeue(out m);
|
||||
return ret;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public 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<T>(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<int>(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 p)
|
||||
{
|
||||
M128 ret;
|
||||
if (this.TryDequeue(out ret))
|
||||
{
|
||||
p = (IntPtr)ret.Read<ulong>(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)
|
||||
{
|
||||
M128 ret;
|
||||
if (this.TryDequeue(out ret))
|
||||
{
|
||||
u0 = ret.Read<uint>(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<int>(0);
|
||||
i1 = ret.Read<int>(1);
|
||||
}
|
||||
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<ulong>(0);
|
||||
p1 = (IntPtr)ret.Read<ulong>(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)
|
||||
{
|
||||
M128 ret;
|
||||
if (this.TryDequeue(out ret))
|
||||
{
|
||||
u0 = ret.Read<uint>(0);
|
||||
u1 = ret.Read<uint>(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<int>(0);
|
||||
i1 = ret.Read<int>(1);
|
||||
i2 = ret.Read<int>(2);
|
||||
}
|
||||
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<uint>(0);
|
||||
f1 = ret.Read<uint>(1);
|
||||
f2 = ret.Read<uint>(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)
|
||||
{
|
||||
M128 ret;
|
||||
if (this.TryDequeue(out ret))
|
||||
{
|
||||
u0 = ret.Read<uint>(0);
|
||||
u1 = ret.Read<uint>(1);
|
||||
u2 = ret.Read<uint>(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<int>(0);
|
||||
i1 = ret.Read<int>(1);
|
||||
i2 = ret.Read<int>(2);
|
||||
i3 = ret.Read<int>(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, out float f3)
|
||||
{
|
||||
M128 ret;
|
||||
if (this.TryDequeue(out ret))
|
||||
{
|
||||
f0 = ret.Read<uint>(0);
|
||||
f1 = ret.Read<uint>(1);
|
||||
f2 = ret.Read<uint>(2);
|
||||
f3 = ret.Read<uint>(3);
|
||||
}
|
||||
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<uint>(0);
|
||||
u1 = ret.Read<uint>(1);
|
||||
u2 = ret.Read<uint>(2);
|
||||
u3 = ret.Read<uint>(3);
|
||||
}
|
||||
else
|
||||
{
|
||||
InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
internal void SetContext(GLcontext* p)
|
||||
{
|
||||
context = p;
|
||||
}
|
||||
/**/
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup />
|
||||
</Project>
|
||||
Binary file not shown.
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
de50efab9ad17092195f29830b896b77e872265cfb93d08224b3e1a0bc0b0dca
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
is_global = true
|
||||
build_property.CsWin32InputMetadataPaths = C:\Users\Nitlo\.nuget\packages\microsoft.windows.sdk.win32metadata\55.0.45-preview\Windows.Win32.winmd|C:\Users\Nitlo\.nuget\packages\microsoft.windows.wdk.win32metadata\0.9.9-experimental\Windows.Wdk.winmd
|
||||
build_property.CsWin32InputDocPaths = C:\Users\Nitlo\.nuget\packages\microsoft.windows.sdk.win32docs\0.1.42-alpha\apidocs.msgpack
|
||||
build_property.TargetFramework = netstandard2.1
|
||||
build_property.TargetPlatformMinVersion = 7.0
|
||||
build_property.UsingMicrosoftNETSdkWeb =
|
||||
build_property.ProjectTypeGuids =
|
||||
build_property.InvariantGlobalization =
|
||||
build_property.PlatformNeutralAssembly =
|
||||
build_property.EnforceExtendedAnalyzerRules =
|
||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||
build_property.RootNamespace = StgSharp
|
||||
build_property.ProjectDir = D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharp\
|
||||
build_property.EnableComHosting =
|
||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"version": 2,
|
||||
"dgSpecHash": "ZPDe1JI7Wx6qgAfoUxccO7bepdlHRo3d3YlIJ3OaR4SOQAO2IFjQgv3H5Y8S5d37x/fP3pn350jCofkiCwCIsw==",
|
||||
"dgSpecHash": "6vH7gozY3nlutAvycQCQBpFugaBd+eT4Uj5P/nMDlmS2xt5e7Cw17gX8+p3vXVTBjKgDitDDnucb2v8GcacRcw==",
|
||||
"success": true,
|
||||
"projectFilePath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\源代码\\StgSharp\\StgSharp.csproj",
|
||||
"expectedPackageFiles": [
|
||||
|
||||
@@ -1 +1 @@
|
||||
10a5597183260351018995f463258da2d5589454468940a16d3a53d17785c9e0
|
||||
ce2864c500078b726caaf79382f20f5fe8c787b07bda81dd387eddbce2a0954f
|
||||
|
||||
@@ -1 +1 @@
|
||||
6e1c38d1590cf376451723047286bd9f89272ce1
|
||||
28f63d3bc726f046f56812aba0ce94432bcf3fa0d93682df4908bad19488c21c
|
||||
|
||||
Binary file not shown.
File diff suppressed because one or more lines are too long
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
||||
C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\ENTERPRISE\TEAM TOOLS\STATIC ANALYSIS TOOLS\\RULE SETS\NATIVERECOMMENDEDRULES.RULESET
|
||||
@@ -1 +1,40 @@
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc.bsc
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\vc143.pdb
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\vc143.idb
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\dllmain.sbr
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\mat2.sbr
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\mat3.sbr
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\mat4.sbr
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stb_image.sbr
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.sbr
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\vector.sbr
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\vector.obj
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\vector.cod
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.obj
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.cod
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stb_image.obj
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stb_image.cod
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\mat4.obj
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\mat4.cod
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\mat3.obj
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\mat3.cod
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\mat2.obj
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\mat2.cod
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\dllmain.obj
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\dllmain.cod
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc.dll
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc.pdb
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc.lib
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc.exp
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.ilk
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.tlog\bscmake.command.1.tlog
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.tlog\bscmake.read.1.tlog
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.tlog\bscmake.write.1.tlog
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.tlog\cl.command.1.tlog
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.tlog\cl.items.tlog
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.tlog\cl.read.1.tlog
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.tlog\cl.write.1.tlog
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.tlog\link.command.1.tlog
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.tlog\link.read.1.tlog
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.tlog\link.secondary.1.tlog
|
||||
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.tlog\link.write.1.tlog
|
||||
|
||||
@@ -142,6 +142,7 @@ msvcjmc ENDS
|
||||
PUBLIC __local_stdio_printf_options
|
||||
PUBLIC _vfprintf_l
|
||||
PUBLIC printf
|
||||
PUBLIC glCheckShaderStat
|
||||
PUBLIC initGL
|
||||
PUBLIC linkShaderProgram
|
||||
PUBLIC loadImageData
|
||||
@@ -149,7 +150,6 @@ PUBLIC loadGlfuncDefault
|
||||
PUBLIC unloadImageData
|
||||
PUBLIC readLog
|
||||
PUBLIC __JustMyCode_Default
|
||||
PUBLIC ??_C@_05JMLLFKBP@?$CFllu?6@ ; `string'
|
||||
PUBLIC ??_C@_0BL@MOJGOJJP@Failed?5to?5load?5OpenGL?5api?3@ ; `string'
|
||||
PUBLIC ??_C@_03OFAPEBGM@?$CFs?6@ ; `string'
|
||||
EXTRN __report_rangecheckfailure:PROC
|
||||
@@ -189,6 +189,12 @@ $pdata$printf DD imagerel $LN3
|
||||
pdata ENDS
|
||||
; COMDAT pdata
|
||||
pdata SEGMENT
|
||||
$pdata$glCheckShaderStat DD imagerel $LN4
|
||||
DD imagerel $LN4+229
|
||||
DD imagerel $unwind$glCheckShaderStat
|
||||
pdata ENDS
|
||||
; COMDAT pdata
|
||||
pdata SEGMENT
|
||||
$pdata$initGL DD imagerel $LN3
|
||||
DD imagerel $LN3+91
|
||||
DD imagerel $unwind$initGL
|
||||
@@ -208,7 +214,7 @@ pdata ENDS
|
||||
; COMDAT pdata
|
||||
pdata SEGMENT
|
||||
$pdata$loadGlfuncDefault DD imagerel $LN7
|
||||
DD imagerel $LN7+202
|
||||
DD imagerel $LN7+186
|
||||
DD imagerel $unwind$loadGlfuncDefault
|
||||
pdata ENDS
|
||||
; COMDAT pdata
|
||||
@@ -240,10 +246,6 @@ CONST SEGMENT
|
||||
??_C@_0BL@MOJGOJJP@Failed?5to?5load?5OpenGL?5api?3@ DB 'Failed to load Op'
|
||||
DB 'enGL api:', 00H ; `string'
|
||||
CONST ENDS
|
||||
; COMDAT ??_C@_05JMLLFKBP@?$CFllu?6@
|
||||
CONST SEGMENT
|
||||
??_C@_05JMLLFKBP@?$CFllu?6@ DB '%llu', 0aH, 00H ; `string'
|
||||
CONST ENDS
|
||||
; COMDAT xdata
|
||||
xdata SEGMENT
|
||||
$unwind$readLog DD 025050f01H
|
||||
@@ -314,6 +316,36 @@ $unwind$initGL DD 025051601H
|
||||
xdata ENDS
|
||||
; COMDAT voltbl
|
||||
voltbl SEGMENT
|
||||
_volmd DB 045H
|
||||
DB 0ccH
|
||||
voltbl ENDS
|
||||
; COMDAT xdata
|
||||
xdata SEGMENT
|
||||
$unwind$glCheckShaderStat DD 025054c19H
|
||||
DD 011d2322H
|
||||
DD 070160021H
|
||||
DD 05015H
|
||||
DD imagerel __GSHandlerCheck
|
||||
DD 0f8H
|
||||
xdata ENDS
|
||||
; COMDAT CONST
|
||||
CONST SEGMENT
|
||||
glCheckShaderStat$rtcName$0 DB 073H
|
||||
DB 074H
|
||||
DB 061H
|
||||
DB 074H
|
||||
DB 00H
|
||||
ORG $+11
|
||||
glCheckShaderStat$rtcVarDesc DD 024H
|
||||
DD 04H
|
||||
DQ FLAT:glCheckShaderStat$rtcName$0
|
||||
ORG $+48
|
||||
glCheckShaderStat$rtcFrameData DD 01H
|
||||
DD 00H
|
||||
DQ FLAT:glCheckShaderStat$rtcVarDesc
|
||||
CONST ENDS
|
||||
; COMDAT voltbl
|
||||
voltbl SEGMENT
|
||||
_volmd DB 045H
|
||||
DB 0a6H
|
||||
voltbl ENDS
|
||||
@@ -374,7 +406,7 @@ _TEXT SEGMENT
|
||||
$T1 = 200
|
||||
readLog PROC ; COMDAT
|
||||
|
||||
; 65 : {
|
||||
; 77 : {
|
||||
|
||||
$LN5:
|
||||
00000 40 55 push rbp
|
||||
@@ -386,7 +418,7 @@ $LN5:
|
||||
00 00 lea rcx, OFFSET FLAT:__59F96598_StgSharpC@c
|
||||
00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
||||
|
||||
; 66 : infolog[511] = '\0';
|
||||
; 78 : infolog[511] = '\0';
|
||||
|
||||
0001b b8 01 00 00 00 mov eax, 1
|
||||
00020 48 69 c0 ff 01
|
||||
@@ -407,13 +439,13 @@ $LN4@readLog:
|
||||
00 00 mov rcx, QWORD PTR $T1[rbp]
|
||||
00050 c6 04 08 00 mov BYTE PTR [rax+rcx], 0
|
||||
|
||||
; 67 : return &infolog;
|
||||
; 79 : return &infolog;
|
||||
|
||||
00054 48 8d 05 00 00
|
||||
00 00 lea rax, OFFSET FLAT:infolog
|
||||
$LN2@readLog:
|
||||
|
||||
; 68 : }
|
||||
; 80 : }
|
||||
|
||||
0005b 48 8d a5 e8 00
|
||||
00 00 lea rsp, QWORD PTR [rbp+232]
|
||||
@@ -429,7 +461,7 @@ _TEXT SEGMENT
|
||||
out$ = 224
|
||||
unloadImageData PROC ; COMDAT
|
||||
|
||||
; 60 : {
|
||||
; 72 : {
|
||||
|
||||
$LN3:
|
||||
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
||||
@@ -442,7 +474,7 @@ $LN3:
|
||||
00 00 lea rcx, OFFSET FLAT:__59F96598_StgSharpC@c
|
||||
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
||||
|
||||
; 61 : free(out->pixelPtr);
|
||||
; 73 : free(out->pixelPtr);
|
||||
|
||||
0001f 48 8b 85 e0 00
|
||||
00 00 mov rax, QWORD PTR out$[rbp]
|
||||
@@ -450,7 +482,7 @@ $LN3:
|
||||
0002a ff 15 00 00 00
|
||||
00 call QWORD PTR __imp_free
|
||||
|
||||
; 62 : }
|
||||
; 74 : }
|
||||
|
||||
00030 48 8d a5 c8 00
|
||||
00 00 lea rsp, QWORD PTR [rbp+200]
|
||||
@@ -468,7 +500,7 @@ i$1 = 40
|
||||
procName$ = 288
|
||||
loadGlfuncDefault PROC ; COMDAT
|
||||
|
||||
; 18 : {
|
||||
; 30 : {
|
||||
|
||||
$LN7:
|
||||
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
||||
@@ -481,91 +513,85 @@ $LN7:
|
||||
00 00 lea rcx, OFFSET FLAT:__59F96598_StgSharpC@c
|
||||
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
||||
|
||||
; 19 : void* ret = glfwGetProcAddress(procName);
|
||||
; 31 : void* ret = glfwGetProcAddress(procName);
|
||||
|
||||
0001f 48 8b 8d 20 01
|
||||
00 00 mov rcx, QWORD PTR procName$[rbp]
|
||||
00026 e8 00 00 00 00 call glfwGetProcAddress
|
||||
0002b 48 89 45 08 mov QWORD PTR ret$[rbp], rax
|
||||
|
||||
; 20 : printf("%llu\n", (uint64_t)ret);
|
||||
; 32 : //printf("%llu\n", (uint64_t)ret);
|
||||
; 33 : if (ret = NULL)
|
||||
|
||||
0002f 48 8b 55 08 mov rdx, QWORD PTR ret$[rbp]
|
||||
00033 48 8d 0d 00 00
|
||||
00 00 lea rcx, OFFSET FLAT:??_C@_05JMLLFKBP@?$CFllu?6@
|
||||
0003a e8 00 00 00 00 call printf
|
||||
|
||||
; 21 : if (ret = NULL)
|
||||
|
||||
0003f 48 c7 45 08 00
|
||||
0002f 48 c7 45 08 00
|
||||
00 00 00 mov QWORD PTR ret$[rbp], 0
|
||||
00047 48 83 7d 08 00 cmp QWORD PTR ret$[rbp], 0
|
||||
0004c 74 6e je SHORT $LN5@loadGlfunc
|
||||
00037 48 83 7d 08 00 cmp QWORD PTR ret$[rbp], 0
|
||||
0003c 74 6e je SHORT $LN5@loadGlfunc
|
||||
|
||||
; 22 : {
|
||||
; 23 : *infolog = "Failed to load OpenGL api:";
|
||||
; 34 : {
|
||||
; 35 : *infolog = "Failed to load OpenGL api:";
|
||||
|
||||
0004e b8 01 00 00 00 mov eax, 1
|
||||
00053 48 6b c0 00 imul rax, rax, 0
|
||||
00057 48 8d 0d 00 00
|
||||
0003e b8 01 00 00 00 mov eax, 1
|
||||
00043 48 6b c0 00 imul rax, rax, 0
|
||||
00047 48 8d 0d 00 00
|
||||
00 00 lea rcx, OFFSET FLAT:infolog
|
||||
0005e 48 8d 15 00 00
|
||||
0004e 48 8d 15 00 00
|
||||
00 00 lea rdx, OFFSET FLAT:??_C@_0BL@MOJGOJJP@Failed?5to?5load?5OpenGL?5api?3@
|
||||
00065 88 14 01 mov BYTE PTR [rcx+rax], dl
|
||||
00055 88 14 01 mov BYTE PTR [rcx+rax], dl
|
||||
|
||||
; 24 : for (size_t i = 0; i < sizeof(procName); i++)
|
||||
; 36 : for (size_t i = 0; i < sizeof(procName); i++)
|
||||
|
||||
00068 48 c7 45 28 00
|
||||
00058 48 c7 45 28 00
|
||||
00 00 00 mov QWORD PTR i$1[rbp], 0
|
||||
00070 eb 0b jmp SHORT $LN4@loadGlfunc
|
||||
00060 eb 0b jmp SHORT $LN4@loadGlfunc
|
||||
$LN2@loadGlfunc:
|
||||
00072 48 8b 45 28 mov rax, QWORD PTR i$1[rbp]
|
||||
00076 48 ff c0 inc rax
|
||||
00079 48 89 45 28 mov QWORD PTR i$1[rbp], rax
|
||||
00062 48 8b 45 28 mov rax, QWORD PTR i$1[rbp]
|
||||
00066 48 ff c0 inc rax
|
||||
00069 48 89 45 28 mov QWORD PTR i$1[rbp], rax
|
||||
$LN4@loadGlfunc:
|
||||
0007d 48 83 7d 28 08 cmp QWORD PTR i$1[rbp], 8
|
||||
00082 73 25 jae SHORT $LN3@loadGlfunc
|
||||
0006d 48 83 7d 28 08 cmp QWORD PTR i$1[rbp], 8
|
||||
00072 73 25 jae SHORT $LN3@loadGlfunc
|
||||
|
||||
; 25 : {
|
||||
; 26 : infolog[30 + i] = procName[i];
|
||||
; 37 : {
|
||||
; 38 : infolog[30 + i] = procName[i];
|
||||
|
||||
00084 48 8d 05 00 00
|
||||
00074 48 8d 05 00 00
|
||||
00 00 lea rax, OFFSET FLAT:infolog
|
||||
0008b 48 8b 4d 28 mov rcx, QWORD PTR i$1[rbp]
|
||||
0008f 48 8b 95 20 01
|
||||
0007b 48 8b 4d 28 mov rcx, QWORD PTR i$1[rbp]
|
||||
0007f 48 8b 95 20 01
|
||||
00 00 mov rdx, QWORD PTR procName$[rbp]
|
||||
00096 48 03 d1 add rdx, rcx
|
||||
00099 48 8b ca mov rcx, rdx
|
||||
0009c 48 8b 55 28 mov rdx, QWORD PTR i$1[rbp]
|
||||
000a0 0f b6 09 movzx ecx, BYTE PTR [rcx]
|
||||
000a3 88 4c 10 1e mov BYTE PTR [rax+rdx+30], cl
|
||||
00086 48 03 d1 add rdx, rcx
|
||||
00089 48 8b ca mov rcx, rdx
|
||||
0008c 48 8b 55 28 mov rdx, QWORD PTR i$1[rbp]
|
||||
00090 0f b6 09 movzx ecx, BYTE PTR [rcx]
|
||||
00093 88 4c 10 1e mov BYTE PTR [rax+rdx+30], cl
|
||||
|
||||
; 27 : }
|
||||
; 39 : }
|
||||
|
||||
000a7 eb c9 jmp SHORT $LN2@loadGlfunc
|
||||
00097 eb c9 jmp SHORT $LN2@loadGlfunc
|
||||
$LN3@loadGlfunc:
|
||||
|
||||
; 28 : printf("%s\n", infolog);
|
||||
; 40 : printf("%s\n", infolog);
|
||||
|
||||
000a9 48 8d 15 00 00
|
||||
00099 48 8d 15 00 00
|
||||
00 00 lea rdx, OFFSET FLAT:infolog
|
||||
000b0 48 8d 0d 00 00
|
||||
000a0 48 8d 0d 00 00
|
||||
00 00 lea rcx, OFFSET FLAT:??_C@_03OFAPEBGM@?$CFs?6@
|
||||
000b7 e8 00 00 00 00 call printf
|
||||
000a7 e8 00 00 00 00 call printf
|
||||
$LN5@loadGlfunc:
|
||||
|
||||
; 29 : }
|
||||
; 30 : return (GLFWglproc)ret;
|
||||
; 41 : }
|
||||
; 42 : return (GLFWglproc)ret;
|
||||
|
||||
000bc 48 8b 45 08 mov rax, QWORD PTR ret$[rbp]
|
||||
000ac 48 8b 45 08 mov rax, QWORD PTR ret$[rbp]
|
||||
|
||||
; 31 : }
|
||||
; 43 : }
|
||||
|
||||
000c0 48 8d a5 08 01
|
||||
000b0 48 8d a5 08 01
|
||||
00 00 lea rsp, QWORD PTR [rbp+264]
|
||||
000c7 5f pop rdi
|
||||
000c8 5d pop rbp
|
||||
000c9 c3 ret 0
|
||||
000b7 5f pop rdi
|
||||
000b8 5d pop rbp
|
||||
000b9 c3 ret 0
|
||||
loadGlfuncDefault ENDP
|
||||
_TEXT ENDS
|
||||
; Function compile flags: /Odtp /RTCsu /ZI
|
||||
@@ -577,7 +603,7 @@ out$ = 232
|
||||
loader$ = 240
|
||||
loadImageData PROC ; COMDAT
|
||||
|
||||
; 51 : {
|
||||
; 63 : {
|
||||
|
||||
$LN4:
|
||||
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
|
||||
@@ -592,14 +618,14 @@ $LN4:
|
||||
00 00 lea rcx, OFFSET FLAT:__59F96598_StgSharpC@c
|
||||
00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
||||
|
||||
; 52 : if (loader == NULL)
|
||||
; 64 : if (loader == NULL)
|
||||
|
||||
00029 48 83 bd f0 00
|
||||
00 00 00 cmp QWORD PTR loader$[rbp], 0
|
||||
00031 75 0e jne SHORT $LN2@loadImageD
|
||||
|
||||
; 53 : {
|
||||
; 54 : loader = stbi_load;
|
||||
; 65 : {
|
||||
; 66 : loader = stbi_load;
|
||||
|
||||
00033 48 8d 05 00 00
|
||||
00 00 lea rax, OFFSET FLAT:stbi_load
|
||||
@@ -607,8 +633,8 @@ $LN4:
|
||||
00 00 mov QWORD PTR loader$[rbp], rax
|
||||
$LN2@loadImageD:
|
||||
|
||||
; 55 : }
|
||||
; 56 : out->pixelPtr = loader(location, &(out->width), &(out->height), &(out->channel), 0);
|
||||
; 67 : }
|
||||
; 68 : out->pixelPtr = loader(location, &(out->width), &(out->height), &(out->channel), 0);
|
||||
|
||||
00041 48 8b 85 e8 00
|
||||
00 00 mov rax, QWORD PTR out$[rbp]
|
||||
@@ -630,7 +656,7 @@ $LN2@loadImageD:
|
||||
00 00 mov rcx, QWORD PTR out$[rbp]
|
||||
00080 48 89 41 10 mov QWORD PTR [rcx+16], rax
|
||||
|
||||
; 57 : }
|
||||
; 69 : }
|
||||
|
||||
00084 48 8d a5 c8 00
|
||||
00 00 lea rsp, QWORD PTR [rbp+200]
|
||||
@@ -649,7 +675,7 @@ context$ = 256
|
||||
shaderProgram$ = 264
|
||||
linkShaderProgram PROC ; COMDAT
|
||||
|
||||
; 34 : {
|
||||
; 46 : {
|
||||
|
||||
$LN5:
|
||||
00000 89 54 24 10 mov DWORD PTR [rsp+16], edx
|
||||
@@ -674,7 +700,7 @@ $LN5:
|
||||
00 00 lea rcx, OFFSET FLAT:__59F96598_StgSharpC@c
|
||||
00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
||||
|
||||
; 35 : context->LinkProgram(shaderProgram);
|
||||
; 47 : context->LinkProgram(shaderProgram);
|
||||
|
||||
0004d 8b 8d 08 01 00
|
||||
00 mov ecx, DWORD PTR shaderProgram$[rbp]
|
||||
@@ -683,9 +709,9 @@ $LN5:
|
||||
0005a ff 90 80 22 00
|
||||
00 call QWORD PTR [rax+8832]
|
||||
|
||||
; 36 :
|
||||
; 37 : int success;
|
||||
; 38 : context->GetProgramiv(shaderProgram, GL_LINK_STATUS, &success);
|
||||
; 48 :
|
||||
; 49 : int success;
|
||||
; 50 : context->GetProgramiv(shaderProgram, GL_LINK_STATUS, &success);
|
||||
|
||||
00060 4c 8d 45 04 lea r8, QWORD PTR success$[rbp]
|
||||
00064 ba 82 8b 00 00 mov edx, 35714 ; 00008b82H
|
||||
@@ -696,13 +722,13 @@ $LN5:
|
||||
00076 ff 90 48 1a 00
|
||||
00 call QWORD PTR [rax+6728]
|
||||
|
||||
; 39 : if (!success)
|
||||
; 51 : if (!success)
|
||||
|
||||
0007c 83 7d 04 00 cmp DWORD PTR success$[rbp], 0
|
||||
00080 75 28 jne SHORT $LN2@linkShader
|
||||
|
||||
; 40 : {
|
||||
; 41 : context->GetProgramInfoLog(shaderProgram, 512, NULL, infolog);
|
||||
; 52 : {
|
||||
; 53 : context->GetProgramInfoLog(shaderProgram, 512, NULL, infolog);
|
||||
|
||||
00082 4c 8d 0d 00 00
|
||||
00 00 lea r9, OFFSET FLAT:infolog
|
||||
@@ -715,27 +741,27 @@ $LN5:
|
||||
0009e ff 90 98 19 00
|
||||
00 call QWORD PTR [rax+6552]
|
||||
|
||||
; 42 : return 0;
|
||||
; 54 : return 0;
|
||||
|
||||
000a4 33 c0 xor eax, eax
|
||||
000a6 eb 08 jmp SHORT $LN1@linkShader
|
||||
|
||||
; 43 : }
|
||||
; 55 : }
|
||||
|
||||
000a8 eb 06 jmp SHORT $LN3@linkShader
|
||||
$LN2@linkShader:
|
||||
|
||||
; 44 : else
|
||||
; 45 : {
|
||||
; 46 : return shaderProgram;
|
||||
; 56 : else
|
||||
; 57 : {
|
||||
; 58 : return shaderProgram;
|
||||
|
||||
000aa 8b 85 08 01 00
|
||||
00 mov eax, DWORD PTR shaderProgram$[rbp]
|
||||
$LN3@linkShader:
|
||||
$LN1@linkShader:
|
||||
|
||||
; 47 : }
|
||||
; 48 : }
|
||||
; 59 : }
|
||||
; 60 : }
|
||||
|
||||
000b0 48 8b f8 mov rdi, rax
|
||||
000b3 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32]
|
||||
@@ -762,7 +788,7 @@ majorVersion$ = 224
|
||||
minorVersion$ = 232
|
||||
initGL PROC ; COMDAT
|
||||
|
||||
; 11 : {
|
||||
; 23 : {
|
||||
|
||||
$LN3:
|
||||
00000 89 54 24 10 mov DWORD PTR [rsp+16], edx
|
||||
@@ -776,27 +802,27 @@ $LN3:
|
||||
00 00 lea rcx, OFFSET FLAT:__59F96598_StgSharpC@c
|
||||
0001d e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
||||
|
||||
; 12 : glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, majorVersion);
|
||||
; 24 : glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, majorVersion);
|
||||
|
||||
00022 8b 95 e0 00 00
|
||||
00 mov edx, DWORD PTR majorVersion$[rbp]
|
||||
00028 b9 02 20 02 00 mov ecx, 139266 ; 00022002H
|
||||
0002d e8 00 00 00 00 call glfwWindowHint
|
||||
|
||||
; 13 : glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, minorVersion);
|
||||
; 25 : glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, minorVersion);
|
||||
|
||||
00032 8b 95 e8 00 00
|
||||
00 mov edx, DWORD PTR minorVersion$[rbp]
|
||||
00038 b9 03 20 02 00 mov ecx, 139267 ; 00022003H
|
||||
0003d e8 00 00 00 00 call glfwWindowHint
|
||||
|
||||
; 14 : glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
|
||||
; 26 : glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
|
||||
|
||||
00042 ba 01 20 03 00 mov edx, 204801 ; 00032001H
|
||||
00047 b9 08 20 02 00 mov ecx, 139272 ; 00022008H
|
||||
0004c e8 00 00 00 00 call glfwWindowHint
|
||||
|
||||
; 15 : }
|
||||
; 27 : }
|
||||
|
||||
00051 48 8d a5 c8 00
|
||||
00 00 lea rsp, QWORD PTR [rbp+200]
|
||||
@@ -806,6 +832,114 @@ $LN3:
|
||||
initGL ENDP
|
||||
_TEXT ENDS
|
||||
; Function compile flags: /Odtp /RTCsu /ZI
|
||||
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpC\StgSharpC.c
|
||||
; COMDAT glCheckShaderStat
|
||||
_TEXT SEGMENT
|
||||
stat$ = 4
|
||||
__$ArrayPad$ = 216
|
||||
context$ = 256
|
||||
shaderHandle$ = 264
|
||||
key$ = 272
|
||||
logRef$ = 280
|
||||
glCheckShaderStat PROC ; COMDAT
|
||||
|
||||
; 11 : {
|
||||
|
||||
$LN4:
|
||||
00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9
|
||||
00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d
|
||||
0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
||||
0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
||||
00014 55 push rbp
|
||||
00015 57 push rdi
|
||||
00016 48 81 ec 08 01
|
||||
00 00 sub rsp, 264 ; 00000108H
|
||||
0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
||||
00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32]
|
||||
00027 b9 0a 00 00 00 mov ecx, 10
|
||||
0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
|
||||
00031 f3 ab rep stosd
|
||||
00033 48 8b 8c 24 28
|
||||
01 00 00 mov rcx, QWORD PTR [rsp+296]
|
||||
0003b 48 8b 05 00 00
|
||||
00 00 mov rax, QWORD PTR __security_cookie
|
||||
00042 48 33 c5 xor rax, rbp
|
||||
00045 48 89 85 d8 00
|
||||
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
|
||||
0004c 48 8d 0d 00 00
|
||||
00 00 lea rcx, OFFSET FLAT:__59F96598_StgSharpC@c
|
||||
00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
||||
|
||||
; 12 : int stat = 0;
|
||||
|
||||
00058 c7 45 04 00 00
|
||||
00 00 mov DWORD PTR stat$[rbp], 0
|
||||
|
||||
; 13 : context->GetShaderiv(shaderHandle, key, &stat);
|
||||
|
||||
0005f 4c 8d 45 04 lea r8, QWORD PTR stat$[rbp]
|
||||
00063 8b 95 10 01 00
|
||||
00 mov edx, DWORD PTR key$[rbp]
|
||||
00069 8b 8d 08 01 00
|
||||
00 mov ecx, DWORD PTR shaderHandle$[rbp]
|
||||
0006f 48 8b 85 00 01
|
||||
00 00 mov rax, QWORD PTR context$[rbp]
|
||||
00076 ff 90 40 1b 00
|
||||
00 call QWORD PTR [rax+6976]
|
||||
|
||||
; 14 : if (!stat)
|
||||
|
||||
0007c 83 7d 04 00 cmp DWORD PTR stat$[rbp], 0
|
||||
00080 75 22 jne SHORT $LN2@glCheckSha
|
||||
|
||||
; 15 : {
|
||||
; 16 : context->GetShaderInfoLog(shaderHandle, 512, NULL, infolog);
|
||||
|
||||
00082 4c 8d 0d 00 00
|
||||
00 00 lea r9, OFFSET FLAT:infolog
|
||||
00089 45 33 c0 xor r8d, r8d
|
||||
0008c ba 00 02 00 00 mov edx, 512 ; 00000200H
|
||||
00091 8b 8d 08 01 00
|
||||
00 mov ecx, DWORD PTR shaderHandle$[rbp]
|
||||
00097 48 8b 85 00 01
|
||||
00 00 mov rax, QWORD PTR context$[rbp]
|
||||
0009e ff 90 20 1b 00
|
||||
00 call QWORD PTR [rax+6944]
|
||||
$LN2@glCheckSha:
|
||||
|
||||
; 17 : }
|
||||
; 18 : *logRef = infolog;
|
||||
|
||||
000a4 48 8b 85 18 01
|
||||
00 00 mov rax, QWORD PTR logRef$[rbp]
|
||||
000ab 48 8d 0d 00 00
|
||||
00 00 lea rcx, OFFSET FLAT:infolog
|
||||
000b2 48 89 08 mov QWORD PTR [rax], rcx
|
||||
|
||||
; 19 : return stat;
|
||||
|
||||
000b5 8b 45 04 mov eax, DWORD PTR stat$[rbp]
|
||||
|
||||
; 20 : }
|
||||
|
||||
000b8 8b f8 mov edi, eax
|
||||
000ba 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32]
|
||||
000be 48 8d 15 00 00
|
||||
00 00 lea rdx, OFFSET FLAT:glCheckShaderStat$rtcFrameData
|
||||
000c5 e8 00 00 00 00 call _RTC_CheckStackVars
|
||||
000ca 8b c7 mov eax, edi
|
||||
000cc 48 8b 8d d8 00
|
||||
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp]
|
||||
000d3 48 33 cd xor rcx, rbp
|
||||
000d6 e8 00 00 00 00 call __security_check_cookie
|
||||
000db 48 8d a5 e8 00
|
||||
00 00 lea rsp, QWORD PTR [rbp+232]
|
||||
000e2 5f pop rdi
|
||||
000e3 5d pop rbp
|
||||
000e4 c3 ret 0
|
||||
glCheckShaderStat ENDP
|
||||
_TEXT ENDS
|
||||
; Function compile flags: /Odtp /RTCsu /ZI
|
||||
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt\stdio.h
|
||||
; COMDAT printf
|
||||
_TEXT SEGMENT
|
||||
|
||||
Binary file not shown.
@@ -1,4 +1,6 @@
|
||||
mat2.c
|
||||
dllmain.c
|
||||
mat2.c
|
||||
mat3.c
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat2.c(6,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat2.c(6,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat2.c(7,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
@@ -7,4 +9,73 @@ D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharp
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat2.c(16,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat2.c(17,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat2.c(17,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat3.c(7,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat3.c(7,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat3.c(8,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat3.c(16,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat3.c(16,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat3.c(17,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat3.c(17,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat3.c(18,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat3.c(19,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat3.c(28,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat3.c(28,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat3.c(29,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat3.c(29,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat3.c(30,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat3.c(31,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
mat4.c
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(8,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(8,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(9,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(9,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(17,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(17,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(18,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(18,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(19,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(19,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(20,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(20,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(30,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(30,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(31,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(31,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(32,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(32,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(33,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(33,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(42,18): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(43,18): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(44,18): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(45,18): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(53,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
|
||||
stb_image.c
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\stb_image.c(832,17): warning C4047: “=”:“stbi_uc”与“char [33]”的间接级别不同
|
||||
StgSharpC.c
|
||||
C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\shared\minwindef.h(130,1): warning C4005: “APIENTRY”: 宏重定义
|
||||
(编译源文件“StgSharpC.c”)
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\glfw3.h(123,1):
|
||||
参见“APIENTRY”的前一个定义
|
||||
|
||||
C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\um\wingdi.h(36,1): warning C4005: “WINGDIAPI”: 宏重定义
|
||||
(编译源文件“StgSharpC.c”)
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\glfw3.h(133,1):
|
||||
参见“WINGDIAPI”的前一个定义
|
||||
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\StgSharpC.c(10,70): warning C4028: 形参 2 与声明不同
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\StgSharpC.c(10,89): warning C4028: 形参 3 与声明不同
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\StgSharpC.c(11,1): warning C4029: 声明的形参表不同于定义
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\StgSharpC.c(13,26): warning C4244: “函数”: 从“uint64_t”转换到“GLuint”,可能丢失数据
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\StgSharpC.c(16,35): warning C4244: “函数”: 从“uint64_t”转换到“GLuint”,可能丢失数据
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\StgSharpC.c(35,18): warning C4047: “=”:“char”与“char [27]”的间接级别不同
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\StgSharpC.c(79,5): warning C4047: “return”:“char *”与“char (*)[512]”的间接级别不同
|
||||
vector.c
|
||||
正在运行 C/C++ 代码分析...
|
||||
正在生成代码...
|
||||
正在创建库 D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC.lib 和对象 D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC.exp
|
||||
LINK : warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
|
||||
StgSharpC.vcxproj -> D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\stb_image.c(6525): warning C6262: 函数使用堆叠的 "35036" 字节。请考虑将一些数据移动到堆。
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\stb_image.c(6612): warning C6262: 函数使用堆叠的 "34980" 字节。请考虑将一些数据移动到堆。
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\StgSharpC.c(33): warning C6282: 运算符不正确。
|
||||
|
||||
@@ -0,0 +1,129 @@
|
||||
{
|
||||
"version": "2.1.0",
|
||||
"$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json",
|
||||
"runs": [
|
||||
{
|
||||
"results": [
|
||||
{
|
||||
"ruleId": "C6282",
|
||||
"message": {
|
||||
"text": "运算符不正确。"
|
||||
},
|
||||
"locations": [
|
||||
{
|
||||
"physicalLocation": {
|
||||
"artifactLocation": {
|
||||
"uri": "file:///D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/源代码/StgSharpC/StgSharpC.c"
|
||||
},
|
||||
"region": {
|
||||
"startLine": 33,
|
||||
"startColumn": 9,
|
||||
"endLine": 33,
|
||||
"endColumn": 15
|
||||
}
|
||||
},
|
||||
"logicalLocations": [
|
||||
{
|
||||
"fullyQualifiedName": "loadGlfuncDefault",
|
||||
"decoratedName": "loadGlfuncDefault",
|
||||
"kind": "function"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tool": {
|
||||
"driver": {
|
||||
"name": "PREfast",
|
||||
"fullName": "PREfast Code Analysis",
|
||||
"version": "14.39.33523.0",
|
||||
"informationUri": "https://aka.ms/cpp/ca"
|
||||
}
|
||||
},
|
||||
"invocations": [
|
||||
{
|
||||
"executionSuccessful": true
|
||||
}
|
||||
],
|
||||
"artifacts": [
|
||||
{
|
||||
"location": {
|
||||
"uri": "file:///D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/源代码/StgSharpC/StgSharpC.c"
|
||||
},
|
||||
"roles": [
|
||||
"analysisTarget",
|
||||
"resultFile"
|
||||
],
|
||||
"hashes": {
|
||||
"sha-256": "0ab9c2f04d59355c6c4581557f42b5b39f286bf159094e4b6f48ce08171d8bdf"
|
||||
}
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"uri": "file:///d:/nitloadindustry/研究项目/1-flagship/th2020/projectfile/源代码/stgsharpc/ssgc_framework.h"
|
||||
},
|
||||
"hashes": {
|
||||
"sha-256": "fc75606e68c89d5e890316fa9798fa5f209e9f7f1596cac315f24f5016d20652"
|
||||
}
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"uri": "file:///d:/nitloadindustry/研究项目/1-flagship/th2020/projectfile/源代码/stgsharpc/gl.h"
|
||||
},
|
||||
"hashes": {
|
||||
"sha-256": "0d4da36d20ceb98804584beb77fdde6923c48c83e032fa453d459af2ff5dd1dc"
|
||||
}
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"uri": "file:///d:/nitloadindustry/研究项目/1-flagship/th2020/projectfile/源代码/stgsharpc/khrplatform.h"
|
||||
},
|
||||
"hashes": {
|
||||
"sha-256": "7b1e01aaa7ad8f6fc34b5c7bdf79ebf5189bb09e2c4d2e79fc5d350623d11e83"
|
||||
}
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"uri": "file:///d:/nitloadindustry/研究项目/1-flagship/th2020/projectfile/源代码/stgsharpc/glfw3.h"
|
||||
},
|
||||
"hashes": {
|
||||
"sha-256": "a1ac46397841f26f8bc290ea1496d1009b65862ded7944567cd7830015d4b376"
|
||||
}
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"uri": "file:///d:/nitloadindustry/研究项目/1-flagship/th2020/projectfile/源代码/stgsharpc/ssgc_internal.h"
|
||||
},
|
||||
"hashes": {
|
||||
"sha-256": "f9a595a71140053e0ff25ce143983b905d9b3ad9c672d8752845364a8a2c7807"
|
||||
}
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"uri": "file:///d:/nitloadindustry/研究项目/1-flagship/th2020/projectfile/源代码/stgsharpc/stgsharpc.h"
|
||||
},
|
||||
"hashes": {
|
||||
"sha-256": "46efce7e03c053a63fbaec27d92f7ef754e5c368b9bf3dde60683b99f109903e"
|
||||
}
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"uri": "file:///d:/nitloadindustry/研究项目/1-flagship/th2020/projectfile/源代码/stgsharpc/wgl.h"
|
||||
},
|
||||
"hashes": {
|
||||
"sha-256": "f2c2c934cc6135662cf9bbbfab774fc4609a7fbd827b1a688455d813854f514b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"uri": "file:///d:/nitloadindustry/研究项目/1-flagship/th2020/projectfile/源代码/stgsharpc/stb_image.h"
|
||||
},
|
||||
"hashes": {
|
||||
"sha-256": "3249df7a8c1996a53cff688577b835d0f3fcd05a599fdcbfa36d1fc30b76b7ea"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DEFECTS>
|
||||
<DEFECT>
|
||||
<SFA>
|
||||
<FILEPATH>D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\</FILEPATH>
|
||||
<FILENAME>StgSharpC.c</FILENAME>
|
||||
<LINE>33</LINE>
|
||||
<COLUMN>12</COLUMN>
|
||||
</SFA>
|
||||
<DEFECTCODE>6282</DEFECTCODE>
|
||||
<DESCRIPTION>运算符不正确。</DESCRIPTION>
|
||||
<FUNCTION>loadGlfuncDefault</FUNCTION>
|
||||
<DECORATED>loadGlfuncDefault</DECORATED>
|
||||
<FUNCLINE>29</FUNCLINE>
|
||||
<PATH></PATH>
|
||||
</DEFECT>
|
||||
</DEFECTS>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,99 @@
|
||||
{
|
||||
"version": "2.1.0",
|
||||
"$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json",
|
||||
"runs": [
|
||||
{
|
||||
"results": [],
|
||||
"tool": {
|
||||
"driver": {
|
||||
"name": "PREfast",
|
||||
"fullName": "PREfast Code Analysis",
|
||||
"version": "14.39.33523.0",
|
||||
"informationUri": "https://aka.ms/cpp/ca"
|
||||
}
|
||||
},
|
||||
"invocations": [
|
||||
{
|
||||
"executionSuccessful": true
|
||||
}
|
||||
],
|
||||
"artifacts": [
|
||||
{
|
||||
"location": {
|
||||
"uri": "file:///d:/nitloadindustry/研究项目/1-flagship/th2020/projectfile/源代码/stgsharpc/dllmain.c"
|
||||
},
|
||||
"roles": [
|
||||
"analysisTarget"
|
||||
],
|
||||
"hashes": {
|
||||
"sha-256": "63095add7f9d5fd1a9a7117194ac56ff67ac41aa3262a54d1033e51c55b9bb98"
|
||||
}
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"uri": "file:///d:/nitloadindustry/研究项目/1-flagship/th2020/projectfile/源代码/stgsharpc/ssgc_framework.h"
|
||||
},
|
||||
"hashes": {
|
||||
"sha-256": "fc75606e68c89d5e890316fa9798fa5f209e9f7f1596cac315f24f5016d20652"
|
||||
}
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"uri": "file:///d:/nitloadindustry/研究项目/1-flagship/th2020/projectfile/源代码/stgsharpc/stgsharpc.h"
|
||||
},
|
||||
"hashes": {
|
||||
"sha-256": "46efce7e03c053a63fbaec27d92f7ef754e5c368b9bf3dde60683b99f109903e"
|
||||
}
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"uri": "file:///d:/nitloadindustry/研究项目/1-flagship/th2020/projectfile/源代码/stgsharpc/ssgc_internal.h"
|
||||
},
|
||||
"hashes": {
|
||||
"sha-256": "f9a595a71140053e0ff25ce143983b905d9b3ad9c672d8752845364a8a2c7807"
|
||||
}
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"uri": "file:///d:/nitloadindustry/研究项目/1-flagship/th2020/projectfile/源代码/stgsharpc/gl.h"
|
||||
},
|
||||
"hashes": {
|
||||
"sha-256": "0d4da36d20ceb98804584beb77fdde6923c48c83e032fa453d459af2ff5dd1dc"
|
||||
}
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"uri": "file:///d:/nitloadindustry/研究项目/1-flagship/th2020/projectfile/源代码/stgsharpc/khrplatform.h"
|
||||
},
|
||||
"hashes": {
|
||||
"sha-256": "7b1e01aaa7ad8f6fc34b5c7bdf79ebf5189bb09e2c4d2e79fc5d350623d11e83"
|
||||
}
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"uri": "file:///d:/nitloadindustry/研究项目/1-flagship/th2020/projectfile/源代码/stgsharpc/wgl.h"
|
||||
},
|
||||
"hashes": {
|
||||
"sha-256": "f2c2c934cc6135662cf9bbbfab774fc4609a7fbd827b1a688455d813854f514b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"uri": "file:///d:/nitloadindustry/研究项目/1-flagship/th2020/projectfile/源代码/stgsharpc/glfw3.h"
|
||||
},
|
||||
"hashes": {
|
||||
"sha-256": "a1ac46397841f26f8bc290ea1496d1009b65862ded7944567cd7830015d4b376"
|
||||
}
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"uri": "file:///d:/nitloadindustry/研究项目/1-flagship/th2020/projectfile/源代码/stgsharpc/stb_image.h"
|
||||
},
|
||||
"hashes": {
|
||||
"sha-256": "3249df7a8c1996a53cff688577b835d0f3fcd05a599fdcbfa36d1fc30b76b7ea"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DEFECTS></DEFECTS>
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,99 @@
|
||||
{
|
||||
"version": "2.1.0",
|
||||
"$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json",
|
||||
"runs": [
|
||||
{
|
||||
"results": [],
|
||||
"tool": {
|
||||
"driver": {
|
||||
"name": "PREfast",
|
||||
"fullName": "PREfast Code Analysis",
|
||||
"version": "14.39.33523.0",
|
||||
"informationUri": "https://aka.ms/cpp/ca"
|
||||
}
|
||||
},
|
||||
"invocations": [
|
||||
{
|
||||
"executionSuccessful": true
|
||||
}
|
||||
],
|
||||
"artifacts": [
|
||||
{
|
||||
"location": {
|
||||
"uri": "file:///d:/nitloadindustry/研究项目/1-flagship/th2020/projectfile/源代码/stgsharpc/mat2.c"
|
||||
},
|
||||
"roles": [
|
||||
"analysisTarget"
|
||||
],
|
||||
"hashes": {
|
||||
"sha-256": "ef359aeba66abe5a161203c02317f5027512f7ea8ec5002f18ae66f721242b91"
|
||||
}
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"uri": "file:///d:/nitloadindustry/研究项目/1-flagship/th2020/projectfile/源代码/stgsharpc/stgsharpc.h"
|
||||
},
|
||||
"hashes": {
|
||||
"sha-256": "46efce7e03c053a63fbaec27d92f7ef754e5c368b9bf3dde60683b99f109903e"
|
||||
}
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"uri": "file:///d:/nitloadindustry/研究项目/1-flagship/th2020/projectfile/源代码/stgsharpc/ssgc_framework.h"
|
||||
},
|
||||
"hashes": {
|
||||
"sha-256": "fc75606e68c89d5e890316fa9798fa5f209e9f7f1596cac315f24f5016d20652"
|
||||
}
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"uri": "file:///d:/nitloadindustry/研究项目/1-flagship/th2020/projectfile/源代码/stgsharpc/ssgc_internal.h"
|
||||
},
|
||||
"hashes": {
|
||||
"sha-256": "f9a595a71140053e0ff25ce143983b905d9b3ad9c672d8752845364a8a2c7807"
|
||||
}
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"uri": "file:///d:/nitloadindustry/研究项目/1-flagship/th2020/projectfile/源代码/stgsharpc/gl.h"
|
||||
},
|
||||
"hashes": {
|
||||
"sha-256": "0d4da36d20ceb98804584beb77fdde6923c48c83e032fa453d459af2ff5dd1dc"
|
||||
}
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"uri": "file:///d:/nitloadindustry/研究项目/1-flagship/th2020/projectfile/源代码/stgsharpc/khrplatform.h"
|
||||
},
|
||||
"hashes": {
|
||||
"sha-256": "7b1e01aaa7ad8f6fc34b5c7bdf79ebf5189bb09e2c4d2e79fc5d350623d11e83"
|
||||
}
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"uri": "file:///d:/nitloadindustry/研究项目/1-flagship/th2020/projectfile/源代码/stgsharpc/wgl.h"
|
||||
},
|
||||
"hashes": {
|
||||
"sha-256": "f2c2c934cc6135662cf9bbbfab774fc4609a7fbd827b1a688455d813854f514b"
|
||||
}
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"uri": "file:///d:/nitloadindustry/研究项目/1-flagship/th2020/projectfile/源代码/stgsharpc/glfw3.h"
|
||||
},
|
||||
"hashes": {
|
||||
"sha-256": "a1ac46397841f26f8bc290ea1496d1009b65862ded7944567cd7830015d4b376"
|
||||
}
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"uri": "file:///d:/nitloadindustry/研究项目/1-flagship/th2020/projectfile/源代码/stgsharpc/stb_image.h"
|
||||
},
|
||||
"hashes": {
|
||||
"sha-256": "3249df7a8c1996a53cff688577b835d0f3fcd05a599fdcbfa36d1fc30b76b7ea"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DEFECTS></DEFECTS>
|
||||
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user