Commit Graph

1154 Commits

Author SHA1 Message Date
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
Patrick Walton d090dd459b Remove the layer of indirection between object indices and shaders 2019-04-03 11:58:45 -07:00
Patrick Walton 2f651ed537
Merge pull request #117 from asajeffrey/pf3-options
A couple of features for Options
2019-04-02 14:30:43 -07: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 ace5392701
Merge pull request #116 from asajeffrey/gitignore-emacs
Add emacs backup files to .gitignore
2019-04-02 11:01:08 -07:00
Patrick Walton 6b6f24c98d Merge remote-tracking branch 'origin/pf3' into pf3 2019-03-28 21:25:53 -07:00
Patrick Walton 79b26bb9bd Split out the swizzles into separate modules 2019-03-28 21:25:33 -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 e4b613c2c8 Stroke then transform instead of the reverse. 2019-03-26 19:56:59 -07: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
Alan Jeffrey a2db354eda Add emacs backup files to .gitignore 2019-03-21 11:44:48 -05:00
Patrick Walton 26fea26f87 Allow construction of a `Transform3DF32` from a quaternion describing a
rotation.

Closes #111.
2019-03-20 16:27:28 -07:00
Patrick Walton a0aeb124ad
Merge pull request #112 from asajeffrey/geometry-perspective-post-mul
Add Perspective::post_mul
2019-03-20 14:26:11 -07:00
Patrick Walton 6ca5dc5f62 Add basic barrel distortion support for VR 2019-03-20 13:41:04 -07:00
Alan Jeffrey 1769246e5a Add Perspective::post_mul 2019-03-20 13:59:55 -05:00
Patrick Walton 2819a88060
Merge pull request #110 from nical/swizzle
Fix swizzles in scalar.rs
2019-03-20 10:21:44 -07:00
Nicolas Silva 301075ef86 Fix swizzles in scalar.rs. 2019-03-20 17:19:11 +01:00
Patrick Walton 0458d9a7f2 Factor out bits of the postprocessing shader into includes 2019-03-18 21:40:10 -07:00
Patrick Walton 9025189650 Allow opening new SVGs in the Android port 2019-03-18 18:13:13 -07:00
Patrick Walton 49660a6b31 Add more Daydream VR support 2019-03-15 15:23:37 -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 d1728dfe6d Update the scalar SIMD fallback 2019-03-08 12:30:07 -08:00