Patrick Walton
f02e75edaf
Use the gyroscope to look around on Android
2019-03-14 15:29:56 -07:00
Patrick Walton
bb32777101
Initial work toward VR support
2019-03-14 14:42:22 -07:00
Patrick Walton
9c404dfdc1
Add an Android port
2019-03-12 13:55:26 -07:00
Patrick Walton
d5effc35ae
Invert control flow.
...
There's an issue whereby if keys are held down in the 3D mode it doesn't keep
redrawing. This will be fixed in a followup.
2019-03-08 12:45:10 -08:00
Patrick Walton
d1728dfe6d
Update the scalar SIMD fallback
2019-03-08 12:30:07 -08:00
Patrick Walton
a74c0abbec
Factor the SDL code out in preparation for other ports
2019-03-07 16:14:26 -08:00
Patrick Walton
640ac61b8d
Switch to a light background by default; fix 3D velocity
2019-03-07 11:15:43 -08:00
Patrick Walton
b80ab2ad25
Only show the "Text Effects" button when a monochrome SVG is loaded
2019-03-06 19:35:57 -08:00
Patrick Walton
40209b6fe8
Show a warning when unsupported SVG features are used
2019-03-06 18:25:08 -08:00
Patrick Walton
6062676d0e
Add tooltips to the buttons in the demo
2019-03-06 11:33:59 -08:00
Patrick Walton
4dff13ef00
Use an advancing cursor when laying out UI elements
2019-03-06 10:47:52 -08:00
Patrick Walton
33aa6f905d
Move UI event code and widgets to the `pathfinder_ui` crate
2019-03-05 15:36:07 -08:00
Patrick Walton
ad0691c146
Move the generic UI code in the renderer crate to a separate crate
2019-03-05 15:13:55 -08:00
Patrick Walton
e09b447d0d
Move the contents of `gl::device` into `gl`
2019-03-05 14:51:29 -08:00
Patrick Walton
f7a8b573ce
Move the GPU rendering code out of `pathfinder_gl`, since it's now no longer
...
OpenGL-specific
2019-03-05 14:46:18 -08:00
Patrick Walton
bc80490158
Remove raw GL code from the demo
2019-03-05 13:57:28 -08:00
Patrick Walton
8b4c06fe2a
Do GL error checks
2019-03-04 19:43:13 -08:00
Patrick Walton
ae450b063e
WIP: Factor out GL code
2019-03-04 14:55:32 -08:00
Patrick Walton
dc69d1197e
Tweak debug UI
2019-02-26 15:24:39 -08:00
Patrick Walton
92777c6346
Make rects rounded and optimize PNGs
2019-02-26 13:48:35 -08:00
Patrick Walton
5c7423d59c
Add more statistics to the performance debug window
2019-02-25 16:12:47 -08:00
Patrick Walton
19c14da3aa
Center the SVG in the 2D demo
2019-02-25 15:25:08 -08:00
Patrick Walton
550c9feb58
Move the device code in the demo into its own file
2019-02-25 15:14:40 -08:00
Patrick Walton
f6af769486
Add screenshot functionality.
2019-02-25 11:33:26 -08:00
Patrick Walton
aef7dd1353
Allow the background color to be changed in the demo
2019-02-22 18:21:03 -08:00
Patrick Walton
e10e2e97d4
Tweak the camera transforms in the 3D view
2019-02-22 11:54:01 -08:00
Patrick Walton
0da196aa92
Scale the SVG appropriately in the demo
2019-02-21 20:19:42 -08:00
Patrick Walton
b6e334a5bb
Fix temporal inconsistency in the demo between transform applied between vector
...
scene and environment
2019-02-21 12:09:02 -08:00
Patrick Walton
fc62e9bc71
Subdivide offset curves to an error bound.
2019-02-20 18:27:27 -08:00
Patrick Walton
c7a1d9e960
Use stencil to integrate the vector scene into the 3D environment
2019-02-19 12:03:02 -08:00
Patrick Walton
9af3bac11f
Implement depth interpolation, not working yet
2019-02-18 13:42:30 -08:00
Patrick Walton
661a865508
Fill depth when drawing the ground plane
2019-02-15 19:07:42 -08:00
Patrick Walton
d30743a69c
Begin refactoring the demo into a shared library and a platform-specific
...
entry point.
This will help the upcoming wasm port.
2019-02-15 18:21:46 -08:00
Patrick Walton
e4803cfddf
Add some ground to the 3D scene, no depth buffer yet
2019-02-14 18:53:02 -08:00
Patrick Walton
0983812b90
Rotate and scale around the appropriate points in the demo
2019-02-13 16:05:28 -08:00
Patrick Walton
4053b7dd0c
Add zoom in and zoom out buttons for input devices without gesture support
2019-02-13 10:32:25 -08:00
Patrick Walton
fb692acf05
Open a default SVG if none is supplied on the command line
2019-02-12 19:31:29 -08:00
Patrick Walton
2eccdba360
Allow pinch zoom in 2D mode
2019-02-12 15:00:33 -08:00
Patrick Walton
d7f6d9eb3d
Allow the canvas to be dragged in 2D mode
2019-02-12 14:49:24 -08:00
Patrick Walton
398718a3c8
Allow the rotation slider to be dragged
2019-02-12 12:49:35 -08:00
Patrick Walton
22fe63503f
Implement 2D rotation
2019-02-12 12:40:24 -08:00
Patrick Walton
a9ac960862
Load a new scene when the user requests it
2019-02-12 11:16:49 -08:00
Patrick Walton
7511b3bd2f
Add a `LoadScene` message to the backend thread
2019-02-12 11:03:37 -08:00
Patrick Walton
92421943fc
Open a file dialog when the user clicks on the open file
2019-02-08 21:08:03 -08:00
Patrick Walton
6afbafcb43
Split out the demo UI code into a separate module
2019-02-08 20:58:54 -08:00
Patrick Walton
dbce7e3ad1
Fix dirty tracking to stop using 100% CPU
2019-02-08 20:51:34 -08:00
Patrick Walton
3cc8f7a11f
Refactor the demo some
2019-02-08 15:39:47 -08:00
Patrick Walton
725834285b
Refactor the demo a bit
2019-02-08 15:16:53 -08:00
Patrick Walton
dbf880d011
Rename `demo3` to `demo`
2019-02-08 14:53:20 -08:00
Patrick Walton
4062f824fd
Remove the Pathfinder 2 demo
2019-02-08 14:39:35 -08:00
Patrick Walton
3165a4a1b0
Remove old demo server; remove `SegmentFlags`
2019-01-10 20:43:03 -08:00
Patrick Walton
adf49ab932
Rename `path-utils` to `geometry`
2019-01-10 10:01:21 -08:00
Patrick Walton
a2522e3845
wip
2018-11-14 10:33:53 -08:00
Patrick Walton
883ccceb2d
Update various dependencies
2018-09-19 20:03:33 -07:00
Patrick Walton
81c3f08a5c
Make macOS-only code conditionally compiled; update dependencies
2018-08-22 13:34:50 -07:00
Patrick Walton
c6cc6e6fd8
Remove `pathfinder_font_renderer` in favor of `font-kit`.
...
Closes #69 .
Closes #84 .
2018-08-02 15:07:25 -07:00
Bastien Orivel
9d19454c36
Update app_units 0.7
...
See ya num-traits 0.1 o/
2018-07-31 20:16:44 +02:00
Bastien Orivel
3cfd0a3126
Update image to 0.19
2018-07-31 20:16:00 +02:00
Paul Rouget
6d7dd604f8
Euclid and lyon updates
2018-07-27 11:40:45 +02:00
Nicolas Silva
46d1878ef5
Update lyon and euclid dependencies.
2018-07-11 00:27:42 +02:00
Patrick Walton
fcfd157c70
Remove `F32ArrayToMat4` in favor of `glmatrix.mat4.clone()`
2018-04-04 17:56:01 -07:00
Patrick Walton
2fde232982
Factor the text paragraph rendering code out into a separate class so it
...
can be reused
2018-04-03 13:57:46 -07:00
Patrick Walton
6ba87277c2
Remove the explicit WebVR API dependency; it seems to be upstream now
2018-04-03 12:42:33 -07:00
Patrick Walton
881be4967d
Fix TypeScript build errors
2018-04-03 12:40:02 -07:00
Manish Goregaokar
8ed4e96ff9
Various review cleanups
2018-04-02 19:10:19 -07:00
Manish Goregaokar
3d223c1a4a
Match screen size as much as possible
2018-04-02 19:10:11 -07:00
Manish Goregaokar
0751da81a4
Move VR stuff to ThreeDView
2018-04-02 19:10:11 -07:00
Manish Goregaokar
2b0b699fa0
Turn off lighting for VR
2018-04-02 19:10:11 -07:00
Manish Goregaokar
3af3635eea
Use correct viewport and clear correctly
2018-04-02 19:10:11 -07:00
Manish Goregaokar
148e77d995
Use correct projection and view matrices
2018-04-02 19:10:11 -07:00
Manish Goregaokar
975685c23b
Make it possible to enter VR mode
2018-04-02 19:10:11 -07:00
Patrick Walton
d66a5b6c54
Update to `env-logger` 0.5
2018-03-30 14:25:52 -07:00
Patrick Walton
dcc3a0fc94
Update to bincode 1.0
2018-03-22 15:03:25 -07:00
Patrick Walton
5e5148df54
Fix on Chrome, which doesn't support WebGL queries
2018-03-20 19:40:28 -07:00
Patrick Walton
6e13fb171c
Use a lookup table to do area calculations instead of Loop-Blinn-style
...
distance-to-edge for stencil analytic antialiasing.
This improves the rendering quality of stencil AAA significantly.
Additionally, this adds an approximation of Core Graphics' (macOS')
defringing filter.
Closes #73 .
2018-03-19 14:35:36 -07:00
Patrick Walton
64c818e530
Construct meshes independently of mesh libraries (renamed to "mesh
...
packs").
This fits in better with the way WebRender does things. It simplifies
the code too.
2018-03-08 15:10:29 -08:00
Patrick Walton
db6986ca1f
Take the orientation of a path into account when computing normals
2018-03-07 11:21:08 -08:00
Patrick Walton
18121208d4
Update euclid to 0.17 and Lyon to 0.10
2018-03-06 15:06:06 -08:00
Patrick Walton
b60275e5ea
Convert cubic curves to quadratic ones in fonts
2018-03-06 13:10:29 -08:00
Patrick Walton
07d978909c
Get the DirectWrite backend compiling again.
...
Partially addresses #69 .
2018-03-06 12:24:30 -08:00
Patrick Walton
fad7f2f343
Fix FreeType build
2018-03-05 15:04:52 -08:00
Patrick Walton
5d3c1f6d59
Abstract away `FontKey` so WebRender can more easily use this; switch
...
from angle measurement to scale-dependent hull height
2018-03-05 11:27:18 -08:00
Patrick Walton
45a812d30f
Move webpack to the `devDependencies` section.
...
See issue #69 .
2018-02-22 10:02:15 -08:00
Patrick Walton
48aceb6291
Fix zoomed-in rotation for text by taking extended path transforms into
...
account in the MCAA shader.
2018-02-21 17:00:37 -08:00
Patrick Walton
dfcbd9dddd
Remove the unused `usesSTTransform`
2018-02-21 16:38:09 -08:00
Patrick Walton
82be5d12d1
Update dependencies and fix TypeScript build failures.
...
Closes #68 .
2018-02-19 11:52:00 -08:00
Patrick Walton
a84b7c7cbd
Replace ECAA with "Stencil AAA", a distance-based antialiasing
...
technique similar to the new MCAA.
This new technique simplifies the code significantly by unifying lines,
curves, and transformed curves. Blog posts forthcoming.
2018-02-17 10:45:25 -08:00
Patrick Walton
87eb3038eb
Make the cubic Bézier approximation tolerance proportional to the SVG
...
view box size instead of hardcoding it.
Reduces the vertex shading load by approximately half on many of the
"Massively Parallel Vector Graphics" test cases.
Partially addresses #67 .
2018-02-08 20:00:14 -08:00
Patrick Walton
5879d9778d
Replace the MCAA shader with an extended Loop-Blinn approach and an
...
approximation of area based on approximate first-order line distance.
This enables support for full affine transforms in MCAA. It also greatly
simplifies the shader and reduces the amount of work that the GPU needs
to do for fragment shading.
Experimental testing has shown the area approximation to be accurate to
about 4%.
2018-02-02 18:28:41 -08:00
Patrick Walton
5bd68dec65
Port Pathfinder to use Lyon for Bézier curve math.
...
This removes a whole lot of code from `pathfinder_path_utils`. Hopefully
the remaining code can go upstream.
These changes regress quality of stroke widths for cubic curves, because
they move fill-to-stroke conversion before cubic-to-quadratic
conversion. To fix that, we will need to recursively subdivide when
doing fill-to-stroke conversion.
2018-01-29 12:47:47 -08:00
Patrick Walton
7a2ad35d7e
Don't allow the user to move the camera in the benchmarks and reference tests.
...
Doing this messes up the tests.
2018-01-18 17:26:56 -08:00
Patrick Walton
3be3ff7351
Disable gamma correction, stem darkening, and emboldening in the UI when SSAA mode is selected
2018-01-16 15:50:17 -08:00
Patrick Walton
ef29eb19f3
Tiny comment fix
2018-01-16 13:06:51 -08:00
Patrick Walton
3b3fef3982
Hide `generate_gamma_lut` and `pathfinder_server` in the API docs list.
...
This is a messy way to do this, but I couldn't find a better way in Cargo or `rustdoc`…
2018-01-16 12:57:26 -08:00
Patrick Walton
6a640eca74
Simplify the B-quad vertex position VBO to have a uniform format, and
...
enable early Z for SVG.
Additionally, this switches the B-quad patches for XCAA to be convex
hulls instead of bounding boxes, reducing fragment shader load.
This is a large speedup for the Ghostscript tiger demo: 5x or more.
Closes #33 .
2018-01-11 19:25:02 -08:00
Patrick Walton
c68f16f6ba
Write more API documentation
2018-01-05 15:52:15 -08:00
Patrick Walton
4b887174f8
Document some more of `pathfinder_path_utils`
2018-01-05 12:35:01 -08:00
Patrick Walton
2a3ab09279
Fix rustdoc CSS a bit
2018-01-05 12:19:13 -08:00
Patrick Walton
f3841ef402
Document more shader parameters
2018-01-04 18:07:14 -08:00
Patrick Walton
aa7e0df514
Make the libraries only used for reftesting opt-in.
...
Closes #56 .
2018-01-04 15:10:23 -08:00