I am developing a 3D application for RPi 3 B+ using OpenGL ES. As I know there are plenty of tutorials and books but they are mostly for either OpenGL-ES 3.0, Android or iOS. I far as I know RPi 3 supports OpenGLES 2.0 but I am unable to get proper and latest developments regarding OpenGL-ES2.0. I am completely new to OpenGL/OpenGL-ES. Recently I got enrolled in OpenGL course using C++ but later realised that it's not possible on RPi3 as OpenGL and OpenGL-ES are totally different.

I also have tried PyOpenGL on RPi3, able to run it (it uses gl_Begin and gl_End, which is the immediate mode, so it is old and outdated as OpenGLES 2.0 doesn't support it). But I am not sure how it is able to render cube without problems.

Also regarding windowing library, I am able to use and create OpenGL context using GLFW but also I have read on Khronos website that EGL acts as windowing system for mobile systems. So I am confused even more now whether to use GLFW or EGL

So can somebody point me in the right direction especially :

  1. From where do I start learning OpenGL ES 2.0 for RPi-3 B+
  2. Which books to refer
  3. Whether should I continue using GLFW or should I use EGL.

I am comfortable with Python and C/C++. Any kind of help is appreciated, Thanks.

  • 1
    Your question is rather broad and soliciting opinions, so I suggest you scope it on a specific aspect if possible. At the very least, I would exclude the part about which books to prefer and which 3D library to use. Commented Oct 29, 2018 at 10:16

1 Answer 1


There's an implementation of OpenGL 1.X API using OpenGL ES, which I was able to successfully build on several ARM devices (Orange Pi, Pandora). Since the repo has a branch called rpi, I assume it works on RPi as well.

The library helps a lot when you want to run older OpenGL games on ARM. For learning purposes, you'll want to check how much of OpenGL 2.0+ features your course will be using, so that you don't have to switch platforms halfway through.

  • Yes, but I think unless you do it Broadcom's way like the examples in /opt/vc (aka userland github.com/raspberrypi/userland) you aren't taking full advantage of the GPU/QPU. And those all seem to involve dispmanx, Broadcom's proprietary overlay manager. Maybe GLFW can put this stuff in windows, my impression is that dispmanx just puts it in a new layer on top of everything else. Yes, GLFW works with X, you can flip to a different pane in your pager, etc. But it's slow. Dispmanx works with the framebuffer, it's on all the panes.
    – Alan Corey
    Commented Mar 5, 2019 at 20:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.