daily update on 20230829 by nitload youmu
This commit is contained in:
@@ -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()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user