Auto merge of #12490 - djc:canvas-no-opts, r=jdm

Remove dependency on util::opts from canvas crate

<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because it's a small refactoring.

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/12490)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2016-07-20 09:19:04 -05:00 committed by GitHub
commit ca9bc23b39
2 changed files with 10 additions and 8 deletions

View file

@ -17,7 +17,6 @@ use ipc_channel::ipc::{self, IpcSender};
use num_traits::ToPrimitive;
use std::borrow::ToOwned;
use std::mem;
use util::opts;
use util::thread::spawn_named;
use webrender_traits;
@ -78,8 +77,8 @@ struct CanvasPaintState<'a> {
}
impl<'a> CanvasPaintState<'a> {
fn new() -> CanvasPaintState<'a> {
let antialias = if opts::get().enable_canvas_antialiasing {
fn new(antialias: bool) -> CanvasPaintState<'a> {
let antialias = if antialias {
AntialiasMode::Default
} else {
AntialiasMode::None
@ -101,7 +100,8 @@ impl<'a> CanvasPaintState<'a> {
impl<'a> CanvasPaintThread<'a> {
fn new(size: Size2D<i32>,
webrender_api_sender: Option<webrender_traits::RenderApiSender>) -> CanvasPaintThread<'a> {
webrender_api_sender: Option<webrender_traits::RenderApiSender>,
antialias: bool) -> CanvasPaintThread<'a> {
let draw_target = CanvasPaintThread::create(size);
let path_builder = draw_target.create_path_builder();
let webrender_api = webrender_api_sender.map(|wr| wr.create_api());
@ -109,7 +109,7 @@ impl<'a> CanvasPaintThread<'a> {
CanvasPaintThread {
drawtarget: draw_target,
path_builder: path_builder,
state: CanvasPaintState::new(),
state: CanvasPaintState::new(antialias),
saved_states: vec![],
webrender_api: webrender_api,
webrender_image_key: webrender_image_key,
@ -119,11 +119,12 @@ impl<'a> CanvasPaintThread<'a> {
/// Creates a new `CanvasPaintThread` and returns an `IpcSender` to
/// communicate with it.
pub fn start(size: Size2D<i32>,
webrender_api_sender: Option<webrender_traits::RenderApiSender>)
webrender_api_sender: Option<webrender_traits::RenderApiSender>,
antialias: bool)
-> IpcSender<CanvasMsg> {
let (sender, receiver) = ipc::channel::<CanvasMsg>().unwrap();
spawn_named("CanvasThread".to_owned(), move || {
let mut painter = CanvasPaintThread::new(size, webrender_api_sender);
let mut painter = CanvasPaintThread::new(size, webrender_api_sender, antialias);
loop {
let msg = receiver.recv();
match msg.unwrap() {

View file

@ -1750,7 +1750,8 @@ impl<Message, LTF, STF> Constellation<Message, LTF, STF>
size: &Size2D<i32>,
response_sender: IpcSender<IpcSender<CanvasMsg>>) {
let webrender_api = self.webrender_api_sender.clone();
let sender = CanvasPaintThread::start(*size, webrender_api);
let sender = CanvasPaintThread::start(*size, webrender_api,
opts::get().enable_canvas_antialiasing);
if let Err(e) = response_sender.send(sender) {
warn!("Create canvas paint thread response failed ({})", e);
}