Commit Graph

296 Commits

Author SHA1 Message Date
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
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