diff --git a/content/posts/newsletter-012/index.md b/content/posts/newsletter-012/index.md index bb77e31a2..a9f29ad0b 100644 --- a/content/posts/newsletter-012/index.md +++ b/content/posts/newsletter-012/index.md @@ -64,8 +64,55 @@ If needed, a section can be split into subsections with a "------" delimiter. ## Learning Material Updates +### [Rust on iOS with SDL2][rust-ios-sdl2-post] + +[![Rust on iOS with SDL2 demo](rust-ios-sdl2-screenshot.png)][rust-ios-sdl2-post] + +[@aclysma] published a [tutorial][rust-ios-sdl2-post] that describes setting up +Rust/SDL2 on iOS. The resulting app can run in the simulator as well as on +physical devices. [SDL2][sdl2-project] is a mature library providing basic rendering, +audio, and input support. It can also be used to set up an opengl or vulkan +surface. This demo is using [Rust-SDL2][rust-sdl2] for bindings. + +[rust-ios-sdl2-post]: https://blog.aclysma.com/rust-on-ios-with-sdl2/ +[@aclysma]: https://twitter.com/aclysma +[sdl2-project]: https://www.libsdl.org/download-2.0.php +[rust-sdl2]: https://crates.io/crates/sdl2 + ## Library & Tooling Updates +### Vulkan Renderer (Name TBD) + +[![Vulkan renderer on iOS prototype](vulkan-renderer-prototype.jpeg)][vulkan-renderer-prototype-video] + +^ _Click to watch [the video demo][vulkan-renderer-prototype-video] running on iOS._ + +[@aclysma] published a [new vulkan-based renderer][renderer-prototype] that +uses [atelier-assets] to load 3D scenes exported from blender. + +> The objective of this repo is to build a scalable, flexible, data driven +> renderer. Scalable in the sense of performance as well as suitability for +> use in large, real-world projects. This means streaming, LODs, visibility +> systems, and multi-threaded draw call submission need to be possible. +> Additionally it means thinking through how an asset pipeline would work for +> a team with dedicated artists and supporting workflow-friendly features +> like hot reloading assets, possibly on remote devices. + +This video demonstrates the renderer running on iOS and receiving asset updates +via wifi. The scene is "sponza" exported from blender. Vulkan is supported on +windows and linux natively. Support for macOS and iOS is via the +well-established [MoltenVK][moltenvk] project. + +The demo was ported from PC to iOS over a single weekend and out of +approximately 300 crate dependencies (including complex, OS-specific ones like +tokio), all but a few worked out-of-the-box! + +[@aclysma]: https://twitter.com/aclysma +[renderer-prototype]: https://github.com/aclysma/renderer_prototype +[atelier-assets]: https://github.com/amethyst/atelier-assets +[vulkan-renderer-prototype-video]: https://www.youtube.com/watch?v=Ks_HQbejHE4 +[moltenvk]: https://github.com/KhronosGroup/MoltenVK + ## Popular Workgroup Issues in Github diff --git a/content/posts/newsletter-012/rust-ios-sdl2-screenshot.png b/content/posts/newsletter-012/rust-ios-sdl2-screenshot.png new file mode 100644 index 000000000..d0aaedc1f Binary files /dev/null and b/content/posts/newsletter-012/rust-ios-sdl2-screenshot.png differ diff --git a/content/posts/newsletter-012/vulkan-renderer-prototype.jpeg b/content/posts/newsletter-012/vulkan-renderer-prototype.jpeg new file mode 100644 index 000000000..c45795444 Binary files /dev/null and b/content/posts/newsletter-012/vulkan-renderer-prototype.jpeg differ