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

153 lines
5.5 KiB
C#

using StgSharp.Math;
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace StgSharp
{
internal static partial class internalIO
{
#region load
[DllImport(dllName: "StgSharpGraphic.dll", EntryPoint = "load",
CallingConvention = CallingConvention.Cdecl)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static extern ref M128 load_internal(float x,float y, float z, float w);
[DllImport(dllName: "StgSharpGraphic.dll", EntryPoint = "load",
CallingConvention = CallingConvention.Cdecl)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static unsafe extern M128* loadptr_internal(float x, float y, float z, float w);
[DllImport("StgSharpGraphic.dll",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",
CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr load_cpy_internal(IntPtr ptr);
#endregion
#region add sub
[DllImport("StgSharpGraphic.dll", EntryPoint = "addps",
CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr addps_internal(IntPtr ptr1, IntPtr ptr2);
[DllImport("StgSharpGraphic.dll", EntryPoint = "subps",
CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr subps_internal(IntPtr ptr1, IntPtr ptr2);
#endregion
#region mulps
[DllImport("StgSharpGraphic.dll", EntryPoint = "mulps",
CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr mulps_internal(IntPtr ptr1, IntPtr ptr2);
[DllImport("StgSharpGraphic.dll", 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",
CallingConvention = CallingConvention.Cdecl)]
internal static extern float mulps_sum_internal(IntPtr ptr1, IntPtr ptr2);
[DllImport("StgSharpGraphic.dll", EntryPoint = "mulps_sum",
CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe float mulps_sum_internal(M128* ptr1, M128* ptr2);
#endregion
#region div
[DllImport("StgSharpGraphic.dll", EntryPoint = "mulps",
CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr divps_internal(IntPtr ptr1, IntPtr ptr2);
[DllImport("StgSharpGraphic.dll", EntryPoint = "divps_const",
CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr divps_const_internal(IntPtr ptr, float value);
#endregion
[DllImport("StgSharpGraphic.dll", EntryPoint = "sqrtss_const",
CallingConvention = CallingConvention.Cdecl)]
internal static extern float sqrtss_const_internal(float a);
[DllImport("StgSharpGraphic.dll", EntryPoint = "set_m128ptr_default",
CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr set_m128ptr_default_internal();
#region deinit m128
[DllImport(
"msvcrt.dll",
EntryPoint = "_aligned_free",
CallingConvention = CallingConvention.Cdecl)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static extern unsafe void deinit_internal(M128* ptr);
[DllImport(
"msvcrt.dll",
EntryPoint = "_aligned_free",
CallingConvention = CallingConvention.Cdecl)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static extern unsafe void deinit_internal(Mat2* ptr);
/*
[DllImport(
"msvcrt.dll",
EntryPoint = "_aligned_free",
CallingConvention = CallingConvention.Cdecl)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static extern unsafe void deinit_internal(Mat3* ptr);
*/
[DllImport(
"msvcrt.dll",
EntryPoint = "_aligned_free",
CallingConvention = CallingConvention.Cdecl)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static extern unsafe void deinit_internal(Mat4* ptr);
[DllImport("StgSharpGraphic.dll", EntryPoint = "deinitM128",
CallingConvention = CallingConvention.Cdecl)]
internal static extern void deinitM128_internal(ref M128 vec);
[DllImport("StgSharpGraphic.dll", EntryPoint = "deinitM128",
CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void deinitM128_internal(M128* vec);
#endregion
[DllImport("StgSharpGraphic.dll", EntryPoint = "deinit_matmapPtr_sse",
CallingConvention = CallingConvention.Cdecl)]
internal static extern void deinitMatmapPtr_sse_internal(ref M128matMap mapPtr);
[DllImport("StgSharpGraphic.dll", EntryPoint = "deinit_matmap_sse",
CallingConvention = CallingConvention.Cdecl)]
internal static extern void deinitMatmap_sse_internal(ref M128matMap mapPtr);
}
}