This commit is contained in:
blueloveTH 2023-09-27 17:57:40 +08:00
parent 53528c767b
commit 4e1e08df61
2 changed files with 5 additions and 5 deletions

View File

@ -113,7 +113,7 @@ void _bind(VM* vm, PyObject* obj, const char* sig, Ret(T::*func)(Params...)){
return VAR(self.REF().FGET()); \
});
#define PY_STRUCT_LIKE_OBJECT(T) \
#define PY_STRUCT_LIKE(T) \
static_assert(std::is_trivially_copyable<T>::value); \
vm->bind_func<1>(type, "from_struct", [](VM* vm, ArgsView args){ \
C99Struct& s = CAST(C99Struct&, args[0]); \

View File

@ -42,7 +42,7 @@ namespace pkpy{
void PyVec2::_register(VM* vm, PyObject* mod, PyObject* type){
PY_STRUCT_LIKE_OBJECT(PyVec2)
PY_STRUCT_LIKE(PyVec2)
vm->bind_constructor<3>(type, [](VM* vm, ArgsView args){
float x = CAST_F(args[1]);
@ -101,7 +101,7 @@ namespace pkpy{
}
void PyVec3::_register(VM* vm, PyObject* mod, PyObject* type){
PY_STRUCT_LIKE_OBJECT(PyVec3)
PY_STRUCT_LIKE(PyVec3)
vm->bind_constructor<4>(type, [](VM* vm, ArgsView args){
float x = CAST_F(args[1]);
@ -138,7 +138,7 @@ namespace pkpy{
}
void PyVec4::_register(VM* vm, PyObject* mod, PyObject* type){
PY_STRUCT_LIKE_OBJECT(PyVec4)
PY_STRUCT_LIKE(PyVec4)
vm->bind_constructor<1+4>(type, [](VM* vm, ArgsView args){
float x = CAST_F(args[1]);
@ -183,7 +183,7 @@ namespace pkpy{
#undef BIND_VEC_FUNCTION_1
void PyMat3x3::_register(VM* vm, PyObject* mod, PyObject* type){
PY_STRUCT_LIKE_OBJECT(PyMat3x3)
PY_STRUCT_LIKE(PyMat3x3)
vm->bind_constructor<-1>(type, [](VM* vm, ArgsView args){
if(args.size() == 1+0) return VAR_T(PyMat3x3, Mat3x3::zeros());