GeeXLab version history (changelog)

Version 0.20.1.0 - 2018.01.13
-----------------------------
! [TinkerBoard] enabled tessellation on the OpenGL ES renderer.


Version 0.20.0.1 - 2018.01.09
-----------------------------
! [WINDOWS] recompiled with no enhanced intruction set. GeeXLab 0.20.0.0 has been
  compiled on Windows with /arch:SSE2 intruction set that is no supported 
  on Windows 7 boxes!


Version 0.20.0.0 - 2018.01.04
-----------------------------
! [WINDOWS] updated the PhysX plugin with latest PhysX 3.4.1 SDK. 
  GPU rigid body (GRB) is now supported.
+ added support of ASUS Tinker Board (OpenGL desktop and OpenGL ES).
![RPi OpenGL ES 2] added reading of the current framebuffer to a texture for RGB LED matrix demos.
![RPi] fixed RGB LED matrix panel support. Now it works fine with Raspbian Stretch and Adafruit HAT.
+ added rgbmatrix_init_v2() to gh_rpi lib  (lua / python).
+ added set_vertex_alloc_params_separate_vertex_arrays() to gh_mesh lib (lua / python).
+ added instancing_set_position_v2(), instancing_set_orientation_v2() and
  instancing_set_num_instances_to_render() to gh_mesh lib  (lua / python).
+ added set_gpu_mem_size_factor(), set_solver_iteration_counts() to gh_physx lib.
+ added new functions (gizmo_xxxxxx()) to the gh_imgui lib to support ImGuizmo.
* fixed a bug in the rendering of fonts in 3D with scaling (lib gh_font).
+ [WINDOWS] added cpu_usage_get_physical_core_count() to gh_utils (lua / python).
! updated scripting log file: now only scene initialization messages are sent to the
  _scene_init_log.txt file. The _scripting_log.txt file has been replaced by _scene_init_log.txt.
+ added is_opengl_es() to gh_renderer (lua / python).
+ added get_hw_platform() and is_sbc() to gh_utils (lua / python).


Version 0.19.0.2 - 2017.11.23
-----------------------------
! [WINDOWS] added vcomp140.dll in the plugins/ folder for ImageMagick plugin.
! [WINDOWS] recompiled gxl_xxx.dll library.


Version 0.19.0.1 - 2017.11.22
-----------------------------
+ [WINDOWS X64]: added few experimental functions to gh_utils 
  (lua only) for alloc/set/get global arrays (types: int, float and string): 
  global_array_{type}_alloc(), global_array_{type}_get() 
  and global_array_{type}_set().


Version 0.19.0.0 - 2017.11.21
-----------------------------
+ added ImageMagick support via a new plugin (plugin_gxc_imagemagick)
  and a new library: gh_imagemagick (lua and python).
+ added new functions to handle open and save file dialog boxes
  nfd_open_dialog(), nfd_save_dialog() and
  nfd_pick_folder() to gh_utils (lua / python).
+ added write_to_file_v4() to gh_texture lib  (lua / python).
+ added copy_sub_texture() and create_from_sub_texture() to gh_texture lib (lua / python).
+ added new options for saving images (textures).
+ [WINDOWS] All standard Python libraries are now shipped with 
  GeeXLab in the python/ folder. Python version: 2.7.14. 
+ [WINDOWS] added cpu_get_mem_available_size_mb() and cpu_get_mem_size_mb()
  in gh_utils lib (lua, python).
! updated trace file: simplified line header, less Vulkan information.
! [WINDOWS] changed mouse cursor: default is arrow, left button is hand.
* bugfix in the display of the current slider value in 
  gh_imgui.slider_1i() and gh_imgui.vslider_1i().
* bugfix in the vsync management when the progress bar 
  is used in INIT scripts.


Version 0.18.0.0 - 2017.11.10
-----------------------------
+ [WINDOWS 32-bit] added support of ASUS Aura lighting SDK. 
  New lib gh_asus_aura in Lua and Python. No ASUS Aura support
  on Windows 64-bit (see here).
+ added specification of Vulkan layers and extensions by user 
  (in XML window node and by command line).
+ added new Lua lib for text rendering based on gh_font 
  lib in {GeeXLab Folder}/libs/lua/libfont/libfont1.lua
  

Version 0.17.4.1 - 2017.10.30
-----------------------------
+ added is_luajit() in gh_utils lib (lua only).
+ added text_wrapped(), columns(), column_next(),
  group_begin() and group_end() to gh_imgui lib (lua/ python).
* bugfix: in texture unit management of ImGui OpenGL renderer.


Version 0.17.4.0 - 2017.10.28
-----------------------------
+ color_picker_rgba(), radio_button(), get_window_pos_size(),
  set_tooltip() and image_button() to gh_imgui lib (lua / python).
+ added is_luajit() gh_utils lib (lua only).
+ added set_vertex_position_color() to gh_polyline lib (lua / python).
! [WINDOWS] improved mouse cursor management...
+ added exe_script_v3() and set_thread_affinity_mask() to gh_utils lib (lua / python).
  set_thread_affinity_mask() works on Windows only.
* bugfix: gh_utils.shared_variable_create_array().



Version 0.17.3.0 - 2017.10.26
-----------------------------
+ added color_edit_rgba() to gh_imgui (lua / python).
! [WINDOWS] recompiled LeapMotion plugin with SDK version 2.31 to fix a 
  crash when the plugin is destroyed at the shutdown of GeeXLab.


Version 0.17.2.0 - 2017.10.24
-----------------------------
+ added new mesh type: gear (gh_mesh.create_gear()). 
+ added is_window_hovered() to gh_imgui (lua / python). 
+ added vslider_1i() and vslider_1f() to gh_imgui (lua / python). 
+ added window_begin_v2() to gh_imgui (lua / python) to handle close button. 
! updated gh_imgui.window_begin(): the close button is hidden. 
* fixed a bug in the return value of gh_imgui.window_begin() in Python.
+ added image() function to gh_imgui (lua / python). Works in OpenGL only.
* fixed various minor bugs.


Version 0.17.1.1 - 2017.10.15
-----------------------------
[RPi/GLES]: linked with new OpenGL ES libs in Raspbian Stretch: libbrcmEGL.so 
 and libbrcmGLESv2.so.
[RPi/GLES]: fixed a bug in the mouse management.
[RPi]: added ImGui support.
[WINDOWS]: added GeForce GTX 1070 Ti to the GPU monitoring database.
+ added input text, combo and list boxes support in gh_imgui lib (lua / python).
+ added tabs support in ImGui lib with the following functions: 
 gh_imgui.tab_bar_begin(), gh_imgui.tab_bar_end() and
 gh_imgui.tab_bar_add()  (lua / python).
+ added slider_1i() to gh_imgui lib (lua / python).
+ added mega geometry for faster mesh rendering (experimental).
! updated: gh_imgui.window_begin() returns the open/collapsed state of the window.


  Version 0.17.0.1 - 2017.09.28
-----------------------------
+ added support of ImGui (v1.52) in Vulkan and OpenGL. A new lib is available
  in Lua and Python: gh_imgui. 
+ [WINDOWS] added new set of functions in gh_utils to get CPU usage 
  (see cpu_usage_xxxx()).
! updated the online reference guide.
! updated the code sample pack with a new learn/ folder.
! updated the Python plugin with missing functions.
+ added create_from_shader_files() to gh_gpu_program lib (lua / python).
+ added an internal function to write in the log file all Lua functions.
+ added mouse_get_position() alias to gh_input library (lua / python).
+ added get_time_step() to gh_utils lib (lua / python)
+ added get_api_name() to gh_renderer lib (lua / python)
* fixed a crash in the creation of a pipeline object with no
  descriptor set (Vulkan). 
* fixed a rare buffer overflow in some trace functions.
! gh_texture.create_from_file() now enables mipmap generation by default.


Version 0.16.1.1 - 2017.09.11
-----------------------------
! [WINDOWS] updated Leap Motion plugin with Leap Motion SDK 3.2.0.
! [WINDOWS / LINUX] updated Vulkan plugin with latest Vulkan 1.0.60 header.
! [WINDOWS] updated OpenVR plugin with latest OpenVR SDK
! updated the GPU monitoring code of the Lua kx framework (v1.6) used by GeeXLab demos.
! [RPi] the RGB Matrix panel library has been updated for Raspbian Stretch.
! [RPi] in the OpenGL ES version, input management (keyboard and mouse) has been 
  recoded. 
* [macOS] bugfix: system buttons and title bar are now correctly displayed for the 3D window.
  That was broken since Xcode 7.
* [macOS] bugfix: mouse position is now correctly updated.
* [macOS] bugfix: GeeXLab crashed when window was resized to fullscreen.
* [macOS] bugfix: GeeXLab window is now correctly displayed at startup.


Version 0.16.1.0 - 2017.08.25
-----------------------------
+ [WINDOWS] added support of LuaJIT.
+ [WINDOWS / LINUX] added support of tessellation in the Vulkan plugin.
* [WINDOWS / LINUX] fixed a bug in the swapchain management in the Vulkan plugin.
! [WINDOWS / LINUX] bugfixes and improvements in the Vulkan plugin.
- removed the vk_command_list_pipeline_barrier() function from 
 the gh_renderer lib.
! updated the Vulkan code of the Lua kx framework (v1.5) used by GeeXLab demos.
+ added pipeline_state_build_v3() to gh_renderer lib for the creation of a 
  pipeline state that will be used with a render target.
* fixed a parameter bug in the gh_texture.set_texel_2d_v2() in Lua.


Version 0.16.0.3 - 2017.06.29
-----------------------------
!  minor bugfixes and improvements in the Vulkan plugin.
! fixed minor bugs in the Lua kx framework (v1.4) used by GeeXLab demos.


Version 0.16.0.2 - 2017.06.17
-----------------------------
+ added a new command line param to select the GPU for Vulkan (or Direct3D 12) 
  demos: /gpu_index=x
! [WINDOWS] Vulkan plugin recompiled with latest Vulkan API headers (v1.0.51).
- [WINDOWS] removed from Tools menu entries related to network live updaters.
  Network live updaters tools are still available but in the nettools/ folder.
! [WINDOWS] GPU Shark utility moved to gpushark/ sub-folder. For some very obscure 
  reasons, GPU Shark utility no longer works in the root folder of GeeXLab. 
  But it works fine from the sub folder gpushark/.
* fixed a minor bug in the Lua kx framework for Vulkan. 
+ added support of live-coding of GLSL shaders by editing the source code of a shader 
  with any text editor.
+ added delay between two reloads of script files for live-coding of scripts.
! improved the performance of the Vulkan renderer.
! improved the support of AMD GPUs in the Vulkan renderer.
* fixed a bug in the Vulkan renderer in the creation of swapchain that led 
  to a crash on NVIDIA GPUs.
+ added an automatic call to wait_for_gpu after all INIT scripts. Usefull with Vulkan or 
  Direct3D 12 renderers.
+ added support of render targets in the Vulkan renderer.
! updated gh_texture.create_2d_from_rt() internals.
! [WINDOWS] updated the GPU monitoring plugin with NVIDIA GeForce GT 1030.


Version 0.15.0.1 - 2017.05.12
-----------------------------
+ added support of double sided lighting in the OpenGL renderer (old OpenGL, fixed pipeline).
! [WINDOWS] improved the Vulkan renderer plugin, support for Intel GPUs fixed.
* fixed a bug in gh_texture.get_texel_2d(), buffer offset was wrong.
! [WINDOWS] updated the GPU monitoring plugin with NVIDIA TITAN Xp.
! [WINDOWS] GPU monitoring plugin: updated Radeon RX 500 / RX 400 support.
! [WINDOWS] updated GPU Shark 0.10.0.0
  

Version 0.14.1.1 - 2017.04.01
-----------------------------
! [WINDOWS] ! improves the detection of AMD Radeon GPUs in some systems 
  that include Intel iGPU + AMD Radeon GPU.
! [WINDOWS] updated GPU Shark 0.9.11.2


Version 0.14.1.0 - 2017.03.30
-----------------------------
+ [WINDOWS] a preview of scripting errors is now displayed in a new built-in error scene
  instead of being simply displayed in a log file. The log file is still available with complete
  information.
+ added a new log file for scripting: _scripting_log.txt. All traces related to scripting
  are writtren in this log file.
! updated the default startup scene.
! [WINDOWS, LINUX] Vulkan plugin recompiled with latest Vulkan API headers (v1.0.45).
! [WINDOWS, LINUX] updated the GPU monitoring plugin with NVIDIA GeForce GTX 1080 Ti, 
  AMD Radeon RX 580, RX 570 and RX 560.
* [WINDOWS] fixed minor bugs in the OpenVR plugin.
+ [WINDOWS] added gh_openvr lib (OpenVR) to the Python plugin.
+ [WINDOWS] added milliseconds in every trace of the log file.
+ added get_absolute_orientation() to gh_object lib (lua / python).
! updated the GPU monitoring plugin with AMD Radeon Pro WX 7100, WX 5100, WX4100,
  WX 4150 and WX 4130.


Version 0.14.0.0 - 2017.03.08
-----------------------------
+ [WINDOWS] added OpenVR support (openvr plugin) + gh_openvr lib (lua).
! updated Lua scripting plugin with latest Lua 5.3.4.
+ added update_plane_size() to gh_mesh (lua / python).
+ added update_box_face_uv_tiling() to gh_mesh lib (lua / python).
+ added get_euler_angles() to gh_camera lib (lua / python).
+ added get_num_vertices_v2() and get_num_faces_v2() to gh_object lib (lua / python).
! [WINDOWS] Vulkan plugin recompiled with latest Vulkan API headers (v1.0.42).
* fixed a bug in the Vulkan plugin that led to a crash with recent NVIDIA and AMD drivers.
! [WINDOWS] updated the GPU monitoring plugin with AMD Radeon R7 M360, R7 M340,
  R7 M260, R7 M460 and R7 M440. 
+ added support of open true type fonts (OTF) in gh_font lib (lua/python).


Version 0.13.0.2 - 2016.12.13
-----------------------------
! [RPi] updated zip archive new demos (RGB LED Matrix) in demos/ folder.


Version 0.13.0.1 - 2016.11.27
-----------------------------
! [RPi] updated zip archive new demos (RGB LED Matrix, Sense HAT) in demos/ folder.


Version 0.13.0.0 - 2016.11.01
-----------------------------
+ [RPi] added a set of functions (rgbmatrix_xxxx()) to deal with 
  RGB LED matrix in the gh_rpi lib (lua/python).
! [WINDOWS] Vulkan plugin recompiled with latest Vulkan API headers (v1.0.32).
! [WINDOWS] updated the GPU monitoring plugin with GeForce GTX 1050, GTX 1050 Ti, 
  NVIDIA TITAN X (Pascal), GeForce GTX 1060 6G and 3G, GeForce GTX 980M (1617) 
  and GTX 980 (161A), AMD RAdeon RX 400 (RX 480, RX 470 and RX 460), Quadro P5000, 
  Quadro P6000, Quadro M6000 12GB, M6000 24GB, Quadra K620, K1200 and K2200.
+ added gpu_mem_to_cpu_mem() to gh_texture lib (lua/python).
* fixed a bug in the gh_utils.raycast_get_ray_ortho_cam().
+ [WINDOWS] added support of Logitech LED SDK in a new lib: gh_logiled 
  (lua/python).
+ [WINDOWS/PRO] added set_alpha() to gh_window lib (lua/python).
+ [PRO] fixed bugs in the export of the scene in binary format.
+ added update_box_size() to gh_mesh lib (lua / python).
+ added new fonctions in gh_utils for managing arrays of shared variables: 
  shared_variable_create_array(), shared_variable_set_array_value_1f(), 
  shared_variable_get_array_value_1f(), shared_variable_set_array_value_1i(),
  shared_variable_get_array_value_1i(), shared_variable_set_array_value_str() 
  and shared_variable_get_array_value_str(). 
+ added create_from_file_v9(), gpu_memory_upload() and gpu_memory_unload()
  to gh_texture lib (lua / python).
+ added resize_quad() to gh_mesh. resize_quad() is actually an alias of 
  update_quad_size().  
+ added exe_script_v2() to gh_utils lib  (lua / python).
* fixed a bug in Lua state initialization during the execution of ZOMBIE scripts.
+ added do_screenshot_v3() to gh_utils (lua / python).
* fixed gh_utils.do_screenshot(): now the viewport information is properly used: 
 size (width and height) and offsets (x and y) .


Version 0.12.2.0 - 2016.06.09
-----------------------------
+ added support of texture 2D array in render targets. 
  New functions: create_array2d() and array2d_set_draw_layer() added 
  to gh_render_target lib (lua/python).
! updated the texture filtering in the OpenGL renderer.
! [WINDOWS] updated the GPU monitoring plugin with latest NVAPI R367.


Version 0.12.1.0 - 2015.06.02
-----------------------------
+ added text_2d_v2() to gh_font (lua / python).
! updated the Lua kx framework used in OpenGL and Vulkan demos.
  The kx framework is available in standard Lua lib of GeeXLab
  (libs/lua/framework_v1/)
! disabled runtime error writing in log file after the first
  runtime error.


Version 0.12.0.0 - 2015.05.31
-----------------------------
+ added a mesh voxelizer function: gh_mesh.voxelize() (lua/python).
! [WINDOWS] updated the FBX object loader with FBX SDK 2016 1.1.
! [WINDOWS] updated the FFmpeg plugin with FFmpeg 2.8.6.
! updated the Wavefront OBJ loader based on TinyObjLoader v0.9.22.
+ added gh_mesh.get_num_subsets() (lua/python).
+ added gh_model.init_subsets() (lua/python).
+ added get_vsync() to gh_renderer library (lua / python).
+ added get_text_width() to gh_font library (lua / python).
+ added driver_settings_get_vsync_status() and 
  driver_settings_set_vsync_status() to gh_gpumon lib  (lua / python).
* fixed a bug in the audio synthetizer (gh_audio.sound_create_v2()).
* fixed a bug in the GPU buffer management that could lead to a 
  crash in Vulkan plugin if more than one uniform buffer were created.



Version 0.11.0.0 - 2015.05.11
-----------------------------
! [WINDOWS / LINUX] PhysX plugin updated with latest PhysX 3.3.4 SDK.
  On Windows, GPU PhysX is currently no longer available because of the
  compilation with VS2015.
! Vulkan plugin: improved textures storage in GPU memory.
! improved the support of several GPUs in Vulkan and Direct3D 12 plugins
  (gpu_index attribute in the window XML node).
! [WINDOWS / LINUX] internal obj loader v1 creates sub meshes based on usemtl tag.
  This feature will be available on other platforms during the next compilation.
* minor bugfixes.
. known issues: on Linux, PhysX fluid demos crash/hang GeeXLab at the 
  end of demos.

  
Version 0.10.1.1 - 2015.04.18
-----------------------------
* Vulkan plugin: the default depth-stencil format is 
  now d32s8. The previous value d24s8 was not supported on 
  Radeon GPUs. 
* fixed the /benchmark_duration_ms parameter.
* fixed the online checking for new versions.


Version 0.10.0.0 - 2015.04.14
-----------------------------
+ [WINDOWS / LINUX] added Vulkan support with basic functionalities: meshes, 
  GPU programs, 2D textures + 2D arrays, uniform buffers, pipeline
  state objects. New functions have been added in gh_renderer and 
  gh_gpu_program lib (lua / python).
+ [WINDOWS / LINUX] added gpu_index attribute in XML window node to select 
  a particular GPU with Vulkan renderer.
+ added new gh_font lib to render texts using True Type fonts (lua and python). 
+ added three functions in gh_renderer lib (OpenGL, Vulkan and Direct3D 12) 
  to draw very simple primitives without vertex buffer: draw_points(), 
  draw_lines() and draw_triangles(). Vertices must be defined in the vertex shader. 
+ added update_vertices_position() and update_vertices_color() to 
  gh_vertex_pool lib (lua / python).
+ added create_from_file_loader_stl() in gh_model lib for the loading of 3D meshes
  in STL binary format.
+ added set_num_patch_vertices() to gh_renderer lib (lua).
! [WINDOWS] updated the internal flip framebuffer function of the Direct3D 12 plugin
  to improve stability.
* fixed bug in gh_renderer.blending().
* fixed bitmap font rendering (gh_utils.font_bm_xxxx()) bug in OpenGL 2.1 
  (code sample pack: /gl-21/bitmap-fonts/).
* fixed a memory leak in the FreeImage plugin.
* [WINDOWS / OSX] bugfix: the log file is now correctly opened (Tools > Show log file).
! updated gh_nvg lib with latest version of NanoVG.
! updated gh_utils.get_host_app_dir().
! gh_utils.hex_color_to_rgb() updated to support the # character of the
  HTML color (ex: "#ff8844").


  
Version 0.9.6.0 - 2015.02.12
----------------------------
+ [RPi] added support of OpenGL for desktop.  
+ [OSX] the log file is now created in GeeXLab folder.
+ added is_rpi() to gh_utils (lua / python).
+ added hex_color_to_rgb() to gh_utils (lua / python).
+ added set_texel_2d_v2(), get_texel_1d(), get_texel_2d() and 
  get_texel_2d_v2() to gh_texture lib (lua / python).
+ added gpu_timer_start(), gpu_timer_stop() and gpu_timer_read() 
  to gh_renderer (lua / python).
* fixed a crash in the loading of GPU program (XML node) when shaders 
  are in separate files (filename_vs, filename_ps, ...).


Version 0.9.5.1 - 2015.02.07
----------------------------
* [WINDOWS] bugfix: the internal TCP server for remote live coding is now 
  operational.
  To use it, start GeeXLab with /start_tcpip_server command line parameter.
! [WINDOWS] updated: remote updaters (for GLSL and scripting) have been 
  recompiled with VS2015.


Version 0.9.5.0 - 2015.02.04
----------------------------
+ [RPi] OpenGL version is forced to 2.0 (OpenGL ES 2.0) whatever
  the version specified in the window XML node.
+ [OSX / LINUX] added online checking of newer versions of GeeXLab.
+ added new gh_nvg lib to bring support of NanoVG (lua / python).
+ added clear_stencil_buffer() and clear_color_depth_stencil_buffers()
  to gh_renderer lib (lua/python).
! Python plugin updated (all Direct3D 12 related functions,  
  various functions in gh_utils lib and new procedural meshes 
  in gh_mesh lib: klein_bottle, trefoil_knot, etc.).

  
Version 0.9.4.1 - 2015.01.21
----------------------------
+ added get_type() to gh_renderer lib (lua). 
+ [WINDOWS] added font support in the Direct3D 12 plugin: 
  d3d12_font_create(), d3d12_font_add_text(), d3d12_font_reset_all_text_counters() 
  and d3d12_font_reset_text_counter() added to gh_renderer lib (lua). 
+ [WINDOWS] added command_list_set_current() to gh_renderer lib (lua). 
+ [WINDOWS] added new procedural meshes: klein_bottle, trefoil_knot  
  as well as the 5 platonic solids (lua).

  
Version 0.9.4.0 - 2016.01.10
----------------------------
+ [WINDOWS] added /no_online_check command line param to disable 
  the online checking of newer versions of GeeXLab.
+ [WINDOWS] added online checking of newer versions of GeeXLab.
+ [WINDOWS] added /disable_quit_button command line param to disable 
  the quit button (the cross) on the window system bar.
+ added new Lua utility library: gfx03.lua.
  

Version 0.9.3.0 - 2016.01.05
----------------------------
+ added /log_framerate command line param to quickly log framerates (cur/avg).
* [WINDOWS] fixed a bug in the Direct3D 12 plugin.
* bugfix: the elapsed time of a 3D window was updated twice per frame. This 
  elapsed time is only used in the update of the average FPS.

  
Version 0.9.2.0 - 2015.12.31
----------------------------
+ added /python_home command line parameter to set the Python home directory.
+ added get_gpu_driver() to gh_gml lib (lua / python).
! [WINDOWS] updated GPU monitoring plugin to support AMD Crimson drivers.
* [WINDOWS] fixed: the main 3d window has now the keyboard focus at startup.
* [WINDOWS] fixed gh_gml.gpu_power_get_power_limit() (NVIDIA GTX 600+).
* fixed gh_gpumon.draw_gpu_data_v2() and gh_gpumon.draw_gpu_data_v4().
* fixed gh_utils.do_screenshot_v2().
! [WINDOWS] updated GPU Shark 0.9.7.0.


Version 0.9.1.0 - 2015.12.07
----------------------------
! [RPi] added a new attribut named rpi_alpha_flag to the window XML 
  node. This attribute allows a better management of the alpha channel 
  of the 3d window.
+ [RPi] added set_position(), get_position() and get_screen_size()
  to gh_window lib (lua/ python). These functions are currently
  only available on Raspberry Pi.
! [OSX] updated plugin_gxc_leapmotion_x64.dylib for Mac OS X with the
  LeapMotion SDK 2.3.1.
! [OSX] updated the mouse Y coordinate in GeeXLab Mac OS X version. 
  The Y coord is offseted by the height of the window. Now the function
  gh_input.mouse_getpos() returns a correct value for all OSes.
* fixed a bug in the ftgl plugin that appeared OpenGL 2.1 drivers.
  With theses drivers, the font texture was not uploaded in GPU mem.
+ added 32-bit version of GeeXLab for Windows that targets also
  Windows XP platforms.
+ added command line option /logfile_suffix to specify a suffix
  for the log file name.
  Ex: /logfile_suffix=_test01. The suffix allows to manage several
  instances of GeeXLab, each instance having its own logfile.
* fixed a bug in polyline/wideline module. The bug has been
  introduced with recent changes in the low level 3d lib.
* fixed some bugs in the plugin_gxc_ftgl_x64 plugin. These bugs have
  been introduced with recent changes in the low level 3d lib.
* [WINDOWS] fixed few typos (GLSL Hacker was still present in some live
  coding boxes).
! [WINDOWS] updated plugin_gxc_ffmpeg_x32.dll for Windows with 
  FFmpeg 2.8.3. All other versions of the plugin (win64, linux, osx, 
  rpi) still use FFmpeg 2.6.2.
! [WINDOWS] updated plugin_gxc_leapmotion_x64.dll for Windows with the
  LeapMotion SDK 2.3.1.
 


Version 0.9.0.4 - 2015.11.18
----------------------------
+ added touchscreen support in the Raspberry Pi version.
* Python plugin: fixed a bug in vertex_pool.vertex_set_position()
  and vertex_pool.vertex_set_color().


Version 0.9.0.3 - 2015.11.12
----------------------------
* Python plugin: fixed a bug in vertex_pool.vb_set_vertex_position(),
  vertex_pool.vb_set_vertex_color(), vertex_pool.vb_set_vertex_normal()
  and vertex_pool.vb_set_vertex_tangent().
* fixed a bug in the initialization of the prefix of Lua and Python
  libraries (gh_ or gxl_).


Version 0.9.0.2 - 2015.11.08
----------------------------
* first beta version of GeeXLab.
! Improved the Direct3D 12 renderer plugin.


-------------------------------------------------------------
Transition from GLSL Hacker to GeeXLab
-------------------------------------------------------------


Version 0.8.6.0 - 2015.08.30
----------------------------
* fixed a bug in single thread mode: GLSL Hacker was blocked in live
  coding initialization.
+ added get_os_info() to gh_utils (lua).
! Lua engine has been updated to Lua 5.3.1.
+ added d3d_create_from_file() and d3d_create_from_memory()
  to gh_gpu_program (lua).
+ added create_from_file_v3() to gh_gpu_program (lua).
+ added pipeline_state_create(), pipeline_state_kill() and
  pipeline_state_bind() to gh_renderer (lua).
+ Added first version of the Direct3D 12 renderer plugin.


Version 0.8.5.6 - 2015.08.18
----------------------------
+ added set_reflection_matrix_v1() and set_reflection_matrix_v2()
  to gh_camera lib (lua / python).
+ added get_plane_equation() to gh_object lib (lua / python).
+ added rasterizer_set_ccw() and ccw() to gh_renderer (lua / python).
+ added apply_cmaa_intel() to gh_render_target lib (lua / python).
+ added set_max_compiler_threads() to gh_gpu_program lib (lua / python).
+ added heman_generate_color_gradient(), heman_generate_island_map()
  and heman_generate_planet_map() to gh_texture (lua only).
+ added set_clip_control(), set_depth_range_f(), clear_depth_f()
  and set_depth_bounds() to gh_renderer (lua / python).


Version 0.8.5.5 - 2015.08.09
----------------------------
+ added get_num_capabilities(), get_capability_name() and
  check_capability() to gh_renderer lib. These functions are
  designed to work with gh_renderer.get_capability_4i().


Version 0.8.5.4 - 2015.08.06
----------------------------
. Test version with LuaSocket mime module enabled. Lua socket files
  in libs/lua/socket/ folder have been edited to use the socket
  and mime modules that are defined by GLSL Hacker.


Version 0.8.5.3 - 2015.07.01
----------------------------
+ added clear_cpu_gpu_data() to gh_mesh.
+ added mesh ribbon (wide line) to gh_mesh lib: ribbon_create(),
  ribbon_add_point() and ribbon_set_cross_vector().
+ added line adjacency support.


Version 0.8.5.2 - 2015.06.22
----------------------------
+ added particle_system_create_fluid_v2() to gh_physx3 (Lua / Python).
+ added do_screenshot_v2() in gh_utils lib (Lua / Python).
* fixed a bug in params list of gh_utils.do_screenshot() in Python.
* bugfix: the FreeImage plugin can now handle 4-bit per pixel images.
* bugfix: on Windows, the live coding no longer disturbate the main 3D scene
  keybord buffer. In previous versions, the camera could be moved with arrow
  keys even if the live coding box had the focus.
! live coding is disabled by default on Windows version. The checkbox is still
  there to enable live-coding on each script/glsl editor.


Version 0.8.5.1 - 2015.05.15
----------------------------
+ added new keys to keyboard management (all keys of numeric keypad) on Windows.


Version 0.8.5.0 - 2015.05.14
----------------------------
+ added luasocket lib.
+ added experiemtal Spout plugin.


Version 0.8.4.0 - 2015.05.08
----------------------------
! recoded from scratch vertex buffer related routines in order to unify
  rendering of meshes, particles and lines.
! recoded the built-in OBJ loader. Works better and faster.
* fixed a bug in keyboard management on Linux.


Version 0.8.3.4 - 2015.04.29
----------------------------
+ added get_vertex_size() in gh_utils (lua/python).
+ added reset_vertex_attribs_name_and_loc() and set_vertex_attrib_name_and_loc()
  to gh_gpu_program (lua).
! gh_mesh.set_user_vertex_attrib() and gh_mesh.get_user_vertex_attrib()
  replaced by gh_mesh.set_vertex_attrib_element() and
  gh_mesh.get_vertex_attrib_element().
- removed gh_mesh.copy_std_attrib_to_user_attrib() and
  gh_mesh.assign_user_vertex_attrib_name_and_location().
* fixed a bug related to gh_mesh.set_vertex_alloc_params().
  The vertex alloc params was not re-initialized at scene init.
* fixed a bug related to vertex attribute location when
  the same mesh is rendered with different GPU programs.
+ added assign_user_attrib_vertex_shader_index() to gh_mesh (lua).
+ added actor_set_kinematic_target_transform() to gh_physx3 lib (lua).
+ added get_shader_info_log() and get_info_log() to gh_gpu_program lib
  (python / lua).
! updated FFmpeg plugin with latest SDK v2.6.2
! updated FreeImage plugin with latest SDK v3.17.0


Version 0.8.3.3 - 2015.04.24
----------------------------
+ added joint_set_motor_params() to gh_physx3 lib (python / lua).


Version 0.8.3.2 - 2015.04.21
----------------------------
+ added /rpi_disable_inputs command line option to the
  Raspberry Pi version to fully disable input management
  (keyboard and mouse).
! improved a bit global stability.
* fixed a bug in the GPU program live coding module on Windows platform.
* fixed gh_physx3.joint_distance_set_spring(). Now spring effect of
  distance joints works.
+ added gh_av lib to Python plugin.
+ added reset_streams() to gh_av.


Version 0.8.3.1 - 2015.04.11
----------------------------
+ added run_simulation_step() and fetch_results() to gh_physx lib (lua/python).


Version 0.8.3.0 - 2015.04.03
----------------------------
+ added new audio/video lib based on FFmpeg: gh_av (Lua only for the moment).
+ added mouse capture support in the Windows version.


Version 0.8.2.2 - 2015.03.27
----------------------------
+ added set_vertex_offsets() to gh_polyline lib (lua/python).
* fixed a bug in the Python version of gh_polyline.set_line_offsets().


Version 0.8.2.1 - 2015.03.23
----------------------------
* fixed a minor bug in the Windows version related to script edition during
  live-coding.
+ added update_alpha_channel_smooth() and update_alpha_channel_binary() to
  gh_texture lib.


Version 0.8.2.0 - 2015.03.18
----------------------------
+ added target_platform to gpu_program XML node.
+ updated Raspberry Pi support (OpenGL ES 2.0).


Version 0.8.1.7 - 2015.02.25
----------------------------
+ added command line param (/gl_core_profile=1|0) to force the OpenGL core
  profile for GL3.2+ contexts.
! updated: the menur bar in the FREE version can be hidden.

Version 0.8.1.6 - 2015.02.24
----------------------------
* fixed a bug the in progress bar management (due to recent changes,
  the progress bar render thread could not be started and
  gh_utils.set_progress_bar_caption() was effectless...).


Version 0.8.1.5 - 2015.02.23
----------------------------
* fixed bug in the GPU program management that prevented to render
  meshes when only custom vertex attribs were allocated.
+ added create_v2(), copy_vertex_data() and copy_face_data()
  to gh_mesh (lua/python).


Version 0.8.1.4 - 2015.02.21
----------------------------
! updated gh_render_target.resolve_multisampling_v2() parameters.
! updated enable_state() and disable_state() of gh_renderer lib with
  new states.
+ added msaa() to gh_renderer (lua/python).
+ added msaa attribut in the scene XML node to enable multi sampling
  anti aliasing per window (in prev versions, the msaa was enabled with
  the command line).
+ added enable_gpu_bugfixes() to gh_renderer (Lua only for testing
  purposes).
* bugfix: in some conditions, the gh_camera.bind() function updated
  (again...) the fixed pipeline when OpenGL core profile
  (OpenGL 3.2+) was used.


Version 0.8.1.3 - 2015.02.20
----------------------------
* fixed a bug in render target resolve multisampling when
  multiple colors buffers (attachments) are used.
+ added create_rb_v2() and resolve_multisampling_v2()
  to gh_render_target lib (lua/python).


Version 0.8.1.2 - 2015.02.16
----------------------------
* fixed a bug in the progress bar module when single threaded mode is
  selected
  (separate_render_thread="0" in the window xml node).
+ added set_vertex_alloc_params() and copy_std_attrib_to_user_attrib()
  to gh_mesh (lua/python).
- removed alloc_user_vertex_attribs() from gh_mesh.
+ improved the support of threaded scripts (Lua).
* fixed a multithreaded issue that could lead to a crash related to the
  creation of 3D windows.
+ improved code robustness.
  (DEV NOTE: singletons are now thread safe)
+ added osx_syphon_enabled attribute to XML scene node.


Version 0.8.1.0 - 2015.01.05
----------------------------
+ added TIMER type to XML script node (currently only on Windows).
! PhysX 3 plugin: added a check of the PhysX version.
+ added ftgl_font_add_text3d() to gh_utils (Lua / Python).
* fixed bugs in gh_camera (ortho camera) and gh_utils (ftgl and
  raycast_cast_ray) libs (Python plugin).
* fixed a bug in mouse wheel reading on Windows that disturbed the
  mouse position.
! write of OpenGL extensions in the log file disadled. To write
  extensions, use the /glinfo command line option.
! internal TCP/IP server for remote live coding is now disabled by
  default. To start it you can use the /start_tcpip_server command
  line option.
* fixed a typo in the GTX 970M entry of the GPU database of the
  GPU monitoring plugin.
+ added binary scene import (all versions).
+ added binary scene export (PRO version)
+ added support of binary XML texture nodes (PRO version)


Version 0.8.0.6 - 2014.12.26
----------------------------
+ added set of functions to manage camera frustum culling:
  gh_camera.frustum_xxxx().
+ added bounding_volume_update() to gh_object.
+ added box_update_size_from_bv() and sphere_update_radius_from_bv()
  to gh_utils.
+ added create_action_gravity() and action_add_size() to
  gh_ps (particle system) lib.
+ added gpu_uniform2f(), gpu_uniform3f() and
  gpu_uniform4f() to gh_gpu_program lib (Lua / Python)
+ added gpu_uniform2i(), gpu_uniform3i() and
  gpu_uniform4i() to gh_gpu_program lib (Lua / Python)
+ added a warning in the log file if there are more than one root node
  in the main xml file.


Version 0.8.0.5 - 2014.12.04
----------------------------
! full rebuild with all plugins.


Version 0.8.0.4 - 2014.12.03
----------------------------
+ added translate_vertices_position to gh_object lib (Lua/Python).
+ added rotate_vertices() and rotate_vertices_euler_xyz() to
  gh_object lib (Lua/Python).
+ added write_to_file_v3() gh_texture lib (Lua / Python).
* bug fixed in gh_texture.write_to_file_v2() when pixel format
  was U8_RGBA.
+ added create_2d_from_rt() to gh_texture (Lua / Python).
+ added sys_exec() to gh_utils ((Lua / Python) + Windows only).
! updated the 3d framework.


Version 0.8.0.3 - 2014.11.18
----------------------------
+ added set_transform_order() to gh_object lib (Lua / Python).

Version 0.8.0.2 - 2014.11.11
----------------------------
+ added create_from_memory() to gh_texture lib (Lua / Python).

Version 0.8.0.1 - 2014.11.06
----------------------------
+ added create_v2() to gh_polyline lib (lua).
+ added get_date_str() to gh_utils lib (lua / Windows only).


Version 0.8.0.0 - 2014.11.03
----------------------------
+ added new plugin based on FreeType-GL to easily render true type
  fonts (all gh_utils.ftgl_xxxxxxx() functions).
+ added support of omni-lights shadow mapping with cube shadow maps
  (gh_camera.set_orientation_cubemap(),
  gh_render_target.create_cubemap(),
  gh_render_target.cubemap_set_draw_face()).
+ added support of user clipping planes (gh_renderer.enable_state()
  and disable_state()).
+ added get_orientation_euler_angles(),
  get_absolute_orientation_euler_angles(), get_orientation_vectors(),
  get_orientation_vector_z(), get_absolute_orientation_vectors()
  get_absolute_orientation_vector_z() to gh_object lib.
! updated camera orientation. Now a camera's children are correctly
  oriented.
+ added copy_transform() to gh_object lib.
+ added detection of OS X 10.10 Yosemite.


Version 0.7.2.0 - 2014.10.17
----------------------------
! improved the FBX plugin (Windows and OS X) for loading
  Autodesk FBX files.
! updated the PhysX 3 plugin (Windows, Linux and OS X) with
  latest PhysX SDK v3.3.2.
+ added a new OBJ loader (for testing purposes) and a way to change
  current OBJ loader with gh_model.set_current_3d_obj_loader(name):
  "ObjLoaderV1" or "ObjLoaderV2". Default is "ObjLoaderV1".


Version 0.7.1.5 - 2014.10.10
----------------------------
! updated pixel format support for image2D writing
  (GL_ARB_shader_image_load_store) PF_U8_RGBA (rgba8 in GLSL) and
  PF_U8_R (r8 in GLSL) added (gh_texture.image_bind()).

Version 0.7.1.4 - 2014.10.10
----------------------------
! improved shader subroutines support with several uniform subroutines
  per GPU program.
! improved GPU programs speed (better management of uniform variables).


Version 0.7.1.3 - 2014.10.05
----------------------------
+ added webcam_get_num() to the gh_utils lib (Lua/Python).
! improved the management of multiple webcams in the Windows version.


Version 0.7.1.2 - 2014.10.04
----------------------------
* bugfix: crash when ZOMBIE scripts are stored in separate file
  instead of in the XML.
+ added network_message_pop() to gh_utils.


Version 0.7.1.1 - 2014.09.29
----------------------------
! updated network script updater (v0.2.0, Windows and OSX) with
  live coding checkbox and execute button.
! fixed some bugs and improved the live coding in the Windows version.
+ added auto-save of scripts and shaders if necessary
  (read: they have been modified).
+ added a button in script and shader editors to save the code source
  in the scripts/ or shaders/ folder of GLSL Hacker
  (Windows version only).
* script and shaders errors are now correctly redirected to the
  output window.
+ added an option to disable live coding in script and shader editing
  windows (Windows version only).
* fixed some potential crashes in gh_utils functions that take
  strings as parameters (like font_render() or font_render_3d().
! updated the dialog box / output window for the traces
  (Windows version only).
+ added circle_create(), circle_update_radius(), line_create(),
  line_set_start_position(), line_set_end_position(),
  line_set_start_color() and line_set_end_color() to gh_utils lib.
! updated the Lua immediate mode: now the Lua state of the first script
  is used (not the case so far!).
* improved the GPU monitoring plugin when running on NVIDIA Optimus
  systems.
+ added gh_leap (Leap Motion) library in the Python plugin.
+ updated Python plugin: gh_renderer.get_capability_4i(),
  gh_renderer.query_xxxx() (GL_ARB_pipeline_statistics_query GL4.5),
  gh_utils...



Version 0.7.0.3 - 2014.08.28
-----------------------------
+ added a set of functions (gh_renderer.query_xxxx()) for
  GL_ARB_pipeline_statistics_query (OpenGL 4.5).
* GPU monitoring plugin: added GeForce GTX 745, GT 720, GTX 700M series,
  GT 700M series, 800M series and GTX 800M series.
* GPU monitoring plugin: updated with latest NVAPI R340.
* bugfix: the menubar is no longer displayed in fullscreen mode
 (Windows version).
+ added set_orientation_cubemap() to gh_camera lib.


Version 0.7.0.2 - 2014.07.23
-----------------------------
+ added new plugin for Leap Motion device + new gh_leap library (Lua).
+ re-enabled log dialog box (Windows version) in Tools > Show log
  dialog box.
+ Lua print() redirected to log file.
+ added create_disc() to gh_mesh lib.
+ added gh_renderer.blending() and gh_renderer.blending_off()
  to quickly enable/disable color blending.
+ added new openGL queries to gh_renderer.get_capability_4i()
  (Lua only).
! improved robustness of the Lua version of gh_utils.trace().



Version 0.7.0.0 - 2014.06.21
-----------------------------
* fixed a bug with AntTweakBar plugin under Windows with AMD
  Radeon cards that made the application to crash time to time at the
  end of a scene.
- removed all atomic_counter_xxxx() functions from gh_renderer.
  They are replaced by the low level functions of the gh_gpu_buffer lib.
* bugfix: the gh_camera.bind() function no longer update the
  fixed pipeline if OpenGL core profile is used.
+ added OpenGL debug GL_ARB_debug_output support via the gl_debug_profile="1"
  in the XML window node.
+ added memory_barrier() to gh_renderer lib.
+ added vertices_to_gpu_buffer(), vertices_from_gpu_buffer()
  and set_vertex_source() to vertex_pool lib.
- removed all shader_storage_buffer_xxxxx() functions from vertex_pool lib.
+ added set_shader_storage_block_binding() to gh_gpu_program lib.
+ added set_automatic_uniform_state() to gh_object lib.
* fixed a threading bug in the waitscreen + progress bar when scene contains errors.
+ added gh_gpu_buffer, a new lib for managing GPU buffers in an unified way.
+ added get_uniform_block_size(), get_uniform_block_index()
  and set_uniform_block_binding() to gh_gpu_program lib.
- removed all ub_xxx() functions from gh_gpu_program lib.


Version 0.6.4.5 - 2014.06.08
-----------------------------
+ added support of transparent windows (alpha value) in OS X version.
+ added drag and drop support in the OS X version.
! OSX version: now GLSL Hacker stores the last position of the window
  and uses it for the next launch (useful with the drag and drop).
+ added FreeImage plugin support in the OS X version.
+ added a set of functions to manage custom dynamic libraries: gh_utils.dylib_xxx().
  Thanks to these functions, you can use GLSL Hacker as a super window manager and code
  your own 3D routines in the dynamic lib in C/C++.


Version 0.6.4.4 - 2014.06.04
-----------------------------
! updated the OpenGL context creation under Windows and Linux for when
  the required major version is 2.
+ added create_ex_v3() to gh_render_target lib.
+ added uniform_camera_matrices() and uniform_object_matrix() to gh_gpu_program lib.


Version 0.6.4.3 - 2014.05.28
-----------------------------
* fixed a bug in gh_mesh.set_vertices_color() in Lua.
+ added set_vertices_color() to gh_mesh in Python.
+ added mouse_get_wheel_delta() to gh_input lib.
+ added new keyboard keys support (shift, ctrl, alt and windows key).
+ added keyboard_codes.lua in GLSL Hacker Lua libs folder.
+ added FreeImage plugin with floating point (96 and 128-bit) support.
+ added set_current_image_codec() to gh_texture module.


Version 0.6.4.2 - 2014.05.19
-----------------------------
+ added emitter_set_spawn_positions() to gh_ps module.
+ added back_face_culling() and front_face_culling() to gh_renderer.
+ added box_create(), box_update_size() and sphere_create() to gh_utils.
+ added update_bounding_volume(), get_bounding_box_size(), get_bounding_sphere_center(),
  get_bounding_sphere_radius(), get_global_bounding_box_size(), get_global_bounding_sphere_center(),
  get_global_bounding_sphere_radius() to gh_object.


Version 0.6.4.1 - 2014.05.15
-----------------------------
+ added OpenGL 4.0 shader subroutines support (gh_gpu_program.set_uniform_subroutine()).
+ added get_capability_4i() to gh_renderer.
+ added create_pqtorus() to gh_mesh.
+ added actor_add_force(), actor_add_force_at_position() and actor_set_kinematic_target()
  to gh_physx3 lib (lua/python).
* fixed a bug in AntTweakBar functions when the AntTweakBar plugin is not loaded.
+ added set_simulation_scales() to gh_physx3 lib (lua/python).


Version 0.6.3.19 - 2014.05.08
-----------------------------
+ the PhysX plugin is now available for the Linux version.
* fixed a minor bug in the cloth module of PhysX3 plugin.


Version 0.6.3.18 - 2014.05.06
-----------------------------
* fixed GLSL live coding bug for OpenGL 3+ shaders.
* fixed a bug in gh_physx3.apply_actor_transform(). Only the transformation matrix was updated.
  Now position and orientation of the object are properly updated as well.
- added grid_xxxxxxx() functions to gh_utils to manage reference grids (lua/python).
- PhysX 3 plugin updated with latest PhysX SDK v3.3.1

Version 0.6.3.17 - 2014.04.23
----------------------------
- added create_persp_v2() and create_persp_v3() to gh_camera (lua/python).
- added open_url() to gh_utils (lua/python).
- fixed a bug in gh_object.get_absolute_position().
- added get_distance() to gh_object lib to get the distance between two objects (lua/python).
- added delay_before_swap_nv() to gh_renderer lib for Windows and Linux versions
- updated gh_audio.sound_create() with streaming option.
- minor changes in existing plugins
- added math_length_vec3() to gh_utils (lua/python).


Version 0.6.3.16 - 2014.04.01
----------------------------
- added create_from_file_v3() to gh_texture lib (lua/python) for the support of compressed textures.
- added get_gpu_memory_size() to gh_texture lib (lua/python).
- added inject_opacity_map() to gh_texture lib (lua/python).
- added create_plane_v3() to gh_mesh lib (lua/python) to create a mesh plane with an initial
  orientation applied to vertices.
- bugfix: workaround added in gh_render_target.resolve_multisampling() for
  Radeon GPUs under Mac OSX (the depth buffer is no longer processed).


Version 0.6.3.15 - 2014.03.17
----------------------------
- added set_orientation_v2() to gh_object lib to set the orientation of an object
  from two direction vectors.
- added FMOD-based audio plugin with new host-api lib: gh_audio (lua/python).


Version 0.6.3.14 - 2014.03.06
----------------------------
- added support of shared variables between scripts in different threads or in different languages (Lua - Python).
- updated and improved management of Lua states in multithreaded env (ZOMBIE scripts, multiple 3D windows).
- added "resizable" attribute in xml scene node.
- improved scripting error detection. The demo is stopped at the first error detected.
- added new functions to gh_model lib to load 3D objects with vertex alloc params.
- updated GPU detection code in GPU monitoring for Mac OS X.
- updated GPU monitoring plugin with temperature graph when GPU temperature reading is available.
- added mouse_show_cursor() to gh_input lib (works with Windows only).


Version 0.6.3.13 - 2014.02.10
----------------------------
- bugfix: in font bitmap rendering with OpenGL 2 (built-in vertex attribs vs generic vertex attribs).
  This bug was only visible under OS X with a NVIDIA GPU.


Version 0.6.3.12 - 2014.02.04
----------------------------
- bugfix: in 2D font bitmap rendering with OpenGL 2.

Version 0.6.3.11 - 2014.01.28
----------------------------
- bugfix: crash in gh_renderer.set_scissor() Lua version.

Version 0.6.3.10 - 2014.01.27
----------------------------
- bugfix: Lua live coding fixed.

Version 0.6.3.9 - 2014.01.24
----------------------------
- added multiple render targets suppport.

Version 0.6.3.8 - 2014.01.24
----------------------------
- added OpenGL 4.4 bindless texture support and uniform buffer object for passing
  array of bindless textures to a shader stage.
- added new functions for passing GLSL uniforms (uniform_1ui64v(), uniform_1ui64(),
  uniform_1/2/3/4d...) to gh_gpu_program (Lua).
- added platform information in the benchmark scores file.
- Linux: fixed segmentation fault when the demo initialization fails.
- Linux: the console output (with /console_output command line option) is fixed.
- added support of user vertex attribs: alloc_user_vertex_attribs(), set_user_vertex_attrib() and
  get_user_vertex_attrib() added to gh_mesh lib.
- added new GPU monitor plugin and associated host API function: gh_gpumon (Lua).
  The gh_gml lua/python module is now based on this GPU monitor plugin.
- added quad wireframe rendering option for some built-in meshes (plane, sphere, torus, cylinder).
- plugin management improved.
- updated with gxl3d 0.8.x branch.

Version 0.6.3.7 - 2014.01.11
----------------------------
- moved all video player functions based on FFmpeg to a separate plugin
  (plugin_GXC_video_ffmpeg_x64.dll).

Version 0.6.3.6 - 2013.12.24
----------------------------
- added write_to_file_v2() to gh_texture lib.
- added flip_vertical() to  to gh_texture lib.


Version 0.6.3.5 - 2013.12.18
----------------------------
- added set_instance_color() and set_instance_scale() to gh_mesh.

Version 0.6.3.4 - 2013.12.10
----------------------------
- updated tinyxml2 in gxl library.
- fixed bugs in cross-platform compilation for ffmpeg and anttweakbar support.

Version 0.6.3.3 - 2013.12.06
----------------------------
- added uniform1fv(), uniform2fv(), uniform3fv() and uniform4fv() to gh_gpu_program (Lua).
- added video support in gh_texture lib (gh_texture.video_xxxxx() functions) in Lua/Python.
  Video support is based on ffmpeg.

Version 0.6.3.2 - 2013.11.30
----------------------------
- added get_version() to gh_utils lib.
- added anttweakbar support (Windows version only) with a set of
  functions (twbar_xxx) in gh_utils lib.

Version 0.6.3.1 - 2013.11.20
----------------------------
- added webcam support for Windows version with a set of
  functions (webcam_xxx) in gh_utils lib.

Version 0.6.3.0 - 2013.11.15
----------------------------
- added raycast_get_ray() and raycast_cast_ray() to gh_utils lib.


Version 0.6.2.3 - 2013.11.08
----------------------------
- fixed a minor bug gxl3d related to image pixmap (rgba u8).

Version 0.6.2.2 - 2013.11.06
----------------------------
- Internal changes in gxl3d source code.

Version 0.6.2.1 - 2013.11.05
----------------------------
- added set_virtual_screen() and update_virtual_screen() to gh_renderer lib
  for OS X version.

Version 0.6.2.0 - 2013.11.04
----------------------------
- added get_virtual_screen() and get_num_virtual_screens() to gh_renderer lib
  for OS X version.
- minor changes in the loading of init0.xml and conf.xml
- Internal update: latest tinyxml2 1.0.12


Version 0.6.1.0 - 2013.10.27
----------------------------
- updated Python plugin with missing functions in gh_object lib: scale_vertices_position(),
  flip_faces(), flip_vertex_normals().
- added set_vertices_color() to gh_object lib (Python / Lua).
- fixed a bug in the FBX loader (vertices color).


Version 0.6.0.1 - 2013.10.31
----------------------------
- fixed a bug in the OS X version when an OpenGL 4.0 context was required.


Version 0.6.0.0 - 2013.10.25
----------------------------
- added a libs/ folder with Lua and Python high level librairies used by demos.
- added OS X 10.9 Mavericks support.
- updated version number, four numbers are now used: major.minor.patch.build.
- added keyboard support for Linux.
- added get_platform_name() to gh_utils lib.
- added set_orientation() and get_orientation() to gh_object lib.
- added set_vertices_color() to gh_mesh lib.
- fixed a bug with bitmap fonts and OpenGL 2 context.
- Windows and OS X version: added keyboard shortcuts for loading a scene (Ctrl+O), reloading a scene (Ctrl+R)
  and for displaying the log file (Ctrl+L).
- added a folder into GLSL Hacker root directory with some lua helper libs.
- the position of the main 3d window is stored in the conf.xml file and is used for the next launch.
- added get_host_app_dir(), get_scripting_libs_dir() and get_command_line() to gh_utils lib.
- improved the error handling (traces, exit at first syntax/runtime error).
- fixed bugs in the loading of scripts and gpu programs from files (xml).
  Now the filename attribute of gpu_program and scripts xml modes works correctly.
- added a configuration file (conf.xml).
- Windows version: GLSL Hacker plugins are now stored in the plugins/ folder.
- updated arguments of gh_utils.font_bm_create() function.
- added get_physx_version() to gh_physx3 lib.
- added set_render_state() and get_render_state() to gh_node lib.
- added tripod_visualizer_object_render() and tripod_visualizer_camera_render() to gh_utils lib (for GL2 and GL3+).
- removed tripod_visualizer_render() from gh_utils lib.
- added create_cylinder() and create_ellipse() to gh_mesh lib.
- added new command line param: /noload_plugin_physx3
- added new command line param: /noload_plugin_fbx
- updated gh_utils.font_bm_update() with a new parameter: mapped_gpu_memory.
- added Autodesk FBX support (via a plugin) with create_from_file_loader_fbx() to gh_model lib.
- added flip_vertex_normals() to gh_object lib.
- added OpenGL 4.2 atomic counters support: atomic_counter_create_buffer(),
  atomic_counter_kill_buffer(), atomic_counter_buffer_bind(), atomic_counter_set_value() and
  atomic_counter_get_value() added to gh_renderer lib.
- added particle system lib (gh_ps) to Lua/Python API.
- fixed a bug in gh_utils.tripod_visualizer_render() with OpenGL 2 context.
- added create_terrain() to gh_mesh lib.
- added scale_vertices_position() to gh_object lib (for mesh).
- added set_depth_buffer_writing_state() to gh_renderer.
- added set_vertex_position_w() to gh_mesh lib. Useful with PhysX clothes.
- added set_pitch(), set_yaw() and set_roll() to gh_camera lib.
- added get_position(), get_view_vector() and get_up_vector() to gh_camera lib.
- added w param in gh_camera.set_lookat().
- added support of PhysX 3.3 SDK (via a plugin) in Lua and Python: gh_physx3 lib.
- bugfix in OBJ object loader.


Version 0.5.0 - 2013.05.09
--------------------------
- fixed bugs in resource freeing (material/textures).
- added tripod_visualizer_render() to gh_utils. This tripod can be displayed in GL2 and GL3+ core profile.
- added support of shader storage buffer for compute shaders in gh_vertex_pool.
- added new command line param: /noload_plugin_opencl
- added new command line param: /noload_plugin_python27
- added new command line param: /disable_opengl_support_check
- fixed a memory leak in texture destruction.
- added get_platform() to gh_utils lib.
- added uniform2i(), uniform3i() and uniform4i() to gh_gpu_program.
- added uniform4i_array() and uniform4f_array() to gh_gpu_program.
- added Python 2.7.3 plugin for scripting.
- updated lua engine to Lua 5.2.2
- added set_texel_1d(), set_texel_2d() to gh_texture lib.
- added renderer_update() to gh_texture lib.
- added cubemap support with gh_texture.create_cube_from_file() function.
- added gh_texture.create_1d()
- renamed gh_texture.create() in gh_texture.create_2d()
- added get_gpu_memory_usage_kb_amd() to gh_renderer lib.
- Added TERMINATE scripts.
- Buffer object usages can be forced either by scripting or by command line.
- Added force_buffer_object_usage() to gh_renderer lib.
- Added timer_reset() and timer_get_milliseconds() to gh_window lib.
- Added update_built_in_uniforms() to gh_object lib.
- Added font_bm_create(), font_bm_get_charset_texture(), font_bm_draw_text_2d(),
  font_bm_draw_reset() and font_bm_render() to gh_utils.
- Added new functions into gh_utils to manage a simple spline: spline_create(),
  spline_add_keyframe(), spline_get_value().
- Added create_rb(), clear_color_buffer() and clear_depth_buffer() to gh_render_target.
- Added rasterizer_set_msaa_state() to gh_renderer.
- Added do_linear_tweening() to gh_mesh lib.
- Added alloc_mesh_data(), set_face_indexes() and get_face_indexes() to gh_mesh.
- Added set_gpu_program(), get_gpu_program(), add_texture() and remove_texture()
  to gh_material lib.
- Added get_num_materials(), get_material(), add_material(), remove_material()
  and remove_all_materials() to gh_object.
- Added set_materials_texture_unit_offset() to gh_object.
- Added compute_faces_normal() and compute_vertices_normal() to gh_object.
- Added set_sampler_params() to gh_texture lib.
- Added gl_core_profile and sw_renderer attributes to window xml node.
- Added set_vertex_position(), set_vertex_color(), get_vertex_color(), set_vertex_normal(),
  get_vertex_normal(), set_vertex_tangent(), get_vertex_tangent(), set_vertex_uv() and
  get_vertex_uv() to gh_mesh lib.
- Added set_vertex_attrib_name() and get_vertex_attrib_name() to gh_gpu_program.
- Added update_vertex_attrib_location() to gh_object lib.
- Removed update_vertex_attrib_location() from gh_mesh lib.
- Added create_depth() and create_depth_rect() to gh_render_target lib.
- Added get_num_gpus_amd() and get_gpu_memory_total_available_kb_amd() to gh_renderer lib.
- Added get_gpu_memory_total_available_kb_nv(), get_gpu_memory_current_available_kb_nv() and
  get_gpu_memory_usage_kb_nv() to gh_renderer lib.
- Added gh_opencl lib. This first version allows to retrieve OpenCL information
  about platforms and devices.
- Added gh_gml lib. gh_gml is the scripting wrapper around GML (GPU Monitoring Lib).
  GML is currently available on Windows only and is limited to NVIDIA GPUs. AMD GPUs
  will be supported shortly.
- Added map_vb(), unmap_vb(), vb_set_vertex_position(), vb_set_vertex_position_ptr(),
  vb_set_vertex_color() and vb_set_vertex_color_ptr() to gh_vertex_pool lib.
- Added create_box() to gh_mesh lib.
- Added set_instance_axis_angle() to gh_mesh lib.
- Added polyline support: gh_polyline lib.
- Added resize() to gh_render_target lib.
- Added use_with_syphon() to gh_render_target lib to use a render target with Syphon.
- Added Syphon support to the OSX version.

MAD Hacker
---------------
- Added luamidi lib.
- Added use_with_syphon() to gh_render_target lib to use a render target with Syphon.
- Added Syphon support to the OSX version.



Version 0.4.0 - 2013.01.18
--------------------------
- First public release.
- Many changes compared to v0.3.2 (for example ID is no longer used in Lua and Python scripting).


Version 0.3.2 - 2012.10.18
--------------------------
- Fixed a 32/64-bit bug in GXL3D module.
  [[Devlog: voir detail dans le fichier gxl_3d/gxl_3d_mesh_data.h au niveau FaceU32.]]


Version 0.3.1 - 2012.09.24
--------------------------
- Added:  /x_window_name command lien param (for X11-based apps only).
- Fixed a bug in scripting live coding.
  [[Devlog: il manquait la mise � jour de source_code_len dans Script::update().]]


Version 0.3.0 - 2012.09.10
--------------------------
- Minor changes in the gxl engine for the Python plugin
- Plugin Python 2.7 32/64-bit added.


Version 0.2.2 - 2012.09.06
--------------------------
- Added: get_vertex_position(), get_vertex_position_ptr(),
  get_vertex_absolute_position() and get_vertex_absolute_position_ptr()
  to gh_mesh lib.
- Added: get_num_vertices(), get_num_vertices_ptr(), get_num_faces() and
  get_num_faces_ptr() to gh_object lib.
- Added: get_absolute_position() and get_absolute_position_ptr() to gh_object lib.
- Added: font_render3d() and font_render3d_ptr() to gh_utils lib.
- Added: set_grid_params(), set_grid_params_ptr(), display_grid(),
  display_grid_ptr(), set_display_grid_state() and set_display_grid_state_ptr()
  to gh_object lib.
- Added: set_tripod_size() and set_tripod_size_ptr() to gh_object lib.


Version 0.2.1 - 2012.09.04
--------------------------
- Change: if erros are detected in an INIT script, all scripts are disabled
  and a red screen is displayed.
- Added: command line parameter /boxes_transparency= to set the
  transparency of live coding boxes.
- Change: live coding boxes transparency set to 255 by default (fully opaque).
- Change: description of live coding boxes transparency in managers (scripts and gpu programs).
- Bugfix: Lists of GPU programs and scripts in managers are automatically
  refreshed when a new scene is loaded.


Version 0.2.0 - 2012.09.01
--------------------------
- First version of the reference manual.
- Added drag n drop support: script DRAG_N_DROP + functions gh_utils.drop_files_get_num_files()
  and gh_utils.drop_files_get_file_by_index().


Version 0.1.0 - 2012.08.29
--------------------------
. Very first alpha release, internal use only.