tree: 252a720120ab01599ad3f38f6a73deabebd99349 [path history] [tgz]
  1. examples/
  2. meta/
  3. scripts/
  4. src/
  5. tests/
  6. BUILD.gn
  7. Fargo.toml
  8. OWNERS
  9. README.md
src/lib/ui/carnelian/README.md

Introduction

Carnelian is a prototype framework for writing Fuchsia modules in Rust.

To build the included samples, add --with //src/lib/ui/carnelian:examples to your fx set line. terminal.x86 is sufficient to support Carnelian samples. See these fx set instructions for more details.

Tentative Roadmap

  1. Software Framebuffer and Scenic modes
  2. Flutter-style flex-box layout

Software Framebuffer and Scenic modes

In order to support the UI for software recovery, Carnelian is going to be able to run some subset of its features in the software-only mode exposed by the fuchsia-framebuffer library. The drawing example runs in this mode, and this task is to modify Carnelian to provide an abstraction across this and Scenic.

Flutter-style flex-box layout

Implement the basics of flex box layout, similar to the way it is done in Druid.

Future Areas

Command Handling

Mature application frameworks usually have some mechanism for commands that might apply to multiple items in the view hierarchy to be handled by the most specific first and proceeding to less specific items. This command handling structure can also be used to show/enable menu items if Fuchsia ever has such a menu.

Animation

Design and implement a simple animation facility.

Frequently Asked Questions

Nested Calls to App::with()

App::with is implemented with a thread-local RefCell. After calling the function provided to App::with, any messages queued with App::queue_message are sent. If the sending of these messages results in a call to App::with the Carnelian app will be aborted.

This restriction will be removed soon.