Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable antialiasing for the canvas. #6065

Merged
merged 3 commits into from May 28, 2015
Merged
Changes from 1 commit
Commits
File filter...
Filter file types
Jump to…
Jump to file
Failed to load files.

Always

Just for now

Add disable-canvas-aa option to test runner.

  • Loading branch information
mmatyas committed May 28, 2015
commit 322fd5ad9d6c0af1152a525508ccadc51fae2277
@@ -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;

@@ -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, &[]),
@@ -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.
@@ -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,
@@ -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"),
@@ -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);
@@ -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(&{
@@ -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()
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.