mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-20 11:30:18 +00:00
...
This commit is contained in:
parent
53528c767b
commit
4e1e08df61
@ -113,7 +113,7 @@ void _bind(VM* vm, PyObject* obj, const char* sig, Ret(T::*func)(Params...)){
|
|||||||
return VAR(self.REF().FGET()); \
|
return VAR(self.REF().FGET()); \
|
||||||
});
|
});
|
||||||
|
|
||||||
#define PY_STRUCT_LIKE_OBJECT(T) \
|
#define PY_STRUCT_LIKE(T) \
|
||||||
static_assert(std::is_trivially_copyable<T>::value); \
|
static_assert(std::is_trivially_copyable<T>::value); \
|
||||||
vm->bind_func<1>(type, "from_struct", [](VM* vm, ArgsView args){ \
|
vm->bind_func<1>(type, "from_struct", [](VM* vm, ArgsView args){ \
|
||||||
C99Struct& s = CAST(C99Struct&, args[0]); \
|
C99Struct& s = CAST(C99Struct&, args[0]); \
|
||||||
|
@ -42,7 +42,7 @@ namespace pkpy{
|
|||||||
|
|
||||||
|
|
||||||
void PyVec2::_register(VM* vm, PyObject* mod, PyObject* type){
|
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){
|
vm->bind_constructor<3>(type, [](VM* vm, ArgsView args){
|
||||||
float x = CAST_F(args[1]);
|
float x = CAST_F(args[1]);
|
||||||
@ -101,7 +101,7 @@ namespace pkpy{
|
|||||||
}
|
}
|
||||||
|
|
||||||
void PyVec3::_register(VM* vm, PyObject* mod, PyObject* type){
|
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){
|
vm->bind_constructor<4>(type, [](VM* vm, ArgsView args){
|
||||||
float x = CAST_F(args[1]);
|
float x = CAST_F(args[1]);
|
||||||
@ -138,7 +138,7 @@ namespace pkpy{
|
|||||||
}
|
}
|
||||||
|
|
||||||
void PyVec4::_register(VM* vm, PyObject* mod, PyObject* type){
|
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){
|
vm->bind_constructor<1+4>(type, [](VM* vm, ArgsView args){
|
||||||
float x = CAST_F(args[1]);
|
float x = CAST_F(args[1]);
|
||||||
@ -183,7 +183,7 @@ namespace pkpy{
|
|||||||
#undef BIND_VEC_FUNCTION_1
|
#undef BIND_VEC_FUNCTION_1
|
||||||
|
|
||||||
void PyMat3x3::_register(VM* vm, PyObject* mod, PyObject* type){
|
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){
|
vm->bind_constructor<-1>(type, [](VM* vm, ArgsView args){
|
||||||
if(args.size() == 1+0) return VAR_T(PyMat3x3, Mat3x3::zeros());
|
if(args.size() == 1+0) return VAR_T(PyMat3x3, Mat3x3::zeros());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user