09-04-2023, 09:00 PM
Raylib 3.5 Released
<div style="margin: 5px 5% 10px 5%;"><img src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/raylib-3-5-released.png" width="1920" height="1080" title="" alt="" /></div><div><div><img decoding="async" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/raylib-3-5-released.png" class="ff-og-image-inserted"></div>
<p>Eight months after the <a href="https://gamefromscratch.com/raylib-3-0-released/">release of Raylib 3.0</a>, Raylib 3.5 was just released. Raylib is an open source cross platform C/C++ game framework. Raylib runs on a ton of different platforms and has bindings available for more than 50 different programming languages. The Raylib 3.5 release brings the following new features.</p>
<ul>
<li>NEW <strong>Platform</strong> supported: <strong>Raspberry Pi 4 native mode</strong> (no X11 windows) through <a href="https://en.wikipedia.org/wiki/Direct_Rendering_Manager">DRM</a> 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 <a href="https://github.com/orbisdev/orbisdev-orbisGl2">PS4</a> and PSVita.</li>
<li>NEW <strong>configuration options</strong> exposed: For custom raylib builds, <code>config.h</code> now exposes <strong>more than 150 flags and defines</strong> 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 <strong>small executables or embedded devices</strong>.</li>
<li>NEW <strong>automatic GIF recording</strong> feature: Actually, automatic GIF recording (<strong>CTRL+F12</strong>) 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 <strong>high-performant alternative</strong> (<code>msf_gif.h</code>) that operates directly on memory… and actually works very well! Try it out!</li>
<li>NEW <strong>RenderBatch</strong> system: <code>rlgl</code> module has been redesigned to support custom <strong>render batches</strong> 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 <code>rlgl</code> directly. For example, multiple <code>RenderBatch</code> can be created for 2D sprites and 3D geometry independently.</li>
<li>NEW <strong>Framebuffer</strong> system: <code>rlgl</code> module now exposes an API for custom <strong>Framebuffer attachments</strong> (including cubemaps!). raylib <code>RenderTexture</code> 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 <strong>G-Buffers</strong>. <code>GenTexture*()</code> functions have been redesigned to use this new API.</li>
<li>Improved <strong>software rendering</strong>: raylib <code>Image*()</code> API is intended for software rendering, for those cases when <strong>no GPU or no Window is available</strong>. Those functions operate directly with <strong>multi-format</strong> 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 <strong>microcontrollers with custom displays</strong> could benefit of this raylib functionality!</li>
<li>File <strong>loading from memory</strong>: Multiple functions have been redesigned to load data from memory buffers <strong>instead of directly accessing the files</strong>, now all raylib file loading/saving goes through a couple of functions that load data into memory. This feature allows <strong>custom virtual-file-systems</strong> and it gives more control to the user to access data already loaded in memory (i.e. images, fonts, sounds…).</li>
<li>NEW <strong>Window states</strong> management system: raylib <code>core</code> module has been redesigned to support Window <strong>state check and setup more easily</strong> and also <strong>before/after Window initialization</strong>, <code>SetConfigFlags()</code> has been reviewed and <code>SetWindowState()</code> has been added to control Window minification, maximization, hidding, focusing, topmost and more.</li>
<li>NEW <strong>GitHub Actions</strong> CI/CD system: Previous CI implementation has been reviewed and improved a lot to support <strong>multiple build configurations</strong> (platforms, compilers, static/shared build) and also an <strong>automatic deploy system</strong> has been implemented to automatically attach the diferent generated artifacts to every new release. As the system seems to work very good, previous CI platforms (AppVeyor/TravisCI) have been removed.</li>
</ul>
<p>Release notes are <a href="https://github.com/raysan5/raylib/releases/tag/3.5.0">available here</a> and a complete change log is <a href="https://github.com/raysan5/raylib/blob/master/CHANGELOG">available here</a>. Binary versions of Raylib are available <a href="https://www.raylib.com/">on Raylib.com</a> while the source code is hosted under the ZLib license <a href="https://github.com/raysan5/raylib">on GitHub</a>. If you are interested in learning Raylib you can check out their <a href="https://discord.com/invite/VkzNHUE">community on Discord</a>. You can also download Raylib via vcpkg on Visual Studio with step by step instructions <a href="https://gamefromscratch.com/vcpkg-cpp-easy-mode-step-by-step-tutorial/">available here</a>. You can learn more about Raylib and the 3.5 release in the <a href="https://youtu.be/RZJ-Z--6uxY">video </a>below.</p>
<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio">
<div class="wp-block-embed__wrapper">
<div class="ast-oembed-container"><iframe class="youtube-player" width="1500" height="844" src="https://www.youtube.com/embed/RZJ-Z--6uxY?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent" allowfullscreen="true" style="border:0;" sandbox="allow-scripts allow-same-origin allow-popups allow-presentation"></iframe></div>
</div>
</figure>
<div class="code-block code-block-1"> <ins class="adsbygoogle" data-ad-format="autorelaxed" data-ad-client="ca-pub-5156240514307514" data-ad-slot="1997524572"></ins>
</div>
</div>
https://www.sickgaming.net/blog/2020/12/...-released/
<div style="margin: 5px 5% 10px 5%;"><img src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/raylib-3-5-released.png" width="1920" height="1080" title="" alt="" /></div><div><div><img decoding="async" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/raylib-3-5-released.png" class="ff-og-image-inserted"></div>
<p>Eight months after the <a href="https://gamefromscratch.com/raylib-3-0-released/">release of Raylib 3.0</a>, Raylib 3.5 was just released. Raylib is an open source cross platform C/C++ game framework. Raylib runs on a ton of different platforms and has bindings available for more than 50 different programming languages. The Raylib 3.5 release brings the following new features.</p>
<ul>
<li>NEW <strong>Platform</strong> supported: <strong>Raspberry Pi 4 native mode</strong> (no X11 windows) through <a href="https://en.wikipedia.org/wiki/Direct_Rendering_Manager">DRM</a> 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 <a href="https://github.com/orbisdev/orbisdev-orbisGl2">PS4</a> and PSVita.</li>
<li>NEW <strong>configuration options</strong> exposed: For custom raylib builds, <code>config.h</code> now exposes <strong>more than 150 flags and defines</strong> 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 <strong>small executables or embedded devices</strong>.</li>
<li>NEW <strong>automatic GIF recording</strong> feature: Actually, automatic GIF recording (<strong>CTRL+F12</strong>) 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 <strong>high-performant alternative</strong> (<code>msf_gif.h</code>) that operates directly on memory… and actually works very well! Try it out!</li>
<li>NEW <strong>RenderBatch</strong> system: <code>rlgl</code> module has been redesigned to support custom <strong>render batches</strong> 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 <code>rlgl</code> directly. For example, multiple <code>RenderBatch</code> can be created for 2D sprites and 3D geometry independently.</li>
<li>NEW <strong>Framebuffer</strong> system: <code>rlgl</code> module now exposes an API for custom <strong>Framebuffer attachments</strong> (including cubemaps!). raylib <code>RenderTexture</code> 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 <strong>G-Buffers</strong>. <code>GenTexture*()</code> functions have been redesigned to use this new API.</li>
<li>Improved <strong>software rendering</strong>: raylib <code>Image*()</code> API is intended for software rendering, for those cases when <strong>no GPU or no Window is available</strong>. Those functions operate directly with <strong>multi-format</strong> 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 <strong>microcontrollers with custom displays</strong> could benefit of this raylib functionality!</li>
<li>File <strong>loading from memory</strong>: Multiple functions have been redesigned to load data from memory buffers <strong>instead of directly accessing the files</strong>, now all raylib file loading/saving goes through a couple of functions that load data into memory. This feature allows <strong>custom virtual-file-systems</strong> and it gives more control to the user to access data already loaded in memory (i.e. images, fonts, sounds…).</li>
<li>NEW <strong>Window states</strong> management system: raylib <code>core</code> module has been redesigned to support Window <strong>state check and setup more easily</strong> and also <strong>before/after Window initialization</strong>, <code>SetConfigFlags()</code> has been reviewed and <code>SetWindowState()</code> has been added to control Window minification, maximization, hidding, focusing, topmost and more.</li>
<li>NEW <strong>GitHub Actions</strong> CI/CD system: Previous CI implementation has been reviewed and improved a lot to support <strong>multiple build configurations</strong> (platforms, compilers, static/shared build) and also an <strong>automatic deploy system</strong> has been implemented to automatically attach the diferent generated artifacts to every new release. As the system seems to work very good, previous CI platforms (AppVeyor/TravisCI) have been removed.</li>
</ul>
<p>Release notes are <a href="https://github.com/raysan5/raylib/releases/tag/3.5.0">available here</a> and a complete change log is <a href="https://github.com/raysan5/raylib/blob/master/CHANGELOG">available here</a>. Binary versions of Raylib are available <a href="https://www.raylib.com/">on Raylib.com</a> while the source code is hosted under the ZLib license <a href="https://github.com/raysan5/raylib">on GitHub</a>. If you are interested in learning Raylib you can check out their <a href="https://discord.com/invite/VkzNHUE">community on Discord</a>. You can also download Raylib via vcpkg on Visual Studio with step by step instructions <a href="https://gamefromscratch.com/vcpkg-cpp-easy-mode-step-by-step-tutorial/">available here</a>. You can learn more about Raylib and the 3.5 release in the <a href="https://youtu.be/RZJ-Z--6uxY">video </a>below.</p>
<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio">
<div class="wp-block-embed__wrapper">
<div class="ast-oembed-container"><iframe class="youtube-player" width="1500" height="844" src="https://www.youtube.com/embed/RZJ-Z--6uxY?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent" allowfullscreen="true" style="border:0;" sandbox="allow-scripts allow-same-origin allow-popups allow-presentation"></iframe></div>
</div>
</figure>
<div class="code-block code-block-1"> <ins class="adsbygoogle" data-ad-format="autorelaxed" data-ad-client="ca-pub-5156240514307514" data-ad-slot="1997524572"></ins>
</div>
</div>
https://www.sickgaming.net/blog/2020/12/...-released/