Patrick Walton
acf666b701
Stop using triangle fans for DX12/Vulkan compatibility.
...
Closes #165 .
2019-05-29 16:04:33 -07:00
Patrick Walton
339397bf23
Revert accidental change
2019-05-29 15:21:02 -07:00
Patrick Walton
51877426ea
Take paths by reference, not by value, in outline stroke-to-fill.
2019-05-29 15:15:40 -07:00
Patrick Walton
5dd9e8b67d
Merge pull request #173 from luisbg/scalar
...
Start adding tests for scalar::F32x4
2019-05-29 14:21:33 -07:00
Luis de Bethencourt
9f4bcd8c42
Start adding tests for scalar::F32x4
2019-05-29 17:04:28 -04:00
Patrick Walton
5133bbfe1a
Use unit vectors instead of angles for arcs.
...
This makes things faster and will also simplify the implementation of round
joins.
2019-05-29 12:14:47 -07:00
Patrick Walton
1df5e7a129
Merge pull request #172 from luisbg/i32x4
...
Complete I32x4 swizzles
2019-05-28 14:19:31 -07:00
luisbg
16813b9ebe
Test I32x4 swizzles
2019-05-28 16:50:22 -04:00
luisbg
b887690b73
Complete I32x4 swizzles
2019-05-28 16:50:17 -04:00
Patrick Walton
e86389ac1c
Merge pull request #171 from luisbg/tests
...
Add test_i32x4_swizzles
2019-05-28 10:31:46 -07:00
Luis de Bethencourt
7240dafb05
Add test_i32x4_swizzles
2019-05-28 13:24:41 -04:00
Patrick Walton
4813084eed
Merge pull request #169 from luisbg/tests
...
Complete test_f32x4_swizzles
2019-05-27 20:18:49 -07:00
Luis de Bethencourt
3ccd1fce20
Complete test_f32x4_swizzles
2019-05-27 21:43:25 -04:00
Patrick Walton
848eb00443
Merge pull request #168 from luisbg/unused
...
Fix unused variable warning
2019-05-27 12:30:37 -07:00
Luis de Bethencourt
0231542141
Fix unused variable warning
...
Fixing the following warning
warning: unused variable: `resources`
2019-05-27 15:22:27 -04:00
Patrick Walton
4327d75058
Merge pull request #167 from toolness/pathfinder-unity-fun
...
Add GLDevice::set_default_framebuffer()
2019-05-27 11:28:33 -07:00
Atul Varma
ea3cdbb2a9
Merge remote-tracking branch 'origin/master' into pathfinder-unity-fun
2019-05-27 13:41:19 -04:00
Atul Varma
a51501791d
Add GLDevice::set_default_framebuffer().
2019-05-27 07:56:36 -04:00
Patrick Walton
bc713a5181
Remove the rustache dependency.
...
1/3 reduction in binary size for `canvas_minimal`.
Closes #158 .
2019-05-26 13:02:52 -07:00
Patrick Walton
e04cc273ee
Add enough C bindings to recreate `canvas_minimal` in C.
...
Closes #12 .
2019-05-25 20:21:38 -07:00
Patrick Walton
009f78ba26
Merge pull request #161 from Eijebong/quickcheck
...
Update quickcheck to 0.8
2019-05-24 11:05:13 -07:00
Patrick Walton
e8a5c2a04b
Merge pull request #160 from luisbg/master
...
Remove cross method from F32x4
2019-05-24 11:04:58 -07:00
Bastien Orivel
349c1a9cd0
Update quickcheck to 0.8
...
This dedupes some dependencies
2019-05-24 19:22:23 +02:00
Luis de Bethencourt
8c0415c9b9
Remove cross method from F32x4
...
Silencing the following rustc warning:
warning: unused variable: `other`
Followup to Pull Request #152 .
Instead of marking `other` unused (`_other`) we can remove the method
entirely.
2019-05-24 12:19:13 -04:00
Patrick Walton
8c4f05ce39
Initial rudimentary Lottie parsing code
2019-05-23 18:03:09 -07:00
Patrick Walton
cd23d62f3d
Fix off-by-epsilon error in `push_arc` that was breaking the Moiré demo
2019-05-21 20:24:04 -07:00
Patrick Walton
2131724a2a
Implement round line caps
2019-05-21 20:21:46 -07:00
Patrick Walton
197f01d56a
Write in the line segment intersection code in matrix form
2019-05-21 14:51:50 -07:00
Patrick Walton
c6fc853579
Don't miter join on stroke endpoints.
...
Fixes the Moiré demo.
2019-05-21 14:49:01 -07:00
Patrick Walton
cba5444f03
Add miter joins at endpoints
2019-05-16 12:47:18 -07:00
Patrick Walton
e282eb57d5
Implement interior miter line joins (not yet endpoints)
2019-05-16 11:10:15 -07:00
Patrick Walton
272b63a017
Implement square line caps
2019-05-16 10:43:43 -07:00
Patrick Walton
1b9cfa98a9
Stroke closed paths properly
2019-05-16 08:35:14 -07:00
Patrick Walton
6eab3fa2d8
Implement `globalAlpha` for canvas
2019-05-14 18:26:10 -07:00
Patrick Walton
0deb12b3a2
Implement `fill-opacity` and `stroke-opacity` in SVG
2019-05-14 18:09:01 -07:00
Patrick Walton
25a6c33a1a
Remove the object index attribute from the shaders, since it's now unused
2019-05-14 15:22:50 -07:00
Patrick Walton
86f5bdb44a
Store paints in the paint texture indexed by paint ID, not object index
2019-05-14 15:21:15 -07:00
Patrick Walton
7a02b78b3d
Explicitly specify color texture coordinates for alpha and solid tiles.
...
This is groundwork for gradients and images.
This commit also refactors the interface for vertex attributes to use named
parameters (via structs), for clarity.
2019-05-14 15:11:04 -07:00
Patrick Walton
a54378f931
Make the paint texture dynamically-sized on the GPU side
2019-05-14 11:38:48 -07:00
Patrick Walton
376a1c7165
Rename "fill colors" to "paint" in preparation for gradients and images
2019-05-14 11:33:52 -07:00
Patrick Walton
7518fa65c0
Update dependencies
2019-05-13 18:47:19 -07:00
Patrick Walton
c7382a8b2c
Add affine transform support to the canvas implementation
2019-05-13 18:40:25 -07:00
Patrick Walton
89ca998fa8
Add a convenience method for creating a scene proxy with an empty scene.
...
This makes animation rendering loops a bit easier for users.
2019-05-13 18:29:57 -07:00
Patrick Walton
d5a12e0e9f
Revert "batch alpha and solid tiles"
...
This reverts commit 753a254726
.
2019-05-13 18:20:21 -07:00
Patrick Walton
c09ef3ae7c
Fix SVG and demo compilation errors
2019-05-13 18:19:10 -07:00
Patrick Walton
f24d93819b
Add arc building methods and switch the Moiré demo to use them.
...
Also, stop taking points by reference in many methods, for consistency.
2019-05-13 12:42:13 -07:00
Patrick Walton
55be787ffd
Merge pull request #150 from nical/glitch-fix
...
Fix vertex attribute configuration of alpha tiles
2019-05-13 10:58:06 -07:00
Nicolas Silva
820a0286aa
Fix vertex attribute configuration of alpha tiles.
...
Fixes #134 .
glVertexAttribPointer takes a size as parameter which refers to the number of components and not the size in bytes of the value.
The tile index was registered as a 2-components value which caused the second component to overlap with the first member of the next primitive, which was mostly fine except for the last element which would overlfow the buffer. Intel and nvidia GPUs/drivers on linux at least refuse to read the first component of this two-component value if the other component is outside of the valid range which caused the shader to get zero instead and always select the first mask tile.
2019-05-13 18:00:54 +02:00
Patrick Walton
b4bdbec4aa
Merge pull request #148 from bzm3r/master
...
Constrain sizes of solid tile and alpha tile batches being sent to the GPU
2019-05-13 07:59:44 -07:00
Patrick Walton
639a8f39e8
Add Moiré demo
2019-05-11 11:53:50 -07:00
bhmerchant@gmail.com
753a254726
batch alpha and solid tiles
2019-05-10 22:57:34 -07:00
Patrick Walton
a5d373cb91
Rename "object" to "path" in preparation for image objects
2019-05-10 12:03:38 -07:00
Patrick Walton
a078766dc6
Implement basic text rendering in canvas with `skribo` and `font-kit`.
...
Skribo currently writes some debugging info to standard output. A patch is
forthcoming to fix that.
2019-05-09 15:21:18 -07:00
Patrick Walton
ebdb12404a
Add missing "actual size" texture
2019-05-08 17:51:59 -07:00
Patrick Walton
3310b15826
Fall back to Newton's method instead of dividing by zero when finding critical
...
points during curve monotonic conversion.
Closes #146 .
2019-05-08 17:51:12 -07:00
Patrick Walton
5568e6f64f
Remove unused `monotonic` module
2019-05-08 13:37:17 -07:00
Patrick Walton
b557cdf20f
Add an "actual size" button in the demo
2019-05-08 11:05:31 -07:00
Patrick Walton
7b8c44575e
Turn the zoom buttons into a segmented control
2019-05-08 10:50:55 -07:00
Patrick Walton
5a2c716688
Generalize `draw_image_switch` to `draw_image_segmented_control`
2019-05-08 10:50:55 -07:00
Patrick Walton
940605fbb5
Generalize `draw_image_switch` to multiple segments
2019-05-08 10:38:12 -07:00
Patrick Walton
0d25fd0eab
Generalize "switch" to "segmented control" in the UI
2019-05-08 10:27:32 -07:00
Patrick Walton
54672f2089
Add "save as SVG" support to the demo.
...
This is intended to help diagnose rendering problems, by allowing export to a
format that can be minimized and in which issues can be reproduced.
2019-05-07 14:37:46 -07:00
Patrick Walton
b198c06968
Properly account for concurrency in the performance measurement
2019-05-07 13:43:37 -07:00
Patrick Walton
15f63df844
Rename `DebugUI` to `DebugUIPresenter` and `UI` to `UIPresenter`
2019-05-06 15:36:39 -07:00
Patrick Walton
78908c5e3c
Factor the demo UI into model and presenter
2019-05-06 15:25:58 -07:00
Patrick Walton
3857a28e6a
Move logic out of the `gpu_data` module
2019-05-03 18:51:36 -07:00
Patrick Walton
3ba4ce117c
Add graphics state saving and restoration to the canvas API
2019-05-03 17:45:01 -07:00
Patrick Walton
a86a87a670
Allow fill and stroke colors to be changed
2019-05-03 17:37:27 -07:00
Patrick Walton
bd9850dc3b
Note the canvas API in the README
2019-05-03 14:24:10 -07:00
Patrick Walton
9de7d95d33
Start a simple HTML canvas-like API, and add a minimal example to show how to
...
use it.
2019-05-03 14:15:38 -07:00
Patrick Walton
4a4011d303
Refactor the demo some more.
...
Move rendering code into its own module and split up `finish_drawing_frame()`.
2019-05-02 18:24:38 -07:00
Patrick Walton
29b137c81d
Move the demo camera code into its own module
2019-05-02 17:47:09 -07:00
Patrick Walton
5e64876579
Simplify gridlines in the demo shader
2019-05-02 14:12:13 -07:00
Patrick Walton
cf3dcfdd0e
A couple of clarifications in the readme
2019-05-02 11:22:04 -07:00
Patrick Walton
cf3aadc4f2
Add note about SDL2 installation instructions
2019-05-02 11:19:07 -07:00
Patrick Walton
66b5142334
Stop trying to use jemalloc on Windows.
...
Closes #138 .
2019-05-02 11:12:33 -07:00
Patrick Walton
5c5e4e9313
Factor the scene thread out of the demo and into the renderer proper.
...
This simplifies Pathfinder's API considerably. Now users get off-main-thread
scene building "for free".
2019-05-01 17:12:25 -07:00
Patrick Walton
a96ee73da6
Introduce an Executor abstraction to enable alternatives to Rayon
2019-04-30 15:17:07 -07:00
Patrick Walton
c49ec850a1
Run `rustfmt` on the SVG crate
2019-04-29 16:58:09 -07:00
Patrick Walton
f129f09bd8
Rust `rustfmt` on the GPU crate
2019-04-29 16:57:56 -07:00
Patrick Walton
328e804378
Run `rustfmt` on the SIMD crate
2019-04-29 16:57:21 -07:00
Patrick Walton
60b951409c
Run `rustfmt` on the demos
2019-04-29 16:52:37 -07:00
Patrick Walton
0da11ffe01
Run `rustfmt` on the geometry crate
2019-04-29 16:46:35 -07:00
Patrick Walton
db8eb1c97c
Run `rustfmt` on the renderer crate
2019-04-29 16:45:29 -07:00
Patrick Walton
8606cd013e
Replace commented out printlns with proper debug statements
2019-04-29 16:43:24 -07:00
Patrick Walton
d06746f28d
Remove barrel distortion.
...
It was a toy implementation and isn't the approach I want to go with.
2019-04-29 16:05:42 -07:00
Patrick Walton
deecdb12de
Merge branch 'pf3'
2019-04-29 14:28:38 -07:00
Patrick Walton
b85dc2f001
Add basic pinch zoom support on Android
2019-04-26 22:29:38 -07:00
Patrick Walton
6c31e1bc01
In VR mode, render one eye and then reproject to both eyes instead of rendering
...
twice.
This reduces both CPU and GPU time a lot in exchange for a small loss in
quality.
2019-04-26 17:22:54 -07:00
Patrick Walton
7cd05cd3ef
Merge pull request #136 from asajeffrey/pf3-magicleap-updates
...
Pathfinder magicleap demo updates
2019-04-22 10:10:20 -07:00
Alan Jeffrey
3d81bf170f
Updated to latest pf3 API
2019-04-22 11:57:24 -05:00
Alan Jeffrey
c549bdec7a
Explicitly set the linker flavor for the magicleap demo
2019-04-22 11:54:42 -05:00
Patrick Walton
58d55c5eaa
Allow rendering to non-default framebuffers
2019-04-18 19:05:01 -07:00
Patrick Walton
62a3fefca4
Reenable the tile and fill counts in the debug display
2019-04-18 15:09:37 -07:00
Patrick Walton
cb9fe3edf2
Bounds check SIMD on ARM.
...
Closes #126 .
2019-04-18 14:05:30 -07:00
Patrick Walton
c688d04412
Remove the scene assembly thread, and pipeline only fills instead of alpha
...
tiles.
Removing a thread should make it easier to manually assign threads to CPUs, as
is necessary on devices with poor schedulers like Magic Leap 1.
2019-04-18 13:50:26 -07:00
Patrick Walton
fbc2a56b30
Merge pull request #133 from jdm/pf3-magicleap
...
Add Magic Leap demo
2019-04-17 15:01:18 -07:00
Josh Matthews
214ad9de72
Replace readme directions with makefile targets.
2019-04-15 14:16:40 -04:00
Josh Matthews
8b3bf7d064
Use linker directly to to avoid linker errors.
2019-04-15 14:16:40 -04:00
Josh Matthews
bf55026a71
Add basic travis CI for native and magicleap demos.
2019-04-15 14:16:40 -04:00