GeeXLab 0.21.x Released for all Platforms, Assimp Support Added

A new version of GeeXLab is ready for all platforms: Windows, Linux, macOS, Raspberry Pi (Raspbian) and Tinker Board (Tinker OS). This version is a big maintenance update and, at the same time, adds the support of Assimp for loading many 3D file formats on all platforms.

1 – Release Highlights

1.1 – Assimp 3D Object Loader Plugin

GeeXLab 0.21+ comes with a new plugin for loading 3D objects. This new plugin (plugin_gxc_assimp_x{32|64}.{dll|so|dylib}) is based on the Assimp library. Assimp has been used in older versions of GeeXLab (many many years ago) but has been removed because at that time, it was not stable. Now Assimp seems stable: it compiles properly and works fine on all platforms. One of the nice thing with Assimp is that it supports many 3D formats including recent glTF.

To load an 3D object with Assimp loader, you can use these new functions:

A simple demo that uses Assimp to load 3D object can be found in the learn folder of the code sample pack:learn/01-basic/11-loading-3d-model/main.xml or learn/02-intermediate/01-phong-lighting/main.xml.

The Assimp plugin is available on Windows, Linux, macOS, Raspberry Pi and Tinker Board.

1.2 – ImGui v1.54

The ImGui support has been updated with latest version 1.54. Now all kind of colors can be customized via this function of the gh_imgui library:

gh_imgui.set_color(color_type, r, g, b, a)

All possible values for color_type are defined here: {GeeXLab folder}/libs/lua/imgui.lua

You can find a demo that shows how to change ImGui colors in the full code sample pack: gl-32/imgui/demo_06.xml.

Some new functions have been added in the gh_imgui lib (lua and python) for customizing the rendering of windows:
– gh_imgui.set_frame_border_size()
– gh_imgui.set_frame_rounding()
– gh_imgui.set_window_border_size()
– gh_imgui.set_window_rounding()

ImGui functions are available on Windows, Linux, macOS, Raspberry Pi and Tinker Board.

1.3 – NVIDIA PhysX 3.4

The NVIDIA PhysX plugin has been updated to the version 2018.01.19. It’s one of the latest version of the 3.4 branch. The PhysX plugin has been updated on Windows, Linux and macOS.

1.4 – FFmpeg 3.4.1

FFmpeg… If you have already used the FFmpeg API, you can imagine what does it mean to update a code based on FFmpeg 2.86 (released two or three years ago) to latest FFmpeg 3.41. Using FFmpeg is not easy (I think, for example, to the video / audio synchronization) and some important functions in v2.86 have been deprecated in branch 3.x. And up to date code samples on how to use FFmpeg are not easy to find. Anyway, I managed to update the FFmpeg plugin to version 3.4.1, it seems to work and it’s the important thing. I just saw that a version 3.4.2 is available but it’s too late to update GeeXLab with it. FFmpeg 3.4.2 will be used in the next release of GeeXLab.

A simple demo that shows how to use FFmpeg plugin to play a video is available in the full code sample pack:gl-32/audio-video-player/demo_video_player_gl3.xml

1.5 – ImageMagick 7.0.7-22

The ImageMagick plugin has been added to GeeXLab in version 0.19.0. This time I properly compiled ImageMagick in order to have JPEG and PNG support on all platforms. Because on some platforms (Linux / macOS), ImageMagick expects that jpeg and png dev libs are installed. If it’s not the case, ImageMagick is compiled without the support of those important image formats.

ImageMagick is available via a plugin (plugin_gxc_imagemagick_x{32|64}.{dll|so|dylib}) and can be used via the gh_imagemagick library in Lua and Python.

An example of how to use ImageMagick functions can be use the MagickView demo available in each version of GeeXLab in the apps/magickview folder.

2 – Downloads

The latest version of GeeXLab as well as code sample packs can be downloaded from THIS PAGE.