Patrick Walton
8dabd0a7ea
Add RGBA32F support
2019-12-14 13:58:02 -08:00
Patrick Walton
fa54868eb1
Add support for single float uniforms to `pathfinder_gpu`
2019-11-15 21:17:50 -08:00
Patrick Walton
ff212dce36
Add 2D matrix uniform types and a couple more useful geometry methods
2019-11-10 10:28:20 -08:00
Patrick Walton
bcac119324
Rename `Transform2DF` to `Transform2F` and `Transform3DF` to `Transform4F`
2019-07-11 14:59:10 -07:00
Patrick Walton
b886c157c1
Use 2-lane instead of 4-lane SIMD types for 2D vectors.
...
Also, this commit rewrites the `add_fill()` method to stop using shuffle
instructions, which can be slow and make the code overly complicated. The
shuffle instructions have been removed from the various SIMD backends.
2019-06-26 16:38:37 -07:00
Patrick Walton
431dcf3d2e
Rename `pathfinder_geometry::basic` to simply `pathfinder_geometry`, and move
...
the remaining code in that crate to a new crate, `pathfinder_content`
The old hierarchy was confusing.
2019-06-21 10:06:19 -07:00
Patrick Walton
487577a11b
Add Metal support.
...
This commit substantially reworks the `pathfinder_gpu` API to better support
modern APIs like Metal. It should open the door to `gfx-rs`, `wgpu`, Vulkan,
and D3D12 backends relatively straightforwardly.
A new example, `canvas_metal_minimal`, has been added.
Note that the new Metal shaders require a patched version of `spirv-cross` to
build properly. An upstream patch is forthcoming.
2019-06-20 11:47:22 -07:00
Patrick Walton
dbf02fb742
Make `get_vertex_attr()` fallible
2019-06-12 10:50:24 -07:00
Patrick Walton
9f9233c153
Add Metal shaders, cross-compiled from the GLSL via SPIR-V.
...
The Metal shaders are checked into the repository for convenience, but they
should not be directly edited. Instead, edit the corresponding GLSL shader in
the top-level `shaders/` directory, and rerun `make` in there.
2019-06-05 18:29:25 -07:00
Patrick Walton
a1b0df0a42
Rename `Point2DF` to `Vector2F`, `Point3DF` to `Vector4F`, and `LineSegmentF`
...
to `LineSegment2F`.
Straw poll on Twitter suggested that these names were preferred.
2019-06-03 12:39:29 -07:00
Patrick Walton
e1bcc11ace
Change the `F32` and `I32` suffixes to `F` and `I` to match the C API.
...
They're shorter and less noisy.
2019-05-29 19:17:16 -07:00
Patrick Walton
acf666b701
Stop using triangle fans for DX12/Vulkan compatibility.
...
Closes #165 .
2019-05-29 16:04:33 -07: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
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
f129f09bd8
Rust `rustfmt` on the GPU crate
2019-04-29 16:57:56 -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
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
db3851d754
Get subpixel AA and gamma correction working in 2D
2019-03-25 16:20:34 -07:00
Patrick Walton
224c8e85b9
Create separate shaders for monochrome and multicolor tiles.
...
This is preparation for fixing subpixel AA.
2019-03-22 14:28:31 -07:00
Patrick Walton
0458d9a7f2
Factor out bits of the postprocessing shader into includes
2019-03-18 21:40:10 -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
bc80490158
Remove raw GL code from the demo
2019-03-05 13:57:28 -08:00
Patrick Walton
6b9adcb6fc
Fix GPU abstraction
2019-03-05 13:22:11 -08:00
Patrick Walton
ae450b063e
WIP: Factor out GL code
2019-03-04 14:55:32 -08:00