Patrick Walton
2c8c11b303
Get a bare-minimum benchmark up and running
2017-09-12 12:40:14 -07:00
Patrick Walton
a7d75f913c
Split paths into monotonic segments before partitioning them in the demo
2017-09-12 09:35:57 -07:00
Patrick Walton
c3e02d6faa
Add a streaming API for monotonic path conversion, untested as of yet
2017-09-11 22:28:14 -07:00
Patrick Walton
19e8305eaa
Start the 3D camera out at a more interesting place
2017-09-11 19:37:18 -07:00
Patrick Walton
eae20eb7ca
Fix glyph positioning in the 3D view
2017-09-11 19:09:43 -07:00
Patrick Walton
7d3afa0e74
Initially zoom the SVG to fit
2017-09-11 17:56:37 -07:00
Patrick Walton
94c5ea181f
Initially zoom the text to fit in the text demo
2017-09-11 16:57:53 -07:00
Patrick Walton
3dd1d73f81
Start the camera centered on the text in the text demo
2017-09-11 16:07:11 -07:00
Patrick Walton
6e4f0b0734
Add support for WASD keyboard controls to the 3D demo
2017-09-11 13:23:25 -07:00
Patrick Walton
e13f0f7006
Papercut: Stop the GitHub corner from overlapping the demo content
2017-09-11 12:27:09 -07:00
Patrick Walton
0f3b5d6c3c
Papercut: Don't allow navbar text to be selected
2017-09-11 12:23:43 -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
068e2bd99e
Stub a benchmarking tool, not working yet
2017-09-11 11:22:19 -07:00
Patrick Walton
bd3536d058
Simplify a couple of getters in the mesh debugger
2017-09-11 11:22:06 -07:00
Patrick Walton
5eec2c5b6f
Fix settings button in the 3D demo
2017-09-11 11:21:38 -07:00
Patrick Walton
28699f9dfb
Upgrade dependencies
2017-09-11 11:21:19 -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
43513da957
Add a simple model of the Mozilla Monument to the 3D scene
2017-09-09 00:04:35 -07:00
Patrick Walton
473c28e16d
Add screenshot functionality to the demo
2017-09-08 20:10:29 -07:00
Patrick Walton
f5eea1cc7a
Add a screenshot button, nonfunctional at the moment
2017-09-08 17:21:28 -07:00
Patrick Walton
c36896e337
Implement path stroking using the FreeType stroker.
...
I'm not too happy with this, as I discovered a segfault in FreeType that doesn't give me confidence
in this as a solution for the long term. Additionally, this exposes the problems in the partitioner
with lack of winding fill rule, proper handling of self-intersections, and splitting of paths at
their extrema. (I believe these problems should be fairly straightforward to handle, but we just
don't handle them yet.)
2017-09-08 16:50:27 -07:00
Patrick Walton
3e5b53f13c
Partially refactor the path APIs to be streaming, like Lyon
2017-09-08 13:09:00 -07:00
Patrick Walton
57374e9f30
Add all four sides of the Mozilla Monument to the 3D demo
2017-09-07 19:01:55 -07:00
Patrick Walton
e34ca3d3e4
Stub support for multiple text frames
2017-09-07 16:13:55 -07:00
Patrick Walton
3ee066bdf0
Implement subpixel ECAA
2017-09-07 14:58:41 -07:00
Patrick Walton
6cbc7dc082
Use some names from the Mozilla Monument in the 3D demo
2017-09-06 22:50:07 -07:00
Patrick Walton
7de664e4a9
Implement some rudimentary text layout for the 3D demo
2017-09-06 22:11:32 -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
2166f9fa07
Reverse Z order of interior elements for early Z
2017-09-06 18:28:23 -07:00
Patrick Walton
cedce49a1d
Perform color defringing in the shader using the FreeType algorithm
2017-09-06 16:50:36 -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
acf2e0be00
Implement mesh expansion so that the 3D demo can actually render strings of text
2017-09-06 14:11:58 -07:00
Patrick Walton
4b7ac0182c
Implement basic working 3D support
2017-09-05 19:47:19 -07:00
Patrick Walton
a599db4eb9
Choose prettier default settings for the demo
2017-09-05 12:57:01 -07:00
Patrick Walton
df20bcff5c
Fix incorrect depth test in monochrome ECAA mode
2017-09-05 12:48:08 -07:00
Patrick Walton
a9dd33d479
Stub a shader for objects in the 3D demo
2017-09-03 19:24:28 -07:00
Patrick Walton
4ab917b79b
Snap baselines to the nearest pixel
2017-09-03 16:35:10 -07:00
Patrick Walton
24cfb03c66
Don't count the padding between glyphs as part of the atlas rect.
...
This was causing nasty aliasing artefacts.
2017-09-03 13:12:33 -07:00
Patrick Walton
f968a4ac20
Don't do server-side hinting
2017-09-03 13:03:45 -07:00
Patrick Walton
049b8eba97
Initial work on perspective camera control for the 3D demo
2017-09-02 13:41:08 -07:00
Patrick Walton
7360a41a60
Factor camera logic into a separate object in preparation for the 3D demo
2017-09-02 12:14:10 -07:00
Patrick Walton
444e7bbf96
Use the Citardauq Formula in the partitioner as well as the shader to avoid precision problems.
...
Addresses the issue with the Nimbus Sans "o" mentioned in #24 .
2017-09-01 23:45:51 -07:00
Patrick Walton
632202e5eb
Implement a basic mesh debugger
2017-09-01 22:29:05 -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
9f6f10deca
Tweak the GitHub corner
2017-08-31 20:04:49 -07:00
Patrick Walton
bc79c56eac
Fix currentTarget/target mixup
2017-08-31 20:04:42 -07:00
Patrick Walton
67eaa499c0
Add a GitHub corner from http://tholman.com/github-corners/
2017-08-31 19:57:41 -07:00
Patrick Walton
a1013de5ba
Expose the Rust API documentation via the server
2017-08-31 19:47:58 -07:00
Patrick Walton
982c97771c
Get the 3D view rendering something
2017-08-31 19:19:26 -07:00
Patrick Walton
f182686ba8
Do some more refactoring in preparation for the 3D view
2017-08-31 17:08:22 -07:00
Patrick Walton
b75c327017
Factor out text layout into a separate class so it can be used by the text and 3D demos
2017-08-31 16:33:21 -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
Patrick Walton
d6767219ff
Automatically load some built-in fonts and SVGs
2017-08-30 19:48:18 -07:00
Patrick Walton
58b558de64
Make the demo UI less cluttered
2017-08-30 17:01:28 -07:00
Patrick Walton
d7b606987a
Update to Bootstrap 4 beta
2017-08-30 09:51:15 -07:00
Patrick Walton
7029248610
Stub a 3D demo
2017-08-29 19:46:18 -07:00
Patrick Walton
64e3558986
Considate `resources` directories
2017-08-29 19:27:05 -07:00
Patrick Walton
f87ff0a9e0
Add Open Sans as a built-in font and fix handling of multiple consecutive off-curve points
2017-08-29 19:22:27 -07:00
Patrick Walton
8d6636b1cf
Add `-demo` to the SVG and text demo files
2017-08-29 18:57:43 -07:00
Patrick Walton
40c0e9b8c5
Use ES6 templates to reduce duplication in the demo HTML
2017-08-29 16:04:40 -07:00
Patrick Walton
cd3c1c996c
Get SSAA working for the tiger
2017-08-29 14:31:45 -07:00
Patrick Walton
eca1b36956
Render the fills on the tiger correctly
2017-08-29 14:15:23 -07:00
Patrick Walton
c47aa5c4d0
Get the SVG demo rendering something
2017-08-29 12:29:16 -07:00
Patrick Walton
8e2172f06f
Start implementing basic SVG rendering. Not working yet.
2017-08-28 22:11:15 -07:00
Patrick Walton
0bae14b326
Render SVG paths to an off screen framebuffer
2017-08-28 17:18:44 -07:00
Patrick Walton
4d16df17db
Implement the server-side support for SVG path partitioning in the demo
2017-08-28 16:47:27 -07:00
Patrick Walton
e5f1f3ccfb
Remove unused dependency
2017-08-27 12:45:05 -07:00
Patrick Walton
5f28f8b666
Stub out some more functionality for the SVG demo
2017-08-27 12:43:17 -07:00
Patrick Walton
72f5f4ee6d
Factor antialiasing strategies out into separate modules
2017-08-26 13:47:18 -07:00
Patrick Walton
9e7d922863
Factor out the app controller logic so we can support multiple demos more easily
2017-08-26 12:54:25 -07:00
Patrick Walton
01d1382324
Begin splitting up `index.ts`
2017-08-25 20:20:45 -07:00
Patrick Walton
894226e023
Stub an SVG demo page
2017-08-25 19:40:08 -07:00
Patrick Walton
defa2d63c3
Support multiple lines of text
2017-08-25 17:02:11 -07:00
Patrick Walton
1c21771414
Add EB Garamond as another test font
2017-08-25 17:02:03 -07:00
Patrick Walton
5f347087a7
Only render glyphs in view
2017-08-25 15:39:13 -07:00
Patrick Walton
c0914a0c87
Fix a bunch of text layout issues
2017-08-25 12:20:36 -07:00
Patrick Walton
d24dd7ce24
Fix off by one error in glyph atlas rects
2017-08-24 19:39:07 -07:00
Patrick Walton
cae6e16416
Make some more methods and attributes private
2017-08-24 19:33:58 -07:00
Patrick Walton
99767ce48d
Make a bunch of methods and properties private
2017-08-24 19:30:53 -07:00
Patrick Walton
77db92bc42
Fix off by one error in the path color buffer
2017-08-24 16:23:02 -07:00
Patrick Walton
1213eaa3d7
Make the atlas texture bigger and scissor to improve clearing performance on Intel Mac
2017-08-24 16:18:26 -07:00
Patrick Walton
132b6e183b
Fix the pan/zoom logic in `onWheel()`
2017-08-24 13:34:45 -07:00
Patrick Walton
14b7b88b3f
Take the last control point before closing a subpath into account
2017-08-24 13:02:35 -07:00
Patrick Walton
07d425dfb2
Split the ECAA shader into separate shaders for monochrome and multicolor
2017-08-24 12:08:58 -07:00
Patrick Walton
ad565ffde7
Use early Z to avoid resolving blank areas for ECAA. ~50% speedup.
2017-08-24 11:43:38 -07:00
Patrick Walton
81a6f8f051
Enable early Z for edge detection and render only in the used area of the atlas
2017-08-23 19:18:24 -07:00
Patrick Walton
ed0288906c
Use a fixed atlas size and reuse textures/FBOs more aggressively
2017-08-23 13:23:29 -07:00
Patrick Walton
52afa359b4
Render a line of text using the atlas
2017-08-22 18:25:32 -07:00
Patrick Walton
7db61bfe8e
Add a transform parameter to blit and switch framebuffer sizes to be `glmatrix.vec2` types
2017-08-19 16:52:14 -07:00
Patrick Walton
93277c7c11
Allow multiple glyphs to be rendered simultaneously
2017-08-19 16:34:02 -07:00
Patrick Walton
9b3f9d029c
Fix flipped inequality in the shader causing AA artefacts
2017-08-19 11:37:06 -07:00
Patrick Walton
9f194b7618
Add timing measurement
2017-08-19 09:57:54 -07:00
Patrick Walton
da6483c3ab
Add basic support for panning and zooming in the demo
2017-08-18 22:11:52 -07:00
Patrick Walton
37c947c751
Get basic ECAA fully working
2017-08-18 20:23:45 -07:00
Patrick Walton
343c67aa33
Remove commented out debug code
2017-08-18 17:13:44 -07:00
Patrick Walton
653530be0b
Add a curve shader for ECAA and refactor the line shader to minimize code duplication
2017-08-18 17:12:58 -07:00