CSC/ECE 517 Fall 2015/Mozilla Refactor GLES2: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 23: Line 23:
     paths = [path/to/rust_layers]
     paths = [path/to/rust_layers]
* Next, we had to add a new command line argument in Servo, which would allow selecting the graphics background (GL or ES2). For this, we made the following changes:
* Next, we had to add a new command line argument in Servo, which would allow selecting the graphics background (GL or ES2). For this, we made the following changes:
- We defined an enum <code>GraphicOption</code> which defined two options <code>GL</code> and <code>ES2</code> in [https://github.com/prashantgupta24/servo/blob/master/components/util/opts.rs opts.rs], default being <code>GL</code>
- We defined an enum <code>GraphicOption</code> which defined two options <code>GL</code> and <code>ES2</code> in [https://github.com/prashantgupta24/servo/blob/master/components/util/opts.rs opts.rs], default being <code>GL</code>
- We added a command line option which lets the user enter the option in the form of a string. Example is as below
    ./mach run [url] -G option

Revision as of 21:14, 25 October 2015

' Refactor GLES2 Student Project with SERVO & RUST '

Servo<ref>https://github.com/servo/servo/</ref> is a prototype web browser engine written in the RUST language.Servo uses a variety of back-end implementations for drawing graphics depending on the operating system.One of such back-end is only compatible with Android right now, and we want to extend and refactor that back-end to enable on all Linux systems..

Introduction

Servo

ServoServo is an open source prototype web browser layout engine being developed by Mozilla, and it is written in Rust language. The main idea is to create a highly parallel environment, in which different components can be handled by fine grained, isolated tasks. The different components can be rendering, HTML parsing, etc.

Rust

Rust is an open source systems programming language developed by Mozilla. Servo is written in Rust. The main purpose behind it's design is to be thread safe and concurrent. The emphasis is also on speed, safety and control of memory layout.

Project Description

  • The project requirement initially stated that we build and Compile servo. Following are the steps for this:

Servo is built with Cargo, the Rust package manager. Mozilla's Mach tools are used to orchestrate the build and other tasks.

   git clone https://github.com/servo/servo
   cd servo
   ./mach build --dev
   ./mach run tests/html/about-mozilla.html
  • The next requirement was to build the Rust-layers independently of Servo. For this, we
  • Next, we had to over-ride cargo to use our local copy of Rust-layers, so we had to add a cargo override to it. For this, we created a .cargo folder in our home directory(same place that servo and Rust-layers reside), and added a config file to that folder. The content of that config file is a path to our local Rust-layers.
   paths = [path/to/rust_layers]
  • Next, we had to add a new command line argument in Servo, which would allow selecting the graphics background (GL or ES2). For this, we made the following changes:

- We defined an enum GraphicOption which defined two options GL and ES2 in opts.rs, default being GL - We added a command line option which lets the user enter the option in the form of a string. Example is as below

   ./mach run [url] -G option