Commit Graph

22 Commits

Author SHA1 Message Date
Patrick Walton e5b76726d9 Use the LUT to gamma correct text, and fix stem darkening math 2017-11-07 17:24:19 -08:00
Patrick Walton 77fa297380 Change the animated zoom icon to a play icon 2017-10-26 18:15:28 -07:00
Michael Bebenita 70390915ab Add Pulse Zoom button. 2017-10-26 11:32:30 -07:00
Patrick Walton 7a0ade99e2 Support subpixel AA in the benchmark 2017-10-16 16:08:05 -07:00
Patrick Walton 314185684c Implement stem darkening and split ECAA into ECAA and MCAA.
We now implement stem darkening (also known as font dilation) like
macOS and FreeType under certain configurations. This pushes out font
outlines along their normals slightly in order to make small text easier
to read. This is especially important when performing gamma correction,
as otherwise text can end up too light.

Because the stem darkening is implemented in the vertex shader, it can
easily break the mesh. Therefore, I needed to implement a new rendering
mode that does not use the mesh. It's a variant of ECAA, and for
clarity's sake I've renamed the related antialiasing methods:

* MCAA stands for "mesh coverage antialiasing" and is the new name for
what was called "ECAA" prior to this patch.

* ECAA now stands for "edge coverage antialiasing". It does not use the
mesh but rather computes winding numbers from scratch for every pixel.
Surprisingly, despite being worse asymptotically, this usually ends up
being faster than MCAA at small font sizes, presumably because there are
fewer vertices to transform.

* XCAA, "exact coverage antialiasing" is a generic term that refers to
both ECAA and MCAA. References to ECAA have been changed to XCAA as
needed.
2017-10-15 13:28:49 -07:00
Patrick Walton 60ff71be84 Add an experimental implementation of macOS-like font dilation
Following Apple's earlier terminology, this is exposed as "strong"
subpixel AA.
2017-09-29 22:12:24 -07:00
Patrick Walton 37a88dfcd9 Use the Inter UI font in the demo 2017-09-28 15:23:52 -07:00
Patrick Walton 45927f6299 Add a CSS spinner to the HTML templates.
This will allow us to make loading a nicer experience.

Source: http://tobiasahlin.com/spinkit/
2017-09-16 10:41:25 -07:00
Patrick Walton 375dbe7ab9 Make sure scrollbars don't show up on demo and tool pages 2017-09-15 09:40:26 -07:00
Patrick Walton d64a28c166 Beautify the timings display and make it work with the SVG and 3D demos 2017-09-13 11:56:40 -07:00
Patrick Walton 72fa6a7b55 Allow demos to be dragged with the mouse when applicable 2017-09-11 12:21:50 -07:00
Patrick Walton 65e3278e94 Add zoom in and zoom out buttons for those without scale gestures 2017-09-10 13:17:24 -07:00
Patrick Walton ce855cc0ff Enable subpixel AA and hinting by default in the demo 2017-09-09 13:14:25 -07:00
Patrick Walton eb9c0ceb4d Implement "slight" hinting by rounding x-heights up to the nearest pixel 2017-09-09 13:12:51 -07:00
Patrick Walton f5eea1cc7a Add a screenshot button, nonfunctional at the moment 2017-09-08 17:21:28 -07:00
Patrick Walton 2cce20db10 Swap the locations of the FPS meter and the settings button in preparation for more UI 2017-09-06 18:47:14 -07:00
Patrick Walton 3378fb3447 Make clicking outside the settings popup dismiss it 2017-09-06 18:39:14 -07:00
Patrick Walton 82d2f076d7 Add basic subpixel AA support for SSAA.
No LCD filter is implemented yet, so the color fringing is currently fairly extreme.
2017-09-06 16:32:11 -07:00
Patrick Walton a599db4eb9 Choose prettier default settings for the demo 2017-09-05 12:57:01 -07:00
Patrick Walton 1eb1bb5343 Stub a mesh debugger app 2017-09-01 18:11:44 -07:00
Patrick Walton a43a09b9d3 Allow the demo text to be changed by double-clicking 2017-09-01 16:31:40 -07:00
Patrick Walton e448ba7b30 Switch from ES6 interpolation to Handlebars and add a simple landing page 2017-08-30 23:25:58 -07:00
Renamed from demo/client/html/text-demo.html (Browse further)