Commit Graph

1748 Commits

Author SHA1 Message Date
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
Patrick Walton a74c0abbec Factor the SDL code out in preparation for other ports 2019-03-07 16:14:26 -08:00
Patrick Walton 25558c2177 Only emit warnings for non-empty `<defs>` nodes.
Inkscape likes to put empty `<defs>` nodes in the file, which don't do
anything, so we technically support them.
2019-03-07 11:24:20 -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