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
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
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
c09ef3ae7c
Fix SVG and demo compilation errors
2019-05-13 18:19:10 -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
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
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
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
60b951409c
Run `rustfmt` on the demos
2019-04-29 16:52:37 -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
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
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
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
e00e862df0
Merge remote-tracking branch 'asajeffrey/demo-device-controls-viewports' into pf3
2019-04-12 14:14:59 -07:00
Patrick Walton
3996d9a653
Merge remote-tracking branch 'asajeffrey/demo-camera-transforms-event' into pf3
2019-04-12 14:10:03 -07:00
Patrick Walton
782e352bf2
Make `BackgroundColor` public.
2019-04-12 14:07:36 -07:00
Alan Jeffrey
eedb8bbadf
Separated viewport from make_current.
2019-04-12 11:30:00 -05:00
Alan Jeffrey
b98336a430
Clear all GL contexts before rendering a scene
2019-04-12 09:07:52 -05:00
Alan Jeffrey
50e5790c9f
Allow devices to determine the viewport for each eye
2019-04-12 09:07:52 -05:00
Alan Jeffrey
fcb122ddb8
PR #114 2/2
2019-04-12 09:07:41 -05:00
Alan Jeffrey
9da93c46e8
PR #114 1/2
2019-04-12 09:07:25 -05:00
Alan Jeffrey
5c30913716
Removed mode from 3D demo camera
2019-04-12 08:58:42 -05:00
Alan Jeffrey
61caaeb2ff
Allow devices to set transforms for each camera
2019-04-12 08:58:42 -05:00
Alan Jeffrey
e11f5646ab
Don't draw the floor if the background is transparent
2019-04-11 11:19:18 -05:00
Patrick Walton
c5ccd0f6e0
Add partial support for transparent background colors.
2019-04-10 14:43:36 -07:00
Patrick Walton
12b3b1cd9a
Merge pull request #128 from asajeffrey/demo-handle-events-before-scene-update
...
In the demo, handle events before updating the scene
2019-04-10 08:42:33 -07:00
Patrick Walton
8cb2ae8918
Merge pull request #127 from asajeffrey/pf3-mut-present
...
Make the demo window present method take a &mut self
2019-04-10 08:42:05 -07:00
Patrick Walton
3d4f8bd008
Pipeline between CPU and GPU at a more fine-grained level.
...
This makes us stop running one frame behind.
2019-04-09 17:06:43 -07:00
Alan Jeffrey
3337dd897c
In the demo, handle events before updating the scene
2019-04-08 11:24:41 -05:00
Alan Jeffrey
c26a443b0d
Make the demo window present method take a &mut self
2019-04-08 11:16:57 -05:00
Alan Jeffrey
dc77a5262f
TAB toggles UI visibility in the demo
2019-04-02 15:55:38 -05:00
Alan Jeffrey
0166ff96de
Allow demo UI to show just stats
2019-04-02 15:48:28 -05:00
Alan Jeffrey
3fafaff04f
Option to disable the UI
2019-04-02 15:21:05 -05:00
Alan Jeffrey
4db3fb6279
Allow demo apps to provide default options
2019-04-02 15:21:05 -05:00
Patrick Walton
6b6f24c98d
Merge remote-tracking branch 'origin/pf3' into pf3
2019-03-28 21:25:53 -07:00
Patrick Walton
ae192ffee7
Add ARM SIMD
2019-03-28 19:26:47 -07:00
Patrick Walton
a987bf0fc1
Merge pull request #124 from asajeffrey/pf3-demo-customize-rayon
...
Allow the Window to customize rayon's thread builder
2019-03-28 15:17:23 -07:00
Alan Jeffrey
c51885a696
Renamed customize_rayon to adjust_thread_pool_settings
2019-03-28 17:16:47 -05:00
Alan Jeffrey
52fa494d48
Allow the Window to customize rayon's thread builder
2019-03-28 14:42:14 -05:00
Patrick Walton
db3851d754
Get subpixel AA and gamma correction working in 2D
2019-03-25 16:20:34 -07:00
Patrick Walton
29cedb96ef
Merge pull request #113 from asajeffrey/gl-nonzero-default-framebuffer
...
Allow a non-zero default framebuffer
2019-03-25 15:13:46 -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
Alan Jeffrey
ab3b28f82b
Allow a non-zero default framebuffer
2019-03-21 13:34:59 -05:00
Patrick Walton
6ca5dc5f62
Add basic barrel distortion support for VR
2019-03-20 13:41:04 -07:00
Patrick Walton
9025189650
Allow opening new SVGs in the Android port
2019-03-18 18:13:13 -07:00
Patrick Walton
5db7edad0b
Add specific rendering methods for each eye
2019-03-14 20:15:48 -07:00
Patrick Walton
e212a839b4
Get device orientation changes partially working
2019-03-14 19:13:27 -07:00
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
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