I am beginning to learn OpenGL ES 2.0 through both the excellent book OpenGL ES 2.0 Programming Guide and the famous Arc Synthesis OpenGL tutorial. However, I have heard that the Raspberry Pi's OpenGL development process is a bit...different than that of desktop Linux. Indeed, I tried running an unmodified OpenGL ES program on the Pi and it was really slow.

Additionally, I took a look at some of the example programs for the Raspberry Pi, but they were all either too complicated or didn't deal with OpenGL ES, and I was not able to gain any knowledge. I am, after all, a beginner at this. So, what's the difference? What modifications do my OpenGL ES programs need to run on the Pi? And what's with the bcm_host_init() and memset(state, 0, sizeof(*state)) functions?

1 Answer
1

Pi can run GL in two ways -- the traditional GL-on-X11 way which uses the glx() calls and also directly, without starting X11.. which is where the bcm_host_init()
calls come in -- they're the chipset driver API (bcm => Broadcom)