daily update on 20230829 by nitload youmu

This commit is contained in:
Nitload
2023-08-29 22:29:47 +08:00
parent 8aac9fee87
commit 1fcbfb972b
125 changed files with 6505 additions and 2077 deletions
+33 -28
View File
@@ -1,6 +1,7 @@
using StgSharp.Math;
using System;
using System.Collections.Generic;
using System.Numerics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
@@ -14,21 +15,21 @@ namespace StgSharp
#region load
[DllImport(dllName: "StgSharpGraphic.dll", EntryPoint = "load",
[DllImport(dllName: "StgSharpGraphic", EntryPoint = "load",
CallingConvention = CallingConvention.Cdecl)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static extern ref M128 load_internal(float x,float y, float z, float w);
internal static extern ref Vector4 load_internal(float x,float y, float z, float w);
[DllImport(dllName: "StgSharpGraphic.dll", EntryPoint = "load",
[DllImport(dllName: "StgSharpGraphic", EntryPoint = "load",
CallingConvention = CallingConvention.Cdecl)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static unsafe extern M128* loadptr_internal(float x, float y, float z, float w);
internal static unsafe extern Vector4* loadptr_internal(float x, float y, float z, float w);
[DllImport("StgSharpGraphic.dll",EntryPoint = "load_matmap",
[DllImport("StgSharpGraphic",EntryPoint = "load_matmap",
CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr load_mat(IntPtr c0, IntPtr c1, IntPtr c2, IntPtr c3);
[DllImport("StgSharpGraphic.dll", EntryPoint = "load_cpy",
[DllImport("StgSharpGraphic", EntryPoint = "load_cpy",
CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr load_cpy_internal(IntPtr ptr);
@@ -37,11 +38,11 @@ namespace StgSharp
#region add sub
[DllImport("StgSharpGraphic.dll", EntryPoint = "addps",
[DllImport("StgSharpGraphic", EntryPoint = "addps",
CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr addps_internal(IntPtr ptr1, IntPtr ptr2);
[DllImport("StgSharpGraphic.dll", EntryPoint = "subps",
[DllImport("StgSharpGraphic", EntryPoint = "subps",
CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr subps_internal(IntPtr ptr1, IntPtr ptr2);
@@ -49,63 +50,67 @@ namespace StgSharp
#region mulps
[DllImport("StgSharpGraphic.dll", EntryPoint = "mulps",
[DllImport("StgSharpGraphic", EntryPoint = "mulps",
CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr mulps_internal(IntPtr ptr1, IntPtr ptr2);
[DllImport("StgSharpGraphic.dll", EntryPoint = "mulps_const",
[DllImport("StgSharpGraphic", EntryPoint = "mulps_const",
CallingConvention = CallingConvention.Cdecl)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static extern IntPtr mulps_const_internal(IntPtr ptr, float value);
[DllImport("StgSharpGraphic.dll", EntryPoint = "mulps_sum",
[DllImport("StgSharpGraphic", EntryPoint = "mulps_sum",
CallingConvention = CallingConvention.Cdecl)]
internal static extern float mulps_sum_internal(IntPtr ptr1, IntPtr ptr2);
[DllImport("StgSharpGraphic.dll", EntryPoint = "mulps_sum",
[DllImport("StgSharpGraphic", EntryPoint = "mulps_sum",
CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe float mulps_sum_internal(M128* ptr1, M128* ptr2);
internal static extern unsafe float mulps_sum_internal(Vector4* ptr1, Vector4* ptr2);
[DllImport("StgSharpGraphic", EntryPoint = "mulps_sum",
CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe float mulps_sum_internal(Vec4d* ptr1, Vec4d* ptr2);
#endregion
#region div
[DllImport("StgSharpGraphic.dll", EntryPoint = "mulps",
[DllImport("StgSharpGraphic", EntryPoint = "mulps",
CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr divps_internal(IntPtr ptr1, IntPtr ptr2);
[DllImport("StgSharpGraphic.dll", EntryPoint = "divps_const",
[DllImport("StgSharpGraphic", EntryPoint = "divps_const",
CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr divps_const_internal(IntPtr ptr, float value);
#endregion
[DllImport("StgSharpGraphic.dll", EntryPoint = "sqrtss_const",
[DllImport("StgSharpGraphic", EntryPoint = "sqrtss_const",
CallingConvention = CallingConvention.Cdecl)]
internal static extern float sqrtss_const_internal(float a);
[DllImport("StgSharpGraphic.dll", EntryPoint = "set_m128ptr_default",
[DllImport("StgSharpGraphic", EntryPoint = "set_Vector4ptr_default",
CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr set_m128ptr_default_internal();
internal static extern IntPtr set_Vector4ptr_default_internal();
#region deinit m128
#region deinit Vector4
[DllImport(
"msvcrt.dll",
EntryPoint = "_aligned_free",
CallingConvention = CallingConvention.Cdecl)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static extern unsafe void deinit_internal(M128* ptr);
internal static extern unsafe void deinit_internal(Vector4* ptr);
[DllImport(
"msvcrt.dll",
@@ -130,23 +135,23 @@ namespace StgSharp
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static extern unsafe void deinit_internal(Mat4* ptr);
[DllImport("StgSharpGraphic.dll", EntryPoint = "deinitM128",
[DllImport("StgSharpGraphic", EntryPoint = "deinitVector4",
CallingConvention = CallingConvention.Cdecl)]
internal static extern void deinitM128_internal(ref M128 vec);
internal static extern void deinitVector4_internal(ref Vector4 vec);
[DllImport("StgSharpGraphic.dll", EntryPoint = "deinitM128",
[DllImport("StgSharpGraphic", EntryPoint = "deinitVector4",
CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void deinitM128_internal(M128* vec);
internal static extern unsafe void deinitVector4_internal(Vector4* vec);
#endregion
[DllImport("StgSharpGraphic.dll", EntryPoint = "deinit_matmapPtr_sse",
[DllImport("StgSharpGraphic", EntryPoint = "deinit_matmapPtr_sse",
CallingConvention = CallingConvention.Cdecl)]
internal static extern void deinitMatmapPtr_sse_internal(ref M128matMap mapPtr);
internal static extern void deinitMatmapPtr_sse_internal(ref Vector4Map mapPtr);
[DllImport("StgSharpGraphic.dll", EntryPoint = "deinit_matmap_sse",
[DllImport("StgSharpGraphic", EntryPoint = "deinit_matmap_sse",
CallingConvention = CallingConvention.Cdecl)]
internal static extern void deinitMatmap_sse_internal(ref M128matMap mapPtr);
internal static extern void deinitMatmap_sse_internal(ref Vector4Map mapPtr);
}
}
+22 -22
View File
@@ -1,63 +1,63 @@
using StgSharp;
using StgSharp.Control;
using StgSharp.Logic;
using System.Data;
using System.Numerics;
using System.Runtime.InteropServices;
namespace StgSharp.Math
{
public unsafe class M128Map
public unsafe class Vector4Map
{
public readonly long mapID;
internal long mapPtr;
internal readonly StgSharp.LinkedListNode<long> _unusedM128Header;
internal readonly StgSharp.LinkedListNode<long> _unusedVector4Header;
private const int mapSize = 30 * 30;
internal StgSharp.LinkedList<long> m128Map =
internal StgSharp.LinkedList<long> vector4Map =
new StgSharp.LinkedList<long>();
public bool isFull
{
get
{
return _unusedM128Header == m128Map._hook;
return _unusedVector4Header == vector4Map._hook;
}
}
public M128Map()
public Vector4Map()
{
mapPtr = (long)(Marshal.AllocHGlobal(sizeof(M128)*mapSize)+15);
mapPtr = (long)(Marshal.AllocHGlobal(sizeof(Vector4)*mapSize)+15);
long firstM128ptr = (mapPtr / 16 + 1) * 16;
long firstVector4ptr = (mapPtr / 16 + 1) * 16;
m128Map.Add(0);
_unusedM128Header = m128Map._hook._next;
vector4Map.Add(0);
_unusedVector4Header = vector4Map._hook._next;
for (int i = 0; i < 4*30*30*4; i+=16)
{
m128Map.Add(firstM128ptr+i);
vector4Map.Add(firstVector4ptr+i);
}
mapID = Calc.RandomSeed();
}
internal long RegistManagedM128Ptr()
internal long RegistManagedVector4Ptr()
{
LinkedListNode<long> m128 = _unusedM128Header._next;
LinkedListNode<long> m128Previous = _unusedM128Header._previous;
LinkedListNode<long> Vector4 = _unusedVector4Header._next;
LinkedListNode<long> Vector4Previous = _unusedVector4Header._previous;
m128._next._previous = _unusedM128Header.Next;
m128Previous._next = m128;
m128._previous = m128Previous;
_unusedM128Header._next = m128._next;
m128._next = _unusedM128Header;
_unusedM128Header._previous = m128;
Vector4._next._previous = _unusedVector4Header.Next;
Vector4Previous._next = Vector4;
Vector4._previous = Vector4Previous;
_unusedVector4Header._next = Vector4._next;
Vector4._next = _unusedVector4Header;
_unusedVector4Header._previous = Vector4;
return m128._value;
return Vector4._value;
}
internal void RecycleManagedM128Ptr()
internal void RecycleManagedVector4Ptr()
{
}
+3 -3
View File
@@ -9,10 +9,10 @@ namespace StgSharp.Math
public static unsafe partial class SSE
{
public static int M128Size = 16;
public static int Vector4Size = 16;
internal static IntPtr defaultM128Ptr =
internalIO.set_m128ptr_default_internal();
internal static IntPtr defaultVector4Ptr =
internalIO.set_Vector4ptr_default_internal();
internal static IntPtr defaultM256Ptr;
-59
View File
@@ -5,63 +5,4 @@ using System.Text;
namespace StgSharp.Math
{
[StructLayout(LayoutKind.Sequential)]
internal struct M128matMap
{
internal IntPtr colum0Ptr;
internal IntPtr colum1Ptr;
internal IntPtr colum2Ptr;
internal IntPtr colum3Ptr;
internal M128matMap(
IntPtr c0ptr,
IntPtr c1ptr,
IntPtr c2ptr,
IntPtr c3ptr
)
{
colum0Ptr = c0ptr;
colum1Ptr = c1ptr;
colum2Ptr = c2ptr;
colum3Ptr = c3ptr;
}
}
[StructLayout(LayoutKind.Explicit, Size = 16, Pack = 16)]
internal struct M128
{
[FieldOffset(0)] internal float single_0;
[FieldOffset(4)] internal float single_1;
[FieldOffset(8)] internal float single_2;
[FieldOffset(12)] internal float single_3;
[FieldOffset(0)] internal int int32_0;
[FieldOffset(4)] internal int int32_1;
[FieldOffset(8)] internal int int32_2;
[FieldOffset(12)] internal int int32_3;
[FieldOffset(0)] internal long int64_0;
[FieldOffset(8)] internal long int64_1;
[FieldOffset(0)] internal IntPtr ptr_0;
[FieldOffset(8)] internal IntPtr ptr_1;
[FieldOffset(0)] internal long double_0;
[FieldOffset(8)] internal long double_1;
internal M128(float x,float y,float z,float w)
{
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}";
}
}
}