# raylib 3.5.0 — raylib v3.5.0 - Product: raylib (https://whatsnew.fyi/product/raylib) - Vendor: raysan5 - Date: 2020-12-25 - Version: 3.5.0 - Original notes: https://github.com/raysan5/raylib/releases/tag/3.5.0 - Permalink: https://whatsnew.fyi/product/raylib/releases/3.5.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Support for Raspberry Pi 4 native mode through DRM subsystem and GBM API - **added** — More than 150 configuration flags and defines in config.h for custom raylib builds - **added** — High-performant automatic GIF recording feature using msf_gif.h library - **added** — RenderBatch system in rlgl module to support custom render batches for grouping draw calls - **added** — Framebuffer API in rlgl module with support for custom attachments including cubemaps - **added** — 30 new functions added to raylib API - **changed** — Software rendering Image API redesigned for improved performance on multi-format pixel data - **changed** — File loading functions redesigned to load data from memory buffers instead of directly accessing files - **changed** — Core module redesigned with new Window states management system including SetWindowState function - **changed** — SetConfigFlags function reviewed for consistency - **changed** — 90 functions reviewed and redesigned for consistency - **changed** — CI/CD system migrated to GitHub Actions with support for multiple build configurations - **removed** — Previous CI platforms AppVeyor and TravisCI It's December 25th... this crazy 2020 is about to finish and finally the holidays gave me some time to put a new version of raylib. It's been **9 months since last release** and last November raylib become 7 years old... I was not able to release this new version back then but here it is. Many changes and improvements have happened in those months and, even, last August, raylib was awarded with an [Epic Megagrant](https://www.unrealengine.com/en-US/blog/epic-megagrants-fall-2020-update)! Bindings list kept growing to [+50 programming languages](https://github.com/raysan5/raylib/blob/master/BINDINGS.md) and some new platforms have been supported. Let's see this new version details: First, some general numbers of this new update: - **+650** commits since previous RELEASE - **+30** functions ADDED (for a TOTAL of **475**!) - **+90** functions REVIEWED/REDESIGNED - **+30** contributors (for a TOTAL of **170**!) - **+8** new examples (for a TOTAL of **+120**!) Here the list with some highlights for `raylib 3.5`. - NEW **Platform** supported: **Raspberry Pi 4 native mode** (no X11 windows) through [DRM](https://en.wikipedia.org/wiki/Direct_Rendering_Manager) subsystem and GBM API. Actually this is a really interesting improvement because it opens the door to raylib to support other embedded platforms (Odroid, GameShell, NanoPi...). Also worth mentioning the un-official homebrew ports of raylib for [PS4](https://github.com/orbisdev/orbisdev-orbisGl2) and [PSVita](https://github.com/psp2dev/raylib4Vita). - NEW **configuration options** exposed: For custom raylib builds, `config.h` now exposes **more than 150 flags and defines** to build raylib with only the desired features, for example, it allows to build a minimal raylib library in just some KB removing all external data filetypes supported, very useful to generate **small executables or embedded devices**. - NEW **automatic GIF recording** feature: Actually, automatic GIF recording (**CTRL+F12**) for any raylib application has been available for some versions but this feature was really slow and low-performant using an old gif library with many file-accesses. It has been replaced by a **high-performant alternative** (`msf_gif.h`) that operates directly on memory... and actually works very well! Try it out! - NEW **RenderBatch** system: `rlgl` module has been redesigned to support custom **render batches** to allow grouping draw calls as desired, previous implementation just had one default render batch. This feature has not been exposed to raylib API yet but it can be used by advance users dealing with `rlgl` directly. For example, multiple `RenderBatch` can be created for 2D sprites and 3D geometry independently. - NEW **Framebuffer** system: `rlgl` module now exposes an API for custom **Framebuffer attachments** (including cubemaps!). raylib `RenderTexture` is a basic use-case, just allowing color and depth textures, but this new API allows the creation of more advance Framebuffers with multiple attachments, like the **G-Buffers**. `GenTexture*()` functions have been redesigned to use this new API. - Improved **software rendering**: raylib `Image*()` API is intended for software rendering, for those cases when **no GPU or no Window is available**. Those functions operate directly with **multi-format** pixel data on RAM and they have been completely redesigned to be way faster, specially for small resolutions and retro-gaming. Low-end embedded devices like **microcontrollers with custom displays** could benefit of this raylib functionality! - File **loading from memory**: Multiple functions have been redesigned to load data from memory buffers **instead of directly accessing the files**, now all raylib file loading/saving goes through a couple of functions that load data into memory. This feature allows **custom virtual-file-systems** and it gives more control to the user to access data already loaded in memory (i.e. images, fo _[Truncated at 4000 characters — full notes: https://github.com/raysan5/raylib/releases/tag/3.5.0]_