pathfinder/shaders/gles2
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
..
blit.fs.glsl Fix file headers in shaders/ 2017-10-03 15:32:03 -07:00
blit.vs.glsl Stub a shader for objects in the 3D demo 2017-09-03 19:24:28 -07:00
common.inc.glsl Implement stem darkening and split ECAA into ECAA and MCAA. 2017-10-15 13:28:49 -07:00
demo-3d-monument.fs.glsl Stub a shader for objects in the 3D demo 2017-09-03 19:24:28 -07:00
demo-3d-monument.vs.glsl Stub a shader for objects in the 3D demo 2017-09-03 19:24:28 -07:00
direct-3d-curve.vs.glsl Implement basic working 3D support 2017-09-05 19:47:19 -07:00
direct-3d-interior.vs.glsl Implement basic working 3D support 2017-09-05 19:47:19 -07:00
direct-curve.fs.glsl Fix file headers in shaders/ 2017-10-03 15:32:03 -07:00
direct-curve.vs.glsl Make the hints a uniform instead of a buffer texture. 2017-10-05 19:14:52 -07:00
direct-interior.fs.glsl Fix file headers in shaders/ 2017-10-03 15:32:03 -07:00
direct-interior.vs.glsl Make the hints a uniform instead of a buffer texture. 2017-10-05 19:14:52 -07:00
ecaa-curve.vs.glsl Implement stem darkening and split ECAA into ECAA and MCAA. 2017-10-15 13:28:49 -07:00
ecaa-line.vs.glsl Implement stem darkening and split ECAA into ECAA and MCAA. 2017-10-15 13:28:49 -07:00
mcaa-cover.fs.glsl Implement stem darkening and split ECAA into ECAA and MCAA. 2017-10-15 13:28:49 -07:00
mcaa-cover.vs.glsl Implement stem darkening and split ECAA into ECAA and MCAA. 2017-10-15 13:28:49 -07:00
mcaa-curve.vs.glsl Implement stem darkening and split ECAA into ECAA and MCAA. 2017-10-15 13:28:49 -07:00
mcaa-line.vs.glsl Implement stem darkening and split ECAA into ECAA and MCAA. 2017-10-15 13:28:49 -07:00
ssaa-subpixel-resolve.fs.glsl Make glyphs transparent. 2017-09-19 13:57:56 -07:00
ssaa-subpixel-resolve.vs.glsl Add basic subpixel AA support for SSAA. 2017-09-06 16:32:11 -07:00
xcaa-curve.fs.glsl Implement stem darkening and split ECAA into ECAA and MCAA. 2017-10-15 13:28:49 -07:00
xcaa-edge-detect.fs.glsl Implement stem darkening and split ECAA into ECAA and MCAA. 2017-10-15 13:28:49 -07:00
xcaa-edge-detect.vs.glsl Implement stem darkening and split ECAA into ECAA and MCAA. 2017-10-15 13:28:49 -07:00
xcaa-line.fs.glsl Implement stem darkening and split ECAA into ECAA and MCAA. 2017-10-15 13:28:49 -07:00
xcaa-mono-resolve.fs.glsl Implement stem darkening and split ECAA into ECAA and MCAA. 2017-10-15 13:28:49 -07:00
xcaa-mono-resolve.vs.glsl Implement stem darkening and split ECAA into ECAA and MCAA. 2017-10-15 13:28:49 -07:00
xcaa-mono-subpixel-resolve.fs.glsl Implement stem darkening and split ECAA into ECAA and MCAA. 2017-10-15 13:28:49 -07:00
xcaa-mono-subpixel-resolve.vs.glsl Implement stem darkening and split ECAA into ECAA and MCAA. 2017-10-15 13:28:49 -07:00
xcaa-multi-resolve.fs.glsl Implement stem darkening and split ECAA into ECAA and MCAA. 2017-10-15 13:28:49 -07:00
xcaa-multi-resolve.vs.glsl Implement stem darkening and split ECAA into ECAA and MCAA. 2017-10-15 13:28:49 -07:00