Remove dependency on util::opts from canvas crate

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

View file

@ -1697,7 +1697,8 @@ impl<Message, LTF, STF> Constellation<Message, LTF, STF>
size: &Size2D<i32>, size: &Size2D<i32>,
response_sender: IpcSender<IpcSender<CanvasMsg>>) { response_sender: IpcSender<IpcSender<CanvasMsg>>) {
let webrender_api = self.webrender_api_sender.clone(); 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) { if let Err(e) = response_sender.send(sender) {
warn!("Create canvas paint thread response failed ({})", e); warn!("Create canvas paint thread response failed ({})", e);
} }