From 26e9f9cbf2f0aa09f90710bd083e26705d5f8bc8 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Sat, 19 Sep 2020 10:12:30 +0100 Subject: [PATCH] automatically deref pointers in pyray --- raylib/pyray.py | 8 +++++--- test_pyray.py | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/raylib/pyray.py b/raylib/pyray.py index 4df7f6c..153e5f6 100644 --- a/raylib/pyray.py +++ b/raylib/pyray.py @@ -9,14 +9,16 @@ class PyRay: def makefunc(a): - #print("makefunc ",a) + #print("makefunc ",a, ffi.typeof(a).args) def func(self, *args): modified_args = [] - for arg in args: - #print(arg, type(arg)) + for (c_arg, arg) in zip(ffi.typeof(a).args, args): + #print(arg, c_arg.kind) if type(arg) == str: encoded = arg.encode('utf-8') modified_args.append(encoded) + elif c_arg.kind == 'pointer': + modified_args.append(ffi.addressof(arg)) else: modified_args.append(arg) return a(*modified_args) diff --git a/test_pyray.py b/test_pyray.py index 8085c72..b0289eb 100644 --- a/test_pyray.py +++ b/test_pyray.py @@ -26,7 +26,7 @@ rayhit = pyray.get_collision_ray_ground(ray, 0) print(str(rayhit.position.x)) while not pyray.window_should_close(): - pyray.update_camera(pyray.pointer(camera)) + pyray.update_camera(camera) pyray.begin_drawing() pyray.clear_background(RAYWHITE) pyray.begin_mode_3d(camera)