Skip to content

raylib v3.7.0

Compare
Choose a tag to compare
@raysan5 raysan5 released this 26 Apr 16:08
· 3006 commits to master since this release

April 2021, it's been about 4 months since last raylib release and here it is already a new one, this time with a bunch of internal redesigns and improvements. Surprisingly, on April the 8th I was awarded for a second time with the Google Open Source Peer Bonus Award for my contribution to open source world with raylib and it seems the library is getting some traction, what a better moment for a new release? Let's see what can be found in this new version:

Let's start with some numbers:

  • +100 closed issues (for a TOTAL of +900!)
  • +400 commits since previous RELEASE
  • +50 functions ADDED (+30 of them to rlgl API)
  • +30 functions REVIEWED/REDESIGNED
  • +40 new contributors (for a TOTAL of +210!)

Highlights for raylib 3.7:

  • REDESIGNED: rlgl module for greater abstraction level. This suppose an important change in raylib architecture, now rlgl functionality is self-contained in the module and used by higher-level layers (specially by core module), those upper layers are the ones that expose functionality to the main API when required, for example the Shaders, Mesh and Materials functionality. Multiple rlgl functions have been renamed for consistency, in this case, following the rl*() prefix convention. Functions have also been reorganized internally by categories and GenTexture*() functions have been removed from the library and moved to models_material_pbr example.

  • REDESIGNED: VR simulator and stereo rendering mechanism. A brand new API has been added, more comprehensive and better integrated with raylib, the new stereo rendering can be combined with RenderTexture and Shader API allowing the user to manage fbo and distortion shader directly. Also, the new rendering mechanism supports instancing on stereo rendering! Check the updated core_vr_simulator example for reference!

  • ADDED: New file access callbacks system. Several new callback functions have been added to the API to allow custom file loaders. A nice example it's the raylib integration with a virtual file system PhysFS.

  • ADDED: glTF animations support. glTF is the preferred models file format to be used with raylib and along the addition of a models animation API on latest raylib versions, now animations support for glTF format has come to raylib, thanks for this great contribution to Hristo Stamenov

  • ADDED: Music streaming support from memory. raylib has been adding the Load*FromMemory() option to all its supported file formats but music streaming was not supported yet... until now. Thanks to this great contribution by Agnis "NeZvērs" Aldiņš, now raylib supports music streamming from memory data for all supported file formats: WAV, OGG, MP3, FLAC, XM and MOD.

  • RENAMED: enums values for consistency. Most raylib enums names and values names have been renamed for consistency, now all value names start with the type of data they represent. It increases clarity and readability when using those values and also improves overall library consistency.

Beside those key changes, many functions have been reviewed with improvements and bug fixes, many of them contributed by the community! Thanks! And again, this release sets a new milestone for raylib library. Make sure to check CHANGELOG for detailed list of changes! Hope you enjoy this new raylib installment!

Happy gamedev/tools/graphics programming! :)