egl icon indicating copy to clipboard operation
egl copied to clipboard

Go package for accessing EGL

What's that?

egl is a Go package for accessing the EGL (Embedded Graphics Library). EGL is the access door toward hardware accelerated graphics, through OpenGL, on many embedded devices. The project was born for accessing the GPU of the Raspberry PI (check this post) but now it has been generalized to be go installable on other platforms too. This has the benefit that you could develop Open GL ES 2.0 applications on your desktop computer using Mesa and deploy them on embedded systems like the Raspberry PI.

Currently supported platform

  • Raspberry PI
  • Xorg
  • Android (see Mandala)

Install

The package aims to be multiplatform. To achive this result two approaches are used: build constraints and per-platform/per-implementation initialization boilerplate code. By default egl will use the xorg implementation.

$ go get github.com/remogatto/egl # use xorg by default

To build egl against a particular implementation use the specific build constraint, for example:

$ go get -tags=raspberry github.com/remogatto/egl # install on the raspberry

On a debian like system you will need to install the following prerequisites:

$ sudo apt-get install libegl1-mesa-dev libgles2-mesa-dev

Usage

Please refer to the examples.

To Do

  • Add support for other platforms (e.g. android)
  • Add tests

Credits

Thanks to Roger Roach for his egl/opengles libraries. I stole a lot from his repository!

License

See LICENSE