
1 – Release Notes
GeeXLab 0.29.4 is a release for Windows 64-bit only.
This new version fixes a bug in the joystick management. In a demo, if you wanted to use the joystick and at the same time you wanted to play some music with FMOD, GeeXLab couldn’t read the joystick state anymore. So far, joystick management was done using Win32 API (joySetCapture and MM_JOYxxxx messages). But it looks like FMOD overrides something because right after the call to FMOD_System_Init(), the MM_JOYxxxx messages were no longer sent to the 3D window. After some tests, I decided to use another method to manage the joystick: DirectInput. DirectInput is simple to use, is fast, allows to manage up to 32 buttons and most importantly, it works fine with FMOD. The functions to get the state of the joystick remain the same but you have to call a new init function (and a termination one) as well as a polling function:
INIT script:
gh_input.joystick_init_di()
FRAME script:
gh_input.joystick_poll_di()
posx, posy, posz = gh_input.joystick_get_position(0)
for i=1, 32 do
buttons[i] = gh_input.joystick_get_button_state(0, i-1)
end
TERMINATE script:
gh_input.joystick_terminate_di()
Currently, only one joystick is handled.

GeeXLab 0.29.4 comes with two new functions for physics libs (PhysX 3, PhysX 4 and Bullet3):
– actor_get_transform_mat16()
– actor_get_transform_pos_qrot()
Both functions allow to get the transformation of a physics actor (the 4×4 matrix or the position + rotation quaternion). You can then use this information to update your objects or whatever you want.
px, py, pz, qx, qy, qz, qw = gh_bullet3.actor_get_transform_pos_qrot(physics_box1)
gh_object.set_position(mesh_box, px, py, pz)
gh_object.render(mesh_box)
m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15 = gh_bullet3.actor_get_transform_mat16(physics_box2)
gh_object.set_transform(mesh_box, m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15)
gh_object.render(mesh_box)
The Python 3 plugin has been updated with latest Python 3.8.0 SDK and the SQLite3 database engine is now powered by latest SQLite3 3.30.0.
2 – Changelog
This changelog is intended for all versions of GeeXLab.
Full changelog from beginning of time is available HERE.
Version 0.29.4.1 - 2019.10.24 * (2019.10.24) bugfix: gh_audio.sound_create() was broken. The function has been broken during the dev of v0.29.4.0. Sorry ;) Version 0.29.4.0 - 2019.10.22 ! (2019.10.22) [Windows] updated Python 3 plugin with Python 3.8.0. + (2019.10.21) added actor_get_transform_mat16() and actor_get_transform_pos_qrot() to gh_bullet3, gh_physx3 and gh_physx4 libs. + (2019.10.19) [Windows] added new joystick functions based on DirectInput: joystick_init_di(), joystick_terminate_di() and joystick_poll_di() to gh_input. ! (2019.10.19) updated SQLite3 with latest version 3.30.0.