Files
stgsharp/源代码/StgSharp/Math/IO/XMM.cs
T

68 lines
1.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
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}";
}
}
}