daily update on 20230730 by nitload youmu, 5th day of params displacement

This commit is contained in:
Nitload
2023-07-30 07:08:36 +08:00
parent e11c88b051
commit 194d65edf6
147 changed files with 36506 additions and 1927 deletions
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.
File diff suppressed because it is too large Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+28 -56
View File
@@ -3,21 +3,11 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.3.32825.248
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StgSharp", "StgSharp\StgSharp.csproj", "{EEC1D075-F8F4-43EA-914A-02B1339D2305}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StgSharp", "StgSharp\StgSharp.csproj", "{5EEA27B3-8FB1-42A0-B710-228923C529C0}"
ProjectSection(ProjectDependencies) = postProject
{4CD737E9-9502-46CE-89AC-FE8047502DE4} = {4CD737E9-9502-46CE-89AC-FE8047502DE4}
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StgSharpDebug", "StgSharpDebug\StgSharpDebug.csproj", "{467F2A1A-D7E2-4904-AAAD-A5998EE45C71}"
ProjectSection(ProjectDependencies) = postProject
{EEC1D075-F8F4-43EA-914A-02B1339D2305} = {EEC1D075-F8F4-43EA-914A-02B1339D2305}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "解决方案项", "解决方案项", "{504FB3A6-5326-4FB6-83EC-F8551FD9D1C4}"
ProjectSection(SolutionItems) = preProject
StgSharpGraphic.dll = StgSharpGraphic.dll
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "StgSharpGraphic", "StgShqrpGraphic\StgShqrpGraphic.vcxproj", "{4CD737E9-9502-46CE-89AC-FE8047502DE4}"
EndProject
Global
@@ -33,54 +23,36 @@ Global
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{EEC1D075-F8F4-43EA-914A-02B1339D2305}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EEC1D075-F8F4-43EA-914A-02B1339D2305}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EEC1D075-F8F4-43EA-914A-02B1339D2305}.Debug|x64.ActiveCfg = Debug|x64
{EEC1D075-F8F4-43EA-914A-02B1339D2305}.Debug|x64.Build.0 = Debug|x64
{EEC1D075-F8F4-43EA-914A-02B1339D2305}.Debug|x86.ActiveCfg = Debug|Any CPU
{EEC1D075-F8F4-43EA-914A-02B1339D2305}.Debug|x86.Build.0 = Debug|Any CPU
{EEC1D075-F8F4-43EA-914A-02B1339D2305}.NoOps|Any CPU.ActiveCfg = NoOps|Any CPU
{EEC1D075-F8F4-43EA-914A-02B1339D2305}.NoOps|Any CPU.Build.0 = NoOps|Any CPU
{EEC1D075-F8F4-43EA-914A-02B1339D2305}.NoOps|x64.ActiveCfg = NoOps|x64
{EEC1D075-F8F4-43EA-914A-02B1339D2305}.NoOps|x64.Build.0 = NoOps|x64
{EEC1D075-F8F4-43EA-914A-02B1339D2305}.NoOps|x86.ActiveCfg = NoOps|Any CPU
{EEC1D075-F8F4-43EA-914A-02B1339D2305}.NoOps|x86.Build.0 = NoOps|Any CPU
{EEC1D075-F8F4-43EA-914A-02B1339D2305}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EEC1D075-F8F4-43EA-914A-02B1339D2305}.Release|Any CPU.Build.0 = Release|Any CPU
{EEC1D075-F8F4-43EA-914A-02B1339D2305}.Release|x64.ActiveCfg = Release|x64
{EEC1D075-F8F4-43EA-914A-02B1339D2305}.Release|x64.Build.0 = Release|x64
{EEC1D075-F8F4-43EA-914A-02B1339D2305}.Release|x86.ActiveCfg = Release|Any CPU
{EEC1D075-F8F4-43EA-914A-02B1339D2305}.Release|x86.Build.0 = Release|Any CPU
{467F2A1A-D7E2-4904-AAAD-A5998EE45C71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{467F2A1A-D7E2-4904-AAAD-A5998EE45C71}.Debug|Any CPU.Build.0 = Debug|Any CPU
{467F2A1A-D7E2-4904-AAAD-A5998EE45C71}.Debug|x64.ActiveCfg = Debug|x64
{467F2A1A-D7E2-4904-AAAD-A5998EE45C71}.Debug|x64.Build.0 = Debug|x64
{467F2A1A-D7E2-4904-AAAD-A5998EE45C71}.Debug|x86.ActiveCfg = Debug|Any CPU
{467F2A1A-D7E2-4904-AAAD-A5998EE45C71}.Debug|x86.Build.0 = Debug|Any CPU
{467F2A1A-D7E2-4904-AAAD-A5998EE45C71}.NoOps|Any CPU.ActiveCfg = Release|Any CPU
{467F2A1A-D7E2-4904-AAAD-A5998EE45C71}.NoOps|Any CPU.Build.0 = Release|Any CPU
{467F2A1A-D7E2-4904-AAAD-A5998EE45C71}.NoOps|x64.ActiveCfg = Release|x64
{467F2A1A-D7E2-4904-AAAD-A5998EE45C71}.NoOps|x64.Build.0 = Release|x64
{467F2A1A-D7E2-4904-AAAD-A5998EE45C71}.NoOps|x86.ActiveCfg = Release|Any CPU
{467F2A1A-D7E2-4904-AAAD-A5998EE45C71}.NoOps|x86.Build.0 = Release|Any CPU
{467F2A1A-D7E2-4904-AAAD-A5998EE45C71}.Release|Any CPU.ActiveCfg = Release|Any CPU
{467F2A1A-D7E2-4904-AAAD-A5998EE45C71}.Release|Any CPU.Build.0 = Release|Any CPU
{467F2A1A-D7E2-4904-AAAD-A5998EE45C71}.Release|x64.ActiveCfg = Release|x64
{467F2A1A-D7E2-4904-AAAD-A5998EE45C71}.Release|x64.Build.0 = Release|x64
{467F2A1A-D7E2-4904-AAAD-A5998EE45C71}.Release|x86.ActiveCfg = Release|Any CPU
{467F2A1A-D7E2-4904-AAAD-A5998EE45C71}.Release|x86.Build.0 = Release|Any CPU
{5EEA27B3-8FB1-42A0-B710-228923C529C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5EEA27B3-8FB1-42A0-B710-228923C529C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5EEA27B3-8FB1-42A0-B710-228923C529C0}.Debug|x64.ActiveCfg = Debug|x64
{5EEA27B3-8FB1-42A0-B710-228923C529C0}.Debug|x64.Build.0 = Debug|x64
{5EEA27B3-8FB1-42A0-B710-228923C529C0}.Debug|x86.ActiveCfg = Debug|Any CPU
{5EEA27B3-8FB1-42A0-B710-228923C529C0}.Debug|x86.Build.0 = Debug|Any CPU
{5EEA27B3-8FB1-42A0-B710-228923C529C0}.NoOps|Any CPU.ActiveCfg = NoOps|Any CPU
{5EEA27B3-8FB1-42A0-B710-228923C529C0}.NoOps|Any CPU.Build.0 = NoOps|Any CPU
{5EEA27B3-8FB1-42A0-B710-228923C529C0}.NoOps|x64.ActiveCfg = NoOps|x64
{5EEA27B3-8FB1-42A0-B710-228923C529C0}.NoOps|x64.Build.0 = NoOps|x64
{5EEA27B3-8FB1-42A0-B710-228923C529C0}.NoOps|x86.ActiveCfg = NoOps|Any CPU
{5EEA27B3-8FB1-42A0-B710-228923C529C0}.NoOps|x86.Build.0 = NoOps|Any CPU
{5EEA27B3-8FB1-42A0-B710-228923C529C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5EEA27B3-8FB1-42A0-B710-228923C529C0}.Release|Any CPU.Build.0 = Release|Any CPU
{5EEA27B3-8FB1-42A0-B710-228923C529C0}.Release|x64.ActiveCfg = Release|x64
{5EEA27B3-8FB1-42A0-B710-228923C529C0}.Release|x64.Build.0 = Release|x64
{5EEA27B3-8FB1-42A0-B710-228923C529C0}.Release|x86.ActiveCfg = Release|Any CPU
{5EEA27B3-8FB1-42A0-B710-228923C529C0}.Release|x86.Build.0 = Release|Any CPU
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.Debug|Any CPU.ActiveCfg = Debug|x64
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.Debug|Any CPU.Build.0 = Debug|x64
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.Debug|x64.ActiveCfg = Release|x64
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.Debug|x64.Build.0 = Release|x64
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.Debug|x64.ActiveCfg = Debug|x64
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.Debug|x64.Build.0 = Debug|x64
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.Debug|x86.ActiveCfg = Debug|Win32
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.Debug|x86.Build.0 = Debug|Win32
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.NoOps|Any CPU.ActiveCfg = Release|x64
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.NoOps|Any CPU.Build.0 = Release|x64
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.NoOps|x64.ActiveCfg = Release|x64
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.NoOps|x64.Build.0 = Release|x64
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.NoOps|x86.ActiveCfg = Release|Win32
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.NoOps|x86.Build.0 = Release|Win32
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.NoOps|Any CPU.ActiveCfg = Debug|x64
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.NoOps|Any CPU.Build.0 = Debug|x64
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.NoOps|x64.ActiveCfg = Debug|x64
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.NoOps|x64.Build.0 = Debug|x64
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.NoOps|x86.ActiveCfg = Debug|Win32
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.NoOps|x86.Build.0 = Debug|Win32
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.Release|Any CPU.ActiveCfg = Release|x64
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.Release|Any CPU.Build.0 = Release|x64
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.Release|x64.ActiveCfg = Release|x64
@@ -92,6 +64,6 @@ Global
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {E13615C2-4C8D-4072-95A1-124440983818}
SolutionGuid = {00AF7CBF-4DB7-44D8-AF34-BAAF53C77DF9}
EndGlobalSection
EndGlobal
+15
View File
@@ -0,0 +1,15 @@
using StgSharp.Math;
using System;
using System.Collections.Generic;
using System.Text;
namespace StgSharp.Control
{
public static partial class Instruction
{
public static unsafe void RecycleMappedVec(Vec4d vec)
{
}
}
}
+9 -8
View File
@@ -5,7 +5,7 @@ using System.Diagnostics.CodeAnalysis;
namespace StgSharp.Control
{
public static class TimeLine
public static partial class TimeLine
{
public const long version = 10;
@@ -23,6 +23,14 @@ namespace StgSharp.Control
internal static TimelineBlock currentOperation;
private static bool isPaused = false;
static unsafe TimeLine()
{
allForm = new LinkedList<Form>();
allPool = new LinkedList<Pool>();
internalIO.InternalInitGL();
}
public static TimelineBlock CurrentOperation
{
get { return currentOperation; }
@@ -36,13 +44,6 @@ namespace StgSharp.Control
}
}
static TimeLine()
{
allForm = new LinkedList<Form>();
allPool = new LinkedList<Pool>();
internalIO.InternalInitGL();
}
public static void OnRender()
{
tickCounter.QuickAdd();
+19 -8
View File
@@ -6,20 +6,31 @@ using System.Text;
namespace StgSharp
{
internal static unsafe partial class internalIO
{
[DllImport("StgSharpGraphic.dll",EntryPoint = "VecAddVec",
[DllImport("StgSharpGraphic.dll", EntryPoint = "VecAddVec",
CallingConvention =CallingConvention.Cdecl)]
internal static extern M128 VecAddVec(M128 vec1, M128 vec2);
internal static extern M128 VecAddVec(in IntPtr ptr1, in IntPtr ptr2 /**/, in IntPtr ret/**/);
[DllImport("StgSharpGraphic.dll",EntryPoint = "VecSubVec")]
internal static extern M128 VecSubVec(M128 vec1, M128 vec2);
[DllImport("StgSharpGraphic.dll", EntryPoint = "VecSubVec",
CallingConvention = CallingConvention.Cdecl)]
internal static extern void VecSubVec(IntPtr ptr1, IntPtr ptr2,IntPtr ret);
[DllImport("StgSharpGraphic.dll",EntryPoint = "VecMulVec")]
internal static extern float VecMulVec(M128 vec1, M128 vec2);
[DllImport("StgSharpGraphic.dll", EntryPoint = "VecMulVec",
CallingConvention = CallingConvention.Cdecl)]
internal static extern void VecMulVec(IntPtr ptr1, IntPtr ptr2, IntPtr ret);
[DllImport("StgSharpGraphic.dll", EntryPoint = "InitBigM128Map")]
internal static unsafe extern long internalInitBigM128Map(int floatCount);
[DllImport("StgSharpGraphic.dll", EntryPoint = "initSSE")]
internal static extern ulong InternalInitSSE();
[DllImport("StgSharpGraphic.dll", EntryPoint = "InitM128")]
internal static unsafe extern IntPtr InternalInitM128(float x,float y,float z,float w);
[DllImport("StgSharpGraphic.dll", EntryPoint = "DeinitM128")]
internal static unsafe extern void InternalDeinitM128(IntPtr m128Ptr);
}
}
+11 -7
View File
@@ -1,14 +1,17 @@
using StgSharp;
using StgSharp.Control;
using StgSharp.Logic;
using System.Data;
using System.Runtime.InteropServices;
namespace StgSharp.Math
{
public class M128Map
public unsafe class M128Map
{
public readonly long mapID;
internal long mapPtr;
internal readonly StgSharp.LinkedListNode<long> _unusedM128Header;
private const int mapSize = 30 * 30;
internal StgSharp.LinkedList<long> m128Map =
new StgSharp.LinkedList<long>();
@@ -23,15 +26,16 @@ namespace StgSharp.Math
public M128Map()
{
long M128Ptr = internalIO.internalInitBigM128Map(4*30*30);
m128Map.Add(0);
mapPtr = (long)(Marshal.AllocHGlobal(sizeof(M128)*mapSize)+15);
long firstM128ptr = (mapPtr / 16 + 1) * 16;
m128Map.Add(0);
_unusedM128Header = m128Map._hook._next;
for (int i = 1; i < 80*80/4; i++)
for (int i = 0; i < 4*30*30*4; i+=16)
{
m128Map.Add(M128Ptr);
M128Ptr += 4;
m128Map.Add(firstM128ptr+i);
}
mapID = Calc.RandomSeed();
+24
View File
@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace StgSharp.Math
{
public static unsafe partial class SSE
{
public enum Registor : byte
{
XMM0=0,
XMM1=1,
XMM2=2,
XMM3=3,
XMM4=4,
XMM5=5,
XMM6=6,
XMM7=7
}
}
}
+37 -6
View File
@@ -5,6 +5,34 @@ using System.Text;
namespace StgSharp.Math
{
[StructLayout(LayoutKind.Sequential)]
internal struct M128ptrCache
{
internal ulong ptr0;
internal ulong ptr1;
internal ulong ptr2;
internal ulong ptr3;
internal ulong ptr4;
internal ulong ptr5;
internal ulong ptr6;
internal ulong ptr7;
public override string ToString()
{
return
$"{ptr0}\t" +
$"{ptr1}\t" +
$"{ptr2}\t" +
$"{ptr3}\t" +
$"{ptr4}\t" +
$"{ptr5}\t" +
$"{ptr6}\t" +
$"{ptr7}\t" +
$"";
}
}
[StructLayout(LayoutKind.Explicit, Size = 16, Pack = 16)]
internal struct M128
{
@@ -24,15 +52,18 @@ namespace StgSharp.Math
[FieldOffset(0)] internal long double_0;
[FieldOffset(8)] internal long double_1;
internal M128(float s0, float s1, float s2, float s3)
internal M128(float x,float y,float z,float w)
{
single_0 = s0;
single_1 = s1;
single_2 = s2;
single_3 = s3;
single_0 = x;
single_1 = y;
single_2 = z;
single_3 = w;
}
public override string ToString()
{
return $"{single_0}\t{single_1}\t{single_2}\t{single_3}";
}
}
}
+11
View File
@@ -0,0 +1,11 @@
using StgSharp.Math;
using System;
using System.Collections.Generic;
using System.Text;
namespace StgSharp.Control
{
public static unsafe partial class TimeLine
{
}
}
+111 -72
View File
@@ -1,5 +1,4 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
@@ -12,43 +11,60 @@ namespace StgSharp.Math
Copy
}
public class Matrix4x4
public unsafe class Matrix4x4
{
internal long _row0Ptr;
internal long _row1Ptr;
internal long _row2Ptr;
internal long _row3Ptr;
internal M128Map map;
internal IntPtr _row0Ptr;
internal IntPtr _row1Ptr;
internal IntPtr _row2Ptr;
internal IntPtr _row3Ptr;
internal M128 _row0;
internal M128 _row1;
internal M128 _row2;
internal M128 _row3;
private bool isTransposed=false;
private Matrix4x4 _transpose;
internal Matrix4x4()
{
_transpose = new Matrix4x4();
_transpose._transpose = this;
_transpose.isTransposed = true;
_row0Ptr = internalIO.InternalInitM128(0, 0, 0, 0);
_row1Ptr = internalIO.InternalInitM128(0, 0, 0, 0);
_row2Ptr = internalIO.InternalInitM128(0, 0, 0, 0);
_row3Ptr = internalIO.InternalInitM128(0, 0, 0, 0);
_transpose = new Matrix4x4(this);
}
internal Matrix4x4(M128 row0, M128 row1, M128 row2, M128 row3)
//Ctor used for the matixes of transposed matrix
internal Matrix4x4(Matrix4x4 transpose)
{
this._row0 = row0;
this._row1 = row1;
this._row2 = row2;
this._row3 = row3;
_row0Ptr = internalIO.InternalInitM128(0, 0, 0, 0);
_row1Ptr = internalIO.InternalInitM128(0, 0, 0, 0);
_row2Ptr = internalIO.InternalInitM128(0, 0, 0, 0);
_row3Ptr = internalIO.InternalInitM128(0, 0, 0, 0);
_transpose = transpose;
this.isTransposed=true;
}
internal unsafe Matrix4x4(M128 row0, M128 row1, M128 row2, M128 row3)
{
_row0Ptr = internalIO.InternalInitM128(
row0.single_0, row0.single_1, row0.single_2, row0.single_3);
_row1Ptr = internalIO.InternalInitM128(
row1.single_0, row1.single_1, row1.single_2, row1.single_3);
_row2Ptr = internalIO.InternalInitM128(
row2.single_0, row2.single_1, row2.single_2, row2.single_3);
_row3Ptr = internalIO.InternalInitM128(
row3.single_0, row3.single_1, row3.single_2, row3.single_3);
_transpose = new Matrix4x4(this);
}
public Matrix4x4(
public unsafe Matrix4x4(
float a00, float a01, float a02, float a03,
float a10, float a11, float a12, float a13,
float a20, float a21, float a22, float a23,
@@ -56,37 +72,37 @@ namespace StgSharp.Math
)
{
_transpose = new Matrix4x4();
_transpose._transpose = this;
this._row0 = new M128(a00, a01, a02, a03);
this._row1 = new M128(a10, a11, a12, a13);
this._row2 = new M128(a20, a21, a22, a23);
this._row3 = new M128(a30, a31, a32, a33);
_row0Ptr = internalIO.InternalInitM128(a00,a01,a02,a03);
_row1Ptr = internalIO.InternalInitM128(a10,a11,a12,a13);
_row2Ptr = internalIO.InternalInitM128(a20,a21,a22,a23);
_row3Ptr = internalIO.InternalInitM128(a30,a31,a32,a33);
_transpose = new Matrix4x4(this);
}
internal void internalTranspose()
{
if (!isTransposed)
{
_transpose._row0.single_0 = _row0.single_0;
_transpose._row0.single_1 = _row1.single_0;
_transpose._row0.single_2 = _row2.single_0;
_transpose._row0.single_3 = _row3.single_0;
(*(M128*)_transpose._row0Ptr).single_0 = (*(M128*)_row0Ptr).single_0;
(*(M128*)_transpose._row0Ptr).single_1 = (*(M128*)_row1Ptr).single_0;
(*(M128*)_transpose._row0Ptr).single_2 = (*(M128*)_row2Ptr).single_0;
(*(M128*)_transpose._row0Ptr).single_3 = (*(M128*)_row3Ptr).single_0;
_transpose._row1.single_0 = _row0.single_1;
_transpose._row1.single_1 = _row1.single_1;
_transpose._row1.single_2 = _row2.single_1;
_transpose._row1.single_3 = _row3.single_1;
_transpose._row2.single_0 = _row0.single_2;
_transpose._row2.single_1 = _row1.single_2;
_transpose._row2.single_2 = _row2.single_2;
_transpose._row2.single_3 = _row3.single_2;
_transpose._row3.single_0 = _row0.single_3;
_transpose._row3.single_1 = _row1.single_3;
_transpose._row3.single_2 = _row2.single_3;
_transpose._row3.single_3 = _row3.single_3;
(*(M128*)_transpose._row1Ptr).single_0 = (*(M128*)_row0Ptr).single_1;
(*(M128*)_transpose._row1Ptr).single_1 = (*(M128*)_row1Ptr).single_1;
(*(M128*)_transpose._row1Ptr).single_2 = (*(M128*)_row2Ptr).single_1;
(*(M128*)_transpose._row1Ptr).single_3 = (*(M128*)_row3Ptr).single_1;
(*(M128*)_transpose._row2Ptr).single_0 = (*(M128*)_row0Ptr).single_2;
(*(M128*)_transpose._row2Ptr).single_1 = (*(M128*)_row1Ptr).single_2;
(*(M128*)_transpose._row2Ptr).single_2 = (*(M128*)_row2Ptr).single_2;
(*(M128*)_transpose._row2Ptr).single_3 = (*(M128*)_row3Ptr).single_2;
(*(M128*)_transpose._row3Ptr).single_0 = (*(M128*)_row0Ptr).single_3;
(*(M128*)_transpose._row3Ptr).single_1 = (*(M128*)_row1Ptr).single_3;
(*(M128*)_transpose._row3Ptr).single_2 = (*(M128*)_row2Ptr).single_3;
(*(M128*)_transpose._row3Ptr).single_3 = (*(M128*)_row3Ptr).single_3;
isTransposed = true;
}
@@ -99,10 +115,10 @@ namespace StgSharp.Math
{
case TransposeMode.New:
return new Matrix4x4(
_transpose._row0,
_transpose._row1,
_transpose._row2,
_transpose._row3
*(M128*)_transpose._row0Ptr,
*(M128*)_transpose._row1Ptr,
*(M128*)_transpose._row2Ptr,
*(M128*)_transpose._row3Ptr
);
break;
case TransposeMode.Copy:
@@ -114,44 +130,45 @@ namespace StgSharp.Math
}
}
/*
public static Matrix4x4 operator +(Matrix4x4 matrix1, Matrix4x4 matrix2)
{
return new Matrix4x4(
internalIO.VecAddVec(matrix1._row0, matrix2._row0),
internalIO.VecAddVec(matrix1._row1, matrix2._row1),
internalIO.VecAddVec(matrix1._row2, matrix2._row2),
internalIO.VecAddVec(matrix1._row3, matrix2._row3)
internalIO.VecAddVec(matrix1._row0Ptr, matrix2._row0Ptr),
internalIO.VecAddVec(matrix1._row1Ptr, matrix2._row1Ptr),
internalIO.VecAddVec(matrix1._row2Ptr, matrix2._row2Ptr),
internalIO.VecAddVec(matrix1._row3Ptr, matrix2._row3Ptr)
) ;
}
public static Matrix4x4 operator *(Matrix4x4 matrix, float value)
{
M128 newRow0 = new M128(
matrix._row0.single_0 * value,
matrix._row0.single_1 * value,
matrix._row0.single_2 * value,
matrix._row0.single_3 * value
(*(M128*)matrix._row0Ptr).single_0 * value,
(*(M128*)matrix._row0Ptr).single_1 * value,
(*(M128*)matrix._row0Ptr).single_2 * value,
(*(M128*)matrix._row0Ptr).single_3 * value
);
M128 newRow1 = new M128(
matrix._row1.single_0 * value,
matrix._row1.single_1 * value,
matrix._row1.single_2 * value,
matrix._row1.single_3 * value
(*(M128*)matrix._row1Ptr).single_0 * value,
(*(M128*)matrix._row1Ptr).single_1 * value,
(*(M128*)matrix._row1Ptr).single_2 * value,
(*(M128*)matrix._row1Ptr).single_3 * value
);
M128 newRow2 = new M128(
matrix._row2.single_0 * value,
matrix._row2.single_1 * value,
matrix._row2.single_2 * value,
matrix._row2.single_3 * value
(*(M128*)matrix._row2Ptr).single_0 * value,
(*(M128*)matrix._row2Ptr).single_1 * value,
(*(M128*)matrix._row2Ptr).single_2 * value,
(*(M128*)matrix._row2Ptr).single_3 * value
);
M128 newRow3 = new M128(
matrix._row3.single_0 * value,
matrix._row3.single_1 * value,
matrix._row3.single_2 * value,
matrix._row3.single_3 * value
(*(M128*)matrix._row3Ptr).single_0 * value,
(*(M128*)matrix._row3Ptr).single_1 * value,
(*(M128*)matrix._row3Ptr).single_2 * value,
(*(M128*)matrix._row3Ptr).single_3 * value
);
return new Matrix4x4(
@@ -159,6 +176,28 @@ namespace StgSharp.Math
);
}
public override string ToString()
{
return $"{*(M128*)_row0Ptr}\n{*(M128*)_row1Ptr}\n{*(M128*)_row2Ptr}\n{*(M128*)_row3Ptr}";
}
/**/
~Matrix4x4()
{
if (map==null)
{
Marshal.FreeHGlobal((IntPtr)_row0Ptr);
Marshal.FreeHGlobal((IntPtr)_row1Ptr);
Marshal.FreeHGlobal((IntPtr)_row2Ptr);
Marshal.FreeHGlobal((IntPtr)_row3Ptr);
}
else
{
//in case the matrix is in a M128 map
}
}
}
+44 -21
View File
@@ -6,63 +6,86 @@ using System.Runtime.InteropServices;
namespace StgSharp.Math
{
public class Vec4d
{
internal readonly int mapID;
internal readonly long m128Ptr;
internal readonly M128Map _map;
internal readonly IntPtr _m128Ptr;
private M128 _value;
public unsafe float X
{
get { return (*(M128*)mapID).single_0; }
set { (*(M128*)mapID).single_0 = value; }
get { return (*(M128*)_m128Ptr).single_0; }
set { (*(M128*)_m128Ptr).single_0 = value; }
}
public float Y
public unsafe float Y
{
get { return _value.single_1; }
set { _value.single_1 = value; }
get { return (*(M128*)_m128Ptr).single_1; }
set { (*(M128*)_m128Ptr).single_1 = value; }
}
public float Z
public unsafe float Z
{
get { return _value.single_2; }
set { _value.single_2 = value; }
get { return (*(M128*)_m128Ptr).single_2; }
set { (*(M128*)_m128Ptr).single_2 = value; }
}
public float W
public unsafe float W
{
get { return _value.single_3; }
set { _value.single_3 = value; }
get { return (*(M128*)_m128Ptr).single_3; }
set { (*(M128*)_m128Ptr).single_3 = value; }
}
public Vec4d(float x, float y, float z, float w)
{
X = x;
Y = y;
Z = z;
W = w;
IntPtr a = internalIO.InternalInitM128(x,y,z,w);
if ((ulong)a>=0)
{
this._m128Ptr = a;
}
}
internal Vec4d()
{
_m128Ptr = internalIO.InternalInitM128(0,0,0,0);
}
public static Vec4d operator +(Vec4d vec1,Vec4d vec2)
{
Vec4d result = new Vec4d();
result._value = internalIO.VecAddVec(vec1._value,vec2._value);
internalIO.VecAddVec(vec1._m128Ptr, vec2._m128Ptr/**/,result._m128Ptr/**/);
return result;
}
/**/
public static Vec4d operator -(Vec4d vec1, Vec4d vec2)
{
Vec4d result = new Vec4d();
result._value = internalIO.VecAddVec(vec1._value, vec2._value);
internalIO.VecSubVec(vec1._m128Ptr,vec2._m128Ptr,result._m128Ptr);
return result;
}
/**/
public unsafe override string ToString()
{
return $"{*(M128*)_m128Ptr}";
}
~Vec4d()
{
if (_map == null)
{
internalIO.InternalDeinitM128(this._m128Ptr);
}
else
{
}
}
}
}
+1 -1
View File
@@ -13,7 +13,7 @@
<EnableNETAnalyzers>True</EnableNETAnalyzers>
<AnalysisLevel>preview-all</AnalysisLevel>
<OutputType>Library</OutputType>
<StartupObject></StartupObject>
<StartupObject>StgSharp.Debug.DebugProgram</StartupObject>
<Nullable>enable</Nullable>
<Configurations>Debug;Release;NoOps</Configurations>
</PropertyGroup>
@@ -1 +1 @@
90bd7195add9e7840a5242a3ac308feca4b9379c
7187d76e83f08a7f8f9257b5e2e267ca420dd38a
Binary file not shown.
+42 -29
View File
@@ -1,42 +1,55 @@
using StgSharp;
using StgSharp.Control;
using StgSharp.Geometries;
using StgSharp.Graphics;
using StgSharp.Math;
using StgSharp.Math;
using System;
namespace StgSharp
{
internal class Program
internal static class Program
{
private unsafe static void Main(string[] args)
{
int time = 100000;
/**/
for (int i = 0; i < 10000000; i++)
{
int f = Calc.RandomSeed();
if (i%1000==0)
{
Console.WriteLine(f);
}
}
/**/
/*
for (int i = 0; i < 1000000; i++)
{
int a = Calc.RandomSeed();
if (a==0)
{
Console.WriteLine(Calc.currentSeed);
Console.WriteLine(Calc.Random());
Console.WriteLine(i);
break;
}
}
Matrix4x4 matrix = new Matrix4x4(
0,0,0,0,
1,2,3,4,
0,0,0,0,
0,0,0,0
);
Console.WriteLine((long)matrix._row0Ptr/16.0);
Console.WriteLine((long)matrix._row1Ptr/16.0);
Console.WriteLine((long)matrix._row2Ptr/16.0);
Console.WriteLine((long)matrix._row3Ptr/16.0);
Matrix4x4 matrix2 = new Matrix4x4(
0, 0, 0, 0,
1, 2, 3, 4,
0, 0, 0, 0,
0, 0, 0, 0
);
Console.WriteLine((long)matrix2._row0Ptr / 16.0);
Console.WriteLine((long)matrix2._row1Ptr / 16.0);
Console.WriteLine((long)matrix2._row2Ptr / 16.0);
Console.WriteLine((long)matrix2._row3Ptr / 16.0);
Console.WriteLine(matrix+matrix2);
/**/
Vec4d vec = new Vec4d(1,2,2,3);
IntPtr ptr1 = internalIO.InternalInitM128(1,2,3,4);
IntPtr ptr2 = internalIO.InternalInitM128(2,2,3,3);
Console.WriteLine(ptr1);
Console.WriteLine(ptr2);
IntPtr ret = internalIO.InternalInitM128(0,0,0,0);
internalIO.VecAddVec(ptr1,ptr2,ret);
Console.WriteLine(*(M128*)ret);
}
@@ -0,0 +1,9 @@
{
"profiles": {
"StgSharpDebug": {
"commandName": "Project",
"nativeDebugging": true,
"remoteDebugEnabled": false
}
}
}
@@ -16,19 +16,25 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<Optimize>True</Optimize>
<DebugType>embedded</DebugType>
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Optimize>True</Optimize>
<DebugType>embedded</DebugType>
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<DebugType>embedded</DebugType>
<Optimize>True</Optimize>
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<DebugType>embedded</DebugType>
<Optimize>True</Optimize>
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
</PropertyGroup>
<ItemGroup>
@@ -0,0 +1,23 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v6.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v6.0": {
"StgSharpDebug/1.0.0": {
"runtime": {
"StgSharpDebug.dll": {}
}
}
}
},
"libraries": {
"StgSharpDebug/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}
@@ -0,0 +1,9 @@
{
"runtimeOptions": {
"tfm": "net6.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "6.0.0"
}
}
}
@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")]
@@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharpDebug")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("StgSharpDebug")]
[assembly: System.Reflection.AssemblyTitleAttribute("StgSharpDebug")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// 由 MSBuild WriteCodeFragment 类生成。
@@ -0,0 +1 @@
4de0c9258b96801d9e42b6813fa6519daca0e6bc
@@ -0,0 +1,11 @@
is_global = true
build_property.TargetFramework = net6.0
build_property.TargetPlatformMinVersion =
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\源代码\StgSharpDebug\
@@ -0,0 +1 @@
95d74433a7034df1044dfb0fef429c0fc4c5ce9b
@@ -0,0 +1,14 @@
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\bin\Debug\net6.0\StgSharpDebug.exe
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\bin\Debug\net6.0\StgsharpGraphic.dll
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\bin\Debug\net6.0\StgSharpDebug.deps.json
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\bin\Debug\net6.0\StgSharpDebug.runtimeconfig.json
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\bin\Debug\net6.0\StgSharpDebug.dll
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\Debug\net6.0\StgSharpDebug.csproj.AssemblyReference.cache
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\Debug\net6.0\StgSharpDebug.GeneratedMSBuildEditorConfig.editorconfig
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\Debug\net6.0\StgSharpDebug.AssemblyInfoInputs.cache
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\Debug\net6.0\StgSharpDebug.AssemblyInfo.cs
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\Debug\net6.0\StgSharpDebug.csproj.CoreCompileInputs.cache
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\Debug\net6.0\StgSharpDebug.dll
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\Debug\net6.0\refint\StgSharpDebug.dll
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\Debug\net6.0\StgSharpDebug.genruntimeconfig.cache
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\Debug\net6.0\ref\StgSharpDebug.dll
@@ -0,0 +1 @@
a9b27855a09b37d2383b24daf1d8cece33fa658d
@@ -0,0 +1 @@
obj\Debug\net6.0\\_IsIncrementalBuild
Binary file not shown.
@@ -1 +1 @@
40e90cad5a557e01ba20df0e39bf39ff867401c5
67624219dbb47af093f1a5980e8c4b93f2a43fba
@@ -12,3 +12,5 @@ D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharp
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\x64\Debug\net6.0\refint\StgSharpDebug.dll
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\x64\Debug\net6.0\StgSharpDebug.genruntimeconfig.cache
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\x64\Debug\net6.0\ref\StgSharpDebug.dll
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\x64\Debug\net6.0\StgSharp.Properties.Resources.resources
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\x64\Debug\net6.0\StgSharpDebug.csproj.GenerateResource.cache
+71
View File
@@ -0,0 +1,71 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.3.32825.248
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "解决方案项", "解决方案项", "{504FB3A6-5326-4FB6-83EC-F8551FD9D1C4}"
ProjectSection(SolutionItems) = preProject
StgSharpGraphic.dll = StgSharpGraphic.dll
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "StgSharpGraphic", "StgShqrpGraphic\StgShqrpGraphic.vcxproj", "{4CD737E9-9502-46CE-89AC-FE8047502DE4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StgSharpDebug", "StgSharpDebug\StgSharpDebug.csproj", "{D85E4AF0-4FC7-41C5-B892-795A4025B776}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
NoOps|Any CPU = NoOps|Any CPU
NoOps|x64 = NoOps|x64
NoOps|x86 = NoOps|x86
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.Debug|Any CPU.ActiveCfg = Debug|x64
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.Debug|Any CPU.Build.0 = Debug|x64
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.Debug|x64.ActiveCfg = Release|x64
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.Debug|x64.Build.0 = Release|x64
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.Debug|x86.ActiveCfg = Debug|Win32
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.Debug|x86.Build.0 = Debug|Win32
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.NoOps|Any CPU.ActiveCfg = Release|x64
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.NoOps|Any CPU.Build.0 = Release|x64
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.NoOps|x64.ActiveCfg = Release|x64
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.NoOps|x64.Build.0 = Release|x64
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.NoOps|x86.ActiveCfg = Release|Win32
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.NoOps|x86.Build.0 = Release|Win32
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.Release|Any CPU.ActiveCfg = Release|x64
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.Release|Any CPU.Build.0 = Release|x64
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.Release|x64.ActiveCfg = Release|x64
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.Release|x64.Build.0 = Release|x64
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.Release|x86.ActiveCfg = Release|Win32
{4CD737E9-9502-46CE-89AC-FE8047502DE4}.Release|x86.Build.0 = Release|Win32
{D85E4AF0-4FC7-41C5-B892-795A4025B776}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D85E4AF0-4FC7-41C5-B892-795A4025B776}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D85E4AF0-4FC7-41C5-B892-795A4025B776}.Debug|x64.ActiveCfg = Debug|x64
{D85E4AF0-4FC7-41C5-B892-795A4025B776}.Debug|x64.Build.0 = Debug|x64
{D85E4AF0-4FC7-41C5-B892-795A4025B776}.Debug|x86.ActiveCfg = Debug|Any CPU
{D85E4AF0-4FC7-41C5-B892-795A4025B776}.Debug|x86.Build.0 = Debug|Any CPU
{D85E4AF0-4FC7-41C5-B892-795A4025B776}.NoOps|Any CPU.ActiveCfg = Debug|Any CPU
{D85E4AF0-4FC7-41C5-B892-795A4025B776}.NoOps|Any CPU.Build.0 = Debug|Any CPU
{D85E4AF0-4FC7-41C5-B892-795A4025B776}.NoOps|x64.ActiveCfg = Debug|x64
{D85E4AF0-4FC7-41C5-B892-795A4025B776}.NoOps|x64.Build.0 = Debug|x64
{D85E4AF0-4FC7-41C5-B892-795A4025B776}.NoOps|x86.ActiveCfg = Debug|Any CPU
{D85E4AF0-4FC7-41C5-B892-795A4025B776}.NoOps|x86.Build.0 = Debug|Any CPU
{D85E4AF0-4FC7-41C5-B892-795A4025B776}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D85E4AF0-4FC7-41C5-B892-795A4025B776}.Release|Any CPU.Build.0 = Release|Any CPU
{D85E4AF0-4FC7-41C5-B892-795A4025B776}.Release|x64.ActiveCfg = Release|x64
{D85E4AF0-4FC7-41C5-B892-795A4025B776}.Release|x64.Build.0 = Release|x64
{D85E4AF0-4FC7-41C5-B892-795A4025B776}.Release|x86.ActiveCfg = Release|Any CPU
{D85E4AF0-4FC7-41C5-B892-795A4025B776}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {E13615C2-4C8D-4072-95A1-124440983818}
EndGlobalSection
EndGlobal
Binary file not shown.
Binary file not shown.
Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More