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)

  • 1
    Could you expand on this answer a bit more? Right now it is more of a comment in my opinion. I will upvote it when you do.
    – syb0rg
    Dec 16, 2013 at 22:23

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.