GeeXLab 0.39 Released (Windows, Linux, Raspberry Pi and macOS)

GeeXLab: scriptable proto-engine for Windows, Linux, Raspberry Pi and macOS



1 – Release Notes

This new version of GeeXLab is available for Windows 64-bit, Windows 32-bit, Linux 64-bit (GLIBC 2.23), Raspberry Pi OS (GLIBC 2.28) and macOS.

GeeXLab 0.39.0 comes with the following main changes:
– ImGui file browser
– ImGui memory editor
– preliminary support of Vulkan KHR raytracing
– Lua 5.4.2
– Python 3.9.1 and improved scene reloading
– webcam capture resolution on Windows
– curl


ImGui file browser

This file browser is very cool because it’s based on Dear ImGui and then it’s available on all platforms. The source project is available HERE. A set of functions has been added to gh_imgui to deal with the file browser:

A demo that shows how to use the file browser is available in the OpenGL 2.1 demopack in the d29-geexlab-demopack-gl21/d29-imgui/imgui-file-browser/ folder.

GeeXLab - ImGui file browser


ImGui Memory Editor

I found this project, directly developed by Dear ImGui’s author. It’s a simple memory editor. You can read/write memory buffers. A new set of functions has been added in gh_imgui: gh_imgui.memory_editor_xxxxx().

A demo that shows how to use the memory editor is available in the OpenGL 2.1 demopack in the d29-geexlab-demopack-gl21/d29-imgui/imgui-memory-editor/ folder.

GeeXLab - ImGui file browser


Preliminary Support of Vulkan KHR Raytracing

The Khronos Group has released the official Vulkan raytracing extensions few weeks ago with Vulkan 1.2.162 specifications. Vulkan raytracing will be the main change in next GeeXLab 0.40.x. Many Vulkan raytracing functions have been implemented in the Vulkan2 plugin of GeeXLab but they have not been yet tested. But three functions to query hardware capabilities are ready:

– gh_vk.raytracing_pipeline_get_property_value_u32()
– gh_vk.raytracing_acceleration_structure_get_property_value_u32()
– gh_vk.raytracing_acceleration_structure_get_property_value_u64()

A demo showing how to use these functions will be released very shortly.


Lua 5.4.2

The Lua scripting engine (built-in plugin) has been updated to the latest version 5.4.2 on all platforms. This new version of Lua has been released few days ago and is a bug fix release.

Lua logo


Python 3.9.1

On Windows, the Python plugin has been compiled with the latest stable version 3.9.1, that, like Lua, has been released few days ago.
The Windows version of GeeXLab comes also with Python 2.7 and Python 3.8 plugins. If you look at the plugins folder, you will see:
– plugin_gxl_python2_x64.dll: this is the Python 2.7 plugin
– plugin_gxl_python38_x64.dll: this is the Python 3.8 plugin
– plugin_gxl_python3_x64.dll: this is the Python 3.9 plugin

Default plugins names are plugin_gxl_python2_x64 for Python 2 and plugin_gxl_python3_x64 for Python 3. So if you want to use the Python 3.8 plugin, just rename plugin_gxl_python38_x64 in plugin_gxl_python3_x64.

Python logo


Webcam Capture Resolution on Windows

I finally found the way to control the capture size of the webcam on Windows. By default the capture size is 640×480. Not cool if you have a full HD capable webcam. A new function (webcam_start_v2) has been added to start a webcam with a particular resolution:

webcam1 = gh_utils.webcam_create()

-- 320×240
-- 640×480 -- default resolution on Windows
-- 1280×720
-- 1920×1080
gh_utils.webcam_start_v2(webcam1, 1, 1280, 720) -- GeeXLab 0.39+

A demo showing how to use the webcam on Windows is available in the OpenGL 2.1 demopack (folder: geexlab-demopack-gl21/d31-webcam/).



curl is a command line tool to easily download files from Internet and most of the protocols are supported. In GeeXLab, curl is available in two ways:

– embedded in GeeXLab and accessible via a function in gh_utils lib: gh_utils.curl_download_file_v1(). The curl_download_file_v1 function is available on Windows, Linux and Raspberry Pi OS. Not on macOS, sorry.

– a standalone version: the Windows version of GeeXLab has a folder that contains the latest curl: {GeeXLab folder}/curl/. That way, you can control the curl.exe from your Lua or Python scripts with a regular system call.


2 – Changelog

This changelog is intended for all versions of GeeXLab.

Full changelog from beginning of time is available HERE.

Version 0.39.1 - 2020.12.09
+ (2020.12.09) added set_font_glyph_offset() to gh_imgui.

Version 0.39.0 - 2020.12.08
! (2020.12.08) update Lua support with latest Lua 5.4.2.
+ (2020.12.08) updated Python 3 plugin with latest Python 3.9.1.
! (2020.12.08) updated glTF built-in plugin with latest cglft 1.9.
! (2020.12.06) [macOS] compiled on x86_64 target with Xcode 12.2.
+ (2020.12.05) added a set of functions in gh_imgui lib to manage ImGui 
  file browser: gh_imgui.file_browser_xxxxx().
! (2020.12.04) updated built-in SQLite support with latest version 3.34.0.
* (2020.12.04) fixed a bug in uv coordinates in the built-in glTF loader.
+ (2020.12.03) added get_num_textures(), get_texture() and a set of functions
  (vk_descriptorset_xxxx()) to gh_material lib.
* (2020.12.02) fixed a minor bug in the fullscreen management in init0.xml. 
* (2020.12.02) updated GPU monitoring plugin with latest NVAPI 455. 
+ (2020.12.01) added get_item_rect_min(), get_item_rect_max(), push_clip_rect(), 
  pop_clip_rect() and invisible_button() to gh_imgui lib.
* (2020.12.01) fixed gh_gpu_buffer.set_matrix4x4() in Python (3 args instead of 4).
* (2020.12.01) fixed wrong function name in the gh_vk lib of the Python plugin:
  gh_vk.texture_sampler_create() (wrong) instead of gh_vk.sampler_create() (correct).
! (2020.11.28) updated GPU monitoring plugin with latest AMD AGS lib 6.0.0.
+ (2020.11.27) added preliminary support of Vulkan KHR raytracing.
+ (2020.11.27) added imdrawlist_coding_party_demo() to gh_imgui lib.
+ (2020.11.27) added add_rect_to_drawlist(), add_triangle_to_drawlist()
  and add_text_to_drawlist() to gh_imgui lib.
! (2020.11.25) improved gh_utils.clipboard_set_text() and 
  gh_utils.clipboard_get_text() on Windows platform.
! (2020.11.20) updated GPU monitoring plugin with AMD Radeon RX 6800 and 
  RX 6800 XT support.
! (2020.11.16) updated ImGui with latest version 1.80 WIP.
+ (2020.10.28) GPU monitoring: added support of NVIDIA GeForce RTX 3070.
! (2020.10.27) [Windows] compiled with VS2019 v16.7.6.
! (2020.10.27) update Lua support with latest Lua 5.4.1.
! (2020.10.26) improved Python 3 support: with some librairies like NumPy,
  your can now do several scene reloads without crashing.
+ (2020.10.26) [Windows] added webcam_start_v2() to gh_utils. 
  You can now set the webcam resolution!
! (2020.10.26) added all gh_utils.shmem_xxxx() functions to the Python plugin.
! (2020.10.09) updated ImGui with latest version 1.79.
+ (2020.10.09) added a set of functions to manage ImGui memory editor:
+ (2020.10.09) added set_next_window_size(), set_next_window_size_constraints()
  and set_window_size() to gh_imgui.
+ (2020.10.07) added curl_download_file_v1() to gh_utils.
+ (2020.10.06) updated Python 3 plugin with latest Python 3.9.0.
! (2020.10.03) updated OpenVR plugin with latest OpenVR SDK 1.14.15.
! (2020.10.03) updated ImPlot 0.8 WIP. Updated {GeeXLab folder}/libs/lua/imgui_implot.lua
! (2020.10.03) updated GPU monitoring plugin with latest AMD AGS lib 5.4.2.

Leave a Comment

Your email address will not be published. Required fields are marked *