To build your raylib game for Raspberry Pi you just need to download raylib git repository (or get the current release from [here](https://github.com/raysan5/raylib/releases)). All required libraries come with the raylib, **no additional dependencies are required**. raylib also comes with ready-to-use makefiles to compile source code and examples.
To build your Raylib game for Raspberry Pi you just need to download Raylib git repository (or get the current release from [here](https://github.com/raysan5/raylib/releases)). All required libraries come with the Raylib, **no additional dependencies are required**. Raylib also comes with ready-to-use makefiles to compile source code and examples.
### Supported Devices and OS
Official OS supported is [Raspberry Pi OS](https://www.raspberrypi.org/software/operating-systems/), but Raspbian Stretch and Raspbian Buster currently work too. Following Raspberry Pi devices work flawlessly by raylib:
Official OS supported is [Raspberry Pi OS](https://www.raspberrypi.org/software/operating-systems/), but Raspbian Stretch and Raspbian Buster currently work too. Raspberry Pi OS Bullseye works (but only with `PLATFORM_DRM`, not `PLATFORM_RPI`). The following Raspberry Pi devices work with raylib:
- Raspberry Pi Zero (all models)
- Raspberry Pi 1 (all models)
@ -11,31 +11,32 @@ Official OS supported is [Raspberry Pi OS](https://www.raspberrypi.org/software/
- Raspberry Pi 3 (all models)
- Raspberry Pi 4 (all models)
_NOTE: **Raspberry Pi 4** native mode compilation requires `PLATFORM_DRM` compilation flag instead of `PLATFORM_RPI`!_
_NOTE: **Raspberry Pi 4** native mode compilation requires `PLATFORM_DRM` compilation flag instead of `PLATFORM_RPI`!_So does **Raspberry Pi 0-3 with Bullseye OS**
### Supported OpenGL backends
- OpenGL ES 2.0 in **native mode** (no X11 required)
- OpenGL 1.1 on X11 desktop mode
- OpenGL 2.1 on X11 desktop mode
- (OpenGL 3.3 on X11 desktop mode ?)
By default, raylib is prepared to be used in native mode, it means, right from the command line, not depending on any windowing system (no X11 required), accessing Broadcom Video driver directly... but some users could prefer to use raylib from a classic X11-based Linux desktop, that's also possible, thanks to the `OpenGL desktop drivers`.
By default, Raylib is will compile for a classic X11-based Linux desktop, using the `OpenGL desktop drivers`. However it is also possible to compile in native mode not depending on any windowing system (no X11 required), accessing Broadcom Video driver directly and running programs from the virtual terminal.
OpenGL desktop mode requires the GL desktop driver and supposedly it only works for RPI 2 and higher, that limit is set for performance reasons... but, if required, GL desktop driver can be also enabled on RPI B/B+ or Zero, [just follow this guide](https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=166495) to enable it.
### Compiling raylib source code
### Compiling Raylib source code
Before you can use raylib in your project you will have to compile it, but this is quick and easy!
Before you can use Raylib in your project you will have to compile it, but this is quick and easy!
Just navigate to `raylib\src\` directory and run one of the following options depending on your needs:
1. To use OpenGL ES 2.0 in native mode (no X11):
On Rapberry Pi 0-3:
On Raspberry Pi 0-3 using legacy versions of OS:
```
make PLATFORM=PLATFORM_RPI
```
On Rapberry Pi 4:
On Rapsberry Pi 4 or Raspberry Pi 0-3 using Bullseye or newer OS:
```
make PLATFORM=PLATFORM_DRM
```
@ -43,6 +44,10 @@ make PLATFORM=PLATFORM_DRM
```
make PLATFORM=PLATFORM_DESKTOP GRAPHICS=GRAPHICS_API_OPENGL_21
```
3. To use standard OpenGL 3.3 (X11 window)
```
make
```
NOTE: To use raylib on the Raspberry Pi desktop, you need to had previously installed all desktop window-dev system libraries, if you just downloaded [Raspberry Pi OS Desktop](https://www.raspberrypi.org/software/operating-systems/), maybe it comes with required libraries installed but if it complains on compilation, just make sure to install the following libraries: