diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index f83d992a2..896aaa0b4 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -49,7 +49,9 @@ instance) or a hardware (OpenGL, DirectX, Vulkan, Metal, etc.). ### Sound -rg3d uses software sound engine [rg3d-sound](https://github.com/mrDIMAS/rg3d/tree/master/rg3d-sound) +rg3d uses software sound engine [rg3d-sound](https://github.com/mrDIMAS/rg3d/tree/master/rg3d-sound). +The sound engine provides support for binaural sound rendering using HRTF, which gives excellent sound +spatialization. ## Code Map @@ -169,36 +171,84 @@ The module contains Brush structure which describes a way of drawing graphics pr #### button.rs +The module contains Button widget and its builder. + #### canvas.rs +The module contains Canvas widget and its builder. Canvas is a simple container for child widgets, +it allows setting position of children widgets directly. + #### check_box.rs +The module contains CheckBox widget and its builder. CheckBox is a three-state (checked, unchecked, +undefined) switch. + #### color.rs +The module contains widgets to work with colors and their builders. There are separate widgets to change +hue, saturation, brightness and compound color selector widget. + #### decorator.rs +The module contains Decorator widget and its builder. Decorator is a simple container for child widgets, +it has built-in behaviour for most common actions: it changes appearance when mouse enters or leaves bounds, +when user clicks on it, etc. + #### dock.rs +The module contains DockingManager and Tile widgets and their builders. Docking manager is able to combine +multiple Window widgets in its tiles, each tile can be resized, docked or undocked. This is the must-have +widget for any kind of editor. + #### draw.rs +The module is responsible for "drawing". It is in quotes, because it does not actually draw anything, it just +emits drawing commands in a queue for later interpretation. + #### dropdown_list.rs +The module contains DropdownList widget and its builder. DropdownList is a small field that shows selected +item and a "popup" that contains list of items. + #### expander.rs +The module contains Expander widget and its builder. Expander is a collapsable container for child widgets +with a field that describes a content. + #### file_browser.rs +The module contains a set of widgets that displays file system. FileBrowser widget is a simple file system +tree, FileSelector is a window with FileBrowser and few buttons. + #### formatted_text.rs +The module is responsible for text formatting and "rendering". The latter is in quotes, because the library +just uses glyph info from a font to layout each glyph in a line of text with word wrapping and other +useful features (like text size calculation, etc). + #### grid.rs +The module contains Grid widget and its builder. Grid is a powerful layout widget, it allows arranging child +widgets in a series of rows and columns. + #### image.rs +The module contains Image widget and its builder. Image is a simple rectangle with a texture. + #### list_view.rs +The module contains ListView widget and its builder. ListView is a container for items which arranged +as a stack. ListView supports item selection. + #### menu.rs +The module contains menu widgets. Menu here means a classic menu which is a strip with root items and a +set of child sub-menus. + #### message.rs +The module contains all supported messages for every widget in the library. + #### messagebox.rs #### node.rs