Patrick Walton
3a9b29735a
Get exact antialiasing mostly working for lines (no curves yet)
2017-08-18 15:17:23 -07:00
Patrick Walton
a9eeec39fe
Implement the line antialiasing shader, untested as of yet
2017-08-18 11:44:17 -07:00
Patrick Walton
ccf5000e1c
Get the cover step mostly working
2017-08-17 22:47:28 -07:00
Patrick Walton
9a7063a29b
Render conservative coverage. Not working yet.
2017-08-17 20:09:18 -07:00
Patrick Walton
ec78a632dc
Split path IDs and Loop-Blinn data into separate VBOs
2017-08-17 12:47:50 -07:00
Patrick Walton
0a4d57580a
Add the ECAA cover shader, untested as of yet
2017-08-16 19:51:13 -07:00
Patrick Walton
4b62ec8fa7
Get edge detection working in the demo
2017-08-16 16:37:39 -07:00
Patrick Walton
b10807d217
Initial setup for ECAA in the demo
2017-08-15 22:09:09 -07:00
Patrick Walton
3f7fc8baf6
Add an edge detection shader for ECAA, untested as of yet
2017-08-15 17:28:07 -07:00
Patrick Walton
7dc8f5debb
Switch to depth textures to aid edge detection
2017-08-15 16:51:26 -07:00
Patrick Walton
0f5b23622a
Implement SSAA in the demo
2017-08-15 15:57:52 -07:00
Patrick Walton
8bae26b521
Implement some antialiasing strategy infrastructure
2017-08-15 13:38:54 -07:00
Patrick Walton
eb7cfe7c5f
Fetch the colors of paths
2017-08-14 21:24:58 -07:00
Patrick Walton
309034b7dd
Implement basic Loop-Blinn curves
2017-08-14 19:08:18 -07:00
Patrick Walton
f8bd405759
Get basic polygons rendering in the demo
2017-08-14 16:08:45 -07:00
Patrick Walton
5f89f7ba50
Fix compile errors in shaders
2017-08-13 13:39:51 -07:00
Patrick Walton
d0dd883ddf
Switch to the Fetch API
2017-08-12 10:08:35 -07:00
Patrick Walton
ee9c1a7998
Download shaders via XHR
2017-08-11 21:26:25 -07:00
Patrick Walton
ebeaf119ba
Add some OpenGL ES 2.0 shaders for direct rendering, untested
2017-08-11 18:12:17 -07:00
Patrick Walton
57ebbf8281
Split out B-vertex positions and info so that they're easier to pack into textures
2017-08-11 15:56:07 -07:00
Patrick Walton
fa1b2390c7
Remove bad `extern crate` directive
2017-08-10 21:02:32 -07:00
Patrick Walton
933e4023ed
Send mesh indices along to the client as well
2017-08-10 21:00:37 -07:00
Patrick Walton
5b84b052a0
Upload the chosen font to the server
2017-08-10 18:38:54 -07:00
Patrick Walton
3fcd4d472b
Shuffle `BQuad` fields around for better alignment in GLSL
2017-08-10 17:47:46 -07:00
Patrick Walton
0ad2f9abfe
Initial implementation of the Rocket-based demo server
2017-08-10 15:26:27 -07:00
Patrick Walton
92c5014ec6
font-renderer: Pull hinted outlines out of FreeType
2017-08-09 17:23:22 -07:00
Patrick Walton
2ddf95bd70
Initial work on the font renderer component
2017-08-09 15:36:41 -07:00
Patrick Walton
376faf8c38
Move `demo/` to `demo/client/` in preparation for making a partitioning web service
2017-08-08 11:35:10 -07:00
Patrick Walton
95b356435e
Rename `partitionfinder` to `partitioner` and remove the old tessellator
2017-08-08 11:32:51 -07:00
Patrick Walton
ef040b61bf
Introduce demo skeleton code
2017-08-08 11:23:30 -07:00
Patrick Walton
f4b8212280
Add a license file to `partitionfinder/`, and copy it into the root directory too so that GitHub
...
can display it.
Closes #23 .
2017-08-07 10:22:10 -07:00
Patrick Walton
0e39b409ae
Use de Casteljau subdivision to split curves instead of doing that repeatedly in the shader.
...
This doesn't seem to negatively affect performance on the CPU and reduces complexity overall.
2017-08-07 10:19:32 -07:00
Patrick Walton
8730df37a7
Quadratics work now for simple cases
2017-07-11 17:20:03 -07:00
Patrick Walton
a7ba7d200e
First draft of switch to quadratic Béziers
2017-07-10 20:07:10 -07:00
Patrick Walton
49026ae3c3
Fix off by one error
2017-07-10 14:52:43 -07:00
Patrick Walton
a7b61969ff
Fix compile errors in `partitionfinder.h`
2017-07-10 14:01:05 -07:00
Patrick Walton
bd3d8aae44
Merge branch 'master' of github.com:pcwalton/pathfinder
2017-07-10 12:17:04 -07:00
Patrick Walton
ca01e7eb6e
Subdivide cubic Béziers in the legalizer if not monotonically increasing in X.
2017-07-10 12:16:58 -07:00
Patrick Walton
efc8a8bfd7
Add the stub legalizer code to the C API
2017-07-09 13:59:33 -07:00
Patrick Walton
8bcf6de4f5
Add stub code for the legalizer, which will convert curves into monotonic segments.
2017-07-08 16:46:26 -07:00
Patrick Walton
9a9ef90cc9
Generate edge descriptors for instanced rendering when Levien AA is in use
2017-07-07 14:19:33 -07:00
Patrick Walton
0edb604612
Rename "bezieroid" to "B-quad"
2017-07-06 11:39:52 -07:00
Patrick Walton
56101cea9a
Add `no_mangle` in a few places
2017-07-05 19:50:49 -07:00
Patrick Walton
f2835071c7
Initial software tessellation code
2017-07-05 17:03:05 -07:00
Patrick Walton
a066e77c72
Clear out old bezieroids when partitioning a new path. Oops!
2017-07-04 11:51:58 -07:00
Patrick Walton
410d2aa6cd
Don't give up so quickly when performing Newton-Raphson
2017-07-03 20:25:55 -04:00
Patrick Walton
5393f63738
Set left endpoint indices properly on MIN points; basic paths without curves now partition properly
2017-07-03 20:02:59 -04:00
Patrick Walton
0468bbcc24
Fix more random silly bugs; a basic monotone polygon partitions correctly now
2017-07-03 19:26:55 -04:00
Patrick Walton
ffd167a342
Various bug fixes
2017-07-03 15:32:22 -04:00
Patrick Walton
b546ffebcc
Fix issues with jemalloc; remove the needless path index from `Subpath`
2017-07-02 16:41:33 -04:00
Patrick Walton
d695a3d11f
Implement some missing geometry methods, and remove the `Path` type.
...
With the removal of the `Path` type, partitioning multiple paths becomes the responsibility of the user of the library. The reason is that users of the partitioner will frequently want to parallelize over paths via e.g. rayon or Grand Central Dispatch, and we shouldn't mandate a particular parallelism technique.
2017-07-02 15:48:57 -04:00
Patrick Walton
2fde50113c
Initial commit of Pathfinder 2, still incomplete
2017-06-30 17:43:19 -07:00
Patrick Walton
93c928bf5c
Move Pathfinder to `pathfinder-classic` in preparation for Pathfinder 2
2017-06-27 14:13:11 -07:00
Patrick Walton
b75cd9e5a9
Add an API allowing for custom vector paths
2017-03-03 13:32:51 -08:00
Patrick Walton
7862bec2bb
Speed up `lorem-ipsum`, especially in debug builds
2017-02-28 21:47:17 -08:00
Patrick Walton
45ade674be
Refactor `lorem-ipsum`
2017-02-28 12:33:42 -08:00
Patrick Walton
a9c4c7aa3e
Implement most of the basic arithmetic and control structures in the hinting VM
2017-02-27 12:52:14 -08:00
Patrick Walton
6d66cfc30a
Begin to implement the interpreter
2017-02-26 12:12:34 -08:00
Patrick Walton
37736b27b9
Fix interpreter a bit; Arial fpgm now parses
2017-02-24 12:19:32 -08:00
Patrick Walton
88d1e3163d
Analyze branch targets in TrueType instructions
2017-02-24 09:38:46 -08:00
Patrick Walton
9c07c1a4a6
Parse TrueType instructions
2017-02-23 21:56:33 -08:00
Patrick Walton
d29775c345
Add skeleton code for TrueType hinting, not functional yet
2017-02-23 17:41:52 -08:00
Patrick Walton
b86133a4ef
Initial experimental support for subpixel antialiasing
2017-02-22 16:31:44 -08:00
Patrick Walton
5e9b8c9423
Implement basic support for WOFF 1.0
2017-02-22 14:19:27 -08:00
Patrick Walton
9490fa2d3b
Split the `otf` module up into `containers` and `tables`.
...
Putting all container format parsing in `otf/mod.rs` won't scale as we add more, such as WOFF.
2017-02-22 10:22:14 -08:00
Patrick Walton
9fda8f6534
Move the subpixel positioning logic in `lorem-ipsum` to the Typesetter abstraction
2017-02-21 21:50:00 -08:00
Patrick Walton
68f5694b6b
Factor out more code from `lorem-ipsum` into a new `GlyphStore` abstraction
2017-02-21 15:51:39 -08:00
Patrick Walton
abacb5a4c9
Move some code from `lorem-ipsum` into a new `Typesetter` object so others can use it
2017-02-21 13:06:48 -08:00
Patrick Walton
49408b95cb
Add support for subpixel offsets.
...
Closes #11 .
2017-02-20 16:01:15 -08:00
Patrick Walton
e2014cff13
Add some missing CFF opcodes and refactor a bit
2017-02-16 20:39:25 -08:00
Patrick Walton
6ac37c5085
Support cubic Béziers for fonts with CFF outlines
2017-02-16 19:37:21 -08:00
Patrick Walton
a508322f34
Merge pull request #10 from stshine/gitignore
...
Add .gitignore
2017-02-16 16:23:55 -08:00
Pu Xingyu
c8e6d27520
Add .gitignore
...
Add gitignore file to ease development.
2017-02-16 16:06:17 +08:00
Patrick Walton
51e20b2a35
Mention Linux packages in the README
...
Closes #8 .
2017-02-15 18:20:15 -08:00
Patrick Walton
e71dd1241f
Implement partial support for the CFF format
...
Curves are not yet supported.
2017-02-15 18:18:37 -08:00
Patrick Walton
4ffc3b9e41
Mention how to move and zoom in the demo
2017-02-14 13:46:53 -08:00
Patrick Walton
1b10ffdd54
Try to fix Linux/Windows
2017-02-14 12:29:30 -08:00
Patrick Walton
731360bc9d
Try to fix RGBA atlas generation in OpenGL
2017-02-13 12:32:15 -08:00
Patrick Walton
b000f6d882
Fix the case where the first and last points are both off-curve
2017-02-13 11:56:10 -08:00
Patrick Walton
cd11deab46
Support RGBA atlases, needed for WebRender
2017-02-10 19:07:23 -08:00
Patrick Walton
959293839f
Read shaders from disk instead of compiling them into the binary
2017-02-10 17:44:22 -08:00
Patrick Walton
c4c19076c7
Allow the same glyph at different sizes to be rendered into the same atlas.
2017-02-10 17:20:05 -08:00
Patrick Walton
d306ef01d1
Complete the documentation
2017-02-10 16:04:13 -08:00
Patrick Walton
6261c87b89
Read the OS/2 metrics to determine the right line spacing
2017-02-09 20:02:32 -08:00
Patrick Walton
55e1502eb2
Add build instructions
2017-02-09 17:40:37 -08:00
Patrick Walton
96daa32b90
Move direction calculation from the TCS to the TES to properly handle cusps
2017-02-09 17:09:19 -08:00
Patrick Walton
1e50bf78ba
Implement basic kerning via the 'kern' table
2017-02-08 17:10:49 -08:00
Patrick Walton
5ecfadc3be
Update for unorm change in `compute-shader`
2017-02-08 16:29:23 -08:00
Patrick Walton
a0b23592b5
Allow specific fonts in collections to be selected
2017-02-08 15:34:16 -08:00
Patrick Walton
ed4bc9b5b6
Add a README and a license
2017-02-08 14:10:42 -08:00
Patrick Walton
428a91aefa
Get things working on Windows
2017-02-08 13:55:36 -08:00
Patrick Walton
851b40ea6c
Document the crate
2017-02-07 20:20:14 -08:00
Patrick Walton
ccf17493e0
Rename `GlyphRanges` to `GlyphMapping` and document it
2017-02-07 20:02:10 -08:00
Patrick Walton
dcd3eefa33
Refactor the API to consume builders
2017-02-07 19:32:32 -08:00
Patrick Walton
9b6e8d1f41
Add some documentation
2017-02-07 17:19:36 -08:00
Patrick Walton
0e3aeb782d
Fix a couple of integer overflows
2017-02-07 16:53:37 -08:00
Patrick Walton
a6711af84f
Add support for Format 12 cmaps
2017-02-07 16:04:15 -08:00
Patrick Walton
66d239cf2f
Break at word boundaries
2017-02-07 14:40:03 -08:00
Patrick Walton
e9fd5d6b1b
Work around driver bugs on Apple Radeon GPUs
2017-02-07 14:39:36 -08:00
Patrick Walton
4be3938ab7
Reformat the lorem ipsum text
2017-02-06 18:13:58 -08:00