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
inrendergl.rs
(in rust-layers), and use the new command line option to pass an appropriate value ininitialize_compositing
incomponents/compositing/compositor.rs
Subsequent steps:
- follow the remaining instructions specified in https://github.com/servo/servo/issues/7484#issuecomment-136876183