Skip to content

Commit

Permalink
Add disable-canvas-aa option to test runner.
Browse files Browse the repository at this point in the history
  • Loading branch information
mmatyas committed May 28, 2015
1 parent adef441 commit 322fd5a
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 4 deletions.
9 changes: 8 additions & 1 deletion components/canvas/canvas_paint_task.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ use geom::size::Size2D;
use layers::platform::surface::NativeSurface;
use gfx_traits::color;
use num::ToPrimitive;
use util::opts;
use util::task::spawn_named;
use util::vec::byte_swap;

Expand Down Expand Up @@ -174,8 +175,14 @@ struct CanvasPaintState<'a> {

impl<'a> CanvasPaintState<'a> {
fn new() -> CanvasPaintState<'a> {
let antialias = if opts::get().enable_canvas_antialiasing {
AntialiasMode::Default
} else {
AntialiasMode::None
};

CanvasPaintState {
draw_options: DrawOptions::default(),
draw_options: DrawOptions::new(1.0, CompositionOp::Over, antialias),
fill_style: Pattern::Color(ColorPattern::new(color::black())),
stroke_style: Pattern::Color(ColorPattern::new(color::black())),
stroke_opts: StrokeOptions::new(1.0, JoinStyle::MiterOrBevel, CapStyle::Butt, 10.0, &[]),
Expand Down
6 changes: 6 additions & 0 deletions components/util/opts.rs
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,10 @@ pub struct Opts {
/// font for layout tests.
pub enable_text_antialiasing: bool,

/// If set with --disable-canvas-aa, disable antialiasing on the HTML canvas element.
/// Like --disable-text-aa, this is useful for reftests where pixel perfect results are required.
pub enable_canvas_antialiasing: bool,

/// True if each step of layout is traced to an external JSON file
/// for debugging purposes. Settings this implies sequential layout
/// and paint.
Expand Down Expand Up @@ -220,6 +224,7 @@ pub fn default_opts() -> Opts {
show_debug_parallel_layout: false,
paint_flashing: false,
enable_text_antialiasing: false,
enable_canvas_antialiasing: false,
trace_layout: false,
devtools_port: None,
webdriver_port: None,
Expand Down Expand Up @@ -398,6 +403,7 @@ pub fn from_cmdline_args(args: &[String]) -> bool {
show_debug_parallel_layout: debug_options.contains(&"show-parallel-layout"),
paint_flashing: debug_options.contains(&"paint-flashing"),
enable_text_antialiasing: !debug_options.contains(&"disable-text-aa"),
enable_canvas_antialiasing: !debug_options.contains(&"disable-canvas-aa"),
dump_flow_tree: debug_options.contains(&"dump-flow-tree"),
dump_display_list: debug_options.contains(&"dump-display-list"),
dump_display_list_optimized: debug_options.contains(&"dump-display-list-optimized"),
Expand Down
1 change: 1 addition & 0 deletions ports/cef/core.rs
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ pub extern "C" fn cef_initialize(args: *const cef_main_args_t,
temp_opts.headless = false;
temp_opts.hard_fail = false;
temp_opts.enable_text_antialiasing = true;
temp_opts.enable_canvas_antialiasing = true;
temp_opts.resources_path = None;
temp_opts.url = None;
opts::set(temp_opts);
Expand Down
4 changes: 2 additions & 2 deletions tests/reftest.rs
Original file line number Diff line number Diff line change
Expand Up @@ -250,9 +250,9 @@ fn capture(reftest: &Reftest, side: usize) -> (u32, u32, Vec<u8>) {
.stdout(Stdio::null())
.stderr(Stdio::null())
.args(&reftest.servo_args[..])
// Allows pixel perfect rendering of Ahem font for reftests.
// Allows pixel perfect rendering of Ahem font and the HTML canvas for reftests.
.arg("-Z")
.arg("disable-text-aa")
.arg("disable-text-aa,disable-canvas-aa")
.args(&["-f", "-o"])
.arg(&png_filename)
.arg(&{
Expand Down
2 changes: 1 addition & 1 deletion tests/wpt/harness/wptrunner/executors/executorservo.py
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ def screenshot(self, test):

with TempFilename(self.tempdir) as output_path:
self.command = [self.binary, "--cpu", "--hard-fail", "--exit",
"-Z", "disable-text-aa", "--output=%s" % output_path,
"-Z", "disable-text-aa,disable-canvas-aa", "--output=%s" % output_path,
full_url]

env = os.environ.copy()
Expand Down

0 comments on commit 322fd5a

Please sign in to comment.