Commit Graph

989 Commits

Author SHA1 Message Date
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
Alan Jeffrey 7cd8452ffc Update magicleap README for SDK 0.20.0 2019-04-15 13:29:32 -04:00
Alan Jeffrey f20a023ba7 Rearranged magicleap demo svgs 2019-04-15 13:29:32 -04:00
Alan Jeffrey 6b19234a44 Removed stats from magicleap demo 2019-04-15 13:29:32 -04:00
Alan Jeffrey 24a7801820 The magicleap demo library is a shared library 2019-04-15 13:29:32 -04:00
Alan Jeffrey 3603324437 Added copyright statement to magicleap demo files 2019-04-15 13:29:32 -04:00
Alan Jeffrey 1605a47956 Updated to new PF3 API 2019-04-15 13:29:32 -04:00
Alan Jeffrey 8d5b44140b Magicleap demo is less chatty 2019-04-15 12:43:41 -04:00
Alan Jeffrey bc89d88222 Dead code elimination 2019-04-15 12:43:41 -04:00
Alan Jeffrey 4c1e532f7f Regenerated Cargo.lock 2019-04-15 12:43:41 -04:00
Alan Jeffrey 06b5e3330d Get the pathfinder magicleap demo to compile with v0.20.0 of the SDK 2019-04-15 12:43:41 -04:00
Alan Jeffrey 0f0062351d Make pathfinder_immersive_demo a shared library. 2019-04-15 12:43:41 -04:00
Alan Jeffrey 41dc655967 Update for current Window interface 2019-04-15 12:43:41 -04:00
Alan Jeffrey bd70cb0135 Changed some of the magicleap demo SVGs 2019-04-15 12:43:41 -04:00
Alan Jeffrey 1c1eaf20d1 Get the magicleap immersive demo to respond to new file name arguments 2019-04-15 12:43:41 -04:00
Alan Jeffrey 3bd825196e Get the magicleap immersive mode demo to take a filename argument 2019-04-15 12:43:41 -04:00
Alan Jeffrey 6f5a72229c Add focusing to the magicleap demo cube 2019-04-15 12:43:41 -04:00
Alan Jeffrey 9fd479d604 Expose a C API for getting pathfinder to render to an EGL surface 2019-04-15 12:43:41 -04:00
Alan Jeffrey 29ef8b57e0 Use pathfinder directly for magicleap demo cube faces rather than using pathfinder_demo 2019-04-15 12:43:41 -04:00
Alan Jeffrey 685651c119 Wire up magicleap landscape demo cube faces to pathfinder demo 2019-04-15 12:43:41 -04:00
Alan Jeffrey 1aedbec4d7 Get landscape app to respond to clicks 2019-04-15 12:43:41 -04:00
Alan Jeffrey 37c7457929 Add magicleap landscape demo 2019-04-15 12:43:41 -04:00
Alan Jeffrey 8ba56e5597 Pin the scene threads to CPUs 2019-04-15 12:43:41 -04:00
Alan Jeffrey 6642a2ce1e Lerp the initial cameras to get the initial transform 2019-04-15 12:43:41 -04:00
Alan Jeffrey 463ea6519b Move a magic number into a constant declaration 2019-04-15 12:43:41 -04:00
Alan Jeffrey cf6032416c Predict next frame pose 2019-04-15 12:43:41 -04:00
Alan Jeffrey 8de4b952be Change initial camera transform 2019-04-15 12:43:41 -04:00
Alan Jeffrey daeee1305c Set rayon thread pool size to be 2 in magicleap demo 2019-04-15 12:43:41 -04:00
Alan Jeffrey dd0283d848 Reenable jemallocator 2019-04-15 12:43:41 -04:00
Alan Jeffrey 838bf684fb Add magicleap demo 2019-04-15 12:43:41 -04: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
Patrick Walton 4e7bbf7a49
Merge pull request #130 from asajeffrey/demo-transparent-no-floor
Don't draw the floor if the background is transparent
2019-04-12 14:05:00 -07:00
Patrick Walton 06439f858f Store the tile rect in only one place in the scene assembly thread 2019-04-12 11:55:05 -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
Patrick Walton 21563d9d7f Move the Z-buffer over to the `DenseTileMap` abstraction 2019-04-11 19:38:31 -07:00
Patrick Walton eef6045ed7 Add missing `tile_map.rs` file 2019-04-11 19:36:55 -07:00
Patrick Walton 6a967c19f4 Introduce a `DenseTileMap<T>` type for better abstraction and SIMD use 2019-04-11 19:25:02 -07:00
Patrick Walton 9e38da25e1 Remove the `TileObjectPrimitive` structure in favor of a flat list of
backdrops.

This reduces memory usage a bit and adds the infrastructure needed to support a
tile map.
2019-04-11 18:54:03 -07:00
Alan Jeffrey e11f5646ab Don't draw the floor if the background is transparent 2019-04-11 11:19:18 -05:00
Patrick Walton 4e6bbf59ba Stop using `crossbeam-channel`, as it's slower than `std::sync::mpsc` on macOS
at least
2019-04-10 20:29:13 -07: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