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 againstANGLE
. 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 forrcamera
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; nowrcamera.h
single-file header-only library can be used externally, independently of raylib. A newUpdateCameraPro()
function has been added to address input-dependency ofUpdateCamera()
, 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 animations:IQM
,GLTF
andM3D
.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 toraudio
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 loading:rl_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 raylibrtextures
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 likershapes
,rtextures
andrmodels
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: Nowrshapes
2d shapes drawing functions only depend on 6 low-level functions:rlBegin()
,rlEnd()
,rlVertex3f()
,rlTexCoord2f()
,rlNormal3f()
,rlSetTexture()
. With only those pseudo-OpenGl 1.1 minimal functionality, everything can be drawn! This improvement convertsrshapes
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
You can learn more about the RayLib 4.5 release in the video below.