Commit Graph

487 Commits

Author SHA1 Message Date
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 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 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
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 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
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 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
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 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
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