RayLib 4.5 Released

The cross platform, open source C/C++ (technically C99) game development framework RayLib just released RayLib 4.5. RayLib is full featured, very modular, available for several platforms and has language bindings for essentially every modern programming language.

Details of the RayLib 4.5 release:

  • NEW Improved ANGLE support on Desktop platforms: Support for OpenGL ES 2.0 on Desktop platforms (Windows, Linux, macOS) has been reviewed by @wtnbgo GitHub user. Now raylib can be compiled on desktop for OpenGL ES 2.0 and linked against ANGLE. This small addition open the door to building raylib for all ANGLE supported backends: Direct3D 11, Vulkan and Metal. Please note that this new feature is still experimental and requires further testing!
  • NEW Camera module: A brand new implementation from scratch for rcamera module, contributed by @Crydsch GitHub user! New camera system is simpler, more flexible, more granular and more extendable. Specific camera math transformations (movement/rotation) have been moved to individual functions, exposing them to users if required. Global state has been removed from the module and standalone usage has been greatly improved; now rcamera.h single-file header-only library can be used externally, independently of raylib. A new UpdateCameraPro() function has been added to address input-dependency of UpdateCamera(), now advance users have full control over camera inputs and movement/rotation speeds!
  • NEW Support for M3D models and M3D/GLTF animations: 3d models animations support has been a limited aspect of raylib for long time, some versions ago IQM animations were supported but raylib 4.5 also adds support for the brand new M3D file format, including animations and the long expected support for GLTF animations! The new M3D file format is simple, portable, feature complete, extensible and open source. It also provides a complete set of tools to export/visualize M3D models from/to Blender! Now raylib supports up to 3 model file-formats with animationsIQMGLTF and M3D.
  • NEW Support QOA audio format (import/export): Just a couple of months ago the new QOA file format was published, a very simple, portable and open source quite-ok-audio file format. raylib already supports it, added to raudio module and including audio loading from file, loading from memory, streaming from file, streaming from memory and exporting to QOA audio format. Because simplicity really matters to raylib!
  • NEW Module for compressed textures loadingrl_gputex, a portable single-file header-only small library to load compressed texture file-formats (DDS, PKM, KTX, PVR, ASTC). Provided functionality is not new to raylib but it was part of the raylib rtextures module, now it has been moved into a separate self-contained library, improving portability. Note that this module is only intended to load compressed data from files, ready to be uploaded to GPU, no compression/decompression functionality is provided. This change is a first step towards a better modularization of raylib library.
  • Reviewed rlgl module for automatic limits checking: Again, rlgl has been reviewed to simplify usage. Now users do not need to worry about reaching the internal render-batch limits when they send their triangles to draw 2d/3d, rlgl manages it automatically! This change allows a great simplification for other modules like rshapesrtextures and rmodels that do not need to worry about bufffer overflows and can just define as many vertex as desired!
  • Reviewed rshapes module to minimize the rlgl dependency: Now rshapes 2d shapes drawing functions only depend on 6 low-level functionsrlBegin()rlEnd()rlVertex3f()rlTexCoord2f()rlNormal3f()rlSetTexture(). With only those pseudo-OpenGl 1.1 minimal functionality, everything can be drawn! This improvement converts rshapes module in a self-contained, portable shapes-drawing library that can be used independently of raylib, as far as entry points for those 6 functions are provided by the user. It even allows to be used for software rendering, with the proper backend!
  • Added data structures validation functions: Multiple functions have been added by @RobLoach GitHub user to ease the validation of raylib data structures: IsImageReady()IsTextureReady()IsSoundReady()… Now users have a simple mechanism to make sure data has been correctly loaded, instead of checking internal structure values by themselfs.

Key Links

4.5 Release Notes

RayLib Homepage

GitHub Repository

RayLib Discord

You can learn more about the RayLib 4.5 release in the video below.

Scroll to Top