commit x64 compilation from lulu cause the other branch dont seems to compile properly at home

This commit is contained in:
2026-07-17 16:08:20 +02:00
parent c0f3eeb00d
commit 0efa4ee6f7
625 changed files with 117283 additions and 4426 deletions

View File

@ -0,0 +1,165 @@
/* -----------------------------------------------------------------------------
GSFramework
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
----------------------------------------------------------------------------- */
#include "binding_helpers.h"
#include "script_squirrel/cobject/matrix_decl.h"
#include "math/matrix4.h"
#include "math/matrix3.h"
using namespace GS;
//------------------------------------------------------------------------------
SQInteger PushMatrix4(HSQUIRRELVM vm, const Matrix4 &mtx)
{
push_Matrix4(vm, mtx);
/*
if (!CreateClassInstance(vm, "Matrix4", true))
return sq_suspendvm(vm);
SetTableKey("m00", sq_pushfloat, -1, mtx.m[0][0]);
SetTableKey("m10", sq_pushfloat, -1, mtx.m[1][0]);
SetTableKey("m20", sq_pushfloat, -1, mtx.m[2][0]);
SetTableKey("m30", sq_pushfloat, -1, mtx.m[3][0]);
SetTableKey("m01", sq_pushfloat, -1, mtx.m[0][1]);
SetTableKey("m11", sq_pushfloat, -1, mtx.m[1][1]);
SetTableKey("m21", sq_pushfloat, -1, mtx.m[2][1]);
SetTableKey("m31", sq_pushfloat, -1, mtx.m[3][1]);
SetTableKey("m02", sq_pushfloat, -1, mtx.m[0][2]);
SetTableKey("m12", sq_pushfloat, -1, mtx.m[1][2]);
SetTableKey("m22", sq_pushfloat, -1, mtx.m[2][2]);
SetTableKey("m32", sq_pushfloat, -1, mtx.m[3][2]);
SetTableKey("m03", sq_pushfloat, -1, mtx.m[0][3]);
SetTableKey("m13", sq_pushfloat, -1, mtx.m[1][3]);
SetTableKey("m23", sq_pushfloat, -1, mtx.m[2][3]);
SetTableKey("m33", sq_pushfloat, -1, mtx.m[3][3]);
*/
return 1;
}
SQInteger GetMatrix4(HSQUIRRELVM vm, int idx, Matrix4 &mtx)
{
GetTableKey("m00", sq_getfloat, idx, mtx.m[0][0]);
GetTableKey("m10", sq_getfloat, idx, mtx.m[1][0]);
GetTableKey("m20", sq_getfloat, idx, mtx.m[2][0]);
GetTableKey("m30", sq_getfloat, idx, mtx.m[3][0]);
GetTableKey("m01", sq_getfloat, idx, mtx.m[0][1]);
GetTableKey("m11", sq_getfloat, idx, mtx.m[1][1]);
GetTableKey("m21", sq_getfloat, idx, mtx.m[2][1]);
GetTableKey("m31", sq_getfloat, idx, mtx.m[3][1]);
GetTableKey("m02", sq_getfloat, idx, mtx.m[0][2]);
GetTableKey("m12", sq_getfloat, idx, mtx.m[1][2]);
GetTableKey("m22", sq_getfloat, idx, mtx.m[2][2]);
GetTableKey("m32", sq_getfloat, idx, mtx.m[3][2]);
GetTableKey("m03", sq_getfloat, idx, mtx.m[0][3]);
GetTableKey("m13", sq_getfloat, idx, mtx.m[1][3]);
GetTableKey("m23", sq_getfloat, idx, mtx.m[2][3]);
GetTableKey("m33", sq_getfloat, idx, mtx.m[3][3]);
return 0;
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
SQInteger PushMatrix3(HSQUIRRELVM vm, const Matrix3 &mtx)
{
push_Matrix3(vm, mtx);
/*
if (!CreateClassInstance(vm, "Matrix3", true))
return sq_suspendvm(vm);
SetTableKey("m00", sq_pushfloat, -1, mtx.m[0][0]);
SetTableKey("m10", sq_pushfloat, -1, mtx.m[1][0]);
SetTableKey("m20", sq_pushfloat, -1, mtx.m[2][0]);
SetTableKey("m01", sq_pushfloat, -1, mtx.m[0][1]);
SetTableKey("m11", sq_pushfloat, -1, mtx.m[1][1]);
SetTableKey("m21", sq_pushfloat, -1, mtx.m[2][1]);
SetTableKey("m02", sq_pushfloat, -1, mtx.m[0][2]);
SetTableKey("m12", sq_pushfloat, -1, mtx.m[1][2]);
SetTableKey("m22", sq_pushfloat, -1, mtx.m[2][2]);
*/
return 1;
}
SQInteger GetMatrix3(HSQUIRRELVM vm, int idx, Matrix3 &mtx)
{
GetTableKey("m00", sq_getfloat, idx, mtx.m[0][0]);
GetTableKey("m10", sq_getfloat, idx, mtx.m[1][0]);
GetTableKey("m20", sq_getfloat, idx, mtx.m[2][0]);
GetTableKey("m01", sq_getfloat, idx, mtx.m[0][1]);
GetTableKey("m11", sq_getfloat, idx, mtx.m[1][1]);
GetTableKey("m21", sq_getfloat, idx, mtx.m[2][1]);
GetTableKey("m02", sq_getfloat, idx, mtx.m[0][2]);
GetTableKey("m12", sq_getfloat, idx, mtx.m[1][2]);
GetTableKey("m22", sq_getfloat, idx, mtx.m[2][2]);
return 0;
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
SQInteger RotationMatrixFromDirection(HSQUIRRELVM vm)
{
__SQ_GETSINGLE(__SQ_GETVECTOR(direction))
__SQ_RETURNMATRIX3(Matrix3::FromOrthonormalBasis(direction))
}
SQInteger RotationMatrixFromDirectionAndUp(HSQUIRRELVM vm)
{
__SQ_GETSTART(2)
__SQ_GETVECTOR(direction)
__SQ_GETVECTOR(up)
__SQ_GETEND
__SQ_RETURNMATRIX3(Matrix3::FromOrthonormalBasis(direction, &up))
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
SQInteger EulerFromDirection(HSQUIRRELVM vm)
{
__SQ_GETSINGLE(__SQ_GETVECTOR(direction))
__SQ_RETURNVECTOR(Matrix3::FromOrthonormalBasis(direction).AsEuler())
}
SQInteger EulerFromDirectionAndUp(HSQUIRRELVM vm)
{
__SQ_GETSTART(2)
__SQ_GETVECTOR(direction)
__SQ_GETVECTOR(up)
__SQ_GETEND
__SQ_RETURNVECTOR(Matrix3::FromOrthonormalBasis(direction, &up).AsEuler())
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
SQInteger MatrixToEuler(HSQUIRRELVM vm)
{
__SQ_GETSTART(2)
__SQ_GETMATRIX3(matrix)
__SQ_GETINT(rorder)
__SQ_GETEND
__SQ_RETURNVECTOR(matrix.AsEuler((Math::rOrder)rorder))
}
SQInteger TransformationMatrix(HSQUIRRELVM vm)
{
__SQ_GETSTART(4)
__SQ_GETVECTOR(p)
__SQ_GETVECTOR(r)
__SQ_GETVECTOR(s)
__SQ_GETVECTOR(t)
__SQ_GETEND
__SQ_RETURNMATRIX4(Matrix4::TransformationMatrix(p, r, s, &t))
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
void RegisterMatrixBinding(HSQUIRRELVM vm)
{
using namespace GS::Script;
sq_register(vm, MatrixToEuler, "MatrixToEuler", _SC(".xi"));
sq_register(vm, TransformationMatrix, "TransformationMatrix", _SC(".xxxx"));
sq_register(vm, RotationMatrixFromDirection, "RotationMatrixFromDirection", _SC(".x"));
sq_register(vm, RotationMatrixFromDirectionAndUp, "RotationMatrixFromDirectionAndUp", _SC(".xx"));
sq_register(vm, EulerFromDirection, "EulerFromDirection", _SC(".x"));
sq_register(vm, EulerFromDirectionAndUp, "EulerFromDirectionAndUp", _SC(".xx"));
}
//------------------------------------------------------------------------------