-
Notifications
You must be signed in to change notification settings - Fork 295
Open
Milestone
Description
The Guide should probably be structured to look something like this:
- 1. What is Conrod
- A brief summary of 2D GUI, Conrod use-cases.
- some screenshots / video demos
- list the available widgets
- link to examples
- A brief intro to "Immediate Mode" aka OMG why do I construct the Widget EVERY FRAME?!
- how does IMGUI work (explain caching etc)
- why did we use IMGUI (pros/cons)
- The "Builder Pattern" (why use it, how it works)
- 2. Using Conrod (to create a basic app GUI)
- A walk-through showing how to use Conrod to make a GUI with a small demonstration app.
- Setup a basic window using glium.
- Create a demo
App
struct with some dummy data. - Writing a
ui
function for the app. - Generate a list of IDs using the
widget_ids!
macro(not yet implemented). - Draw a basic widget (i.e.
Button
). - Demo
Positionable
,Colorable
, etc traits (show where to find all available builder methods / traits for a widget in the docs). - Slightly more complicated widget (
DropDownList
) - Attach widgets to a parent "canvas" (demo different internal canvasses).
- 3. Using and Customising
Theme
s- Explanation of how Conrod uses
Theme
s. - How to use a
Theme
(load from json). - How to make a custom
Theme
(use in demo app from previous chapter). - How to add custom widget styling to a
Theme
.
- Explanation of how Conrod uses
- 4. Designing custom Widgets using Conrod's
Widget
trait- Start with basics by demoing how to make a
Button
. - Discuss how widget state is stored within the
Graph
and how each of the different types of IDs/indices relate to each other. - Move on to a more advanced example composing a widget from other widgets.
- Start with basics by demoing how to make a
- 5. How to use Conrod with your own backend
- Demo how to use conrod's
render::Primitives
to draw to a custom backend.
- Demo how to use conrod's
- 6. Contributing to Conrod
- Details about the library innards
- New widgets are welcome etc
I think it'd make sense to do this in markdown for now (i.e. a GUIDE.md
) but I'm open to any other suggestions 👍
JohannesKaufmann, dd10-e, fwcd, anderejd, tafia and 8 more