Skip to content

Refactor GLES2 student project

Josh Matthews edited this page Sep 18, 2015 · 1 revision

Background information: Web browsers like Servo often use a system for drawing graphics that can transparently use a variety of backend implementations on different operating systems. This allows them to use whatever is most efficient for a given platform, as well as allow maximum portability to different systems. One of our backends can only be used on Android devices right now, but we want to extend that to all Linux systems. Further details are available in the github issue.

Prerequisites:

  • Must be working on a Linux desktop that supports GL ES2 - any modern Linux desktop with a recent Mesa should be fine for this. However, it may not be possible to do this work from a VM. Running glxinfo should report "OpenGL ES profile version string: OpenGL ES 2.0 Mesa 10.6.3" or similar.

Initial step:

  • compile Servo and ensure that it runs on tests/html/about-mozilla.html
  • email the mozilla.dev.servo mailing list introducing your group and your progress
  • add a new command-line option to allow selecting the graphics backend (GL or ES2) in components/utils/opts.rs
  • clone rust-layers and build it independently of Servo
  • add a Cargo override for Servo to use the local copy of rust-layers
  • add a flag to RenderContext::new in rendergl.rs (in rust-layers), and use the new command line option to pass an appropriate value in initialize_compositing in components/compositing/compositor.rs

Subsequent steps:

Clone this wiki locally