Skip to content

Write a Guide / Tutorial #505

@mitchmindtree

Description

@mitchmindtree

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 Themes
    • Explanation of how Conrod uses Themes.
    • 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.
  • 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.
  • 5. How to use Conrod with your own backend
    • Demo how to use conrod's render::Primitives to draw to a custom backend.
  • 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 👍

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions