<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.mozilla.org/index.php?action=history&amp;feed=atom&amp;title=Mozilla2%3AAntialiasing</id>
	<title>Mozilla2:Antialiasing - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.mozilla.org/index.php?action=history&amp;feed=atom&amp;title=Mozilla2%3AAntialiasing"/>
	<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Mozilla2:Antialiasing&amp;action=history"/>
	<updated>2026-08-24T08:50:40Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Mozilla2:Antialiasing&amp;diff=80492&amp;oldid=prev</id>
		<title>NetRolller 3D at 23:07, 21 January 2008</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Mozilla2:Antialiasing&amp;diff=80492&amp;oldid=prev"/>
		<updated>2008-01-21T23:07:45Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:07, 21 January 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;Note:&#039;&#039;&#039; This page is now mostly obsolete. Antialiasing has undergone heavy changes in Mozilla 1.9.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;----&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;See this [http://lists.freedesktop.org/archives/cairo/2005-March/003342.html Cairo mailing list thread] for details. Basically, when coverage-based antialiasing is in effect, two shapes that share an edge but do not overlap will cause rendering artifacts when the edge is not aligned on pixel boundaries. This is pretty common for Web content --- e.g., two CSS block boxes are often sized and positioned to be adjacent, or an image is placed adjacent to another CSS box, etc.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;See this [http://lists.freedesktop.org/archives/cairo/2005-March/003342.html Cairo mailing list thread] for details. Basically, when coverage-based antialiasing is in effect, two shapes that share an edge but do not overlap will cause rendering artifacts when the edge is not aligned on pixel boundaries. This is pretty common for Web content --- e.g., two CSS block boxes are often sized and positioned to be adjacent, or an image is placed adjacent to another CSS box, etc.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>NetRolller 3D</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Mozilla2:Antialiasing&amp;diff=20910&amp;oldid=prev</id>
		<title>Roc at 21:17, 14 April 2005</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Mozilla2:Antialiasing&amp;diff=20910&amp;oldid=prev"/>
		<updated>2005-04-14T21:17:54Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:17, 14 April 2005&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;See this [http://lists.freedesktop.org/archives/cairo/2005-March/003342.html Cairo mailing list thread] for details. Basically, when coverage-based antialiasing is in effect, two shapes that share an edge but do not overlap will cause rendering artifacts when the edge is not aligned on pixel boundaries. This is pretty common for Web content --- e.g., two CSS block boxes are often sized and positioned to be adjacent, or an image is placed adjacent to another CSS box, etc.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;See this [http://lists.freedesktop.org/archives/cairo/2005-March/003342.html Cairo mailing list thread] for details. Basically, when coverage-based antialiasing is in effect, two shapes that share an edge but do not overlap will cause rendering artifacts when the edge is not aligned on pixel boundaries. This is pretty common for Web content --- e.g., two CSS block boxes are often sized and positioned to be adjacent, or an image is placed adjacent to another CSS box, etc.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The only ways to avoid this are to ensure that our layout coordinates are always pixel-aligned or to only enable coverage-based antialiasing when we draw edges that are not expected to be adjacent to other shapes. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The former &lt;/del&gt;is &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;not satisfactory as it requires major &lt;/del&gt;layout &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;changes, forces &lt;/del&gt;layout to &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;depend on &lt;/del&gt;device &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;resolution, &lt;/del&gt;is probably not &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;#039;&lt;/del&gt;correct&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;#039; &lt;/del&gt;according to CSS, and will not work if the presentation is scaled or rotated.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The only ways to avoid this are to ensure that our layout coordinates are always pixel-aligned or to only enable coverage-based antialiasing when we draw edges that are not expected to be adjacent to other shapes.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Some (hello Owen!) advocate pixel-aligned layout but I don&amp;#039;t think this &lt;/ins&gt;is &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;suitable for us for the following reasons:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* It means that &lt;/ins&gt;layout &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;of a page inherently depends on device resolution; we&amp;#039;d like &lt;/ins&gt;layout to &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;be as &lt;/ins&gt;device&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-independent as possible.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* It &lt;/ins&gt;is probably not correct according to &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;the &lt;/ins&gt;CSS &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;spec, which definitely allows for fractional pixel measurements&lt;/ins&gt;, and &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;does not explicitly allow for rounding.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* It &lt;/ins&gt;will not work if the presentation is scaled or rotated&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* It&amp;#039;s a huge amount of work to implement in our code base&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Therefore I propose that we disable coverage-based antialiasing except when rendering the following:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Therefore I propose that we disable coverage-based antialiasing except when rendering the following:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Roc</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Mozilla2:Antialiasing&amp;diff=5354&amp;oldid=prev</id>
		<title>Roc at 05:02, 11 April 2005</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Mozilla2:Antialiasing&amp;diff=5354&amp;oldid=prev"/>
		<updated>2005-04-11T05:02:19Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 05:02, 11 April 2005&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;See this [http://lists.freedesktop.org/archives/cairo/2005-March/003342.html Cairo mailing list thread] for details. Basically, when coverage-based antialiasing is in effect, two shapes that share an edge but do not overlap will cause rendering artifacts when the edge is not aligned on pixel boundaries. This is pretty common for Web content --- e.g., two CSS block boxes are often sized and positioned to be adjacent, or an image is placed adjacent to another CSS box, etc.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;See this [http://lists.freedesktop.org/archives/cairo/2005-March/003342.html Cairo mailing list thread] for details. Basically, when coverage-based antialiasing is in effect, two shapes that share an edge but do not overlap will cause rendering artifacts when the edge is not aligned on pixel boundaries. This is pretty common for Web content --- e.g., two CSS block boxes are often sized and positioned to be adjacent, or an image is placed adjacent to another CSS box, etc.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The only ways to avoid this are to ensure that our layout coordinates are always pixel-aligned or to only enable coverage-based antialiasing when we draw edges that are not expected to be adjacent to other shapes. The former is not satisfactory as it requires major layout changes, forces layout to depend on device resolution, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;and &lt;/del&gt;is probably not &amp;#039;correct&amp;#039; according to CSS.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The only ways to avoid this are to ensure that our layout coordinates are always pixel-aligned or to only enable coverage-based antialiasing when we draw edges that are not expected to be adjacent to other shapes. The former is not satisfactory as it requires major layout changes, forces layout to depend on device resolution, is probably not &amp;#039;correct&amp;#039; according to CSS&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, and will not work if the presentation is scaled or rotated&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Therefore I propose that we disable coverage-based antialiasing except when rendering the following:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Therefore I propose that we disable coverage-based antialiasing except when rendering the following:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l10&quot;&gt;Line 10:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 10:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Note that other forms of sampling and filtering, such as image scaling or gradient drawing algorithms, can do whatever they want; we do not expect authors to depend on the interiors of such objects being rendered in a certain way. But the edges of images and gradient fills must not be antialiased with the canvas.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Note that other forms of sampling and filtering, such as image scaling or gradient drawing algorithms, can do whatever they want; we do not expect authors to depend on the interiors of such objects being rendered in a certain way. But the edges of images and gradient fills must not be antialiased with the canvas.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;We may choose to use supersampling to perform antialiasing --- i.e., render at 2x2 or 4x4 the normal resolution, then scale down by averaging pixel values. This will avoid adjacency artifacts, although it still may produce undesirable results when page elements are not aligned at pixel boundaries. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Perhaps the best results will be when we position edges at CSS pixel boundaries when we &lt;/del&gt;have &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;the flexibility &lt;/del&gt;to &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;do so, and use supersampling to antialias&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;We may choose to use supersampling to perform antialiasing --- i.e., render at 2x2 or 4x4 the normal resolution, then scale down by averaging pixel values. This will avoid adjacency artifacts, although it still may produce undesirable results when page elements are not aligned at pixel boundaries. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;We&amp;#039;ll &lt;/ins&gt;have to &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;experiment&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Roc</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Mozilla2:Antialiasing&amp;diff=5317&amp;oldid=prev</id>
		<title>Roc at 05:00, 11 April 2005</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Mozilla2:Antialiasing&amp;diff=5317&amp;oldid=prev"/>
		<updated>2005-04-11T05:00:49Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;See this [http://lists.freedesktop.org/archives/cairo/2005-March/003342.html Cairo mailing list thread] for details. Basically, when coverage-based antialiasing is in effect, two shapes that share an edge but do not overlap will cause rendering artifacts when the edge is not aligned on pixel boundaries. This is pretty common for Web content --- e.g., two CSS block boxes are often sized and positioned to be adjacent, or an image is placed adjacent to another CSS box, etc.&lt;br /&gt;
&lt;br /&gt;
The only ways to avoid this are to ensure that our layout coordinates are always pixel-aligned or to only enable coverage-based antialiasing when we draw edges that are not expected to be adjacent to other shapes. The former is not satisfactory as it requires major layout changes, forces layout to depend on device resolution, and is probably not &amp;#039;correct&amp;#039; according to CSS.&lt;br /&gt;
&lt;br /&gt;
Therefore I propose that we disable coverage-based antialiasing except when rendering the following:&lt;br /&gt;
* Text glyphs&lt;br /&gt;
* Rounded borders&lt;br /&gt;
When coverage-based antialiasing is disabled, a drawing operation should affect a pixel only if the pixel&amp;#039;s center is in the drawn area.&lt;br /&gt;
&lt;br /&gt;
Note that other forms of sampling and filtering, such as image scaling or gradient drawing algorithms, can do whatever they want; we do not expect authors to depend on the interiors of such objects being rendered in a certain way. But the edges of images and gradient fills must not be antialiased with the canvas.&lt;br /&gt;
&lt;br /&gt;
We may choose to use supersampling to perform antialiasing --- i.e., render at 2x2 or 4x4 the normal resolution, then scale down by averaging pixel values. This will avoid adjacency artifacts, although it still may produce undesirable results when page elements are not aligned at pixel boundaries. Perhaps the best results will be when we position edges at CSS pixel boundaries when we have the flexibility to do so, and use supersampling to antialias.&lt;/div&gt;</summary>
		<author><name>Roc</name></author>
	</entry>
</feed>